"应用程序产生了1个IP报文,报文总长度x(首部长度固定为20字节),已知链路层MTU为1500,所以需要将IP分片,已知分成了4片,每个分片的首部长度都是固定的20字节,IP分片的部分信息如下: 长 度 标 识 mf df 片偏移 分片0 1324 82674 1 填空 0 分片1 812 82674 1 0 填空 分片2 276 82674 填空 0 262 分片3 1100 82674 0 0 填空 x= 3452"
时间: 2024-02-10 18:22:18 浏览: 20
根据题目中给出的信息,我们可以列出以下表格:
| 分片编号 | 首部长度 | 长度 | 标识 | MF | DF | 片偏移 |
| :------: | :------: | :--: | :--: | :-: | :-: | :----: |
| 0 | 20 | 1324 | 82674 | 1 | 0 | 0 |
| 1 | 20 | 812 | 82674 | 1 | 0 | 填空 |
| 2 | 20 | 276 | 82674 | 填空 | 0 | 262 |
| 3 | 20 | 1100 | 82674 | 0 | 0 | 填空 |
其中,x=3452 表示报文总长度为 3452 字节。又因为首部长度固定为 20 字节,所以数据部分的长度为 3432 字节(3452-20=3432)。
我们可以根据 MTU 和数据部分的长度来计算每个分片的长度。由于每个分片的首部长度都是固定的 20 字节,所以可以先计算出数据部分的总长度(3432-20=3412),然后将其分成 4 份。根据题目中给出的信息,可以得到:
- 分片 0 的长度为 1500 字节。
- 分片 1 的长度为 812 字节,因为 1500-20=1480,所以剩余数据部分的长度为 3412-1480=1932,而 1932 大于 812,所以分片 1 的长度为 812。
- 分片 2 的长度为 828 字节,因为 1500-20=1480,所以剩余数据部分的长度为 3412-1480*2=452,而 452 小于 828,所以分片 2 的长度为 452+20=472。
- 分片 3 的长度为 1100 字节,因为剩余数据部分的长度为 3412-1480*3=472,而 472 小于 1100,所以分片 3 的长度为 472+20+1100=1592。
接下来,我们来填空:
- 分片 1 的 MF 为 0,表示这是最后一个分片,不再有后续分片。
- 分片 2 的标识为 82675,因为前面已经使用了标识号 82674,所以需要使用另外一个标识号。
- 分片 3 的片偏移为 1480*2=2960,因为前面已经使用了 1480 的偏移量,所以这里需要使用 1480*2=2960 的偏移量。
因此,IP 分片的信息如下:
| 分片编号 | 首部长度 | 长度 | 标识 | MF | DF | 片偏移 |
| :------: | :------: | :--: | :--: | :-: | :-: | :----: |
| 0 | 20 | 1500 | 82674 | 1 | 0 | 0 |
| 1 | 20 | 812 | 82674 | 0 | 0 | 1500 |
| 2 | 20 | 472 | 82675 | 1 | 0 | 2960 |
| 3 | 20 | 1592 | 82674 | 0 | 0 | 4440 |