当前位置: 首页 > news >正文

每天一个小细节:UDP协议特点与报文结构

在上一期的《每天应该小细节》中,外面介绍了协议这个概念,那么在我们的传输层有两个非常重要的协议,那便是TCP/IP和UDP协议,那么今天就来详细介绍一下UDP协议的主要内容。

上期每天一个小细节指路🐲🐲🐲
https://editor.csdn.net/md/?articleId=127260869

UDP协议特点

首先先介绍一下UDP协议的特点:

无连接
有连接就像打电话,无连接就像发短信,打电话需要与对方建立连接,而发短信不需要,只要值得别人的电话就能发送。在计算机里就是只需要知道对端的IP和端口号就直接进行传输,不需要建立连接

不可靠传输
就是发短信的时候,你无法确定对方是否真的收到了,在计算机中就是不能确定数据有没有被对方接收,很有可能在传输的过程出现“丢包”问题,毕竟不像淘宝发客服信息还有已读这个功能。

面向数据报
就是UDP传输数据的基本单位是数据报,也就是应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并,你给他100字节的数据,它不会拆成10字节的发送十次,你给多少一次性就发送多少,并且接收方一次也接收这么多

全双工
就是UDP的socket既能读,也能写,这个概念叫做 全双工。全双工指可以同时进 行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。
半双工,就是一次只能传输一个方向的数据,先A→B,A结束了才能B→A。
单工就是单行道,只允许A->B,反之不可行。
Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。

UDP报文的具体结构:

在这里插入图片描述
针对上面的各个部分进行阐述:

源端口,目的端口:即数据发送方从哪个端口来,传到接收方的哪个端口去
UDP报文长度:即这个报文的大小,因为只有十六位,所以能表示的报文大小最多也就是64KB,遇到特别大的数据就需要进行拆包,而这个拆包需要在应用层进行。
数据校验和:因为数据在传输过程可能出现一些不可控因素,导致数据内容与原先不符,这个用于检验数据是否正常。
载荷:需要发送的应用层数据报

欢迎大家订阅我的专栏《每天一个小细节》,每天都能巩固,学习。
请添加图片描述

相关文章:

  • Buff/Cache概念和清理方法
  • 【数据结构-树】二叉树的基本操作
  • 死磕JAVA10余年,呕心整理出了核心知识点已经做成PDF,无私奉献
  • javaweb之ajax异步交互
  • 生产实用Shell脚本合集
  • 力扣 1856. 子数组最小乘积的最大值
  • Qt实现控件的折叠收起和展开的功能
  • #传输# #传输数据判断#
  • 腾讯高工用 4 部分就讲清楚了 Spring 全家桶 + 微服务
  • Linux(WSL)安装CUDA
  • Oracle VM VirtualBox Ubuntu设置共享文件夹
  • 【机器学习】DBSCAN聚类算法的理论/实现与调参
  • 32、Java——迷你图书管理器(对象+JDBC)
  • pycharm联合Anaconda
  • 不知道视频怎么转音频?手把手教你视频转音频
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • co.js - 让异步代码同步化
  • ComponentOne 2017 V2版本正式发布
  • echarts的各种常用效果展示
  • happypack两次报错的问题
  • httpie使用详解
  • JavaScript新鲜事·第5期
  • Java深入 - 深入理解Java集合
  • MySQL QA
  • spark本地环境的搭建到运行第一个spark程序
  • Vue.js源码(2):初探List Rendering
  • windows下如何用phpstorm同步测试服务器
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 二维平面内的碰撞检测【一】
  • 飞驰在Mesos的涡轮引擎上
  • 基于遗传算法的优化问题求解
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前嗅ForeSpider教程:创建模板
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 如何优雅地使用 Sublime Text
  • 入口文件开始,分析Vue源码实现
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​水经微图Web1.5.0版即将上线
  • ###C语言程序设计-----C语言学习(3)#
  • #NOIP 2014# day.1 T2 联合权值
  • (1)Android开发优化---------UI优化
  • (4.10~4.16)
  • (52)只出现一次的数字III
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (java)关于Thread的挂起和恢复
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (状压dp)uva 10817 Headmaster's Headache
  • *Django中的Ajax 纯js的书写样式1
  • .jks文件(JAVA KeyStore)
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Remoting常用部署结构
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net中间语言BeforeFieldInit