2012年IP&TCP大题
【小回顾】IP分组中的数据部分即 TCP首部+ TCP的数据部分。
【题目】主机H通过快速以太网连接Internet,IP地址为192.168.0.8,服务器S的IP地址为211.68.71.80,H与S使用TCP通信时,在H上捕获的其中5个IP分组如下表所示:
【读题】每个IP分组的第2数字为“5”——代表每个报文段长度为20B(即第一大行为IP分组的固定首部,没有可选项)。
(1)表1中的IP分组中,那几个是由H发送的?哪几个完成了TCP连接建立过程?那几个在通过以太网传输时进行了填充?
【解析】根据H主机的IP地址是192.169.0.8,对应的十六进制是c0 a8 00 08,根据IP分组的“第四行”即源IP地址知道分组1、3和4是H发送的。
TCP的建立需要三次握手,所以要找满足【(1)SYN=1;(2)SYN=ACK=1(3)ACK=1的报文段,另外第一个和第三个的序列号要紧挨着】。满足条件的即是前三个分组(注意第一个分组的序号为84 6b 41 c5,第三个分组的序号为84 6b 41 c6,两者相差1)
通过以太网传输时填充是因为【快速以太网数据帧的data最小长度为46B,即IP分组(data+IP首部的总和min=46B)即小于46B的需要“填补”】,根据IP分组的第一行“总长度”字段(分组中的第二字节),从上往下的分组为00 30H、00 30H、00 28H、00 38H、00 28H,第1、2、4个分组大小分别为48B、48B、52B(均大于最小帧长46B),其中第3、5个分组28H表明分组大小为40B【一种8片首饰,牢记】——指分片的数据长度必须是8B的整数倍。
(2)根据表1中的IP分组,分析S已经收到的应用层数据字节数是多少?
【解析】key:考察通过确认段的序号来判断收到了多少,确认号-初始数据号=已经确认收到的字节数。
由于三次握手的“第三次”就可以开始发送数据了,第三个分组中的初始序号为 84 6b 41 c6,而第五个分组的确认号为84 6b 41 d6,两个作差得到10H,即16B(注意这里不要联想到计组中的算两个地址之间容量大小的“后者-前者+1”,这里确认收到的字节数是不需要再+1的,因为确认k+1号,即代表前k号的已经全部收到了)
【注意】这里,确认号是服务器S的确认号;初始号是主机H的初始号。
(3)若表1中的某个IP分组在S发出时的前40B如表二所示,则该IP分组到达H时经过了多少个路由器?
【解析】key:经过多少个路由器是要看TTL的。由于S发出的IP分组的标识为6811H(第5个的5,6个字节)【分组的标识字段用来分辨2个不同的IP分组在分片之前是否是同一个IP分组】所以表2中的分组和表一中的第5个分组是“兄弟(同一数据报)”,S发出的IP分组的TTL=40H,而表1的第5个IP分组的TTL是31H,40H-31H(注意这里的计算结果并不是9H,而是要先转成十进制后减法运算),即64-49=15,因此可以判断该IP分组到达H时经过了15个路由器。
【注意】这问给的前40B是指【S发出时】的IP分组,而表1中的第五个IP分组是【S发送的且到达H主机的IP分组】(同一个);
该IP分组对应表1中的5号分组。
小结
可以看出408的大题是很喜欢一起考察各种综合知识点的,本题就涉及了IP&TCP报头(如ACK/SYN)、TCP三次握手、TTL的计算、IP数据报的分片、十六进制的减法以及【快速(高速)以太网数据帧的数据部分最小长度为46B,回顾:由CSMA/CD算法知道以太网帧的最短帧长为64B,而MAC帧的首部和尾部长度为18B,所以数据最短为46B】。
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/107235809
- 点赞
- 收藏
- 关注作者
评论(0)