IPv4报文格式

合集下载

5.1ipv4数据报和ICMP报文

5.1ipv4数据报和ICMP报文
5.5 IP数据报和ICMP协议
IP数据报的结构
由 IP协议 定义
来自上一 层
首部
数据
比特 0 固 定 首 部 部 分
4 标 生存时间
8 服务类型 识 协 议
16 标志 源 地 址
19
24 总 长 度 片 偏 移
31
版 本 首部长度
首 部 检 验 和
可变 部分
目 的 地 址
可 选 字 段 (长 度 可 变) 数 据 数 据 部 部 分 分 填 充
比特 0 固 定 首 部 部 分
4 标 生存时间
8 服务类型 识 协 议
16 标志 源 地 址
19
24 总 长 度 片 偏 移
31
版 本 首部长度
首 部 检 验 和
目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充
协议(8 bit)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程
比特 0 固 定 首 部 部 分
4 标 生存时间
8 服务类型 识 协 议
16 标志 源 地 址
19
24 总 长 度 片 偏 移
31
版 本 首部长度
首 部 检 验 和
目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充
生存时间(8 bit)记为 TTL (Time To Live),这是为了 限制数据报在网络中的生存时间,其单位最初是秒, 但为了方便,现在都用“跳数”作为 TTL 的单位。 数据报每经过一个路由器,其 TTL 值就减 1。
31
版 本 首部长度
首 部 检 验 和

以太网帧格式、IP报文格式、TCPUDP报文格式

以太网帧格式、IP报文格式、TCPUDP报文格式

以太⽹帧格式、IP报⽂格式、TCPUDP报⽂格式1、ISO开放系统有以下⼏层:7应⽤层6表⽰层5会话层4传输层3⽹络层2数据链路层1物理层2、TCP/IP ⽹络协议栈分为应⽤层(Application)、传输层(Transport)、⽹络层(Network)和链路层(Link)四层。

通信过程中,每层协议都要加上⼀个数据⾸部(header),称为封装(Encapsulation),如下图所⽰不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。

数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,最后将应⽤层数据交给应⽤程序处理。

其实在链路层之下还有物理层,指的是电信号的传递⽅式,⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤等都属于物理层的概念。

3、集线器(Hub)是⼯作在物理层的⽹络设备,⽤于双绞线的连接和信号中继(将已衰减的信号再次放⼤使之传得更远)。

交换机是⼯作在链路层的⽹络设备,可以在不同的链路层⽹络之间转发数据帧(⽐如⼗兆以太⽹和百兆以太⽹之间、以太⽹和令牌环⽹之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层⾸部重新封装之后再转发。

路由器是⼯作在第三层的⽹络设备,同时兼有交换机的功能,可以在不同的链路层接⼝之间转发数据包,因此路由器需要将进来的数据包拆掉⽹络层和链路层两层⾸部并重新封装。

4、⽹络层的IP 协议是构成Internet 的基础。

IP 协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应⽤程序中提供⽀持。

传输层可选择TCP 或UDP 协议。

TCP 是⼀种⾯向连接的、可靠的协议,有点像打电话,双⽅拿起电话互通⾝份之后就建⽴了连接,然后说话就⾏了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。

IPv4数据报格式及其语义

IPv4数据报格式及其语义

IPv4数据报格式及其语义⼀、IP数据报的格式如下图所⽰版本⾸部长度服务类型数据报长度16⽐特标识标志13⽐特⽚偏移寿命上层协议⾸部检验和32⽐特源IP地址32⽐特⽬的IP地址选项(如果有的话)数据IPv4数据报格式⼆、各部分语义1)版本(号):4bit,规定了数据包的IP协议版本;通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分2)⾸部长度:因为IPV4数据报可包含⼀些可变数量的选项,所以需要⽤这4bit来确定⾸部的长度,以确定IP数据报的数据部分实际从哪⾥开始。

