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地址。

  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位的整数倍。

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

相关文档
最新文档