2012年IP&TCP大题

【小回顾】IP分组中的数据部分即 TCP首部+ TCP的数据部分

题目】主机H通过快速以太网连接Internet,IP地址为192.169.0.8,服务器S的IP地址为211.68.71.80,H与S使用TCP通信时,在H上捕获的其中5个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

通过以太网传输时填充是因为【快速以太网数据帧最小长度为46B,即小于46B的需要“填补”】,根据IP分组的第一行“总长度”字段,从上往下的分组为30、30、28、38、28,其中第3、5个分组28H表明分组大小为40B【一种8片首饰,牢记

(2)根据表1中的IP分组,分析S已经收到的应用层数据字节数是多少?

【解析】key:考察通过确认段的序号来判断收到了多少,确认号-初始数据号=已经确认收到的字节数

由于三次握手的“第三次”就可以开始发送数据了,第三个分组中的初始序号为 84 6b 41 c6,而第五个分组的确认号为84 6b 41 d6,两个作差得到10H,即16B(注意这里不要联想到计组中的算两个地址之间容量大小的“后者-前者+1”,这里确认收到的字节数是不需要再+1的,因为确认k+1号,即代表前k号的已经全部收到了)

(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个路由器。

小结

可以看出408的大题是很喜欢一起考察各种综合知识点的,本题就涉及了IP&TCP报头(如ACK/SYN)、TCP三次握手、TTL的计算、IP数据报的分片、十六进制的减法以及【快速(高速)以太网数据帧的数据部分最小长度为46B,回顾:由CSMA/CD算法知道以太网帧的最短帧长为64B,而MAC帧的首部和尾部长度为18B,所以数据最短为46B】。

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/107235809