前言
这道大题是我们的任课教师zfj老师在考前一节课讲解的例题(虽然最后考试并没有考任何擦边的题,详情见我的上一篇计网复习个人整理的博客),是十多年前一道考研题,但是正所谓经典咏流传,作为期末复习的参考,依旧非常典型。
如果你真正搞懂这道题,真的会有一种茅塞顿悟的感觉,会发现全部知识点都可以串联起来。请一定要耐下性子好好掌握每一小问。
六、主机H通过以太网连接Internet,IP地址为192.168.0.8,服务器S的IP地址为211.68.71.80。 H与S使用TCP通信时,在H上捕获的其中5个IP分组如表6-1所示。(20分)
题6-1表
编号 | IP分组的前40字节内容(十六进制) |
1 | 45 00 00 30 01 9b 40 00 80 06 1d e8 c0 a8 00 08 d3 44 47 50 0b d9 13 88 84 6b 41 c5 00 00 00 00 70 02 43 80 5d b0 00 00 |
2 | 45 00 00 30 00 00 40 00 31 06 6e 83 d3 44 47 50 c0 a8 00 08 13 88 0b d9 e0 59 9f ef 84 6d 41 c6 70 12 16 d0 37 e1 00 00 |
3 | 45 00 00 28 01 9c 40 00 80 06 1d ef c0 a8 00 08 d3 44 47 50 0b d9 13 88 84 6b 41 c6 e0 59 9f f0 50 10 43 80 2b 32 00 00 |
4 | 45 00 00 38 01 9d 40 00 80 06 1d de c0 a8 00 08 d3 44 47 50 0b d9 13 88 84 6b 41 c6 e0 59 9f f0 50 18 43 80 c6 55 00 00 |
5 | 45 00 00 28 68 11 40 00 31 06 06 7a d3 44 47 50 c0 a8 00 08 13 88 0b d9 e0 59 9f f0 84 6b 41 d6 50 10 16 d0 57 d2 00 00 |
题6-2表
S发出的 IP分组 | 45 00 00 28 68 11 40 00 40 06 ec ad d3 44 47 50 ca 76 01 06 13 88 a1 08 e0 59 9f f0 84 6b 41 d6 50 10 16 d0 b7 d6 00 00 |
运用所学传输层、网络层以及数据链路层知识,回答下列问题。
- 题6-1表中的IP分组中,哪几个是由H发送的?哪几个完成了TCP连接建立过程?哪几个在以太网传输时进行了填充?
- 根据6-1表中的IP分组,分析S已经收到的应用层数据字节数是多少?
- 若6-1表中的某个IP分组在S发出时的前40字节如题6-2表所示,则该IP分组到达H时经过了多少路由器?
题目给出IP分组的前40byte,第一行是IP报头,第二行是TCP报头。
1、每个分组的第4个4byte表示IP源IP地址,第5个4byte表示目标IP地址。c0 a8 00 08和 d3 44 47 50转成十进制分别就是192.168.0.8和211.68.71.80,据此可以得出第1、3、4是H发送的,第2、5是S发送的。
2、根据TCP报头中的SYN位和ACK位是否置1可以判断TCP连接的建立过程。SYN位和ACK位分别位于每个TCP报头的第4个4byte的第11bit和第14bit。由此可以判断第1个分组是H发出的SYN,第二个是S响应的SYN+ACK,第三个分组是H响应的ACK,此时完成三次握手。由序号字段还可以得出第四个分组时H向S发送数据,第5个分组是S对H的确认。
3、以太网帧的数据部分长度范围为46~1500字节,总长度小于46字节的IP分组在二层封装时需要填充。即第3、第5个分组要进行填充。
4、TCP传输中,序号初始化由系统算法确定,在传输过程中,每传输一个字节,序号加一。由分组4的序号84 6b 41 c6和分组5的确认号84 6b 41 d6之差0x10,得出收到应用层数据字节数是16。
5、由TTL可判断经过多少个路由器。题47-b表中,表示TTL的字段是0x40,十进制即64,47-a表中,S收到H分组的TTL是0x31,十进制49,即经过路由器数量为64-49=15个。