TCP/IP协议详解卷一:Chapter7 笔记
Chapter 7 Ping程序
Ping = Packet Internet Groper = 因特网包探索器
Ping是对两个TCP/IP系统进行连通性测试的基本工具。
Ping程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
Ping不用经过TCP/UDP传输层。
Ping服务器一般在内核中实现ICMP的功能。
7.2节 Ping程序
ICMP回显请求报文 = 8位类型(=8)+ 8位代码(=0)+ 16位检验和 + 16位标识符 + 16位序号 + 选项数据
ICMP回显应答报文 = 8位类型(=0)+ 8位代码(=0)+ 16位检验和 + 16位标识符 + 16位序号 + 选项数据
其中:
对Unix系统而言,标识符 = 发送进程的ID号;
序号字段随回显请求发送次数递增,用于检查是否有分组丢失、失序或重复。
Ping程序默认发送的ICMP报文有56个字节(bytes),加上20个字节的IP首部、8个字节的ICMP首部,IP数据报的总长度为84字节。如果是通过SLIP链接传输,还需要加上2字节首尾END字符和若干转义字符。
SLIP链路多采用异步传输,每个字节加入1bit起始位和1bit结束位,因此对于传输速率为1200b/s的SLIP链路,实际的传输速率为 1200 / (8+2) = 120B/s,即8.33ms/byte。因此往返时间约等于 86 b y t e s ∗ 8.33 m s / b y t e ∗ 2 = 1433 m s 86 bytes * 8.33ms/byte * 2 = 1433ms 86bytes∗8.33ms/byte∗2=1433ms与上图中的1480ms大致相等。
WAN = Wide Area Network = 广域网
调制解调器 Modem = 调制器 Modulator + 解调器 Demodulator
调制解调器能把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,而这些模拟信号又可被线路另一端的另一个调制解调器接收,并译成计算机可懂的语言。
7.3节 IP记录路由选项
大多数不同版本的Ping程序都提供 -R 选项,以提供记录路由的功能。Ping程序在发送出去的IP数据报中设置RR选项,使得每个处理该数据报的路由器都把自己的IP地址放入选项字段中。IMCP回显应答中,返回路径上的路由器IP地址也被加入到该IP地址清单中。
由于IP首部最长为60字节,包括20字节IP首部和3字节RR选项,因此最多只有37字节可用于存放IP地址清单。

IP首部中的RR选项格式:
1字节code + 1字节len + 1字节ptr + 4字节IP地址#1 + … + 4字节IP地址#9
对于RR选项而言,code = 7, len = 39。指针ptr指向存放下一个IP地址的位置(ptr = 4, 8, 12, …, 40)。
IP清单中记录的是路由器的出口IP地址、以及原始主机(运行Ping程序的主机)收到ICMP回显应答时的入口IP地址。
一个例子(在主机svr4上运行ping程序到主机slip)

RR选项中依次记录的IP地址清单为140.252.13.66、140.252.13.65、140.252.13.35、140.252.13.34。
7.4节 IP时间戳选项
IP时间戳选项与记录路由选项基本类似。具体格式如下:
1字节code + 1字节len + 1字节ptr + 4位OF字段 + 4位FL字段 + 4字节时间戳#1 + … + 4字节时间戳#9
时间戳选项的代码code = 0x44。len和ptr字段与记录路由选项类似。长度len一般为36或40。ptr依次为5, 9, 13等。
OF代表溢出字段。如果路由器没有空间来增加时间戳选项,溢出字段的值就会增加。
FL是标志字段(可取值 0, 1, 3)。其不同取值对应的操作如下:

本文深入解析了TCP/IP协议中的Ping程序,详细介绍了ICMP回显请求与应答报文的结构,以及Ping程序如何利用这些报文进行连通性测试。此外,还探讨了IP记录路由选项和时间戳选项的使用,以及它们如何帮助网络管理员了解数据包在网络中的路径和传输时间。
893

被折叠的 条评论
为什么被折叠?



