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包头加数据的长度。

ipv6基本知识

ipv6基本知识

一、IPv6包头IPv6 包头格式要么删除某些IPv4 包头字段,要么将这些字段设为可选。

尽管地址大小增加了,但这种更改却最大程度地减少了IPv6 包头所占用的带宽。

虽然IPv6 地址长度是IPv4 地址长度的四倍,但是IPv6 包头的大小只是IPv4 包头大小的两倍。

IPv6基本头格式固定1、IPV4报文头格式及各字段功能1.图示2.3.各字段功能4.版本号(Version):长度4比特。

标识目前采用的IP协议的版本号。

一般的值为0100(IPv4),0110(IPv6)5.IP包头长度(Header Length):长度4比特。

这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。

该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。

IP包头最小长度为20字节。

6.服务类型(Type of Service):长度8比特。

8位按位被如下定义PPP DTRC06.1 PPP:定义包的优先级,取值越大数据越重要000 普通(Routine)001 优先的(Priority)010 立即的发送(Immediate)011 闪电式的(Flash)100 比闪电还闪电式的(Flash Override)101 CRI/TIC/ECP(找不到这个词的翻译)110 网间控制(Internetwork Control)111 网络控制(Network Control)6.2 DTRCOD 时延: 0:普通1:延迟尽量小T 吞吐量: 0:普通1:流量尽量大R 可靠性: 0:普通1:可靠性尽量大M 传输成本: 0:普通1:成本尽量小0 最后一位被保留,恒定为07.IP包总长(Total Length):长度16比特。

以字节为单位计算的IP包的长度(包括头部和数据),所以IP包最大长度65535字节。

