欢迎来到天天文库
浏览记录
ID:43091901
大小:58.55 KB
页数:3页
时间:2019-09-26
《TCPIP详解读书笔记(第七章Ping程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TCP/IP详解读书笔记(第七章Ping程序)Ping程序由MikeMuuss编写,目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。Pin呂程序我们称发送回显请求的Ping程序为客户,而称被Ping的主机为服务器。大多数的TCP/IP实现都在内核中直接支持Ping服务器,这种服务器不是一个用户进程。ICMP回显请求和回显应答报文如图1所不。类型(0或8)代码(0)检验和标识符序号78151631选项数据8字节图1:TCMP冋显请求和冋显应答报文格式Un
2、ix系统在实现ping程序吋是把TCMP报文中的标识符字段置成发送进程的ID号。这样即使在同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回的信息。序列号从0开始,每发送一次新的回显请求就加1。ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。1P是一种最好的数据报传递服务,因此这三个条件都有可能发生。IP记录路由选项ping程序为我们提供了查看IP记录路由(RR)选项的机会。大多数不同版本的ping程序都提供・R选项,以提供记录路由的功能。它使得pin
3、g程序在发送岀去的TP数据报中设置TPRR选项(该IP数据报包含ICMP冋显请求报文)。这样,每个处理该数据报的路由器都把它的IP地址放入选项字段中。当数据报到达目的端时,IP地址清单应该复制到ICMP回显应答中,这样返回途中所经过的路由器地址也被加入清单中。当ping程序收到回显应答时,它就打印出这份1P地址清单。最大的问题是IP首部中只有有限的空间来存放IP地址。IP首部中的首部长度字段只有4bit,因此整个IP首部最长只能包括15(4bit全为1,8+4+2+1二15)个32bit长的字(即60个字节
4、)。由于IP首部固定长度为20字节(参加第三章的TP首部格式),RR选项用去3个字节,这样只剩下37个字节(60-20-3)来存放TP地址清单,也就是说只能存放9(4X9)个TP地址。TP数据报中的RR选项的一般格式如图2所示。30字节codelenptrIPaddr#1IPaddr#2IPaddr#3IPaddr#9•-•I]Ij4?节£4字节
5、
6、
7、ptr=4ptr=8ptr=12ptr=36ptr=4O图2:TP首部中的记录路由选项的一般格式code是一个字节,指明TP选项的类型。对于RR选项来说,它的
8、值为7。len是RR选项总字节长度,在这种情况下为39(尽管可以为RR选项设置比最大长度小的长度,但是ping程序总是提供39字节的选项字段,最多可以记录9个IP地址。由于IP首部中留给选项的空间有限,它一般情况都设置成最大长度)。Ptr称作指针字段。它是一个基于1的指针,指向存放下一个1P地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,ptr的值分别为8,12,16,最大到36。当记录下9个TP地址后,ptr的值为40,表示清单己满。IP时间戳选项1P时间戳选项与记录路
9、由选项类似。1P时间戳选项的格式如图3所示。40字节codelenptr門FL时间戳粗时间戡*2时间戳#3・・・时间戡杓1114字节俘节俘节"4字节图3:1P首部中时间戳选项的一般格式时间戳选项的代码为0x44o其他两个字段len和ptr与记录路由选项相同:选项的总长度(一般为36或40)和指向下一个可用空间的指针(5,9,13等)。接下來的两个字段是4bit的值:0F表示溢出字段,FL表示标志字段。
此文档下载收益归作者所有