问答题 主机H通过快速以太网连接到某网络中,H与服务器S使用TCP通信时,在H上
捕获的其中2个IP分组如题47-a表所示:
题47-a表
编号 IP分组的前40字节内容(十六进制)
1 45 00 00 30 3a 66 40 00 80 06 34 58 c0 a8 05 5f c0 a8 05 5a
04 1a 00 15 6d 2a 1c 94 00 00 00 00 70 02 ff ff 69 28 00 00
2 45 00 00 30 1f 4d 40 00 80 06 4f 71 c0 a8 05 5a c0 a8 05 5f
00 15 04 1a 17 29 2f 2f 6d 2a 1c 95 70 12 ff ff 22 bf 00 00
请回答下列问题。 (1)题47-a表中的IP分组中,是应用层哪种协议?主机H和服务器的IP地址分别是多少? (2)假如第三条报文是题47-b表中报文,请问这是正确的么?如果有错误,请给出正确的报文字段填充和原因,注意不考虑校验和字段。
题47-b表
3 45 00 00 28 3a 67 40 00 80 06 34 5f c0 a8 05 5a c0 a8 05 5f
04 1a 00 15 6d 2a 1c 95 17 29 2f 2f 50 12 ff ff 4f 83 00 00
(3)第三条报文如果在网络中正确传输,需要填充的数据是多少?
注:IP分组头和TCP段头结构分别如题47-a图、题47-b图所示。

【正确答案】[解答] (1)题47-a表中的IP分组中,是应用层的FTP协议,主机H和服务器的IP地址分别是192.168.5.95和192.168.5.90。
(2)正确报文如下表所示题47-c表:
题47-c表
3 45 00 00 28 3a 67 40 00 80 06 34 5f c0 a8 05 5f c0 a8 05 5a
04 1a 00 15 6d 2a 1C 95 17 29 2f 30 50 10 ff ff 4f 83 00 00
(3)还必须填充8个字节。
【答案解析】[解析] 本题考查应用层,传输层和网络层的协议分析,该类题目从截获的十六进制数据出发,根据协议的工作原理,考查协议的语义特点,以及原理的深化,本题中第二题涉及对
数据纠错,是协议分析类题目的一个新方向。
问题一,如何从具体的数据包中得出应用层协议的类型呢?这一点要从传输层协议的端口号入手,不同的端口号标识了主机上的不同应用程序,进而通过端口所对应的IP地址,就可以分辨出源和目的所对应的客户端和服务器,针对这个题目,这里给出了两个报文所对应的协议树,见题47-c图和题47-d图,所需要字段的值很容易就可以得出,如果对分组格式清晰的话,也可以直接求出所需要的字段的数值进行判断。
问题二是对第三条报文正确的判断,这里从第一和二报文要分析出,这实际上是一个TCP三步握手的过程,第三条报文恰好是服务器反馈给客户端连接建立成功的报文,特点是,ACK序号要加1,源序号应该是报文二的ACK序号,ACK的标志位要设置为1,题目给出的报文可以看出,源和目的IP地址正好相反了,标志位设置错误,ACK序号没有加1。
问题三考查以太网最小数据帧长是48字节,目前IP和TCP包头分别占了20个字节,因此还必须填充8个字节。