UDP协议的标题结构
发表于:2007-05-26来源:作者:点击数:
标签:
UDP信息包由UDP标题和数据组成。UDP的标题结构如图15-21所示,它由5个域组成:源端端口(SourcePort)、目的地端口(DestinationPort)、用户数据包的长度(Length)和检查和(Checksum)。其中,前4个域组成UDP标题(UDPheader),每个域由4个字节组成;检查和域占据2
UDP信息包由UDP标题和数据组成。UDP的标题结构如图15-21所示,它由5个域组成:源端端口(SourcePort)、目的地端口(DestinationPort)、用户数据包的长度(Length)和检查和(Checksum)。其中,前4个域组成UDP标题(UDPheader),每个域由4个字节组成;检查和域占据2个字节,它用来检测传输过程中是否出现了错误;用户数据包的长度包括所有5个域的字节数。
UDP信息包的标题结构
检查和的详细计算可在RFC1071中找到,现举一例说明使用检查和检测错误的道理。例如,假设从源端A要发送下列3个16位的二进制数:word1,word2和word3到终端B,检查和计算如下:
word1 |
0110011001100110 |
word2 |
0101010101010101 |
word3 |
0000111100001111 |
sum=word1+ word2+ word3 |
1100101011001010 |
检查和(sum的反码) |
0011010100110101 |
从发送端发出的4个(word1,2,3以及检查和)16位二进制数之和为1111111111111111,如果接收端收到的这4个16位二进制数之和也是全“1”,就认为传输过程中没有出差错。
许多链路层
协议都提供错误检查,包括流行的以太网
协议,读者也许想知道为什么UDP也要提供检查和。其原因是链路层以下的
协议在源端和终端之间的某些通道可能不提供错误检测。虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。
读者也可能会问,收发两端的两个进程是否有可能通过UDP提供可靠的数据传输?答案是可以的。但必需要把确认和重传措施加到应用程序中,应用程序不能指望UDP来提供可靠的数据传输。
原文转自:http://www.ltesting.net
|