UDP协议 悠悠 2024-02-23 02:45 27阅读 0赞 ## UDP协议 ## #### 文章目录 #### * UDP协议 * 一、UDP协议 * 二、UDP的首部格式 * * 1.首部字段 * 三、UDP协议的特点 * * 1.无连接 * 2.不可靠传输 * 3.面向数据流 * 4.全双工通信 * 5.其他特点 * 总结 ## 一、UDP协议 ## UDP ,即User Datagram Protocal 是一种无连接的传输层协议 -------------------- ## 二、UDP的首部格式 ## > 用户数据报UDP有两个字段:数据字段和首部字段 ### 1.首部字段 ### > 首部字段只有8个字节,由4个字段组成,每个字段的长度都是2个字节 **(1)源端口**:源端口号,在需要对方回信时选用,不需要时可全0 **(2)目的端口**:目的端口号,在终点交付报文时必须使用 **(3)长度**: UDP用户数据报的长度,其最小值是8字节(即仅有首部,没有数据部分),单位为字节 > 在这里需要注意的是:UDP报文长度是用2个字节表示的,2个字节可以表示范围0~65535,换算即为64KB,所以一个UDP数据报最大只可以传输64KB的数据,所以会出现以下问题: > 1.64KB是大还是小 > 答:是小,现在目前用手机拍摄一张照片需要几MB,对比可知 > 2.如果应用层数据报传输超过64KB,该如何处理? > **方案一**:在应用层通过代码的方式针对应用层数据报进行手动分包,拆成多个包通过多个UDP数据报进行传输,以货拉拉搬家为例,当你搬家的东西太多了,一辆货拉拉装不完,可以多叫几辆进行装车。 > **方案二**:不使用UDP,使用TCP(TCP没有这样的限制),以货拉拉搬家为例,当你搬家的东西太多了,一辆货拉拉装不完,可以叫一辆比当前车的容量更大的车。 > 如果使用方案一,你需要重新设计一个协议,既耗时又耗力,而且你还需要让其他人认同你的协议,也需要让所有电脑都装上你的协议,这显然是不合理的,但是也不一定需要使用方案二,应用层还有其他协议,具体问题具体分析 **(4)检验和**:校验和是为了提供可靠的UDP首部和数据设计的,当检测UDP用户数据报在传输是否有错,有错就丢弃,当要计算校验和的时候,**会在UDP用户数据报之前增加12个字节的伪首部,这种伪首部并不是UDP用户数据报的真正数据,只在计算校验和中时出现,临时添加,从而得到一个临时的UDP用户数据报,检验和就是通过这个临时的UDP进行计算校验**,但是UDP也有可能不使用校验和,这时校验和字段里均填0,在这种情况下,由于不进行校验和计算,协议处理的开销就会降低,从而提高数据转发的速度,但是当UDP首部的端口号或者是IP首部的IP地址遇到破坏时,就可能造成不好的影响,所以不太推荐 ![在这里插入图片描述][da9c467e7a884bb3acf0a7b70b63841c.png] -------------------- ## 三、UDP协议的特点 ## 无连接,不可靠传输,面向数据流,全双工 ### 1.无连接 ### UDP是无连接的,即发送数据之前无需建立连接(发送数据结束时也没有连接可以释放),因此减少了开销和发送数据之前的延时 ### 2.不可靠传输 ### UDP使用尽最大努力交付,即不保证可靠交付,即使传输过程中出现丢包情况,UDP也不负责重发 ### 3.面向数据流 ### 发送方的UDP对于应用程序交下来的报文,在添加首部后就向下交付IP层,对于应用层交付下来的报文既不合并,也不拆分,而是**保留这些报文的边界**,简单而言,应用层发送多长,UDP就发送多长,有点类似于用户说什么就听什么的机制,很墙头草,这也就意味着应用程序必须选择合适的的长度,如果太长,下面的IP层需要增加开销进行分片,如果太短,会使IP数据报的首部的相对长度太大,从而降低效率 ![在这里插入图片描述][89e53b5be77f478d90e60adcb06fdbe1.png] ### 4.全双工通信 ### 1.首先我们先区别两个概念,“全双工”和"半双工“ 2.全双工:一个通信通道,可以双向传输(既可以发送,也可以接收) 类似一条八车道的公路,既可以过去,也可以回来 ![在这里插入图片描述][b57ffcf7ac2a410e97047be568980c44.png] 3.半双工:一个通信通道,只能单向传输 类似一根水管,是单向传输的,一次只能传输一遍边 ![在这里插入图片描述][296cd8f736ee4d889a16b8cfabae3010.png] 4.说完这两个概念,我们再来理解UDP中的全双工: **UDP提供全双工通信,支持双向传输,UDP允许通信双方在任何时候都能发送数据。UDP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。** ### 5.其他特点 ### **1.UDP没有拥塞控制**,因此当网络出现拥塞不会使主机的发送速率降低,这对某些实时应用是很重要的,很多的实时应用(如实时视频会议等)要求主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的延时, UDP正好满足这种要求 **2.UDP支持一对一,一对多,多对一和多对多的交互通信** **3.UDP的首部开销小**,只有8个字节,比TCP的20个字节的首部要短 -------------------- ## 总结 ## UDP协议是无连接的传输层协议,它不保证数据传输的可靠性和顺序性。与TCP协议相比,UDP协议具有以下特点: 1.速度快:因为UDP协议不需要建立连接、确认数据包和重传丢失的数据包等操作,所以它的传输速度更快。 2.简单:UDP协议没有复杂的控制流程和错误处理机制,因此它比TCP协议更加简单易用。 3.应用场景广泛:由于UDP协议的速度快和简单,因此它适用于一些对实时性要求高但不需要可靠传输的应用,例如音视频流媒体、游戏等。 4.可靠性低:由于UDP协议不提供可靠性保证,因此它可能会出现数据丢失、乱序等问题,需要应用程序自行处理这些问题。 总之,UDP协议适用于一些对实时性要求高但不需要可靠传输的应用。 [da9c467e7a884bb3acf0a7b70b63841c.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/23/b95675ece9044552a4eab63d53c0b985.png [89e53b5be77f478d90e60adcb06fdbe1.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/23/15590002ce324385b7f14fc07e2d71c2.png [b57ffcf7ac2a410e97047be568980c44.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/23/4a9b8805d48247bbaaf49caad27973a2.png [296cd8f736ee4d889a16b8cfabae3010.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/23/2859ab3a4ea641358acec0d3736b3c75.png
相关 UDP协议 (User Datagram Protocol 即用户数据报协议)是传输层的重要协议之一(还有一个重要协议是TCP) 落日映苍穹つ/ 2024年04月25日 08:44/ 0 赞/ 138 阅读
相关 UDP协议 网络传输中,由于一些外部干扰,就可能会出现数据传输出错的情况。因此,就需要有办法,能够识别出出错的数据。校验和,就是这样的一种检查手段。校验和本质上是一个字符串,体积比原... ゝ一世哀愁。/ 2024年04月23日 21:19/ 0 赞/ 139 阅读
相关 UDP协议 UDP协议 文章目录 UDP协议 一、UDP协议 二、UDP的首部格式 1.首部字段 三、UDP协议的特点 1.无连 悠悠/ 2024年02月23日 02:45/ 0 赞/ 28 阅读
相关 UDP协议 ![在这里插入图片描述][54b363736e2148a3a82cb2451df1fb8e.gif_pic_center] 文章目录 一、前沿知识 应 太过爱你忘了你带给我的痛/ 2023年09月27日 14:24/ 0 赞/ 182 阅读
相关 UDP协议 UDP (User Datagram Protocol)用户数据报协议,在数据传输时彼此之间不需要建立连接,传输前需要把数据定义成数据报,并且传输效率高,但是不安全。 Dat 野性酷女/ 2023年08月17日 16:10/ 0 赞/ 156 阅读
相关 UDP协议 前面我们介绍了了TCP协议,深入浅出TCP协议,为什么需要TCP协议?知道TCP是面向连接的提供可靠性服务的传输层协议,今天讲下同属于传输层的另一个协议——UDP。 正文 素颜马尾好姑娘i/ 2023年02月26日 10:25/ 0 赞/ 65 阅读
相关 UDP协议 一、通信协议。 -- UDP协议 TCP -> Tranmission Control Protocol UDP -> User Data Protocol IP 水深无声/ 2022年12月13日 14:02/ 0 赞/ 285 阅读
相关 UDP协议 UDP 是面向数据报的传输层协议(TCP是面向字节流的协议)。面向报文的传输方式是指应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 UDP不提供错误 以你之姓@/ 2022年08月21日 01:29/ 0 赞/ 384 阅读
相关 《网络协议》UDP 协议 概述 UDP 是无连接、不可靠的数据报传输层协议,为应用程序发送和接收数据报,只是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何 清疚/ 2022年08月14日 03:51/ 0 赞/ 386 阅读
相关 UDP协议 1)UDP协议概述 ![20190807084647592.png][] 2)UDP服务器与客户端程序 服务器端: String 谁践踏了优雅/ 2021年11月05日 13:26/ 0 赞/ 485 阅读
还没有评论,来说两句吧...