一图读懂IP数据包头结构

前言

众所周知一般经过封装好的数据包如下:

在这里插入图片描述而我们今天要了解的就是数据包中的IP包头结构,如果说高层数据是老板,TCP/UDP头是秘书,而帧头(MAC子层)帧尾(FCS)是汽车,那IP包头就是老司机了,数据要往哪走,全看IP包头怎么说。所以别看IP包头只是小小的一个头部信息,最大也只有60字节,但是它的构造却一点也不简单,不信继续往下瞧:


一、一张图了解IP数据包头

在这里插入图片描述IP包头固定部分大小共20字节;选项字段长度可变一般为32bit的整数倍,最小无,最大为40字节,当有可选项字段且不足32bit时,余下部分用无用数据来填充;所以一个完整的IP包头最小为20字节,最大为60字节。

二、各部分作用具体分析

版本号(4bit):

告知IP地址是ipv4地址还是ipv6地址

首部长度(4bit):

告知这个数据包头的长度,由此推断出有无可选项

服务类型(8bit):

按位被定义为 PPP DTRM0
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

总长度(16bit):

告知IP数据报文的总长度(包括被分片数据在内),最大承载量为1500字节,超过将进行数据分片

片偏移量(13bit):

决定IP分片数据的先后顺序,只能是0或1480的倍数,第一个分片数据发送时偏移量为0,第二个为1480,第三个为2960,以此类推。
目的端重组数据包时靠偏移量来按顺序组合分片数据

标志位(3bit):

第一位bit未启用为0               
第二位bit如果需要分片第二位为0,不需要分片第二位为1               
第三位比特为1代表还有后续分片,为0代表为最后一个分片 
共有三种情况:
	001(需要分片且还有后续分片)
	000(需要分片且当前为最后一个分片)
	010(不需要分片)

标识符(16bit):

区分不同的IP数据包的分片数据,在目的端重组分片数据时能快速找到同一数据包的分片数据

生存时间TTL(8bit):

范围为1-255;
单位为跳数,数据包每经过一台路由器即为一跳,TTL值减一;当TTL为0时,丢弃数据包。
作用是防止数据包在网络中永久的循环
Windows系统TTL一般为128,Linux系统TTL为1-128之间,通常为56,64。
注:跳点跟踪命令:tracert IP地址

协议(8bit):

区分上层协议;6代表TCP协议,17代表UDP协议

首部校验和(16bit):

校验三层IP包头是否有误

源IP地址(32bit):

指发送数据包的主机地址

目标IP地址(32bit):

指接收数据包的目标主机地址

选项字段(长度可变,0-40Byte):

通常不会使用到,因为IP包头部分的长度单位为32bit,因此可选项字段的长度必须为32bit的整数倍,
当使用时且剩余部分不足32bit会自动填充无用数据来补足32bit。

总结

小小的IP数据包头,却内涵大大的乾坤;数据该往哪走,该怎么走,一切尽在IP包头中!

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值