IP数据包格式简介

合集下载

IP包头格式

IP包头格式

IP包头格式*版本(version)——标识了数据包的IP版本号。

这个4位字段的值设置为二进制的0100表示IP版本4(IPv4),设置为0110表示IP版本6(IPv6)。

*报头长度(header length)——字段长度为4位,正如字段名所示,它表示32位字长的IP 报头长度。

设计报头长度字段是因为数据包的可选项字段的大小会发生变化。

IP报头最小长度为20个八位组,最大可以扩展到60个八位组——通过这个字段也可以描述32位字的最大长度。

*服务类型(TOS,type of service)——字段长度为8位,它用来指定特殊的数据包处理方式。

服务类型字段实际上被划分为两个子字段:优先级和ToS。

优先级用来设置数据包的优先级,这就像邮寄包裹一样,可以是平信、隔日送到或两日内送到。

ToS允许按照吞吐量、时延、可靠性和费用方式选择传输服务。

虽然ToS字段通常不用(所有位均被设置为0),但是开放式最短路径优先(OSPF)协议的早期规范中还是称为ToS路由选择。

优先权位偶尔在服务质量(QoS)应用中使用。

更详细的信息可以参见RFC1340和RFC1349。

*总长度(total length)——数据包总长度字段的长度为16位,以八位组为单位计,其中包括IP报头。

接收者用IP数据包总长度减去IP报头长度,就可以确定数据包数据有效负载的大小。

16位长的二进制数用十进制表示最大可以为65535,所以IP数据包的最大长度是65535。

*标识符(identifier)——字段长度为16位,通常与标记字段和分片偏移字段一起用于数据包的分段。

如果数据包原始长度超过数据包所要经过的数据链路的最大传输单元(MTU),那么必须将数据包分段为更小的数据包。

例如,一个大小为5000字节的数据包在穿过网络时,如果遇到一条MTU为1500字节的数据链路,即数据帧最多容纳大小为1500字节的数据包。

路由器需要在数据成帧之前将数据包分段成多个数据包,其中每个数据包长度不得超过1500字节;然后路由器在每片数据包的标识字段上打上相同的标记,以便接收设备可以识别出属于一个数据包的分段。

IP包格式详解

IP包格式详解
简介:ICMP(Internet Control Message Protocol)是用于在IP主机和路由器 之间传递控制消息的协议,用于诊断网络问题。
工作原理:当IP包在传输过程中遇到问题时,如目的不可达、路由问题等,源主机发 送ICMP报文给路由器或目的主机,帮助诊断和解决问题。
主要功能:ICMP提供了一些重要的诊断工具,如ping命令,用于测试主机之间的连 通性。
IP包安全防护措施
使用加密技术 保护IP包内容, 防止数据被窃
取或篡改
部署防火墙, 限制非法访问
和恶意攻击
定期更新和升 级操作系统、 应用程序和安 全设备,以修
复安全漏洞
实施安全审计 和日志记录, 监控网络流量
和异常行为
加密技术应用
加密技术可以保护IP包的内容,防止数据被窃取或篡改 常见的加密技术包括对称加密和公钥加密 对称加密使用相同的密钥进行加密和解密,常见的对称加密算法有AES和DES 公钥加密使用不同的密钥进行加密和解密,常见的公钥加密算法有RSA和ECC
严格源路由:用于 指定数据包必须经 过特定的路径到达 目的主机
选项长度
长度范围:0-40字节 选项字段的长度不固定,取决于具体选项的长度和数量 选项字段长度必须为4字节的整数倍 选项字段长度不足时,需要填充0字节
选项内容
选项类型:标识IP选项的类型, 如路由器警告、时间戳等
选项长度:IP选项的长度,以 32位为单位
IP包重组的过程
IP包到达接收端
接收端检查IP包的头部信 息
根据头部信息,将IP包放 入重组缓冲区
按照IP包的序号进行排序, 完成重组
IP包安全问题与 防护措施
IP包面临的安全威胁
篡改数据:攻击者可以修改IP包中的数据,导致数据丢失或损坏 窃取信息:攻击者可以截获IP包中的敏感信息,如账号密码等 拒绝服务:攻击者可以发送大量的垃圾IP包,导致网络拥堵,影响正常通信 恶意软件传播:攻击者可以利用IP包传播病毒、木马等恶意软件

