网络通信(三): UDP 报头格式说明

您所在的位置:网站首页 为什么udp报文的校验和要包含伪首部 网络通信(三): UDP 报头格式说明

网络通信(三): UDP 报头格式说明

2023-12-26 07:42| 来源: 网络整理| 查看: 265

文章目录 1、UDP 的特点2、UDP 头部格式(1)源端口号(Source Port)(2)目标端口号(Destination Port)(3)包长度(Length)(4)校验和(Checksum) 3、为什么在进行校验和计算时,也要计算UDP的伪首部?

1、UDP 的特点

UDP 是 User Datagram Protocol 的缩写。

UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。UDP 是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。传输途中出现丢包,UDP 也不负责重发。当包的到达顺序出现乱序时也没有纠正的功能。如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。

UDP 常用于以下几个方面:

1.包总量较少的通信(DNS、SNMP等);

2.视频、音频等多媒体通信(即时通信);

3.限定于 LAN 等特定网络中的应用通信;

4.广播通信(广播、多播)。

2、UDP 头部格式

UDP 头部由源端口号、目标端口号、包长、校验和组成 在这里插入图片描述

(1)源端口号(Source Port)

表示发送端端口号,字段长为16位。没有源端口时该字段的值为0,可用于不需要返回值得通信中。

(2)目标端口号(Destination Port)

表示接收端端口号,字段长度为16位

(3)包长度(Length)

该字段保存了UDP首部的长度跟数据的长度之和

(4)校验和(Checksum)

校验和是为了提供可靠的UDP首部和数据而设计的。 在这里插入图片描述

源IP地址与目标IP地址为IPv4地址时,都是32位字段;为IPv6地址时,都是128位字段填充是为了补充位数,一般填入0

接收主机在收到UDP数据报以后,从IP首部得到IP地址信息构造UDP伪首部,再进行校验和计算。校验和字段的值时校验和字段以外剩下部分的1的补码和。因此,包括校验和(Checksum)字段在内的所有数据之和结果为【16位全部为1】时,才会被认为所收到的数据是正确的。

另外,UDP也有可能不用校验和,此时字段中的值为0。由于不用进行校验和的计算,这种情况下,协议处理的开销就会降低,从而可以提高数据转发的速度。

然而,如果UDP首部的端口号或是IP首部的IP地址遇到损坏,那么可能会对其他通信造成不好的影响。因此,在互联网中比较推荐使用校验和做检查。

3、为什么在进行校验和计算时,也要计算UDP的伪首部?

TCP/IP中识别一个进行通信的应用需要5个元素,分别是:源IP地址、目标IP地址、源端口、目标端口、协议号。然而,在UDP的首部中只包含其中的两个(源端口和目标端口),剩下的3项都包含在IP首部里。

如果其它3项的信息被破坏,极有可能会导致应该收包的应用收不到,不该收到包的应用确收到了包。

为了避免这类问题,有必要验证一个通信中这5项识别码是否正确。因此,在计算校验和中就引入了伪首部的概念。

另外,IPv6中的IP首部没有校验和字段。TCP或UDP通过伪首部,对5项数字进行校验,从而在IP首部不可靠的情况下仍然能够提供可靠的通信传输。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3