⼤多数IP数据报不包含选项,所以⼀般IP数据报具有20字节的⾸部3)服务类型:8bit,服务类型包含在⾸部中以使不同类型的IP数据报能相互区分开来,例如,将实时数据报(如⽤于IP电话应⽤)与⾮实时流量(如FTP)区分开来也许是有⽤,提供特定等级的服务是⼀个由路由器管理员决定的策略问题4)数据报长度:这是IP数据报的总长度(⾸部加上数据),以字节计,因为该字段长为16bit,所以IP数据报的理论最⼤长度为65535字节,然⽽数据报很少有超过1500字节的(因为IP数据还要靠数据链路层运输的,⽽链路层帧能承载的最⼤数据量为叫做最⼤运输单元(Maximum Transmission Unit,MTU))5)标识、标志、⽚偏移: 要理解这三个内容,要先理解⼀些其他知识 (1)分⽚:把IP数据报中的数据分成两个或者更多个较⼩的IP数据报,⽤单独的链路层帧封装成较⼩的IP数据报,每个这些较⼩的数据报称为⽚ (2)为什么要分⽚:因为每个IP数据报封装在链路层帧中从⼀台路由器传输到下⼀台路由器,⽽链路层帧能承载的最⼤数据量(最⼤运输单元(Maximum Transmission Unit,MTU)是⼀定的,故链路层帧严格限制着IP数据报的长度;⽽且发送⽅和与⽬的路径上的每段链路可能使⽤不同的链路层协议,且每种协议可能具有不同的MTU,所以就更有可能需要分⽚了,以便能够使得数据报能够顺利的传递数据报 (3)组装:⽬的主机从相同源收到⼀系列数据报时,需要确定哪些数据报是分⽚,如果是分⽚的话,还要进⼀步指导何时收到最后⼀个分⽚,如何将接收到的分⽚拼接起来以形成初始的数据报,故IPV4的设计者将标识、标志和⽚偏移字段放在IP数据报⾸部中,当⽣成⼀个数据报时,发送主机为该数据报设置源和⽬的地址的同时,再填上标识号标识:16bit,源主机发送IP数据报的时候,通常为它发送的每个数据报的标识号加1,所以当某个路由器需要对某⼀个数据报分⽚时,形成的每个数据报(分⽚)具有初始数据报的源地址、⽬的地址、与标识号,这样⽬的主机就可以判别哪些分⽚是属于⼀个初始数据报的标志:3bit,由于IP是⼀种不可靠服务,⼀个或者多个⽚可能永远到不了⽬的地,所以为了让⽬的主机绝对的相信它已经收到了初始数据报的最后⼀个⽚,最后⼀个⽚的标志⽐特被设置为0,⽽所有其他⽚的标志⽐特被设置为1⽚偏移:13bit,标⽰数据相对于初始数据报的偏移值,并且偏移值应当被规定以8字节块为单位。

详谈IPv6与IPv4数据报格式

详谈IPv6与IPv4数据报格式

详谈IPv6与IPv4数据报格式1.IPv6数据包每一个分组由必须要有的基本首部和跟随在后面的有效载荷组成。

有效载荷有两部分组成:可选的扩展首部和从上层来的数据(不超65535字节)。

具体如图所示:详细说明:Version:和ipv4包头中的一样,4个bit区域表示ip的版本(0110)优先级:即Traffic Class是一个8位bit的区域,同ipv4中的tos区域一样。

但是在这些年中随着TOS区域的进化,这个区域也可以用来被 DifferentiatedClass of Service (DiffServ)使用。

但是尽管这里这样的标识仍然符合老的Tos的格式,只不过Traffic Class这个名字更符合当前的应用。

流标记:Flow Label流量标签是在ipv6中独有的区域。

这个20个bit的区域设计的目的在于可以给一些特殊的数据做标记。

也就是说尽管数据包并非是从原来的源发到目的,但是仍然包含原有的源和目的的应用。

区分数据流有很多好处,可以确保不同类别服务的处理方式得以区分,在数据流经多个路径的负载均衡时,在同一个数据流的数据包将使用经由同一个路径转发,从而避免了数据包可能继续查找路径的现象。

典型的flow(更加精确一点的说法是微流)就是在源地址和目的地址上加一个团体的源地址和目的地址。

如果使用定义源和目的端口号,路由器必须识别ip包头还要进一步识别tcp或者udp(或者其他传输层协议)的头,这样就增加了转发进程的复杂性,可能会影响路由器的处理。

因为出现扩展包头(下一段介绍),所以在ipv6数据包中查找传输层协议的头就成为一个特殊的问题。

支持ipv6的路由器必须从按照数据包格式的顺序从头到位查找,可能会经过很多扩展包头再会找到传输层地址(这样的话影响查找时间)。

如果在数据包发起是适当的加入流量标签,路由器更比查找数据包头更容易辨识数据流。

然而,在本书书写时,如何使用流量标签区域的完全详细文档仍在讨论中,所以当前路由器读取数据时忽略这个区域。

Ipv4和Ipv6数据报格式详解

Ipv4和Ipv6数据报格式详解

IPv4和IPv6数据报格式一、IPv4数据报格式1)数据报可以分为报头区和数据区,数据区的数据来自上一层。

说明:首部和报头和头等字眼是同一意思。

2)版本:指明IP协议是哪个版本,IPv4为0100。

