计算机网络第六章网络层例题分析第二篇

5.2 IPv4协议的基本内容

例7 如果一个路由器收到一个IP分组的前8位是01000010,路由器丢弃了该分组,为什么?

分析:设计这个例题的目的是加深读者对IPv4报头结构和各个字段的理解。

(1)IPv4报头的结构如图所示。

计算机网络第六章网络层例题分析第二篇_第1张图片

(2)本题讨论的是前8位,即版本与报头长度。版本与报头长度字段均为4位。版本字段值为4,表示是IPv4协议;报头长度字段值是定义了以4字节为单位的报头长度。

答案:路由器接收到一个IP分组的前8位是01000010。

(1)第一个4位是0100,转换成十进制数为4,表示IPv4协议,没有错误。

(2)第二个4位是0010,转换为十进制数为2,表示报头长度为8(4×2)个字节,而IPv4的固定报头就是20个字节,因此该字段出现错误,应该丢弃。

例8 一个分组报头中报头长度(HLEN)字段值为5_{16}(十六进制),而总长度字段值为28_{16}。请问:该分组携带了多少个字节的数据?

分析:设计该例题的目的是检查读者对IPv4报头两个长度字段意义的理解。注意两个长度字段值定义的不同。

解:

(1)HLEN=5_{16},表示报头长度为4×5=20字节,等于IPv4固定报头的长度,表示没有报头选项。

(2)总长度字段值为28_{16},用十进制数表示为40。总长度字段值表示以字节为单位的分组长度,这点与报头长度(HLEN)字段值的意义不同。因此,该分组的数据长度等于40-20=20(字节)。

答案:该分组携带了20字节的数据。

例9 如果到达的分组的M位是1,分片的偏移值为0。这是第一个分片,还是最后一个分片,或者是中间的分片?

分析:设计该例题的目的是加深读者对于分组头中的标志(flag)字段与片偏移字段意义的理解。

解:到达的分组的M=1,表示该分组已经被分片。分片的偏移值为0,表示这个分片是第一个分片。

答案:第一个分片

例10 假设一个IP分组头部长度为20B,数据字段长度为2000B。分组从源主机到目的主机要经过2个网络。这两个网络允许通过的最大传输单元分别是1500B和576B。请问:该IP分组通过两个网络时,需要如何进行分片?

分析:设计该例题的目的是加深读者对IP分组在传输过程中分片的概念与方法的理解。

解:已知:IP分组头部长度为20B,数据字段长度为2000B。由于分组总长度都超过了两个网络的最大传输单元值,因此必须要分片。在分片过程中需要在每个分片的头部保留分组头部20B。

(1)经过第一个MTU = 1500B的网络,需要分为两个片。

P1 = 1480B + 20B =1500B

P2 = (2000B - 1480B) + 20B = 540B

(2)经过第二个MTU = 576B的网络,P1需要继续分片。

P1 - 1 = 556B + 20B = 576B

P1 - 2 = 556B + 20B = 576B

P1 - 3 = (1480 - 556 - 556)B + 20B = 388B

P2 = 540B < 576B,不需要分片。

答案:

(1)经过第一个网络时分为2个片,长度分别为:1500B、540B等

(2)经过第二个网络时分为4个片,长度分别为:576B、576B、与368B、540B

例11 用二进制方法计算如图所示的IP分组头部校验和。

计算机网络第六章网络层例题分析第二篇_第2张图片

 

分析:设计本例题的目的是加深读者对于校验和的作用与计算方法的理解。

(1)大多数TCP/IP都是采用校验和的方法来进行差错检验。IP分组头的头校验和的设置是为了保证分组头部的数据完整性。

(2)IP分组在分组头设置了头校验和,而没有对整个分组设置校验,其原因主要有两点:一是IP分组头之外的部分属于高层数据进行校验。二是IP分组头每经过一个路由器都要改变一次,但数据部分并不改变。在分组头中设置头校验和,只对变化部分进行校验是合理的。如果对整个分组进行校验,那么每次都需要对整个分组进行计算,势必要花费路由器大量的时间,使系统性能大大降低。

(3)计算校验和时首先是将分组头中“校验和”字段值置0,然后将整个分组头按16位进行划分,将各段相加之和取反得校验和。发送分组时,将校验和插入分组头的“校验和”字段中。

解:校验和计算过程如图所示。

计算机网络第六章网络层例题分析第二篇_第3张图片

这个例子中没有涉及高位溢出的情况。

答案:校验和为10001011 10110001

你可能感兴趣的:(计算机网络)