IP数据报格式

IP数据报格式

IP数据报格式TCP/IP协议定义了一个在因特网上传输的包,称为IP 数据报(IP Datagram)。

这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。

首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

首部中的源地址和目的地址都是IP协议地址1、IP数据报首部的固定部分中的各字段(1)版本占4位,指IP协议的版本。

通信双方使用的IP 协议版本必须一致。

目前广泛使用的IP协议版本号为4(即IPv4)。

(2)首部长度占4位,可表示的最大十进制数值是15。

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。

当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

因此数据部分永远在4字节的整数倍开始,这样在实现IP 协议时较为方便。

首部长度限制为60 字节的缺点是有时可能不够用。

但这样做是希望用户尽量减少开销。

最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(#我们一般看到的版本和首部长度两个字段是十六进制45,就是版本号version=4,headlength=5,也就是首部长度是60个字节)(3)区分服务占8位,用来获得更好的服务。

这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。

1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。

只有在使用区分服务时,这个字段才起作用。

(4)总长度总长度指首部和数据之和的长度,单位为字节。

总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

#可以看这个以太网frame总长为336字节,而IP数据包Total length=322,336-322=14正好是Ethernet包头的长度,所以就可以看出这IP数据包总长度一值就是除去Ethernet头的剩余长度,也就是IP包头加数据的长度。

IP数据报格式详解

IP数据报格式详解

IP数据报格式详解IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。

IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。

IP数据报的格式如下:注意,上图表示的数据,最高位在左边,记为0位;最低位在右边,记为31位。

在网络中传输数据时,先传输0~7位,其次是8~15位,然后传输16~23位,最后传输24~31位。

由于TCP/IP协议头部中所有的二进制数在网络中传输时都要求以这种顺序进行,因此把它称为网络字节顺序。

在实际编程中,以其他形式存储的二进制数必须在传输数据前使用网络编程API相应的函数把头部转换成网络字节顺序。

IP数据报各字段功能如下:1)版本号:占用4位二进制数,表示该IP数据报使用的IP协议版本。

目前Internet中使用的主要是TCP/IP协议族中版本号为4的IP协议。

2)头长度:占用4位二进制位,此域指出整个报头的长度(包括选项),该长度是以32位二进制数为一个计数单位的,接收端通过此域可以计算出报头在何处结束及从何处开始读数据。

普通IP数据报(没有任何选项)该字段的值是5(即20个字节的长度)。

3)服务类型(TOS、type of service):占用8位二进制位,用于规定本数据报的处理方式。

服务类型字段的8位分成了5个子域:(1)—优先权(0-7)数越大,表示该数据报优先权越高。

网络中路由器可以使用优先权进行拥塞控制,如当网络发生拥塞时可以根据数据报的优先权来决定数据报的取舍。

(2)—短延迟位D(Delay):该位置1时,数据报请求以短延迟信道传输,0表示正常延时。

(3)—高吞吐量位T(Throughput):该位置1时,数据报请求以高吞吐量信道传输,0表示普通。

(4)—高可靠位R(Reliability):该位置1时,数据报请求以高可靠性信道传输,0表示普通。

数据包报文格式(IP包TCP报头UDP报头)

数据包报文格式(IP包TCP报头UDP报头)

数据包报文格式(IP包TCP报头UDP报头)一、IP包格式IP数据包是一种可变长分组,它由首部和数据负载两部分组成。

首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。

数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。

1、版本号(Version)长度为4位(bit),IP v4的值为0100,IP v6的值为0110。