3)报头长度:也叫首部长度,指明报头区的长度。

最小值为20个字节,最大值为60字节。

说明:a.当没有选项和填充字段时,32位(每行的长度)*5(5行固有的)=160位=20字节,这个时候4个比特位的值为0101,为什么呢?因为这里规定以4个字节为单位,如果把0101用换算成十进制,0101=5,5*4=20字节。

如果4个比特位为1111,把1111换算成十进制则等于15,则它表示15*4=60个字节。

(简单记成换算成十进制后乘以4才等于它报头区的字节数)b.当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

4)服务类型:转发过程中对该数据报的处理方式。

5)总长度:等于报头区及数据区的长度相加。

说明:a.最大长度为65535个字节(当8个bit都等于1时),2^16-1=65535个字节。

b. IP数据报的最大长度的确是65535字节。

但是实践中最大长度很少用,因为大多物理网络都有长度限制,例如,数据链路层有自己的帧格式,其中包括了数据字段的最大长度,即最大数据传输单元MTU,当一个数据报封装成链路层的帧时,此数据报的总长度一定不能超过下面的数据链路层的MTU 值,以太网把载荷长度限制在1500字节。

6)标识:IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。

但这个“标识”并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题。

当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。

相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

附加:IP数据报在各个物理网络中需要重新封装:与路由器连接的各个网络的MTU可能不同:当数据报超过网络的MTU进行分片后,路由器可以为每个分片独立选路:7)标志:占三位,但目前只有两位有意义。

IPv6

IPv6

链路本地地址(Link-Local Address)
相当于v4中的169.254.0.0/16,不能被路由,以FE0ห้องสมุดไป่ตู้开头
站点本地地址(Site-Local Address)
相当于v4中的私有地址,仅局域网使用,以FEC0~FEFF开头
本地环回地址(Local Loopback Address)
IPv6 扩展报文
Next Header value 0
6 17 43 44 50 51 58 59 60
Type 逐跳选项扩展报头
TCP UDP 路由扩展报头 分片扩展报头 封装安全有效载荷扩展报头 认证扩展报头 ICMPv6信息报文扩展报头 无下一报头 目的选项扩展报头
IPv6 扩展报文应用
IPv6报文头长度固定为40字节,分为8个字段 Version:4比特,值为6表示IPv6报文 Traffic Class:8比特,类似于IPv4中的TOS域 Flow Label:20比特。IPv6中新增。流标签可用来标记特定流的报文,以便在网络 层区分不同的报文。转发路径上的路由器可以根据流标签来区分流并进行处理。由 于流标签在IPv6报文头中携带,转发路由器可以不必根据报文内容来识别不同的流, 目的节点也同样可以根据流标签识别流,同时由于流标签在报文头中,因此使用 IPSec后仍然可以根据流标签进行QoS处理。
IPv6 报文头格式Ⅱ
0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f
Version
Traffic Class Payload Length
Flow Label Next Header Hop limit

ipv4 报文格式解析

ipv4 报文格式解析

ipv4 报文格式解析IPv4(Internet Protocol version 4)是互联网协议(IP)的第四版,也是第一个广泛使用的协议版本。

它构成了当今互联网技术的基础。

IPv4使用32位地址,因此可以提供大约43亿个唯一地址。

下面是IPv4报文的基本格式解析:IPv4报文(或称为数据报)主要由两部分组成:报头和数据部分。

1. 报头:版本(Version):占4位,指定IP协议的版本。

对于IPv4,此值为4。

报头长度(Header Length):占4位,表示IP报头的长度,以32位字为单位。

最小值为5,表示报头长度为20字节。

服务类型(Type of Service):占8位,用于QoS(服务质量)等目的。

总长度(Total Length):占16位,表示整个IP数据报的长度,包括报头和数据。

标识(Identification):占16位,帮助分片后的数据报重新组装。

标志(Flags):占3位,与分片相关。

片段偏移(Fragment Offset):占13位,表示分片在原始数据中的偏移量。

生存时间(Time to Live, TTL):占8位,表示数据报在网络中的生存时间或经过的路由器数量。

每经过一个路由器,此值减1,直到为0时被丢弃。

协议(Protocol):占8位,表示上层协议类型,例如TCP、UDP等。

报头校验和(Header Checksum):占16位,用于确保IP报头的完整性。

源IP地址(Source IP Address):占32位,表示发送方的IP地址。

目标IP地址(Destination IP Address):占32位,表示接收方的IP地址。

2. 数据部分:此部分包含上层协议(如TCP、UDP等)的数据。

其长度和具体内容取决于上层协议。

