展望2011

TCP/IP协议学习之实例ping命令学习笔记(五)

上一篇 / 下一篇  2007-08-08 15:58:54 / 个人分类:TCP/IP协议详解卷1的学习记录

51Testing软件测试网J}&_X7L G3J4X6U

 51Testing软件测试网;G)aQ*X c9lcaO)};h

51Testing软件测试网 h7fWtt

前文请看:TCP/IP协议学习之实例ping命令学习笔记(四)51Testing软件测试网6R~ lj%~'t5R4p9w

1q a8N!Q9u7`'Yb1H;G,V0Q:IP首部的报文格式是什么?51Testing软件测试网1f9u.m*{3o%o9O
A:IP数据报文如下图所示:
N/qGIh u5xc%A,L0 
-A&zkbn,I0其中的数据字段就是ICMP数据报文。前20个字节是IP首部。和前面所提到过的IP数据报文是一致的。
%gv:J3?4CZ m'R0版本:目前的协议版本号是4,因此I P有时也称作IPv4。51Testing软件测试网o#}!}"Lj6?BM;P
首部长度:指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为6 0个字节。普通I P数据报(没有任何选择项)字段的值是5(从图中可看出首部一共5行)。
'nf3xnB/v0服务类型(TOS):包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TO S子字段和1 bit未用位但必须置0。4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。在书中的图3 - 2列出了对不同应用建议的TO S值,具体可以查阅,在本实例中,ICMP查询对应的TOS值是0000,属于一般服务。51Testing软件测试网/o+ma$GlI{M0y
总长度(字节数):指整个I P数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道I P数据报中数据内容的起始位置和长度。51Testing软件测试网\ahx:H3w+N
标识:唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。(该字段和数据报的分片有关,这里暂时不展开)51Testing软件测试网.f"A{%Nj
标志:(同样,和数据报的分片有关,这里暂时不介绍)51Testing软件测试网WZW^zK*B"U
片偏移:(同样,和数据报的分片有关,这里暂时不介绍)
rz-Mwml4v T$a0
生存时间(TTL):设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。T T L的初始值由源主机设置(通常为3 2或6 4),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送I C M P报文通知源主机。
3v&I5u!N C#S0协议:被I P层用来对数据报进行分用,根据这个字段可以识别是哪个协议向I P传送数据。本实例中,是ICMP协议。
o4O*x+l0t6_a1o0首部检验和:是根据I P首部计算的检验和码。它不对首部后面的数据进行计算。也就是说,在本实例中,不包含ICMP报文的检验,因为ICMP报文有自己的检验和字段。
*|,pS&iy*m0源IP地址:本机或远程机的IP地址。51Testing软件测试网3@!n/E(_Vf:I:U'RR
目的IP地址:本机或远程机的IP地址。51Testing软件测试网8M:k[I)szB
选项(如果有):是数据报中的一个可变长的可选信息。这些选项很少被使用,并非所有的主机和路由器都支持这些选项。在本实例中,IP数据报文是没有该字段的。51Testing软件测试网.H~"](C&j-N\*N
在Ethereal中捕捉的第一个ICMP请求的IP数据报首部如下图所示:51Testing软件测试网(w i*vE:q~B,os/N
51Testing软件测试网a9h#u G6_s
和上面所说的IP首部进行比较:51Testing软件测试网"z*N(K*q&j+?8i?1M
版本=4,首部长度=20(这里的单位是字节,和书中说的单位是32bit不一致,5个32bit是等于20个字节,但为什么不一样?待解决),服务类型=00,总长度=60,标识=3b7c(和后面的来回7个首部比较该字段,每个都不相同),标志=00,片偏移=0,TTL=128(应该是默认值,后面3个请求的该字段都是128,但应答包的该字段不一样,是255),协议=ICMP(01),首部检验和=ea76,源IP地址=10.13.0.5(本机IP),目的IP地址=10.13.0.5(远程机IP),无选项。51Testing软件测试网VxZm?7_:B u
在Ethereal中捕捉的第一个ICMP应答的IP数据报首部如下图所示:
pc2G;M7rKWL051Testing软件测试网_1aD.?jw)H
和上面所说的IP首部进行比较:
T5qj9hM0版本=4,首部长度=20,服务类型=00,总长度=60,标识=6105,标志=04(注意,和请求的IP数据报中的不一样),片偏移=0,TTL=255,协议=ICMP(01),首部检验和=05ed,源IP地址=10.13.0.5(远程IP),目的IP地址=10.13.0.176(本机IP),无选项。
5y7A:k2S!GTk0本实例中,请求和应答的IP数据报基本相似,在IP首部并不区别是ICMP请求还是ICMP应答。51Testing软件测试网|umDZw)Ch'R+?

51Testing软件测试网/jbL8J|L+Szb

Q:什么是数据报分用?51Testing软件测试网+acp L:~? x+z
A:当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demult iplexing),书中的图1-8显示了该过程是如何发生的。具体请查阅该章内容。在我另一篇学习日志中也有这张图片。

/nev ?z K0~051Testing软件测试网x9u6V{,L,q5H

下文请看:TCP/IP协议学习之实例ping命令学习笔记(六)51Testing软件测试网r$m |@"E]r4Ysu*`k


TAG:

 

评分:0

我来说两句

Open Toolbar