数据包报文格式(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包头(Packet Header)的格式版本(version):长度4比特,表示数据包的IP版本号,0x0100表示IP版本4,0x0110表示IP版本6报头长度(header lenght):长度4比特,表示IP包头长度,最小长度为20个字节,最大可以扩展到60个字节。

服务类型(Type of service):长度8比特,表示特殊数据包的处理方式。

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

总长度(Total Length):长度16比特,表示IP包的长度(包头+数据),所以IP 数据包的最大长度是65535(2^16)。

标识符(Identifier):长度16比特,通常与标记字段和分片偏移字段一起用于数据包的分段。

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

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

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

标记字段(Flag):长度3比特,其中第1位不使用,第2位是不分段(DF)位。

当DF位被设置为1时,表示路由器不能对数据包进行分段处理。

如果数据包由于不能被分段而未能被转发,那么路由器将丢弃该数据包并向源点发送错误消息。

第3位表示还有更多分段(MF)位,当路由器对数据包进行分段时,MF位为1,说明后面还有分段;MF位为0,说明这是最后一个分段。

分段偏移(Fragment Offset):长度13比特,表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。

请注意,如果一个分片在传输中丢失,那么必须在网络中同一点对整个数据包重新分片重新发送。

IP包头结构详解

IP包头结构详解

IP包头结构详解IP包头结构详解版本号(Version):长度4比特。

标识目前采用的IP协议的版本号。

一般的值为0100(IPv4),0110(IPv6)IP包头长度(Header Length):长度4比特。

这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。

该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。

IP包头最小长度为20字节。

服务类型(Type of Service):长度8比特。

8位按位被如下定义PPP DTRC0PPP:定义包的优先级,取值越大数据越重要000 普通(Routine)001 优先的(Priority)010 立即的发送(Immediate)011 闪电式的(Flash)100 比闪电还闪电式的(Flash Override)101 CRI/TIC/ECP(找不到这个词的翻译)110 网间控制(Internetwork Control)111 网络控制(Network Control)D 时延: 0:普通1:延迟尽量小T 吞吐量: 0:普通1:流量尽量大R 可靠性: 0:普通1:可靠性尽量大M 传输成本: 0:普通1:成本尽量小0 最后一位被保留,恒定为0IP包总长(Total Length):长度16比特。

以字节为单位计算的IP包的长度(包括头部和数据),所以I P包最大长度65535字节。

标识符(Identifier):长度16比特。

该字段和Flags和Fragment Offest字段联合使用,对较大的上层数据包进行分段(fragment)操作。

路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

标记(Flags):长度3比特。

该字段第一位不使用。

第二位是DF(Don't Fragment)位,DF位设为1时表明路由器不能对该上层数据包分段。

IPv6技术与应用3

IPv6技术与应用3

3.4.1 典型的路由器的配置
主机名称 主机密码 主机地址 路由

映射IPv4的IPv6地址
用于拥有IPv4和IPv6双协议栈节点的本地范围,仅在节点 内部映射IPv4的IPv6地址,IPv4地址不作为IPv6地址出现 在网络上,地址前80bit为0,其次16bit为1: 0000:0000:0000:0000:0000:ffff:206.123.31.2 0:0:0:0:0:ffff:206.123.31.2 ::ffff:206.123.31.2 0000:0000:0000:0000:0000:ffff:ce7b:1f01 0:0:0:0:0:0:ffff:ce7b:1f01 ::ffff:ce7b:1f01

3.2.2.1 单播地址--本地站点地址
用途: 打印机 内部网络服务器 网络交换机、网络设备 用于管理仅内部可以使用的服务器和路由 器
3.2.2.1 单播地址—可聚合全球单播地址

用于IPv6因特网的IPv6地址
3.2.2.1 单播地址 -—可聚合全球单播地址分配

范围: 2000::/3
本地站 点地址
Fec0::/10
未指定的 回环地址
::/128 ::1/128
本地链 路地址
fe80::/10
可聚合全 球地址
2001::/16 2002::/16 3ffe::/16
本地站 点地址
Fec0::/10
IPv4兼 容地址
0:0:0:0:0:0::/96
3.2.2.1 单播地址--本地链路地址

3.1.5 IPv6的最大传输单元(MTU)
IPv4的最小MTU长度为68个8bit字节 最大包头(60)+ 最小载荷(8) IPv6最小MTU长度为1280个8bit字节

IPv4&ipV6包头比较

IPv4&ipV6包头比较

首先,取消了IPv4包头的6个字段:IP包头长度(Header Length)、服务类型(Service Type)、标识(Identification)、标志(Flag)、标志偏移量(Fragment Offset)及头标校验和(Header Checksum);其次,在IPv6中有三个控制字段重新命名,并在一些条件下重新定义:长度(Length)、服务类型(Service Type)、生存时间(Time to Live);最后,增加了两个新的字段:优先级(Priority)和流标识(Flow Label)。

在IPv6中去掉了IPv4包头中的几个字段:1.包头长度——IPv4的包头只有20字节长,IPv6的是40字节的固定长度,那么如果有选项字段,IPv4的包头长度就要增加,也就是说ipv4的包头长度不是固定的。

因为在IPv6中不用选项字段,而用扩展字段,IPv6对于扩展字段的处理不同于IPv4对选项字段的处理。

2.标识、标志和片偏移----在IPv6网络中,中间路由器不在处理分段,而只在数据包产生的源节点处理分段。

这样中间路由器不处理分段就节约了大量cpu。

3.头部校验和----如今链路层可靠性高,2层和4层都有校验和,因而第3层的校验是多余的,这样也就去掉了数据包每次通过路由器时的重计算过程。

在IPv6中UDP校验是必须的。

4.选项和填充----IPv6中根本改变了选项字段,选项由扩展包头处理,当然填充字段也就取消了。

这样IPv6的包头就简化了许多,IPv6包头就变成了40个8bit的固定长度,与IPv4相比减少发送路径上路由器的处理。

另外IPv6中也加入了几个字段:1.流量分类----该字段类似与IPv4中的服务类型。

改该字段以区分业务编码点(DSCP)标记一个IPv6数据包,以此指明数据包应该如何处理。

2.流标签----该字段用来标记IPv6数据包的一个流3.有效荷载长度----表示有效荷载长度。

各种数据报和数据包格式

各种数据报和数据包格式

IP 数据包格式版本字段:4位。

当前的IP 协议版本是4,通常称为IPv4。

下一个版本是6,称为IPv6首部长度:4位,IP 数据报首部的长度,每个单位为4个字节。

IP 数据报的长度是4个字节的整数倍。

服务类型:8位,服务类型。

前3位为优先级,用于表示数据报的重要程度,优先级取值从0(普通优先级)到7(网络控制高优先级)。

D 、T 和R 位表示本数据报希望的传输类型。

D 表示低时延(Delay )需求T 表示高吞吐量(Throughput )要求R 代表高可靠性(Reliability )要求。

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

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

标识(identification):占16位。

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

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

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

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

标志(flag):占3位,但目前只有2位有意义。

标志字段中的最低位记为MF(More Fragment)。

MF=1即表示后面“还有分片”的数据报。

MF=0表示这已是若干数据报片中的最后一个。

标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。

只有当DF=0时才允许分片。

片偏移:占13位。

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。

也就是说,相对用户数据字段的起点,该片从何处开始。

片偏移以8个字节为偏移单位。

这就是说,每个分片的长度一定是8字节(64位)的整数倍。

总长度 服务类型版本 首部长度 标识 源站IP 地址寿命 协议首部校验和 片偏移 标志目的站IP 地址IP 选项(可选)填充 数据……生存时间:占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。

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

IP包头部各字段说明

IP包头部各字段说明

IP包头部各字段说明描述: IPv4首部一般是20字节长。

在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。

IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4IPv4首部一般是20字节长。

在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。

IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)0 4 8 12 16 19 24 31IP包头字段说明版本:4位,指定IP协议的版本号。

例如:Version=4,表示IP协议的版本号为4。

该部分占4个BIT 位。

包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。

由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。

IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。

就是说,它表示的是包头的总字节数是4字节的倍数。

例如:Header Length=20 Bytes,表示IP包头的总长度为20个字节。

该部分占4个BIT位,单位为4个字节,因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。

服务类型:定义IP协议包的处理方法,它包含如下子字段过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)延迟字段:1位,取值:0(正常)、1(期特低的延迟)流量字段:1位,取值:0(正常)、1(期特高的流量)可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)成本字段:1位,取值:0(正常)、1(期特最小成本)未使用:1位长度:IP包的总长认证:标志:是一个3位的控制字段,包含:保留位:1位不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。

