【计算机网络】网络层——IP数据报与分片

TCP/IP协议栈

image-20240314221151636

IP数据报格式

image-20240314221246861

数据报如果过大,那就分片!!!!

首部的格式

image-20240314221302688

  • 版本:IPv4、IPv6
  • 首部
    • 长度:4位比特,可以表示16个十进制数 0-15(横坐标)。但是单位是4B(纵坐标),所以要乘4,最后得60B,即首部最大可以达到60B。然而固定部分只有20B,所以可变部分还剩下40B。
    • 不能是四个0,因为固定部分至少是20字节(Byte),所以至少从20/4=5开始。即0101
    • 当首部长度不是4字节的整数倍时,填充字段,用于将首部填充成4字节的整数倍
    • 首部长度一定是4字节的整数倍。
    • 数据部分一定会在四字节的整数倍开始
  • 区分服务:指示期望获得哪种类型的服务
  • 总长度:首部+数据的长度,16位比特,最大长度为65535 单位是1B
  • 标识标志片偏移:下节课
  • 生存时间(TTL) : IP分组的保质期。经过一个路由器-1,变成0则丢弃。防止数据报一直跑
  • 8位比特,是数据部分使用的协议。

image-20240314222816185

  • 首部检验和:只检验首部,不检验数据,每经过一个路由器都要检查
  • 源地址、目的地址:32位
  • 可选字段0~40B:用来支持排错,测量以及安全措施
  • 填充:全写0,为了把首部补成4的整数倍,以便首部长度部分可以正确表示

IP数据报分片

最大传送单元MTU

链路层数据帧可封装数据的上限。(图中数据部分)

以太网是1500字节

image-20240314223313511

要结合首部中标识,标志,片偏移

标识

同一数据报,分片后必须使用同一标识。

标志

虽然有3位字节,但是只有2位有意义。x_ _ ,最高位不允许使用

中间位DF (Don't Fragment) DF=1,禁止分片; DF=0,允许分片

最低位MF (More Fragment) : MF=0,代表最后一片/没分片 MF=1,后面“还有分片”,可以继续分

只有DF=0,MF才有意义。

片偏移

片偏移:指出较长分组分片后某片在原分组中的相对位置。以8B位单位。

除了最后一个分片,每个分片长度一定是8B的整数倍。

此处若要算“片偏移”,就算切割位置的字节数,除以8,即得片偏移。

例题

image-20240314223813154

分:每次切割1400,加上首部20,总长1420image-20240314223912777

报片1:从0到1399字节。 片偏移=0/8 = 0

报片2:从1400-2799字节,片偏移=1400/8 = 175

报片3:从2800字节-3799字节,片偏移 = 2800/8 =350

关注一下:长度。MF。 DF。 片偏移

image-20240314224125005

image-20240314224316653

posted @   晓梦ペ  阅读(795)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示