[计算机网络笔记]第四部分——网络层 IPv4报文结构

IPv4

       IPv4报文结构

版本号

首部长度(单位:4字节)

服务类型

数据包长度

标识

留空

DF

MF标识

片偏移(单位:8字节)

TTL

上层协议号

首部校验和

IP地址

目标IP地址

可选选项

数据

       

一行32比特,各位所占比特基本按图上比例划分,详细请看接下来的说明

       报文结构说明:

  1. 版本号:4bit,指明报文的版本,IP4v就是4,事实上除了IPv4还有从110不等的版本
  2. 首部长度:4bit,指明报文首部的长度,因为IPv4首部是可变长度,所以需要这个结构,注意,首部长度的单位是4字节,也就是说首部只能是4字节的倍数,不够需要填充
  3. 服务类型:8bit,用于区别对待不同的IP,比如高实时或者高吞吐的需求
  4. 数据包长度:16bit,单位字节,计算包括首部在内报文长度
  5. 标识:16bit,用于特异标识一个报文,主要用途是与后面的DFMF片偏移一起用于分片
  6. 留空:1bit,暂时没有使用
  7. 分片:网络上的链路容量MTU(最大传输单元)不是相同的,极有可能存在两端MTU大,但是中间MTU减小的情况(网络的吞吐量就是受限于整个链路中最小容量的一段链路),这是,为了让报文还可以正常传输,需要对大报文进行分片。

分片时,DF标识位(1bitdon’t frame 不允许分片的标识位,如果一个报文不允许分片传输,可以通过将其置1来设置)置0MF标识位(1bitmore frame,说明本分片不是最后一片分片的标识位)置1,然后将报文拆成多个部分,每一个部分都新封装首部信息,其中首部的16bit标识相同,表明这些分片来自于同一个报文,各个分片的次序通过片偏移来表示,第一个分片的偏移是0,第二个偏移量是第一个分片数据部分(即不包含首部)字节数/8,如果第一个分片数据部分不能整除8的话,就减少到可以整除8为止。

为什么偏移量要/8

       因为偏移量很可能要表示与报文总长度一个量级的数字,然而报文总长占16bit,片偏移只有13bit,少3bit,即2^3=8

  1. TTL(存活时间):8bit,表示一个报文可以存活的跳数,防止网络中出现环路而产生的报文不停循环的问题,到达存活时间的跳数,报文会被丢弃
  2. 上层协议号:8bit,表示IP报文承载的上层,也就是传输层的协议号,其中6表示TCP1表示UDP
  3. 首部校验和:用法同TCPUDP的互联网校验和,但是只检验首部
  4. 源地址,目的地址:各32bit,就是IPv4的地址
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值