2、首部长度指的是IP包头长度,用4位(bit)表示,十进制值就是[0,15],一个IP包前20个字节是必有的,后40个字节根据情况可能有可能没有。

如果IP包头是20个字节,则该位应是20/4=53、服务类型(Type of Service TOS)长度为8位(bit),其组成:前3位为优先级(Precedence),后4位标志位,最后1位保留未用。

优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。

标志位可分别表示D(Delay更低的时延)、T(Throughput 更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost 更低费用的路由)。

TOS只表示用户的请求,不具有强制性,实际应用中很少用,路由器通常忽略TOS字段。

4、总长度(Total Length)指IP包总长度,用16位(bit)表示,即IP包最大长度可以达216=65535字节。

在以太网中允许的最大包长为1500B,当超过网络允许的最大长度时需将过长的数据包分片。

5、标识符(Identifier)长度为16位,用于数据包在分段重组时标识其序列号。

将数据分段后,打包成IP 包,IP包因走的路由上不同,会产生不同的到达目地的时间,到达目地的后再根据标识符进行重新组装还原。

该字段要与标志、段偏移一起使用的才能达到分段组装的目标。

6、标志(Flags)长度为3位,三位从左到右分别是MF、DF、未用。

MF=1表示后面还有分段的数据包,MF=0表示没有更多分片(即最后一个分片)。

IP数据包的格式详解

IP数据包的格式详解

IP数据包的格式详解IP数据包在通信中是⾮常重要的,为了加深对IP数据包格式的理解,今天来看看IP数据包究竟包含哪些字段,这些字段起到什么作⽤。

来先看看IP包长啥样⼦的,请看下图从上图可看到IP包的包头是20个字节。

看看IP包头包含哪些信息版本:占4位,指IP协议版本。

并且通信双⽅使⽤的版本必须⼀致,⽬前我们使⽤的是IPv4,IPv6也是⼀种版本,⽬前⽤的不多,以后会使⽤⾸部长度:占4位,表⽰的最⼤⼗进制数是15(注意:⾸部长度字段所表⽰的单位是32位⼦,⼀个32位字长是4字节),因此⾸部长度的最⼩值为5(即:0101),相当于5*4=20字节,最⼤值为15(即:1111),相当于15*4=60字节,切记当⾸部长度不是4的整数倍时,必须利⽤最后的填充字段填充区分服务:占 8位,⽤来获得更好的服务,⼀般情况下不怎么使⽤这个字段,只有在区分服务时使⽤这个字段。

总长度:指⾸部和数据之和的长度,单位为字节,总长度字段为16位,因此数据报的最⼤长度为2^16 - 1 = 65535标识:占16位,IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据包,计数器加1,并将此值赋给标识字段,当数据包长度超过⽹络的MTU时,就要采⽤分⽚处理,分⽚时,这个标识字段的值就会被复制到所有的数据报切⽚中。

最后相同的数据报标识字段的分⽚就会重装成为原来的数据报。

标志:占3位,但⽬前只有两位有意义标志字段中最低位记MF,MF=1表⽰后⾯还有分⽚的数据报,MF=0,表⽰这是若⼲数据报中的最后⼀个中间的⼀位为DF,意思是不能分⽚,只有当DF=0时才允许分⽚⽚偏移:占13位,表⽰相对于⽤户数据的起点,该⽚从何处开始,⽚偏移以8字节为偏移量,也就是说每⼀个分⽚的长度⼀定是8字节的整数倍。

⽣存时间:占8位,⽣存时间常⽤的字段是TTL(Time To Live),表⽰数据报在⽹络中的寿命,由发出的源站点设置,⽬的就是防⽌⽆法交付的数据报在因特⽹中⽆限制的兜圈⼦,⽩⽩消耗资源。

IP数据包格式

IP数据包格式

IP数据包格式IP数据包格式TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。

这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。

首部的前一部分是固定长度,共20字节,是所有IP 数据报必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

