首页 > 其他分享 >IP报文格式大全,plus版本,网络工程师收藏!

IP报文格式大全,plus版本,网络工程师收藏!

时间:2024-07-22 17:25:19浏览次数:10  
标签:选项 报文格式 IP 报文 字段 plus 头部 分片

互联网协议(IP,Internet Protocol)是互联网中的核心协议,它定义了数据包如何在网络间传输。IP报文(或数据包)是传输层发送到网络层的数据单元,包含了数据和控制信息。

IP报文结构

IP报文由两个主要部分组成:头部(Header)和数据(Data)。IP头部包含了路由和传输控制信息,而数据部分则是实际要传输的负载。

IP头部的基本格式

IP头部通常有20字节的基本长度,包含以下字段:

  1. 版本(Version):4位

版本字段占4位,表示IP协议的版本号。目前常用的版本有IPv4(版本号为4)和IPv6(版本号为6)。IPv4是当前使用最广泛的版本。

  1. 头部长度(IHL,Internet Header Length):4位

头部长度字段占4位,表示IP头部的长度,以32位字(4字节)为单位。最小值为5,表示20字节的头部,没有选项字段。最大值为15,表示60字节的头部,包含选项字段。

  1. 服务类型(Type of Service):8位

服务类型字段占8位,用于定义报文的优先级和QoS(Quality of Service)参数。包括优先级(Precedence)、延迟(Delay)、吞吐量(Throughput)、可靠性(Reliability)等子字段。

  1. 总长度(Total Length):16位

总长度字段占16位,表示整个IP报文(头部+数据)的长度,以字节为单位。最大值为65535字节。

  1. 标识(Identification):16位

标识字段占16位,用于唯一标识IP报文,尤其在进行分片传输时,所有分片的标识字段相同,便于接收方重组报文。

  1. 标志(Flags):3位

标志字段占3位,用于控制和标记分片。包括DF(Don’t Fragment)位和MF(More Fragments)位。DF位指示不允许分片,MF位指示是否有更多分片。

  1. 分片偏移(Fragment Offset):13位

分片偏移字段占13位,表示当前分片相对于原始报文起始位置的偏移量,以8字节为单位。

  1. 生存时间(TTL,Time to Live):8位

生存时间字段占8位,表示报文在网络中的最大存活时间。每经过一个路由器,该值减1,减为0时,报文被丢弃,防止数据包在网络中无限循环。

  1. 协议(Protocol):8位

协议字段占8位,表示封装在IP报文中的上层协议,如TCP(值为6)、UDP(值为17)等。

  1. 头部校验和(Header Checksum):16位

头部校验和字段占16位,用于检验IP头部的完整性。发送方计算并填入该值,接收方重新计算校验和并与该字段进行比较,若不一致则报文出错。

  1. 源IP地址(Source Address):32位

源IP地址字段占32位,表示发送报文的主机IP地址。

  1. 目的IP地址(Destination Address):32位

目的IP地址字段占32位,表示接收报文的主机IP地址。

此外,根据具体应用需求,IP头部还可以包含选项(Options)字段,增加头部的长度和复杂度。

IP头部选项字段

IP头部选项字段是可选的,用于扩展IP报文功能。常见的选项有:

  1. 安全性选项:指定报文的安全级别。
  2. 时间戳选项:记录报文经过的路由器的时间。
  3. 路由记录选项:记录报文经过的路由器地址。
  4. 松散源路由选项:指定报文必须经过的中间路由器,但不强制顺序。
  5. 严格源路由选项:指定报文必须按顺序经过的中间路由器。

选项字段格式

每个选项字段由选项类型(1字节)、选项长度(1字节)和选项数据(可变长度)组成。选项类型的最高两位用于控制选项的处理方式(复制到所有分片、仅限首片等)。

IP报文格式大全

华为官方出了一个网站,记录了IP报文格式大全,很全面:

https://support.huawei.com/enterprise/zh/doc/EDOC1100174722

不过友好性不高,对此瑞哥特地整理了一下,大家可以直观的查看,作为学习和查阅都是不错的选择!

