WEB开发网
开发学院软件开发VC TCP/IP学习笔记(4) 阅读

TCP/IP学习笔记(4)

 2010-04-03 20:34:36 来源:WEB开发网   
核心提示:一、UDP协议UDP 是一个简单的面向数据报的运输层协议,进程的每个输出操作都产生一个UDP数据报,TCP/IP学习笔记(4),并组装成一份待发送的IP数据报,UDP不提供可靠性,如果有错误,该报就被丢弃,UDP封装格式: IP首部(20) UDP首部

一、UDP协议

UDP 是一个简单的面向数据报的运输层协议,进程的每个输出操作都产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性。

UDP封装格式:

IP首部(20) UDP首部(8) UDP数据

1、UDP首部:

16位源端口号 16位目的端口号
16位UDP长度 16位UDP检验和
数据(如果有)

端口号表示发送和接收的进程。

UDP长度字段指的是UDP首部和UDP数据的字节长度,该字段的最小值是8,表示没有数据。该长度不包括IP首部长度。

UDP检验和包括UDP首部和UDP数据的检验和。由于UDP数据报的长度可以为奇数字节数,因此计算时在最后增加填充字节0,这只是为了检验和的计算。

2、UDP检验和

UDP和TCP首部都包含一个12字节的伪首部,包含了IP首部和自身的一些字段,主要是为了计算检验和而设置的。伪首部是不占实际空间的。伪首部包含IP首部的一些字段,目的是让UDP两次检查数据是否已经到达目的地,以及IP层是否正确地传输了数据。

UDP伪首部格式如下:

32位源IP地址
32位目的IP地址
0 8位协议(17) 16位UDP长度
16位源端口 16位目的端口
16位UDP长度 16位UDP检验和
数据(如果有)

前12个字节就是UDP伪首部。

注意:UDP数据报的长度在检验和计算过程中出现两次。如果检验和的计算结果为0,则存入的值为全1(65535),如果传送的检验和是0,则说明发送端没有计算检验和。如果有错误,该报就被丢弃,不产生任何差错报文。

1 2 3 4  下一页

Tags:TCP IP 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接