《TCP/IP详解 卷一》第10章 UDP 和 IP 分片

目录

10.1 引言

10.2 UDP 头部

10.3 UDP校验和

10.4 例子

10.5 UDP 和 IPv6

10.6 UDP-Lite

10.7 IP分片

10.7.1 例子:IPV4 UDP分片

10.7.2 重组超时

10.8 采用UDP的路径MTU发现

10.9 IP分片和ARP/ND之间的交互

10.10 最大UDP数据报长度

10.11 UDP服务器的设计

10.11.1 IP地址和UDP端口号

10.11.2 限制本地IP地址

10.11.3 使用多地址

10.11.4 限制远端IP地址

10.11.5 每端口多服务器的使用

10.11.6 跨越地址族:IPv4和IPv6

10.11.7 流量和拥塞控制的缺失

10.12 UDP/IPV4和UDP/IPV6数据报的转换

10.13 互联网中的UDP

10.14 与UDP和IP分片相关的攻击

10.15 总结


10.1 引言

UDP(User Datagram Protocol):用户数据报协议。一种传输层协议。

        IPv4中协议字段值:17。

                特点:

                        有消息边界。

                        开销更小,因为没有TCP复杂机制。

当UDP应用程序每次调用send/write,就发出一个UDP数据报。

而TCP不一定,因为TCP可能分段,重组。

即TCP应用程序执行多次send/write调用会组合成一个数据包发送,或可能一个send/write调用被分成多个数据包发送。

10.2 UDP 头部

头部格式如下:

字段:

        源端口

        目的端口

        长度:UDP报文总长度,包括头部和数据。

        校验和:校验整个UDP报文。

每个socket在创建时必须指定协议类型(TCP或UDP),并绑定到特定端口。

因此,一个套接字不能同时监听TCP/UDP相同端口。

一个主机可以创建两个socket,分别监听TCP和UDP的相同端口号,表示两种不同服务。

10.3 UDP校验和

UDP校验和:校验范围覆盖UDP头部、UDP数据,伪头部。

伪头部(pseudo-header):

        计算UDP校验和时,根据IP头信息生成的虚拟头部。

        伪头部格式通常包括:

                源IP、目标IP、协议类型(UDP),UDP数据报总长等。

        作用:提供更多信息,确保校验更精确。

伪头部细节如下图:

NAT会改变报文IP和端口,所以经过NAT后需要重新校验和。

IPv4头中也有校验和,但只校验IPv4头内容,不包括IP载荷。

        在每跳都要重新计算,因为TTL字段值减小。

小结:

        IPv4头的校验和字段:只校验IPv4头内容。

        传输层TCP/UDP头的校验和字段:校验范围不仅包含传输层头,还有载荷。

10.4 例子

10.5 UDP 和 IPv6

IPv6中TCP/UDP都需要伪头部来计算校验和。

Teredo隧道:

        IPv6数据被封装成IPv4 UDP数据报后,发给Teredo中继,中继解封装后把IPv6报文转发给主机。

Teredo和GRE对比:

        通用性:

                GRE更通用,可封装任何类型数据包。

                Teredo只用于IPv4 UDP封装IPv6数据。

        实现方式:

                GRE:不需要服务器或中继。

                Teredo:需要服务器和中继。

10.6 UDP-Lite

UDP:校验是可选的,要么校验整个UDP报文,要么不校验。

UDP-Lite:对UDP数据一部分校验,而不是整个数据报校验。

        所以未校验部分,容忍比特差错。

UDP-Lite:有单独的IPv4协议和IPv6协议号。算是一种新的传输层协议。

所以UDP- Lite有一个校验和覆盖范围字段,表示需要校验哪部分数据。

        最小值为8,即只

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山下小童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值