本文档支持点击协议地图直接跳转,比如这里我们在协议地图上点击“UDP”:

  • 文档下载

本公众号后台回复暗号 “文档

标签:选项,报文格式,IP,报文,字段,plus,头部,分片
From: https://blog.csdn.net/weixin_43025343/article/details/140611644

相关文章

  • SLF4J: Class path contains multiple SLF4J bindings 问题解决
    背景:springboot项目名称test,在使用slf4j后,服务启动报错 报错信息:SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/D:/Program%20Files/Java/.m2/repository/ch/qos/logback/logback-classic/1.2.7/logback-classic-1.2.7.jar!/or......
  • Folding Strip
    第一次在考场中做出来的E题,rank也是来到了20,纪念一下,一定要相信自己呀构造方法见官方题解,证明见下:对于原始串\(s\),如果第一个(从左往右数)相同交界不折,选择折后面的交界,那么根据决策包容性,我们可以折一下第一个相同交界,答案不会更差,如下如果不折第一个交界:对于最终方案我们折一......
  • SAWarning: relationship X will copy column Q to column P, which conflicts with r
    在sqlalchemy之中,当一个字段对应多个relationship的时候。因为ORM要处理flush操作,而两个relationship可能都涉及到flush,以至于ORM无法同时兼顾。这时,sqlalchemy就会发出一个SAWarning。为了避免该类事件,可以通过以下配置来实现。假设,存在Parent和Child两个表,其中Child.parent_id......
  • Python - Adob​​e InDesign Javascript 脚本帮助从 Python 调用 JSX
    提前致谢。希望每个人都表现出色。我试图从python调用Adob​​eIndesignJSX文件,下面是示例代码:我想在Adob​​eINdesign2024或更高版本上运行它。我在PythonInDesign脚本编写上看到了一些示例:从预检中获取溢出文本框以自动调整大小作为参考,可能适用于Ado......
  • 如何在 iPhone 主屏幕上添加 Google Gemini 快捷方式
    GoogleGemini可以在iPhone上使用,但是访问方式极其隐蔽,需要在GoogleApp中才能打开使用。不过,现在我发现一种非常简单的方法,可以让你在iPhone主屏幕上或使用操作按钮直接打开使用单独的GoogleGemini应用。安卓用户可以直接使用独立的Gemini应用,而iPhone用户......
  • python pip 需要构建工具,而它已经安装
    我看到这个问题已经被发布了很多次,人们设法解决了这个问题,但我没有!!操作系统版本:Windows1021H1Build19043.1288Python版本:Python3.9.7(tags/v3.9.7:1016ef3,Aug302021,20:19:38)[MSCv.192964bit(AMD64)]onwin32Pip、wheel和setuptool都可以日期:......
  • 本地基本项目,localhost可以访问,换成本机IP却访问不了。
    1、现象描述:在本地运行自己的项目,运行后用localhost可以访问https://localhost:44313/将其替换成本机IP:10.7.20.69https://10.7.20.69:44313/却无法访问!2、错误提示:HTTPError400.Therequesthostnameisinvalid.3、问题原因:①首先关闭防火墙,防火墙会导致访问失败......
  • IP地址专用HTTPS证书的申请流程(公网、内网)
    IP地址专用HTTPS证书是一种专门为IP地址设计的SSL/TLS证书,用于通过HTTPS协议安全地访问基于IP地址实现的网站或服务。这种证书解决了没有域名的情况下,使用IP地址进行安全通信的需求。申请IP地址证书的前提条件1管理权限:首先,申请IP地址专用SSL证书实现https加密访问,需要对该......
  • IPython 使用技巧
    IPython是一个强大的交互式Pythonshell,提供了许多方便的功能,使Python编程更加高效和愉快。本文将介绍一些IPython的实用技巧,帮助开发者充分利用其功能,提高编程效率。1.基本操作和快捷键1.1启动IPython可以通过在终端输入以下命令来启动IPython:ipython启动后,你......
  • 【校招+社招】华为OD机试 - 拼接URL(Java、JavaScript、Python、C、C++)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)算法概述URL拼接(URL拼接)是指将多个URL组件(方案、主机、端口、路径、查询参......