参考答案:
【问题1】
(1)路由器收到一个长度1520字节的IP数据报,如果该数据报DF=1,路由器直接丢弃
(2)第一个分片:1500字节。MF=1,Offset=0;第二个分片:40字节。MF=0,Offset=185。
(3)目的主机。
(4)identification是标识字段,相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
【问题2】
(1)减少了需要检查和处理的字段的数量,提高选路效率。
(2)其中Identification,Fragment Offset,Header Checksum没有等价的字段。
【问题3】
(1)SYN:该字段长度为1位。同步标志,SYN为1时,表示一个连接请求或连接接受。
FIN:该字段长度为1位。释放连接标志,FIN为1时,表明发送端的数据发送完毕,要求释放连接。
(2)Windows Size窗口字段。
(3)确认号字段(Acknowledgment Number)标识。
详细解析:
【问题1】(1)DF属于IP数据报中的标志 (Flag)位,其中标志位占3位,目前只有2位有效。
标志字段中的最低位记为MF,MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为 DF,意思是“不能分片”。只有当 DF=0时才允许分片。
如果该数据报DF=1,说明该数据报不能分片。注意:在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。以太网的最大MTU值为1500字节。所以路由器收到一个长度1520字节的IP数据报,如果该数据报DF=1,路由器直接丢弃。
(2)DF=0的时候,表示允许分片。长度1520字节的IP数据报,其中首部20字节+1500字节的数据部分。分片的按照第1个分片尽量大结果就是:
第一个分片:1500字节。其中20字节的首部,1480的数据部分,MF=1,表示还有分片,Offset字段表示片偏移,表示较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。第一个分片的片偏移字段为0。
第二个分片:40字节。其中20字节的首部,20的数据部分,MF=0,表示后面没有分片,片偏移字段是1480/8=185。
(3)这两个IP报文分片在目的主机被重新组装回拆分之前的IP数据报的状态。
(4)identification是标识字段。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
【问题2】
(1)IPv6的包头共有8个字段,总长为40字节;而IPv4的包头则包含至少12个字段,长度在没有选项时为20字节,有选项时达60字节。IPv6采用固定格式的包头减少了需要检查和处理的字段的数量,提高选路效率。
(2)在IPv4数据报格式中,Total Length表示为数据报长度,Identification表示标识字段,Fragment Offset表示片偏移字段,Time to Live表示生存时间,Header Checksum表示首部校验和。其中IPv6中Payload Length等价于Total Length。Hop Limit等价于Time to Live。其中Identification,Fragment Offset,Header Checksum没有等价的字段。
【问题3】
(1)TCP报文包含TCP报头和TCP数据两部分,TCP报文格式中:
SYN:该字段长度为1位。同步标志,SYN为1时,表示一个连接请求或连接接受。
FIN:该字段长度为1位。释放连接标志,FIN为1时,表明发送端的数据发送完毕,要求释放连接。
(2)Windows Size窗口字段:该字段长度为2字节。用来进行流量控制,单位为字节,这个值是本端期望一次接收的字节数,并通知对方。
(3)TCP使用32位的确认号字段(Acknowledgment Number)标识期望收到的下一个字段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。