3. 选项(Options):这是一个可选的部分,不总是出现在IPv4数据报中。

当存在时,它跟在报头后面、数据部分之前。

选项可以用来支持各种特殊功能和测试。

TCPIP几种协议数据报格式简介

TCPIP几种协议数据报格式简介
z TCP 报文格式如下图:
TCP 是面向连接的可靠数据传输协议,因此比较复杂,在此仅作简单介绍。“序号”指数据在发送端数据流中 的位置。“确认号”指出本机希望下一个接收的字节的序号。与 IP 校验不同的是 TCP,UDP 校验采用伪头标加整个 报文一同校验的方法。TCP 协议工作原理另行介绍。
TCP 数据报中依次包括以下信息:
协议采用分层结构,因此,数据报文也采用分层封装的方法。下面以应用最广泛的以太网为例说明其数据报 文分层封装,如下图所示:
任何通讯协议都有独特的报文格式,TCP/IP 协议也不例外。对于通讯协议编程,我们首先要清楚其报文格式。 由于 TCP/IP 协议采用分层模型,各层都有专用的报头,以下就简单介绍以太网下 TCP/IP 各层报文格式。
1、 16 位源端口 Source Port。该部分占 16 个 BIT。通过此值,可以看出发起连接的计算机源端口号。
2、 16 位目的端口 Destination Port。该部分占 16 个 BIT。通过此值,可以看出要登录的目的端口号。
3、 32 位序列号 Initial Sequence Number。表示初始连接的请求号,即 SEQ 值。该部分占 32 个 BIT。
4、 32 位确认号 Next Expected SEQ Numbe。对方返回的 ACK 值。该部分占 32 个 BIT。
5、 4 位数据偏移 Data Offset。表示数据偏移的大小。该部分占 4 个 BIT。
6、 6 位保留位 Reserved Bites:保留位,此处不用。该部分占 6 个 BIT。
的 16 次方减 1,即:65535 个字节。因此,在以太网中能够传输的最大 IP 数据包为 65535 个字节。
5、 16 位标识号 Identification。该部分占 16 个 BIT,以十进制数表示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据
11 源、目的IP地址
源IP地址是报文的发送端的地址, 目的IP地址是报文接收端的地址。
发送端
源IP 目的IP
接收端
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
总长度(16)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
2
头长度(IHL)
指明“报头区”的长度
单位是32bits
如: 0111
7
报头区长度为: 7*32bits=224bits=28Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
6 标志位(Flags)
用于控制和识别分片。
0 DF MF
DF =0 时才允许分片 MF为1 表示后面还有分片 MF为0 表示最后一个分片
片偏移(13) 校验和(16)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
10 校验和(Header Checksum)
只检验数据报的首部部分(报头区), 不包括数据部分(数据区)
校验和(16)
选项(0 or 32 if any)
数据
8 存活时间(TTL)
避免报文在网络中永远存在。 最大的生存期为255秒
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
优先级 吞吐量
可靠性 延迟
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16)
片偏移(13) 校验和(16)
选项(0 or 32 if any)
数据
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
3
服务类型(TOS)
区分不同的服务种类,对传输速度及可 靠性等方面加以控制
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
7
片偏移(Fragment Offset)
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
指明了每个分片相对于原始报文开头 的偏移量,以8字节作单位
分片1 分片2 分片3
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
IPv4报文格式
IPv4报文格式 01000100010101010101001001001000110……
IPv4报文格式
目录
1 IPv4报文格式
2 IPv4报文各字段含义 3 IPv4报文应用方式
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
校验和(16)
选项(0 or 32 if any)
数据
5
标识符(Identification)
让目标主机确定一个新到达的分段属 于哪一个数据报。
同一个数据报的所有分段包 含相同的Identification值
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
9 协议(Protocol)
定义了该报文数据区使用的协议
协议字段值 1 2 6 17 89
协议类型 ICMP IGMP TCP UDP OSPF
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
4
总长度(Total Length)
定义了报文总长,包含首部和数据, 单位为字节。
20~65,535
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
协议(8)
源IP地址(32)
目的IP地址(32)
总长度(16) 片偏移(13)
校验和(16)
选项(0 or 32 if any)
数据
1 版本(version)
表示该数据报所使用的IP协议版本号
0100 0110
IPv4 IPv6
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
数据区的错误留 待上层协议处理
1. IPv4报文格式
bit0
bit31
版本 头长度
(4) (4)
TOS(8)
报头区
20-60 Bytes
标识(16)
标志(3)
TTL(8)
协议(8)
源IP地址(32)
总长度(16) 片偏移((0 or 32 if any)
相关文档
最新文档