前言

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

而我们今天要了解的就是数据包中的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包头中!

一图读懂IP数据包头结构相关推荐

  1. 一图读懂HDFS--大数据平台技术栈06

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的HDFS! 来自:hadoop 为什么我们需要HDFS 文件系统由三部分组成:与文件管理有关软件.被管理文件以及实施文件管理所需数据结构 ...

  2. 九张图读懂大数据医疗

    人们都想选择个性化的健康医疗,为了实现这个目标,我们必须让大数据参与到破译和分析个人的所思.所需中.除了作为一个行业的流行语以外,大数据可以为医疗保健工作者和消费者带来怎样的成功呢? 下面的信息图是由 ...

  3. 基于Wireshark的IP数据包头中ToS段介绍2-1

    1 ToS简介 IP数据包头结构如图1所示. 图1 IP数据包头部结构 从图1中可以看出,ToS是Type of Sevices的简称,即服务类型.ToS长度是8bit,其含义可以是IP优先级或者DS ...

  4. JAVA网络编程:TCP/IP数据包结构

    2019独角兽企业重金招聘Python工程师标准>>> 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解网络数据 ...

  5. TCP/IP数据包结构分解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...

  6. TCP/IP数据包结构详解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...

  7. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  8. 【图解】九张图带你读懂大数据医疗

    文章讲的是[图解]九张图带你读懂大数据医疗,互联网大框架的结构下,互联网+医疗的个性化服务,能给医疗保健工作者和消费者带来哪些真正的福利呢,首先可以提高效益减少废物.增强了预防传染病的能力.对于个人公 ...

  9. 一张图读懂PBN飞越转弯衔接TF/CF航段计算

    在PBN旁切转弯的基础上,再来看飞越转弯接TF(或CF)航段,保护区结构上有些相似,只是转弯拐角处的保护区边界有"简化",其余部分是相近的. FlyOver接TF段的标称航迹有一个 ...

  10. 一张图读懂一个产业短视频第5期

    随着互联互通社区关注者不断增多,其中涌现了很多即将进入IT互联网和对IT互联网感兴趣的朋友们. 介于以往内容更多还是针对IT互联网从业者,应互联互通社区关注者要求,自2021年4月12日起推出一张图读 ...

最新文章

  1. 关于Page翻页效果--Page View Controller
  2. lunix 安装python3
  3. 如何合理地建立 Mysql 索引
  4. Rhino(js的java实现组件)
  5. delphi7连接oracle,delphi7.0连接oracle数据库的.doc
  6. QCA-WIFI无线芯片介绍
  7. 常用来进行钢结构节点输出的软件是什么_【经验分享】钢结构深化设计BIM应用方法总结...
  8. CF command line learning
  9. js-鼠标事件-拖放图片(对鼠标事件进一步加深印象)
  10. A short theory of channel flow
  11. unity overrideSprite的使用
  12. 关于TopoJSON以及制作方法
  13. 五、JDBC(复习)
  14. JFreeChart图形开发包学习笔记
  15. centos 7+ssr傻瓜式安装(仅供学习使用)
  16. 整合营销系统推荐乐云seo_重庆整合营销【乐云seo】
  17. Linux tar压缩和解压
  18. cannot find -lxxx 问题的总结
  19. matlab噪音的消除办法,基于MATLAB的噪声消除方法.ppt
  20. maps google android版,google maps中文安卓版

热门文章

  1. 9/28shell合集
  2. Oracle官网下载历史版本软件
  3. 微信公众平台的php文件的,php版微信公众平台入门教程之开发者认证的方法
  4. 微信公众平台的开发流程及其要点
  5. 采用计算机教学的优点,小学计算机教学的特点与重点
  6. 微信公众号获取AppID和AppSecret
  7. Microsoft Office SharePoint Server 2007案例实战开发
  8. API的小结===一定要看
  9. Cannot execute binary file 之原因
  10. matlab钢琴音教程,手把手教你钢琴基本指法(有图有真相,通俗易懂,钢琴入门必备)...