计算机网络基础 (十四)--- 传输层 -UDP 协议详解
文章内容概览
UDP 协议简介
UDP(User Datagram Protocol:用户数据报协议)
UDP 相对于 TCP 来说,是一个非常简单的协议
数据报:指的就是应用层所传输过来的一个完整的数据,UDP 不会对这个完整的数据进行处理,不会进行拆分,也不会进行合并了再传输
从数据报的定义可以看出,UDP 协议的数据长度,主要由应用层传输的数据长度所决定的,应用层传的数据越长,UDP 数据报文就越长
UDP 数据报的数据所处的位置
UDP 首部
端口号:端口号在之前的文章中有提到,它标记的是使用网络的进程(源端口号就是原机器正在使用网络的进程,目的端口号就是目的机器正在使用网络的进程)
16 位 UDP 长度:指的就是 UDP 数据报的长度(该长度包括 UDP 数据)
16 位 UDP 校验和:检测 UDP 的用户数据报在传输中是否出错
UDP 数据:实际要发的数据
UDP 的特点
1.UDP 是一个无连接的协议
比如 A 和 B 进行电话通信,在通信之前,需要先拿出电话,然后拨号,这个是建立连接的过程。当电话拨通之后,说明连接已经建立起来了,此时就可以进行通信了。当通信之后,就将电话挂断,这个相当于结束连接。这个过程就是有连接的过程。而 UDP 是无连接的,也就是说,他在通信之前,不需要先建立连接,只要在想发数据的时候,直接就将数据发送出去了
2.UDP 不能保证可靠的交付数据
首先 UDP 是无连接的协议,在发送数据的时候想发就发,无法保证数据在网络中是否有丢失,即使有丢失,它也不会感知到
从前边的 UDP 头部也可以看出来,它的头部非常简单,并没有提供任何的机制来保证数据可以可靠的传给对方
3.UDP 是面向报文传输的
UDP 对应用层传输的数据并不会进行任何的处理,直接塞进 UDP 协议的数据中
4.UDP 没有拥塞控制
如果把网络看做是一条公路,如果车辆特别多,就会导致拥塞。UDP 并不会感知网络是否拥塞,不管是否拥塞,它都会尽量的把数据给发送出去
5.UDP 的首部开销非常小
从上边的 UDP 首部图可以看出来,总共也就 8 个字节
版权声明: 本文为 InfoQ 作者【书旅】的原创文章。
原文链接:【http://xie.infoq.cn/article/1ffe8e70fa6b5f3a37259e323】。文章转载请联系作者。
评论