ip包头字段详解

Version:版本号     长度4比特。标识目前采用的IP协议的版本号。一般的值为0100(IPv4),0110(IPv6)

Header Length:IP包头长度       4比特。这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。IP包头最小长度为20字节。

Type of service:服务类型

长度8比特。8位 按位被如下定义 PPP DTRC0
PPP:定义包的优先级,取值越大数据越重要
   000 普通 (Routine)
   001 优先的 (Priority)
   010 立即的发送 (Immediate)
   011 闪电式的 (Flash)
   100 比闪电还闪电式的 (Flash Override)
   101 CRI/TIC/ECP(找不到这个词的翻译)
   110 网间控制 (Internetwork Control)
   111 网络控制 (Network Control)

D 时延: 0:普通 1:延迟尽量小
T 吞吐量: 0:普通 1:流量尽量大
R 可靠性: 0:普通 1:可靠性尽量大
M 传输成本: 0:普通 1:成本尽量小
0 最后一位被保留,恒定为0

Total Length:IP包总长

长度16比特。 以字节为单位计算的IP包的长度 (包括头部和数据),所以IP包最大长度65535字节。

Identifier:标识符

长度16比特。该字段和Flags和Fragment Offest字段联合使用,对较大的上层数据包进行分段(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

Flags:标记

长度3比特。该字段第一位不使用。第二位是DF(Don't Fragment)位,DF位设为1时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。第三位是MF(More Fragments)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP包的包头中将MF位设为1。

Fragment Offset:片偏移

长度13比特。表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。

Time to Live:生存时间

长度8比特。当IP包进行传送时,先会对该字段赋予某个特定的值。当IP包经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。

Protocol:协议

8bit的协议字段表示在IP上层承载的是什么协议。比如:0x01表示ICMP协议、0x06表示TCP协议、0x11表示UDP协议等。

Header Checksum:头部校验

16bit的首部校验和字段用来使接收端检验收到的报文是否正确。该字段只对IP首部计算校验和不包含后面的数据字段。原因是IP的上层协议比如ICMP、IGMP、TCP、UDP协议的各自首部中均含有同时覆盖首部和数据的校验和。

计算方法:首先把首部中的该字段全部置0,然后对首部中的每个16bit进行反码求和,得到的值就是该字段的值,填入后。将该数据包发给接收端后,接收端将进行相同的操作,对每个16bit进行反码求和(此时首部校验和字段为非0字段),所以计算后的值若为全1表示正确,否则表示收到的数据包不正确,动作为丢弃。


Source:源地址

Destination:目的地址

Options:可选项

一般不使用该字段,该字段的值以32bit为单位,不足时以0补充。

Padding:填充

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值