IP报文格式

IP报文格式

报文格式

图1 IP头格式

表1 IP头字段解释
字段长度含义
Version4比特
  • 4:表示为IPV4;
  • 6:表示为IPV6。
IHL4比特首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。
Type of Service8比特服务类型。只有在有QoS差分服务要求时这个字段才起作用。
Total Length16比特总长度,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
Identification16比特标识,主机每发一个报文,加1,分片重组时会用到该字段。
Flags3比特标志位:

图2 IP Flag字段格式

  • Bit 0: 保留位,必须为0。
  • Bit 1: DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。
  • Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。
Fragment Offset12比特片偏移:分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
Time to Live8比特生存时间:可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
Protocol8比特

协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值:

  • 0: 保留Reserved
  • 1: ICMP, Internet Control Message [RFC792]
  • 2: IGMP, Internet Group Management [RFC1112]
  • 3: GGP, Gateway-to-Gateway [RFC823]
  • 4: IP in IP (encapsulation) [RFC2003]
  • 6: TCP Transmission Control Protocol [RFC793]
  • 17: UDP User Datagram Protocol [RFC768]
  • 20: HMP Host Monitoring Protocol [RFC 869]
  • 27: RDP Reliable Data Protocol [ RFC908 ]
  • 46: RSVP (Reservation Protocol)
  • 47: GRE (General Routing Encapsulation)
  • 50: ESP Encap Security Payload [RFC2406]
  • 51: AH (Authentication Header) [RFC2402]
  • 54: NARP (NBMA Address Resolution Protocol) [RFC1735]
  • 58: IPv6-ICMP (ICMP for IPv6) [RFC1883]
  • 59: IPv6-NoNxt (No Next Header for IPv6) [RFC1883]
  • 60: IPv6-Opts (Destination Options for IPv6) [RFC1883]
  • 89: OSPF (OSPF Version 2) [RFC 1583]
  • 112: VRRP (Virtual Router Redundancy Protocol) [RFC3768]
  • 115: L2TP (Layer Two Tunneling Protocol)
  • 124: ISIS over IPv4
  • 126: CRTP (Combat Radio Transport Protocol)
  • 127: CRUDP (Combat Radio User Protocol)
  • 132: SCTP (Stream Control Transmission Protocol)
  • 136: UDPLite [RFC 3828]
  • 137: MPLS-in-IP [RFC 4023]
Header Checksum16比特首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
Source Address32比特源IP地址。
Destination Address32比特目的IP地址。
Options可变选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
Padding可变填充字段,全填0。
表2 IP Header Options
CLASSNUMBER长度含义
00-

Code为0代表了选项列表的结束,放在所有选项链表的后面,用来补字节对齐。

该选项无长度字段,占一个字节。

01-

表示无操作的选项。用在各种选项之间,占一个字节。用于填充4字节对齐。

0211字节

表示安全和处理限制的选项。

该选项提供一种主机可以发送安全、分隔、处理限制及TCC(关闭使用组)的参数功能。

  • Type=130(10000010):占1字节,code 的值此处设为130
  • length=11:占1字节,长度选项固定为11,表示该选项的长度为11字节
  • SSS:占2字节,表示安全域,下面列出了16种不同的安全标准,其中8个至今还没使用,预留将来使用,列表如下:

    00000000 00000000 - Unclassified

    11110001 00110101 - Confidential

    01111000 10011010 - EFTO

    10111100 01001101 - MMMM

    01011110 00100110 - PROG

    10101111 00010011 - Restricted

    11010111 10001000 - Secret

    01101011 11000101 - Top Secret

    00110101 11100010 - (Reserved for future use)

    10011010 11110001 - (Reserved for future use)

    01001101 01111000 - (Reserved for future use)

    00100100 10111101 - (Reserved for future use)

    00010011 01011110 - (Reserved for future use)

    10001001 10101111 - (Reserved for future use)

    11000100 11010110 - (Reserved for future use)

    11100010 01101011 - (Reserved for future use)

  • CCC:占2个字节,表示分隔域,当传输的数据没被分隔的时候,此值设为0,其他的具体值可以从国防情报局获取。
  • HHH:占2个字节,操作限制域,该值由国防情报局DIAM手册65-19,《标准安全记号》描述。
  • TCC:占3个字节,传输控制码。提供一种传输隔离的手段,该值为3字母词,可用值从HQ DCA Code 530。
