华为网络基础 | UDP头部封装

  • 内容
  • 相关

前几篇讲解了RS | 数据包帧字节——图例详解RS | IP报文头部RS | TCP头部封装,已经知道了数据通信过程中,以太帧、IP报文、TCP头部的封装结构组成,接下来继续学习UDP头部的封装知识。

相对于TCP协议,UDP协议提供的是尽力而为的服务,它既不会(由于任何原因)在接收方漏收数据后重新发送,也不关心数据到达的顺序。因此UDP并不像TCP那样需要如此之多的头部信息。所以,与TCP头部的封装字段相比,UDP定义的头部格式也要简单得多。

换言之,当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单、易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。

下图即为UDP定义的头部结构。

UDP报文分为UDP报文头和UDP数据区域两部分。报头由源端口、目的端口、报文长度以及校验和组成。UDP适合于实时数据传输,如语音和视频通信。相比于TCP,UDP的传输效率更高、开销更小,但是无法保障数据传输的可靠性。UDP头部的标识如下:

(1)16bit源端口号(Source Port):源主机的应用程序使用的端口号。

(2)16bit目的端口号(Destination Port):目的主机的应用程序使用的端口号。

(3)16bitUDP长度(Length):是指UDP头部和UDP数据的字节总长度。因为UDP头部长度为8字节,所以该字段的最小值为8字节。

(4)16bitUDP校验和(Checksum)该字段提供了与TCP校验字段同样的功能;该字段是可选的。发送方可以在封装数据段时计算出校验和,并将计算结果写入该字段中,接收方在接收到之后也计算出校验和,并将结果与这个字段进行对比。若一致则通过验证,将数据转交给应用进程;若不一致则直接丢弃

UDP不像TCP协议可以在传输数据的过程中提供诸多保障,但UDP由于开销更小,需要的处理资源更少,因此传输效率更高

 您阅读这篇文章共花了:

上一篇:华为网络基础 | TCP头部封装

下一篇:华为网络基础 | 套接字

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:华为网络基础 | UDP头部封装 - http://www.fishyoung.com/post-135.html