IP包头结构

IP包头结构

IP数据包格式TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的.在首部的固定部分的后面是一些可选字段,其长度是可变的.IP数据报首部的固定部分中的各字段版本:占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4).IPv6 目前还处于起步阶段.首部长度:占 4 位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字 (1个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节.当IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便.首部长度限制为 60字节的缺点是有时可能不够用.这样做的目的是希望用户尽量减少开销.最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项.服务:占 8 位,用来获得更好的服务.这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过.1998年IETF把这个字段改名为区分服务 DS(Differentiated Services).只有在使用区分服务时,这个字段才起作用.总长度:总长度指首都及数据之和的长度,单位为字节.因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节.在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit).当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值,否则要分片.标识 (Identification):占 16位.IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段.但这个"标识"并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.标志 (Flag):占3 位,但目前只有2位有意义. 标志字段中的最低位记为MF(More Fragment).MF=1即表示后面"还有分片"的数据报.MF=0表示这已是若干数据报片中的最后一个.标志字段中间的一位记为DF(Don't Fragment),意思是"不能分片",只有当 DF=0时才允许分片.片偏移:占 13位.较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始.片偏移以 8个字节为偏移单位,这就是说,每个分片的长度一定是 8字节(64位)的整数倍.生存时间:占 8位,生存时间字段常用的英文缩写是TTL(Time To Live),其表明数据报在网络中的寿命.由发出数据报的源点设置这个字段.其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源.最初的设计是以秒作为 TTL的单位.每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间.若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1.当 TTL值为 0时,就丢弃这个数据报.协议:占 8 位.协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程.详细资料请看文章最后的注释.首部检验和:占 16位.这个字段只检验数据报的首部,但不包括数据部分.这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间,标志,片偏移等都可能发生变化),不检验数据部分可减少计算的工作量.源地址:占32位.目的地址:占 32位.IP数据报首部的可变部分IP首部的可变部分就是一个可选字段.选项字段用来支持排错,测量以及安全等措施,内容很丰富.此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目.某些选项项目只需要1个字节,它只包括1个字节的选项代码.但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍.增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的.这就增加了每一个路由器处理数据报的开销,实际上这些选项很少被使用.新的IP版本IPv6就将IP数据报的首部长度做成固定的.目前,这些任选项定义如下:1.安全和处理限制(用于军事领域);2.记录路径(让每个路由器都记下它的IP地址);3.时间戳(Time Stamp)(让每个路由器都记下IP数据报经过每一个路由器的IP地址和当地时间);4.宽松的源站路由(Loose Source Route)(为数据报指定一系列必须经过的IP地址);5.严格的源站路由(Strict Source Route)(与宽松的源站路由类似,但是要求只能经过指定的这些地址,不能经过其他的地址).这些选项很少被使用,并非所有主机和路由器都支持这些选项.实例下面是一个TCP的SYN数据包,大家可以分析一下:4500002C2A690000-4006B7580A616750-7CACAAAD24DE0E89-12DE958000 000000-60023908EA4D0000-020405B4∙版本:4,即IPv4;∙首部长度:5,即5*8=20B,说明没有可变部分;∙服务:00;∙总长度:002C,44B;∙标识:2A69;∙标志+片偏移:0000;∙生存时间:40,即64;∙协议:06,传输控制协议,也就是TCP;∙首部校验和:B758;∙源地址:0A616750;∙目的地址:7CACAAAD.后面的数据时TCP的头部,这里先简单列出来,后面会详细分析:∙源端口:24DE;∙目的端口:0E89;∙序号:12DE9580;∙确认号:00000000;∙数据偏移:6,即偏移24B.TCP的头部默认是20B,我们分析的数据包有一个TCP选项,占4B;∙保留+控制位:002,表明这是一个SYN包;∙窗口值:3908,14600,即发送者的接收窗口值;∙校验和:EA4D;∙紧急指针:0000;∙选项类型:02,最大报文段长度;∙选项长度:04;∙选项数据:05B4,即1355.注:数值值描述0 保留字段,用于IPv6(跳跃点到跳跃点选项);1 Internet控制消息;2 Internet组管理;3 网关到网关;4 IP中的IP(封装);5 流6 传输控制7 CBT8 外部网关协议9 任何私有内部网关(Cisco在它的IGRP实现中使用)10 BBNRCC监视11 网络语音协议12 PUP13 ARGUS14 EMCON15 网络诊断工具16 混乱(Chaos)17 用户数据报文18 复用19 DCN测量子系统20 主机监视21 包无线测量22 XEROXNSIDP23 Trunk-124 Trunk-225 leaf-126 leaf-227 可靠的数据协议28 Internet可靠交易29 ISO传输协议第四类30 大块数据传输协议31 MFE网络服务协议32 MERIT节点之间协议33 序列交换协议34 第三方连接协议35 域之间策略路由协议36 XTP37 数据报文传递协议38 IDPR控制消息传输协议39 TP+ +传输协议40 IL传输协议41 IPv642 资源命令路由协议43 IPv6的路由报头44 IPv6的片报头45 域之间路由协议46 保留协议47 通用路由封装48 可移动主机路由协议49 BNA50 IPv6封装安全有效负载51 IPv6验证报头52 集成的网络层安全TUBA53 带加密的IP54 NBMA地址解析协议55 IP可移动性56 使用Kryptonet钥匙管理的传输层安全协议57 SKIP58 IPv6的ICMP59 IPv6的无下一个报头60 IPv6的信宿选项61 任何主机内部协议62 CFTP63 任何本地网络64 SATNET和BackroomEXPAK65 Kryptolan66 MIT远程虚拟磁盘协议67 Internet Pluribus包核心68 任何分布式文件系统69 SATNET监视70 VISA协议71 Internet包核心工具72 计算机协议Network Executive73 计算机协议Heart Beat74 Wang Span网络75 包视频协议76 Backroom SATNET监视77 SUN ND PROTOCOL—临时78 WIDEBAND监视79 WIDEBAND EXPAK80 ISO Internet协议81 VMTP82 SECURE—VMTP(安全的VMTP)83 VINES84 TTP85 NSFNET—IGP86 不同网关协议87 TCF88 EIGRP89 OSPFIGP90 Sprite RPC协议91 Locus地址解析协议92 多播传输协议93 AX.25帧94 IP内部的IP封装协议95 可移动网络互连控制协议96 旗语通讯安全协议97 IP中的以太封装98 封装报头99 任何私有加密方案100 GMTP101 Ipsilon流量管理协议102 PNNI over IP103 协议独立多播104 ARIS105 SCPS106 QNX107 活动网络108 IP有效负载压缩协议109 Sitara网络协议110 Compaq对等协议111 IP中的IPX112 虚拟路由器冗余协议113 PGM可靠传输协议114 任何0跳跃协议115 第二层隧道协议116 D-II数据交换(DDX) 117 交互式代理传输协议118 日程计划传输协议119 SpectraLink无线协议120 UTI121 简单消息协议122 SM123 性能透明性协议124 ISIS over IPv4125 FIRE126 Combat无线传输协议127 Combat无线用户数据报文128 SSCOPMCE129 IPLT130 安全包防护131 IP中的私有IP封装;132 流控制传输协议;133~254 未分配;255 保留。

IP和TCP包头校验和计算方法

IP和TCP包头校验和计算方法



TCP 伪首部: c0 a8 01 10 源地址 c0 a8 01 67 目的地址 00 06 00 18 置空,协议类型,TCP 长度
计算: c0a8 0110 c0a8 0167 0006 0018 0401 0578 0000 0000 0000 0000 6002 0fca 0000 0000 0204 0fca c0a8 0110 c0a8 0167 0006 0018 0401 0578 0000 0000 0000 0000 6002 0fca F105 0000 0204 0fca

校验和的算法: (如果数据长度为奇数,最后一个字节要先变成 将数据以字为单位进行累加计算,得到一个双字的值。 字,然后在加到原来的双字中) 将得到的双字的值的高 16 位和低 16 位反复相加,直到高 16 位为 0,然后取低 16 位的值,再将这个 16 位的值取反就得到校验和的值。 实例: IP 头: 45 00 00 31 89 F5 00 00 6E 06 00 00(校验字段) DE B7 45 5D -> 222.183.69.93 C0 A8 00 DC -> 192.168.0.220 计算: 4500 0031 89F5 0000 6e06 0000 DEB7 455D C0A8 00DC =7 = DD38 应填充的校验和 在接收端接收到 IP 数据包后,要对 IP 头进行检查看是否有误,所用的算法与上面一致,不同的是最终的结 果要为 0。 计算: 4500 0031 89F5 0000 6E06 DD38 DEB7 455D C0A8 00DC =3 FFFC 0003 FFFC = FFFF ~ FFFF = 00000 正确 TCP 首部检验和与 IP 首部校验和的计算方法相同,在程序中使用同一个函数来计算。 需要注意的是,由于 TCP 首部中不包含源地址与目标地址等信息,为了保证 TCP 校验的有效性,在进行 TCP 校验和的计算时,需要增加一个 TCP 伪首部的校验和。 定义 TCP 伪首部如下: struct{ unsigned long saddr; //源地址 unsigned long daddr; //目的地址 char mbz;//置空,0x00 char ptcl; //协议类型,0x06 unsigned short tcpl; //TCP 长度,0x0018 } psd_header; 然后我们将这两个字段(TCP 伪首部 + TCP 首部)复制到同一个缓冲区 SendBuf 中并计算 TCP 校验 和: memcpy(SendBuf,&psd_header,sizeof(psd_header)); memcpy(SendBuf sizeof(psd_header),&tcp_header,sizeof(tcp_header)); tcp_header.th_sum=checksum((USHORT *)SendBuf,sizeof(psd_header) sizeof(tcp_header)); 实例: TCP 首部: 04 01 05 78 00 00 00 00 00 00 00 00 60 02 0f ca 00 00 00 00 02 04 0f ca

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)数据包总长度用于标识整个数据包(包含包头和数据)的总长度,结合首部长度可以计算出数据包所携带数据的起始地址和长度。

IP包头内容详解

IP包头内容详解

IP包头内容详解IP包头中的分⽚相关的字段有哪些,分别有什么含义?1.版本:4bit的版本字段表⽰IP的版本号。

如果为0100表⽰IPv4,如果为0110表⽰IPv6。

2.⾸部长度表⽰IP⾸部的总长度该字段的表⽰的长度单位为32bit(4 bytes),因此⾸部长度最⼤为15(1111)*32bit=60bytes。

在没有选项时,该字段的值为5,表⽰普通的IP包头长度20byte3. 服务类型4.总长度表⽰整个IP数据报的长度,以字节为单位。

所以IP数据报的最⼤长度为16个1=65535bytes。

5.标识唯⼀的标识主机发送的每⼀份数据报,由主机⽣成具有唯⼀性。

6.标志7.⽚偏移表⽰分⽚时,每⼀个分⽚的数据字段偏移原始数据报开始处的位置。

8.⽣成时间(TTL是什么,有什么作⽤?怎么做到的?⾯试提到)防⽌路由永远得循环下去表⽰该IP数据包可以经过的路由器的最⼤数量。

最⼤为256表⽰可以穿越256台路由,该字段采⽤减法的⽅式赋值,⽐如在开始时8个bit全部置位1,每经过⼀台路由器该字段的值减1。

如果该字段的值减到了0还没有送达⽬的地,那么该IP数据包将被丢弃。

最初设计这个字段是为了防⽌IP报⽂在⽹络中循环⽆限传输,占⽤带宽等问题。

9.协议协议(Protocol)区分上层或本层得协议x01表⽰ICMP协议、0x06表⽰TCP协议、0x17表⽰UDP协议9.⾸部校验和⽤来使接收端检验收到的报⽂是否正确只对IP⾸部计算校验和不包含后⾯的数据字段。

原因是IP的上层协议⽐如ICMP、IGMP、TCP、UDP协议的各⾃⾸部中均含有同时覆盖⾸部和数据的校验和10选项⼀般不使⽤该字段,该字段的值以32bit为单位,不⾜时以0补充。

————————————————版权声明:本⽂为CSDN博主「⽔中煮鱼冒⽓」的原创⽂章,遵循 CC 4.0 BY 版权协议,转载请附上原⽂出处链接及本声明。

原⽂链接:https:///qq_41901122/article/details/99689814。

IPv6包头是什么

IPv6包头是什么

IPv6包头是什么推荐文章穆斯林女性为什么要包头热度:基于IPV6协议的网络安全机制热度:禁用IPv6协议可以提高系统的运行速度吗热度: ipv6可以关闭吗怎么关闭热度: Ipv6无网络访问权限是什么意思热度:现如今,网络的使用已经十分普遍,同时也会有各种各样的局域网知识出现。

比如,IPv6包头是什么。

店铺在这里为大家详细介绍。

IPv6包结构IPv6包由IPv6包头、扩展包头和上层协议数据单元三部分组成·IPv6包头40字节固定长度,在本文的稍后部分将有详细论述。

·扩展包头IPv6包头设计中对原IPv4包头所做的一项重要改进就是将所有可选字段移出IPv6包头,置于扩展头中。

由于大多数IPv6扩展头不受中转路由器检查,因此改进后的IPv6包头可以提高路由器转发效率。

IPv6扩展头可以没有,也可以有一个或多个。

IPv6所做的另一个改进之处是:与IPv4选项不同,IPv6扩展头长度不固定,便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。

·上层协议数据单元(PDU)PDU由传输头及其负载(如ICMPv6消息、或UDP消息等)组成。

而IPv6包有效负载则包括IPv6扩展头和PDU,通常所能允许的最大字节数为65,535字节,大于该字节数的负载可通过使用扩展头中的Jumbo Payload选项进行发送。

IPv6包头IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。

Version(版本号):4位,IP协议版本号,值 = 6。

Traffice Class(通信类别):8位,指示IPv6数据流通信类别或优先级。

功能类似于IPv4的服务类型(TOS)字段。

Flow Label(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。

IP协议及包头格式

IP协议及包头格式

Internet协议(Internet Protocol)1. 介绍1.1. 产生原因IP协议是用于将多个包交换网络连接起来的,它在源地址和目的地址之前传送一种称之为数据报的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。

1.2. 范围IP的责任就是把数据从源传送到目的地。

它不负责保证传送可靠性,流控制,包顺序和其它对于主机到主机协议来说很普通的服务。

1.3. 接口这个协议由主机到主机协议调用,而此协议负责调用本地网络协议将数据报传送以下一个网关或目的主机。

例如TCP可以调用IP协议,在调用时传送目的地址和源地址作为参数,IP形成数据报并调用本地网络(协议)接口传送数据报。

1.4. 操作IP实现两个基本功能:寻址和分段。

IP可以根据数据报报头中包括的目的地址将数据报传送到目的地址,在此过程中IP负责选择传送的道路,这种选择道路称为路由功能。

如果有些网络内只能传送小数据报,IP可以将数据报重新组装并在报头域内注明。

IP模块中包括这些基本功能,这些模块存在于网络中的每台主机和网关上,而且这些模块(特别在网关上)有路由选择和其它服务功能。

对IP来说,数据报之间没有什么联系,对IP不好说什么连接或逻辑链路。

IP使用四个关键技术提供服务:服务类型,生存时间,选项和报头校验码。

服务类型指希望得到的服务质量。

服务类型是一个参数集,这此参数是Internet 能够提供服务的代表。

这种服务类型由网关使用,用于在特定的网络,或是用于下下一个要经过的网络,或是下一个要对这个数据报进行路由的网关上选择实际的传送参数。

生存时间是数据报可以生存的时间上限。

它由发送者设置,由经过路由的地方处理。

如果未到达时生存时间为零,抛弃此数据报。

对于控制函数来说选项是重要的,但对于通常的通信来说它没有存在的必要。

选项包括时间戳,安全和特殊路由。

报头校验码保证数据的正确传输。

如果校验出错,抛弃整个数据报。

IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20 字 节
可选项 数据
TCP的封装格式
0 15 16 31
源端口号
目标端口号
32位序列号 发送TCP进程 进程 发送 目标端接收进 对应的端口号 32位确认号 ~ 232-1范围内程的端口号 0 范围内, 范围内,数据段 U A P R S F 4位 标记,32-1范围内,对发送 0~2 范围内, 标记,用于到目的端对到 范围内 保留 达包的重组 ,告诉发送端 端的确认信息, 端的确认信息 16位窗口大小 首部 (6位) R C S S Y I 这个序号之前的数据段都收 长度 G K H T N N 到了 滑动窗口的大小, 16位校验和 ,与 为1时,数据发 滑动窗口的大小, 紧急指针有效位, 16位紧急指针 紧急指针有效位 确认序列号有 指明本地可接收数 通知接收端立即将数 时 时 时 16位紧急指针配合使 16位紧急指针配合使 ,请求建 为 效位,为1时,请求重 效位,表明该 1时 据提交给用户进程, 据提交给用户进程, 请求断 据的字节数 送完毕, 送完毕 新建立TCP连接 , 新建立 可选项 用 数据包包含确 立连接连接 不在缓存中停留, 不在缓存中停留,等 开连接 认信息 数据) 度(4) 型(8) 标志 标识符(16) , 优先级与服务类 IP包头部长度 包头部长度, 包头部长度 版本字段, 版本字段,IP v4 (3) 总长度(16) 段偏移量(13)
IP数据总长度 数据总长度
提供3层的 因为长度可变, 型,提供 层的 因为长度可变, TTL(8) 因此需要定义 QoS 协议号(8) 首部校验和(16) 上层来的数据到IP层会被分段 层会被分段, 上层来的数据到 层会被分段,这几 个字段用来对数据包进行标识, 个字段用来对数据包进行标识,使在 生命周期字段, 生命周期字段,经过一个 源地址(32) 数据到达目的端重组的时候, 数据到达目的端重组的时候,不会乱 路由器值减1, 协议字段, 0时,数 路由器值减 ,为协议字段,用来标识封 时 序 装的上层数据是UDP还 装的上层数据是 还 据包丢弃。 据包丢弃。为了防止一个 目标地址(32) 是TCP, , 是 , 数据包在网络中无限的循 UDP是17, TCP是6 是 环下去。 环下去。
相关文档
最新文档