03可变

松散的源站选路(为数据报指定一系列必须经过的IP地址)

选项格式如下:

  • Type: 类型。占1字节,此处设为131。
  • length: 占1字节,记录整个选项的长度。
  • pointer: 指针项,占1个字节,指向下一个被处理的源站地址,最小值为4。
  • route data: 路由数据。
07可变

记录路径(让每个路由器都记下它的IP地址)。

选项格式如下:

  • Type: 指明IP选项的类型。此处值为7。
  • length: 选项的总字节长度。不包含填充的长度,IP填满时最大为39;。
  • pointer: 它是一个基于1的指针,指向存放下一个IP地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,ptr的值分别为8,12,16,最大到36,当记录下9个IP地址后,ptr的值为40,表示清单已满。
  • route data: 路由数据。
084字节

流标识选项。该选项长度固定为4字节,code值为136,后面的字段固定为0x02,流ID为2字节。该选项提供了一种携带SATNET流标识符通过不支持流方式的网络。

09可变

严格的源站选路选项。与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址。

  • Type=137(10001001):占1字节,code 的值此处设为137。
  • length:占1字节,记录整个选项的长度。
  • pointer:指针项,占1个字节,指向下一个被处理的源站地址,最小值为4。
24可变

时间戳选项。

  • Type (01000100):时间戳选项,代码为68;
  • length:选项的总长度(一般为36或40);
  • ponter:指向下一个可用空间的指针(5,9,13等);
  • oflw:表示溢出字段;
  • flg:表示标志字段:
    • 0:只记录时间戳。
    • 1:每台路由器都记录它的IP地址和时间戳。在选项列表中只有存放4对地址和时间戳的空间。
    • 3:发送端对选项列表进行初始化,存放了4个IP地址和4个取值为0的时间戳值。只有当列表中的下一个IP地址与当前路由器地址相匹配时,才记录它的时间戳。
参考标准
标准StandardDescription
RFC 791INTERNET PROTOCOL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/649630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java / Spring Boot + POI 给 Word 添加水印

1、前言(瞎扯) 有个需求:整一个给 Word 加水印的demo,于是我就网上找呗~ 看到那个 Aspose 好像是收费的,然后就把目光转向了 POI,看到各种形形色色的也不知道哪个能用。整了一会,自己拷贝出一个比较精简的能用的 demo …

SpringBoot activemq收发消息、配置及原理

SpringBoot集成消息处理框架 Spring framework提供了对JMS和AMQP消息框架的无缝集成,为Spring项目使用消息处理框架提供了极大的便利。 与Spring framework相比,Spring Boot更近了一步,通过auto-configuration机制实现了对jms及amqp主流框架…

首发:2024全球DAO组织发展研究