首部中的源地址和目的地址都是IP协议地址1、IP数据报首部的固定部分中的各字段(1)版本占4位,指IP协议的版本。

通信双方使用的IP协议版本必须一致。

目前广泛使用的IP协议版本号为4(即IPv4)。

(2)首部长度占4位,可表示的最大十进制数值是15。

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。

当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。

首部长度限制为60 字节的缺点是有时可能不够用。

但这样做是希望用户尽量减少开销。

最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(#我们一般看到的版本和首部长度两个字段是十六进制45,就是版本号version=4,headlength=5,也就是首部长度是60个字节)(3)区分服务占8位,用来获得更好的服务。

这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。

1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。

只有在使用区分服务时,这个字段才起作用。

(4)总长度总长度指首部和数据之和的长度,单位为字节。

总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

#可以看这个以太网frame总长为336字节,而IP数据包Total length=322,336-322=14正好是Ethernet包头的长度,所以就可以看出这IP数据包总长度一值就是除去Ethernet头的剩余长度,也就是IP包头加数据的长度。

TCPIP以太网数据包格式解析及LWIP架构图解

TCPIP以太网数据包格式解析及LWIP架构图解

以太网数据包分类及格式解析1、以太网数据链路层帧格式(MAC 帧)——即CPU 通过MII/RMII 接口发给PHY 芯片的数据2、ARP (Address Resolution Protocol ——地址解析协议)协议数据包格式硬件类型:一般为0x0001:表示MAC 帧中“目的地址”的类型为以太网MAC地址。

协议类型:表示要映射的协议地址类型。

0x0800表示映射为IP 地址。

硬件地址长度:表示“目的地址”的长度,MAC 地址为0x06。

协议地址长度:表示IP 地址长度,为0x04。

OP :表示操作类型。

ARP 请求:0x01;ARP 应答:0x02;RARP 请求:0x03;RARP应答:0x04。

发送端以太网地址:同“源地址”。

发送端IP 地址:即“源地址”对应的IP 地址。

目的以太网地址:同“目的地址”,对ARP 请求来说,为0。

目的IP 地址:ARP 包要发往的对象IP 地址。

3、IP 数据包格式4位版本:对于IPv4,该值为4;对于IPv6,该值为6。

4位首部长度:记录首部长度,以字为单位。

对于不含选项的IP报头,该值为5。

8位服务类型:用来描述IP数据包急需的服务类型,如最小延时、最大吞吐量等。

本字段在LWIP中没用。

16位总长度:描述了整个IP数据报包括IP报头的总字节数。

16位标识:用来标识IP层发送出去的每一份IP数据报,每发送一份报文,该值加1。

3位标志和13位偏移:用于IP数据包分片时使用。

8位生存时间(TTL):描述了该IP数据包最多能被转发的次数,每经过一次转发,该值减1,当该值为0时,一个ICMP报文会被返回至源主机。

8位协议:用来描述该IP数据包是来自于上层的哪个协议。

1:ICMP;2:IGMP;6:TCP;17:UDP。

16位首部校验和:针对IP首部的校验和,并不包括数据部分。

数据部分的校验是由上层协议负责的。

32位源IP地址:发送该IP包的主机IP地址。

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,以十进制数表示。

IP数据报的格式

IP数据报的格式

IP数据报的格式 IP协议具有什么功能从数据报的格式中就能够知道,⼀个IP数据报被分为了⾸部和数据两个部分,在⾸部中有20个字节是固定的,还有⼀些可选字段长度是可变的,下⾯是IP数据报的具体格式:IP数据报各个字段的意义 1.版本号 版本号占4位,指使⽤的IP协议的版本,通信双⽅使⽤的版本要⼀致才能通信,⽬前的版本有IPv4和IPv6, 2.⾸部长度 指数据报的⾸部的长度,占4位,注意这⾥的⾸部长度的单位是4个字节,所以最⼤的⾸部长度可以达到 15 * 4 = 60 个字节,当⾸部长度不是4个整数倍的时候,就要使⽤填充字段进⾏填充。

3.区分服务 占8位,⽤来获得更好的服务,只有在使⽤区分服务的时候,这个字段才有⽤,⼀般情况下,都不使⽤这个字段 4.总长度 ⾸部和数据部分长度之和,占16位,因此IP数据报的最⼤长度位2的16次⽅ - 1,即65535个字节,然⽽这样长度的数据报是极少遇到的,我们知道在数据链层规定了MTU的⼤⼩(常⽤的以太⽹的MTU为1500字节),当数据报的⼤⼩超过MTU时,就要进⾏分⽚处理。

IP协议规定所有的主机和路由器,必须能够接受长度不超过576字节的数据报,当要发送的数据包的长度超过576个字节时,就应该先了解⽬的主机是否能够接受所发送的数据报的长度,否则就要进⾏分⽚处理了。

5.标识 占16位,IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据报,就将计数器加⼀,并将此值赋值给标识字段,当数据报的长度,超过⽹络的MTU时,就必须进⾏分⽚处理,这个标识将会赋值到所有的分⽚中,也就是说⼀个数据报经过分⽚之后的形成的多个数据报的标识是⼀样的,这样做是为了将它们组成⼀个完整的数据报。

6.标志 占3位,但⽬前只有两位有意义, 标志字段的最低位为MF,当MF = 1 时,表⽰后⾯还有分⽚,MF = 0表⽰这是最后⼀个分⽚ 中间位位DF,DF的意思是不能分⽚,当DF=0时,才允许分⽚ 7.⽚位移 占13位,分⽚之后的每⼀⽚在原来的数据报中的位置,即相对于数据报的起点位置,该⽚从何处开始,⽚位移以8个字节位单位, 8.⽣存时间 占8位,英⽂缩写为TTL(Time To Live),这个字段指明数据报在⽹络中的⽣存时间,每当数据报经过⼀个路由器,TTL就减1,当TTL为0时,路由器就丢弃该数据报,⽽不进⾏转发了,这样做的⽬的是为了防⽌数据报在⽹络中“兜圈⼦”⽽⽩⽩消耗⽹络资源,⼀般的操作系统都有默认的TTL: Linux 64 Windows 128 Unix 256 9.协议 占8位,协议字段指出数据包的数据部分使⽤的是何种协议,以便使⽬的主机的IP层知道应该将数据报中的数据交给哪个部分来处理,常见的协议和对应的字段值如下: ICMP 1 IGMP 2 IP 4 , IP数据报再封装到IP数据报中 TCP 6 IGP 9 UDP 17 IPv6 41 ESP 50 OSPF 89 10.⾸部检验和 占16位,只将⾸部检验过后的检验和填⼊此字段中,不检验数据报的数据部分,数据报每经过⼀个路由器都要重新计算检验和,检验和的计算过程如下: 先将检验和字段设置为全0, 然后将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和, 将得到的结果取反,并写⼊检验和字段,注意这个取反后的结果和原来的结果相加为全1 接收⽅收到数据报之后,也将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和, 若将得到的结果取反不为0,那么证明出错了,则丢弃该数据报,若取反结果为0,将数据报上交。

IP数据包格式简介

IP数据包格式简介

IP数据包格式简介IP 数据包格式IP 数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输状态。

一个完整的数据包由首部和数据两部分组成。

首部前20字节属于固定长度,是所有IP 数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据,见图5.3.1。

48161931版本号标志生存时间协议标识服务类型数据包总长度段偏移首部检验和源地址目的地址可选字段+ 填充位首部长度数据部分数据首部首部IP 数据包发送图5.3.1 IP 数据包格式1. 版本号(4bit )版本号占4位,是IP 协议所使用的版本号,目前是广泛使用的是第四版本,即IPv4。

2. 首部长度(4bit )首部长度用于指出IP 包头长度,用于标识数据包头在何处结束,所携带的数据在何处开始。

首部长度占四位,数值范围5~15,以4字节为单位,则IP 首部长度为20字节~60字节。

如假设首部长度取值“1010”,转换为十进制为“10”,表示IP 包头长度为10×4=40字节,数据从第41字节开始。

3. 服务类型(8bit )服务类型用于获得更好服务,大多数情况下并不使用。

当网络流量较大时,路由器会根据不同数据包服务类型取值决定哪些先发送,哪些后发送,见图5.3.2。

D 优先级T R C 未用0 1 23 4 56 7图5.3.2 服务类型格式(1)前3个bit 表示优先级,取值范围0~7共8个优先级,数值越低优先级越高。

(2)后四位是服务类型子字段,用于标识QOS 质量服务。

D :表示要求更低时延 T :表示要求更多吞吐量 R :表示要求更多可靠性 C :表示要求更小路径开销注:DTRC 默认4位值都为0,表示一般服务;DTRC只能1为设为1,如T为1,其余三位只能为0。

(3)最后1位尚未使用4. 数据包总长度(16bit)数据包总长度用于标识整个数据包(包含包头和数据)的总长度,结合首部长度可以计算出数据包所携带数据的起始地址和长度。

tcpip数据格式

tcpip数据格式

IP数据报格式IP数据报(datagram)的头部格式如下:Example Internet Datagram HeaderVersion:4 bits版本字段标明建立数据报的IP版本,目前的IP版本是IPv4,IPv6正在发展中。

IPv4:0100。

IHL:4 bitsIP数据报头部长度(Internet Header Length),其度量单位为4 Bytes(32 bits),因此IHL始终是4 Bytes(32 bits)的整数倍,最长可达15 * 4 = 60个字节。

IHL最小值为5(即20 Bytes),为不含填充字段和选项字段的最常见的IP数据报头格式。

Type of Service:8 bits服务类型,有3 bits的Precedence、1 bit的Delay、1 bit的Throughout、1 bit的Relibility和2 bits的Reserved组成。

其值一般为0x00,表示Routine+Normal Delay+NormalThroughout+Normal Relibility。

Total Length:16 bits总长度字段是指整个IP数据报的长度,以字节为单位。

理论上,IP数据报最长可达2^16-1=65535 Bytes(64KB)。

IP数据长度由该字段值减去IHL值计算得到。

Identification:16 bits标识符是发送者为了接收者重组数据报的依据。

当一个IP数据报比较大时,可能会被切分成多个数据包(fragments)分多次发送(此时Flags的第二位将置0,第三位置1),接收端依据该字段进行组包。

Flags:3 bitsThe internet modules use fields in the internet headerto fragment and reassemble internet datagrams when necessary fortransmission through "small packet" networks.该字段用于分段控制。

IP 数据报格式详解

IP 数据报格式详解

标识 生存时 间
标志 协议
源地址
片偏移 首部检验和
可变 部分
目 的地址
可 选 字 段 (长 度 可 变)
数据部分
填充
服务类型—— 占 8 bit,用来获得更好的服务 这个字段以前一直没有被人们使用
比特 0
1
2
3
4
5
6
7
优先级
D
T
R
C 未用
比特 0
4
8
16
19
24
31
版 本 首部长度 服 务 类 型
总长度

首 部
定 部 分
标识
生存时 间
协议
标志
源地址
片偏移 首部检验和
可变 部分
目 的地址
可 选 字 段 (长 度 可 变)
填充
数据部分
传送
首部
数据部分 IP 数据报
比特 0
1
2
3
4
5
6
7
优先级
D
T
R
C 未用
比特 0
4
8
16
19
24
31

首 部
定 部 分
版 本 首部长度 服 务 类 型
标识
生存时 间
协议
标志
源地址
总长度 片偏移
首部检验和
可变 部分
目 的地址
可 选 字 段 (长 度 可 变)
数据部分
填充
传送
首部
数据部分 IP 数据报
比特 0
1
2
3
4
5
6
7
优先级
D
T
R

IP报文格式详解

IP报文格式详解

清默网络 CCIE Team
技术群:137962123
电话 0551-5436206
185+185=370
报文分析专题
之 IP 报文格式
那么第一段的分段偏移为0,第二段分段偏移为1480/8=185,第三段为
Time to Live(生存时间):用于防止数据包在网络上无休止地被传输;长度8位,最大值255,每经过一台 路由器,TTL被减1。
| Time to Live | Protocol |
Header Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Verbose(详细内容):查看数据包传送的详细内容;一般用于查看延迟;
Padding(填充):通过在可选字段后面添加0来补足32位,为了确保报头长度是32的倍数。

TCP-IP包格式详解

TCP-IP包格式详解

可以用arp命令来检查ARP高速缓存。参数 -a的意思是显示高速缓存中所有的内容。
ARP Utility
五、RARP的分组格式
RARP分组的格式与ARP分组基本一致。 它们之间主要的差别是RARP请求或回答的 帧类型代码为0x8035,而且RARP请求的操 作代码为3,回答操作代码为4。
对应于ARP,RARP请求以广播方式传送, 而RARP回答一般是单播(unicast)传送的。
Stn. B ROUTER
Stn. C
Stn. D
MAC R1 NET N1
MAC R2 NET N2
Station B wants to send a frame to Station D


One Way – Using Router with Proxy ARP Station B Arp’s for Station D Router Proxy ARP responds with MAC address of R1 Station B transmits frame with SourceMAC=MB, SourceNetwork=N1B, DestinationMAC=R1, DestinationNetwork=N2D Router forwards frame with SourceMAC=R2, SourceNetwork=N1B, DestinationMAC=MD, DestinationNetwork=N2D Second Way – Station knows R1 is the designated Router for N2
分片实例
7、协议类型,可能是tcp,或者udp或者其他. 8、头部校验和,当数据到达时,头部所有的16 位累加起来,再取结果的补码,其结果应该为0. 9、32位的源地址和32位的目标地址, 10、选项 选项长度可变,提供某些场合下需要的控 制功能,IP首部的长度必须是4个字节的整数 倍,如果选项长度不是4的整数倍,必须填充 数据0。

IP包格式详解

IP包格式详解

形容词hardware(硬件)和protocol(协议)用来 描述ARP分组中的各个字段。例如,一个ARP 请求分组询问协议地址(这里是IP地址)对应 的硬件地址(这里是以太网地址)。
硬件类型字段表示硬件地址的类型。它的 值为1即表示以太网地址。协议类型字段表 示要映射的协议地址类型。它的值为0x0800 即表示IP地址。它的值与包含IP数据报的以 太网数据帧中的类型字段的值相同,这是有 意设计的。 接下来的两个1字节的字段,硬件地址长 度和协议地址长度分别指出硬件地址和协议 地址的长度,以字节为单位。对于以太网上 IP地址的ARP请求或回答来说,它们的值分 别为6和4。
Stn. B ROUTER
Stn. C
Stn. D
MAC R1 NET N1
MAC R2 NET N2
Station B wants to send a frame to Station D


One Way – Using Router with Proxy ARP Station B Arp’s for Station D Router Proxy ARP responds with MAC address of R1 Station B transmits frame with SourceMAC=MB, SourceNetwork=N1B, DestinationMAC=R1, DestinationNetwork=N2D Router forwards frame with SourceMAC=R2, SourceNetwork=N1B, DestinationMAC=MD, DestinationNetwork=N2D Second Way – Station knows R1 is the designated Router for N2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IP 数据包格式
IP 数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输状态。

一个完整的数据包由首部和数据两部分组成。

首部前20字节属于固定长度,是所有IP 数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据,见图5.3.1。

48
16
19
31
版本号
标志
生存时间

议标

服务类型数据包总长度
段偏移首




源地址目
的地址可
选字段+ 填
充位首部长度

据部



首部首部
IP 数据包
发送
图5.3.1 IP 数据包格式
1. 版本号(4bit )
版本号占4位,是IP 协议所使用的版本号,目前是广泛使用的是第四版本,即IPv4。

2. 首部长度(4bit )
首部长度用于指出IP 包头长度,用于标识数据包头在何处结束,所携带的数据在何处开始。

首部长度占四位,数值范围5~15,以4字节为单位,则IP 首部长度为20字节~60字节。

如假设首部长度取值“1010”,转换为十进制为“10”,表示IP 包头长度为10×4=40字节,数据从第41字节开始。

3. 服务类型(8bit )
服务类型用于获得更好服务,大多数情况下并不使用。

当网络流量较大时,路由器会根据不同数据包服务类型取值决定哪些先发送,哪些后发送,见图5.3.2。

D 优先级T R C 未用
0 1 2
3 4 5
6 7
图5.3.2 服务类型格式
(1)前3个bit 表示优先级,取值范围0~7共8个优先级,数值越低优先级越高。

(2)后四位是服务类型子字段,用于标识QOS 质量服务。

D :表示要求更低时延 T :表示要求更多吞吐量 R :表示要求更多可靠性 C :表示要求更小路径开销
注:DTRC 默认4位值都为0,表示一般服务;
DTRC只能1为设为1,如T为1,其余三位只能为0。

(3)最后1位尚未使用
4. 数据包总长度(16bit)
数据包总长度用于标识整个数据包(包含包头和数据)的总长度,结合首部长度可以计算出数据包所携带数据的起始地址和长度。

数据包总长度占16bit,最大取值为16个“1”,以字节为单位,因此数据包最大长度为655351字节。

但由于与以太网(局域网)允许的最大包长为1500字节,当超过网络允许的最大长度时需将过长的数据包分片。

5. 标识(16bit)
标识占16bit,用于数据包在分片重组时标识其序列号。

网络层将数据分片打包后,由于数据包会沿着不同路径在网络中投递,抵达接收方会存在乱序现象。

解决方法是将数据包贴上标识,抵达目的地再根据序号重组还原成数据。

6. 标志(3bit)
标志用于表示数据包分片信息,见图5.3.3。

0 1 2
MF DF未用
图 5.3.3 标志格式
(1)MF:更多数据包(More Fragment)。

MF=1表示后面还有分片的数据包;MF=0表示没有更多分片,本数据包是最后一个分片。

(2)DF:不分段(Do Not Fragment),DF=1表示该数据包不能被分片,DF=0表示该数据包可以被分片。

(3)最后1位尚未使用
7. 段偏移(13 bit)
段偏移用于标识本片数据在初始数据报文中的偏移量,占13位,偏移单位为8字节。

当较长的数据分片后,其中原数据的相对位置。

8. 生存时间(8 bit)
生存时间TTL(Time To Live)占8位。

TTL初始值由操作系统设置,数据包每经一个路由器转发其值减一,减至0时被丢弃,避免数据包在找不到目的地时不断被转发,堵塞网络带宽。

9. 协议(8 bit)
协议字段用于标识数据包所使用的传输协议,如TCP协议还是UDP协议。

目的主机收到数据包后会根据协议字段值交付上层相应协议处理。

10. 首部校验和(16 bit)
首部校验和只对IP数据包首部进行校验,不包含数据部分。

数据包每经过一个中间节点投递都要重新计算首部校验和,对首部进行校验。

11. 源地址(4 Byte)
源地址用于标识发送主机的IP地址。

由于IP地址长度为32位,因此源地址段占4字节。

12. 目的地址
目的地址用于标识接收主机的IP地址。

1“1111111111111111”共16个“1”转换为十进制为65535。

13. 选项字段和填充(40 bit)
有时需要在选项字段填充额外的“0”以保证 IP包头长度是32位的整数倍。

选项字段很少使用,并非所有主机和路由器都支持可选项,这里不做介绍。

相关文档
最新文档