10、UDP用户数据报协议

来源:互联网 发布:烟台淘宝招聘 编辑:程序博客网 时间:2024/06/05 16:51

一、引言

UDP是一个简单的面向数据报的传输层协议:进程每一个输出正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP是不可靠的;应用程序需要关注IP数据报的长度如果超过了MTU那么IP数据报进行分片。

二、UDP首部

这里写图片描述

端口号指明了发送、接收进程。长度字段是UDP首部和数据的字节长度,最小8个字节。UDP长度检验和覆盖UDP首部和UDP数据。UDP数据报包含12字节长的伪首部。为了让UDP两次检查数据是否已经正确到达目的地。

这里写图片描述

上图是一个奇数长度的数据报所以在计算检验和的时候需要加上填充字节0,但是该填充字节不被传送。注意UDP检验和计算过程中出现两次。如果发送端和接收端检测的检验和有差错那么UDP数据报就会被丢弃。

三、IP分片

每次IP层发送IP数据报的时候要判断向哪个接口发送数据,并查看对于的MTU进行比较判断是否需要分片。分片发生在原始发送端主机上或者中间路由上。
在IP头里面,16bit识别号唯一记录了一个IP包的ID,具有同一个ID的IP片将会被重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表示中间的3bit标志则标示着该分片后面是否还有新的分片。这三个标示就组成了IP分片的所有信息,接受方就可以利用这些信息对IP数据进行重新组织(就算是后面的分片比前面的分片先到,这些信息也是足够了)。标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。相反把数据报丢弃并发送一个ICMP差错报文。当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其余部分必须是8字节的整数倍。

原创粉丝点击