作者,张群(专注DAO及区块链应用研究,赛联区块链教育首席讲师,工信部赛迪特邀资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问) DAO(去中心化自治组织&am…

03-Redis缓存高可用集群

文章目录 1、Redis集群方案比较2、Redis高可用集群搭建redis集群搭建Java操作redis集群 4、Redis集群原理分析槽位定位算法跳转重定位Redis集群节点间的通信机制gossip通信的10000端口网络抖动 Redis集群选举原理分析集群脑裂数据丢失问题集群是否完整才能对外提供服务Redis集群…

LC 2846. 边权重均等查询

2846. 边权重均等查询 难度: 困难 题目大意: 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 …

Android studio环境搭建过程异常

异常1 e: file:///D:/project/AndroidProject/settings.gradle.kts:5:21: Unexpected tokens (use ; to separate expressions on the same line) dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories { // …

第16章_网络编程(网络通信要素,TCP与UDP协议,网络编程API,TCP网络编程,UDP网络编程,URL编程)

文章目录 第16章_网络编程本章专题与脉络1. 网络编程概述1.1 软件架构1.2 网络基础 2. 网络通信要素2.1 如何实现网络中的主机互相通信2.2 通信要素一:IP地址和域名2.2.1 IP地址2.2.2 域名 2.3 通信要素二:端口号2.4 通信要素三:网络通信协议…

BLIP-2: 基于冻结图像编码器和大型语言模型的语言-图像预训练引导

BLIP-2: 基于冻结图像编码器和大型语言模型的语言-图像预训练引导 项目地址BLIP-2的背景与意义BLIP-2的安装与演示BLIP-2模型库图像到文本生成示例特征提取示例图像-文本匹配示例性能评估与训练引用BLIP-2Hugging Face集成 在语言-图像预训练领域,BLIP-2的出现标志着…

深度学习分类问题之Logistic Regression

逻辑回归模型,虽然名字是回归,但是是解决分类问题。 在线性回归里面,我们根据有效信息,预测下一个由已知信息得到的数值,叫做回归问题,但是在机器学习里面,常见的是分类问题。最常见的就是MNIS…

React16源码: React中commitAllHostEffects内部的commitDeletion的源码实现

commitDeletion 1 )概述 在 react commit 阶段的 commitRoot 第二个while循环中调用了 commitAllHostEffects,这个函数不仅仅处理了新增节点,更新节点最后一个操作,就是删除节点,就需要调用 commitDeletion&#xff0…

《动手学深度学习(PyTorch版)》笔记4.5

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过。…

掌握可视化大屏:提升数据分析和决策能力的关键(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

(大众金融)SQL server面试题(3)-客户已用额度总和

今天,面试了一家公司,什么也不说先来三道面试题做做,第三题。 那么,我们就开始做题吧,谁叫我们是打工人呢。 题目是这样的: DEALER_INFO经销商授信协议号码经销商名称经销商证件号注册地址员工人数信息维…

three.js 鼠标选中模型弹出标签

效果&#xff1a;请关注抖音 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"></div><…

202410读书笔记|《半小时漫画青春期》——成为自己世界的星星,这才是最要紧的事儿

202410读书笔记|《半小时漫画青春期&#xff1a;心理篇》——成为自己世界的星星&#xff0c;这才是最要紧的事儿 一、一到考试就焦虑&#xff0c;怎么办&#xff1f;二、以前情绪挺淡定&#xff0c;现在咋动不动就爆发&#xff1f;三、追星那么开心&#xff0c;为啥还要我小心…

ajax点击搜索返回所需数据

html 中body设置&#xff08;css设置跟进自身需求&#xff09; <p idsearch_head>学生信息查询表</p> <div id"div_1"> <div class"search_div"> <div class"search_div_item"> …

数据库设计的一些原则

文章目录 数据库设计原则表之间的关系一对一关系&#xff08;了解&#xff09;一对多&#xff08;多对一&#xff09;多对多联合主键和复合主键 数据库设计准则-范式1、函数依赖2、完全函数依赖3、部分函数依赖4、传递函数依赖5、码 第一范式第二范式第三范式第三范式 数据库设…

【原神游戏开发日志3】登录和注册有何区别?

版权声明&#xff1a; ● 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明 ● 文章内容不得删减、修改、演绎 ● 本文视频版本&#xff1a;见文末 ● 相关学习资源&#xff1a;见文末 前言 ● 这是我们原神游戏开发日记的第三期 ●…

TensorFlow2实战-系列教程1:回归问题预测

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、环境测试 import tensorflow as tf import numpy as np tf.__version__打印结果 ‘…

2024年材料、控制工程与制造技术国际学术会议(ICMCEMT 2024)

2024年材料、控制工程与制造技术国际学术会议(ICMCEMT 2024) 2024 International Conference on Materials, Control Engineering, and Manufacturing Technology (ICMCEMT 2024) 会议简介&#xff1a; 2024年材料、控制工程与制造技术国际学术会议(ICMCEMT 2024)定于2024年在…