题目
4-22 一个数据报长度为 4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
4-22 一个数据报长度为 4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
题目解答
答案
解答:分片前数据部分长度: 4000-20=3980。分片后每片数据不能超过:1500-20=1480。由于1480正好能被8整除,因此每片数据最大长度为1480。 共分为 3个数据报片。数据字段长度分别为1480, 1480和1020字节。 片偏移字段的值分别为 0,185和370。MF字段的值分别为1, 1和0。
解析
步骤 1:计算数据报的数据部分长度
数据报的总长度为4000字节,其中固定首部长度为20字节。因此,数据部分长度为4000 - 20 = 3980字节。
步骤 2:计算每个数据报片的最大数据字段长度
网络能够传送的最大数据长度为1500字节,其中也包括20字节的固定首部长度。因此,每个数据报片的最大数据字段长度为1500 - 20 = 1480字节。
步骤 3:计算需要划分的数据报片数量
由于每个数据报片的数据字段长度为1480字节,因此需要划分的数据报片数量为3980 / 1480 = 2.6959,向上取整为3个数据报片。
步骤 4:计算每个数据报片的数据字段长度
第一个数据报片的数据字段长度为1480字节,第二个数据报片的数据字段长度也为1480字节,第三个数据报片的数据字段长度为3980 - 1480 - 1480 = 1020字节。
步骤 5:计算每个数据报片的片偏移字段值
片偏移字段值表示数据报片在原始数据报中的位置,以8字节为单位。第一个数据报片的片偏移字段值为0,第二个数据报片的片偏移字段值为1480 / 8 = 185,第三个数据报片的片偏移字段值为(1480 + 1480) / 8 = 370。
步骤 6:确定每个数据报片的MF标志值
MF标志表示是否还有更多的数据报片。第一个数据报片和第二个数据报片的MF标志值为1,表示还有更多的数据报片。第三个数据报片的MF标志值为0,表示没有更多的数据报片。
数据报的总长度为4000字节,其中固定首部长度为20字节。因此,数据部分长度为4000 - 20 = 3980字节。
步骤 2:计算每个数据报片的最大数据字段长度
网络能够传送的最大数据长度为1500字节,其中也包括20字节的固定首部长度。因此,每个数据报片的最大数据字段长度为1500 - 20 = 1480字节。
步骤 3:计算需要划分的数据报片数量
由于每个数据报片的数据字段长度为1480字节,因此需要划分的数据报片数量为3980 / 1480 = 2.6959,向上取整为3个数据报片。
步骤 4:计算每个数据报片的数据字段长度
第一个数据报片的数据字段长度为1480字节,第二个数据报片的数据字段长度也为1480字节,第三个数据报片的数据字段长度为3980 - 1480 - 1480 = 1020字节。
步骤 5:计算每个数据报片的片偏移字段值
片偏移字段值表示数据报片在原始数据报中的位置,以8字节为单位。第一个数据报片的片偏移字段值为0,第二个数据报片的片偏移字段值为1480 / 8 = 185,第三个数据报片的片偏移字段值为(1480 + 1480) / 8 = 370。
步骤 6:确定每个数据报片的MF标志值
MF标志表示是否还有更多的数据报片。第一个数据报片和第二个数据报片的MF标志值为1,表示还有更多的数据报片。第三个数据报片的MF标志值为0,表示没有更多的数据报片。