《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,即只

编辑推荐 本书是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1,主要讲述TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。 内容简介  《TCP/IP详解1:协议》是本完整而详细的TCP/IP协议指南。描述了属于每层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材教师参考书。也适用于研究网络的技术人员。 作者简介 W.Richard Stevens(1951-1999)是位非常受人尊敬的专家,除了《TCP/IP详解》三本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》《UNIX网络编程》(两本)。 目录 译者序 前言 第1 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2 链路层 15 2.1 引言 15 2.2 以太网IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4 ARP:地址解析协议 38 4.1 引言 38 4.2 个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute程序示例 78 8.5.2 严格的源站选路的traceroute程序示例
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

山下小童

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

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

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

打赏作者

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

抵扣说明:

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

余额充值