IPv4与IPv6数据包格式

https://blog.csdn.net/frank_jb/article/details/45093615

 

本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别。

 

一、IPv4数据报

图1 IPv4数据报格式

版本号(version)

    不同的IP协议版本使用不同的数据报格式。

首部长度(HL, Internet Head Length)

    确定IP数据报中数据部分实际从哪里开始,包含可变数量的选项。若IP数据报没有包含选项,则IP数据报首部长度为20字节。

服务类型(TOS, Type Of Service)

    更好地服务不同类型IP数据报(如实时数据报IP电话应用、非实时通信流FTP),Cisco将TOS前3位标识不同服务等级,即优先级。

数据报长度(TL, Total Length)

    IP数据报长度,即首部+数据。

分片:标识(identification)、标志(flags)、段位移(Fragment Offset)

    这3个字段跟IP分片有关,当目的主机从同一个源收到一批数据报时,需要确定这些数据报是完整数据报还是分片后的数据报,数据报首部标识字段解决这个问题,检查数据报的标识号确定哪些数据报真正是同一个较大数据报的片;如何判断最后一个分片已收到,数据报首部标志字段解决这个问题,将最后一片的标志为0,其他标记为1;如何顺序重组这些片,这就需要记录每个片的在数据报有效净荷的偏移量,这也确定了片是否丢失。若丢失某些片,则丢弃这个不完整的数据报(不会交给传输层)。需要可靠传输怎么办呢,由传输层让源重传原始数据摄中的数据(如TCP)。

寿命(TTL, Time To Live)

    每次数据报经过一台路由器时,该字段的值减1,若TTL字段减为0,则丢弃该数据报,从而确保数据报不会永远在网络循环。

上层协议(Protocol)

    该字段用于指明IP数据报的数据部分应该交给哪个传输层协议(6为TCP、17为UDP)。

首部检查和(Header Checksum)

    只是对IP首部进行检验,对整个TCP/UDP报文段检验交由TCP/UDP完成。将首部中的每两个字节当作一个数,用反码运算对这些数求和,该和按1补码值存放在检查和字段。当路由器收到IP数据报时,计算其首部检查和,与该字段值比较,若出错则丢弃该数据报。

    注:因为TTL字段及选项字段可能改变,所以每个路由器上的检查和都须重新计算并存放在原处。(检查后,再更新)

源和目的IP地址(Source/Destination Address)

选项(Options)

    选项字段允许IP首部被扩展,由此导致数据报首部长度可变,故不能预先确定数据字段从何开始,同时也使路由器处理一个IP数据报所需时间差异很大(有的要处理选项,有的不需要)。

数据(Data)

    当使用TCP/UDP协议时,数据即为传输层报文段(TCP/UDP)。数据字段也可承载其他类型数据,如ICMP报文段。

二、IPv6数据报

IPv4与IPv6数据包格式_第1张图片

图2 IPv6数据报格式

版本号(version)

    不同的IP协议版本使用不同的数据报格式。

通信量等级(Traffic Classes)

    使得源节点和路由器能够识别IPv6信息包的优先级。与IPv4服务类型TOS字段含义类似。

流标签(Flow Label)

    标记那些需要IPv6路由器特殊处理(如一种非默认服务质量或实时服务)的信息包顺序。

有效负载长度(Payload Length)

    定长40字节数据报首部后面的字节数量,包括扩展报头和负载数据,即数据报长度-40。

下一个首部(Next Header)

    当IPv6没有扩展报头时,该字段的作用和IPv4的上层协议字段一样。当含有扩展报头时,该字段的值即为第一个扩展报头的类型。

跳限制(Hop Limit)

    转发数据报的每台路由器对该字段的值减1,若减为0则丢弃该数据报。

源和目的IP地址(Source/Destination Address)

数据(Data)

    当数据报到达目的地时,该有效载荷就从IP数据报移出,并交给下一个首部字段中指定的协议。

源和目的IP地址(Source/Destination Address)

选项(Options)

    选项字段允许IP首部被扩展,由此导致数据报首部长度可变,故不能预先确定数据字段从何开始,同时也使路由器处理一个IP数据报所需时间差异很大(有的要处理选项,有的不需要)。

数据(Data)

    当使用TCP/UDP协议时,数据即为传输层报文段(TCP/UDP)。数据字段也可承载其他类型数据,如ICMP报文段。

 

三、区别

3.1 首部长度

    首部长度可变,IPv4首部的选项字段允许IP首部被扩展,由此导致数据报首部长度可变,故不能预先确定数据字段从何开始,同时也使路由器处理一个IP数据报所需时间差异很大(有的要处理选项,有的不需要)。基于此,IPv6采用固定40字节长度的报头长度(称基本报头)。IPv6如何实现IPv4选项字段类似的功能,答案是扩展报头,并由IPv6基本报头的下一个首部指向扩展报头(如果有的话)。路由器不处理扩展报头,提升了路由器处理效率。

3.2 分片/重组

    IPv6,分片与重组只能在源与目的地上执行,不允许在中间路由器进行。分片与重组是个耗时的操作,将该功能从路由器转移到端系统,大大加快了网络中的IP转发速率。那,如果路由器收到IPv6数据报太大而不能转发到出链路上怎么办?该路由器丢弃该包,并向发送发发回一个"分组太大"的ICMP差错报文,于是发送发使用较小长度的IP数据报重发数据。

3.3 首部检查和

    每个路由器上,IPv4首部检查和都需要重新计算,是一项耗时操作。加之,传输层和链接层协议执行了检验操作,网络传输可靠性提升,所以IPv6不进行首部检查和,从而更快速处理IP分组。

 

既然IPv6有如此之多优势,那么,接下来的问题,如何从IPv4向IPv6迁移?

 

参考资料:

[1] 《TCP/IP指南》

[2] 《计算机网络--自顶向下方法与Internet特色》[M].

[3] 基于6LoWPAN的IPv6无线传感器网络的研究与实现[D].上海交通大学.

IPv4g和IPv6数据报格式visio原文件 IPv4g和IPv6数据报格式.rar   

 

ipv4ipv6包头

阅读数 1845

先上图:IPv4包头:IPv6包头: 如图,可以清楚看到在IPv6中去掉了IPv4包头中的几个字段:1.包头长度——IPv4的包头只有20字节长,IPv6的是40字节的固定长度,那么如果有选项字段,I...博文来自: he-honghua的专栏

IPv6首部标准格式详解 [11-04-30] 所属类别[protocol]

阅读数 1269

IPv6头部格式:目前在资料上可搜索到两种格式,RFC1883和RFC 2460,目前1883已被2460取代,为了保持更好的兼容性本文中的C语言实现主要根据RFC2460实现,RFC1883中IPv...博文来自: xiao_xiaoli的专栏

IPV6地址和报文结构详解

阅读数 1万+

为什么地址长度128位V4的32位是因为当时的互联网上的主机CPU字长为32位。从处理效率和未来网络扩展性角度考虑,128位是十分合适的。地址结构地址格式注意内嵌V4的V6地址V4前有96位,因V4有...博文来自: qq_34127958的博客

IPv6数据报头部格式

阅读数 2万+

IPv6数据报头部格式博文来自: changsoon

 

IPV6基础知识】IPV6报头结构

阅读数 2354

上回介绍了IPV6的地址结构,这回来看看IPV6的地址结构博文来自: hduffddybz的专栏

IPv6地址格式浅谈

阅读数 2万+

关于IPv6,大概每个人都多多少少使用过,现在越来越多的机构的也在使用IPv6,但是总是觉得接触到的东西都没有真正清晰的说明Pv6到底是怎么回事,所以决定写个文章理一下思路。IPv6是Internet...博文来自: ZERO_INDIGO的博客

IPv6 报文构造库

阅读数 771

目前,专为用户IPv6网络渗透测试的工具还比较少。THCIPv6是一个开放源代码的IPv6工具,它提供了一个易于使用的IPv6报文构造库,能够方便地构造各种IPv6报文。http://download...博文来自: tianxiajianling的专栏

IPV4 报文格式

阅读数 1875

  ipv4 第一行Version(版本)字段长度为4位,标识了数据包的IP版本号0100表示IP版本4   0110表示IP版本6(其他所有版本号仅作为“历史产物”)IHL(头部长度)字段长度为4位...博文来自: 舌耳的博客

IP报文格式学习笔记

阅读数 9065

由于记性不好的原因,一直对报文格式的字段记的不是很牢固,故花了一天时间学习IP报文格式,第二天来总结.过两天再继续学习TCP和UDP.IP报文格式如下图所示(图片来源—百度百科): 版本(Versio...博文来自: Shine's Blog

IPv4IPv6数据包格式 - CSDN博客

6-4

 

IPv4IPv6数据报格式解析 - zhang434的专栏 - CSDN博客

11-22

IPv4与IPv6数据包格式 - frank_jiang的专栏 04-17 1.4万 本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别。 ...

Windows Server 2016 DHCP 服务管理

掌握 Windows Server 2016 中,DHCP 的工作原理,能够在 Windows Server 2016 的桌面体验和 Server Core 模式中,通过 GUI 和 Powershell 完成安装,初始化,作用域创建,选项设置,策略筛选,服务器迁移,高可用性和可靠性配置,为目标设备提供 IPv4 和 IPv6 的地址。学院讲师:李海园

IPv4 报文格式

阅读数 532

今天上课讲到这,感觉老师讲的挺好的,一些设计原理也讲的比较细致,特此记录一下。首先IPv4整体报文格式如下(图来自https://wenku.baidu.com/view/78c7a218590216...博文来自: 在到处之间找我

cap,pcap文件中的ipv4数据包转成ipv6数据包 - mincheat..._CSDN博客

4-5

IPv4与IPv6数据包格式 04-17 阅读数 1万+ 本文给出IPv4与IPv6数据报格式示意...博文 来自: frank_jiang的专栏 IPV6地址和报文结构详解 04-12 阅读数 1万...

ipv6ipv4报文格式 - 轻飘飞扬 - CSDN博客

5-17

 

IPv4头部和IPv6头部

阅读数 2183

IPv4:IPv4数据报。头部大小可变,4位的IHL字段被限制为15个32位字(60)字节。一个典型的IPv4头部包含20字节。源地址和目的地址的长度位32位。第二个32位字的大部分用于IPv4分片功...博文来自: weixin_37590253的博客

IPv6数据报头部格式 - changsoon - CSDN博客

5-25

RFC2460定义了IPv6数据报格式。总体结构上,IPv6数据报格式与IPv4数据报格式是一样...博文 来自: frank_jiang的专栏 【IPV6基础知识】IPV6报头结构 07-21 阅读数...

IPV4IPV6的区别(史上最详细) - 石头的茅坑 - CSDN博客

1-24

IPv4数据报 图1 IPv4数据报格式 版本... : frank_jiang的专栏 与IPv6的...地址我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)...

IP报文格式详解

阅读数 4万+

IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图(图片来源:百度百科)版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。首部长度:IP报头的长度。固定部分的...博文来自: 海阔天空sky的博客

IPv4IPv6数据报格式详解

阅读数 9

摘要:本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别。一、IPv4数据报图1IPv4数据报格式版本号(version)不同的IP协议版本使...博文来自: weixin_34168700的博客

IPv4IPv6数据报格式详解 - weixin_34168700的博客 - CSDN博客

5-17

本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6...博文 来自: frank_jiang的专栏 IPv6和IPv4基本头部格式 02-07 阅读数 5098...

IPv6IPv4基本头部格式 - soipray的博客 - CSDN博客

5-29

IPv4与IPv6数据包格式 04-17 阅读数 1万+ 本文给出IPv4与IPv6数据报格式示意...博文 来自: frank_jiang的专栏 IPv4头部和IPv6头部 07-23 阅读数 2061 ...

IPv4IPv6报文格式介绍和对比

阅读数 88

IPv4和IPv6报文介绍和对比IPv4数据报IPv4报文详解IPv6数据报IPv6报文详解IPv4数据报IPv4报文详解版本Version:Version域记录了数据报属于哪一个版本的协议。不同版本...博文来自: weixin_41059155的博客

 

IPv6邻居发现协议

阅读数 5293

邻居发现协议NDP邻居发现协议NDP(NeighborDiscoveryProtocol)是IPv6协议体系中一个重要的基础协议。邻居发现协议替代了IPv4的ARP(AddressResolution...博文来自: 曹世宏的博客

IPV4数据报头部格式

阅读数 1万+

IPV4数据报头部格式1.图解2.前言3.格式博文来自: changsoon

IPv4数据包格式

05-12

此资料总结了ipv4数据包的格式,其中介绍了格式,分片,封装与重组,差错等知识,对于总结学习有很大好处。

下载

IPv4头部结构详解

阅读数 4719

IPv4头部结构详解以下为书中原文摘录:博文来自: AllenHuai的专栏

IP报文分析(IPV4

阅读数 285

IPV4数据包的整体结构如下图1:图1IP报文结构如下图2:图2详细介绍如下:1.4位版本号,对ipv4来说,版本号为4。2.4位首部长度,首部长度单位是32位(即4字节),所以首部长度的范围是0-1...博文来自: doubelief's blog

 

IPv4 和 IPv6 头部结构主要区别

阅读数 1万+

这里对IPv4和IPv6头部的一些常用的重要字段进行整理总结,没做出解释的是一些不常用到的字段,有兴趣可以自行查阅。MACheaderIPv4headerData:::1.      IPv4 hea...博文来自: 风雨同行

IPv6 地址格式

阅读数 1万+

IPv6地址格式IPv6地址大小为128位。首选的IPv6地址表示为:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个x是代表一个4位的十六进制数字。IPv6地...博文来自: jiahehao的专栏

IPv6IPv4基本头部格式

阅读数 5231

原帖:http://book.51cto.com/art/201204/329740.htm根据IPv4报文中存在的问题,IPv6报文头格式与IPv4相比进行了一些改动。IPv6头部结构遵循以下新规则...博文来自: soipray的博客

cap,pcap文件中的ipv4数据包转成ipv6数据包

阅读数 801

cap,pcap文件结构(解析),网上多得是,这里就不写了。 写这个,主要是工作中正好需要大量的ipv6数据包,但是ipv6数据包不太好找,干脆就直接写个简单的工具,把ipv4转成对应的ipv6,可用...博文来自: mincheat的专栏

ipv6协议报文格式

阅读数 5200

一、ipv6的基本格式ipv6报文格式从简单性来看,比ipv4较简单,而且ipv6的基本头部的长度是固定的。相较与ipv4,ipv6去掉了一些头部,把这些头部全部弄到了后面的扩展投不中。ipv6的报文...博文来自: tym8865的专栏

 

IPv4IPv6数据报格式解析

阅读数 2222

IPv4数据报图1IPv4数据报格式版本号(version)   不同的IP协议版本使用不同的数据报格式。首部长度(HL,InternetHeadLength)   确定IP数据报中数据部分实际从哪里...博文来自: zhang434的专栏

Linux IPv4报文处理浅析

阅读数 354

对于接收到的报文,如果不被丢弃、不被网桥转发,会调用netif_receive_skb()提交给IP层;而对于IP层向外发送的报文,则通过调用dev_queue_xmit()提交给数据链路层。本文就以...博文来自: abcLinux

分析IP协议数据包格式

阅读数 9213

通过wireshark软件的使用加深对此的了解(报头长度,版本,总长度)。通过浏览网页产生大量数据包。应该多捕捉多一些包,并去了解每个字段的含义。校验和运算既可选择在数据被转换成网络字节序前,也可选择...博文来自: 林洋洋博客

IP数据包格式及分片

阅读数 8812

一、IP数据包的报文格式   首先我们需要了解数据报的格式:1-1.版本4位,表示版本号,目前最广泛的是4=B1000,即常说的IPv4;相信IPv6以后会广泛应用,它能给世界上每个纽扣都分配    ...博文来自: LeetCode8023的博客

IP数据报格式详解

阅读数 2万+

IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据...博文来自: believe的专栏

 

网络详解 - 网络层(3)IPv4数据报格式

阅读数 250

IP数据报的格式可以说明有哪些功能,通常都是一行32位、4字节来表示数据包的格式,如下图。Version:版本号现在简介的IPv4,所以版本号固定为4,即0100IHL:InternetHeaderL...博文来自: yeweilei的博客

IPv4报文格式

阅读数 655

IP报文格式详解IP包头的格式:01234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...博文来自: maintain 的博客

IPV4IPV6的区别(史上最详细)

阅读数 39

https://blog.csdn.net/chao199512/article/details/86139714博文来自: 石头的茅坑

ipv6ipv4报文格式

阅读数 66

ipv6入ipv4隧道报文格式博文来自: 轻飘飞扬

IPv4分组格式

阅读数 1218

AnIPpacketconsistsofaheadersectionandadatasection.IP分组首部格式数据分片方法博文来自: 苦笔的博客

 

.cap .pcap数据包文件(ipv4 转ipv6

09-29

把.cap .pcap文件中的ipv4数据包转换成对应的ipv6数据包,其他的数据包不变, 可以用于批量生产ipv6数据包(用于测试),资源包括源代码和已经编译好的exe,还有一个批量处理的.bat文

下载

【TCP/IP 笔记】IPv6-02 | IPv6 数据报

阅读数 96

参考<TheTCP/IPGuide>http://tcpipguide.com文章目录IPv6数据报(Datagram)IPv6数据报一般格式IPv6主报头...博文来自: Page's Blog

IPv6数据包不会因为网络中的MTU分片?

10-12

IPv6报头中并没有指示数据包是不是被分片的DF标志,是不是说IPV6数据包不会在传输过程中被分片??论坛

WireShark下抓取IPv6数据包

阅读数 1万+

WireShark是款强大是网络数据包抓取很分析工具,对它的使用已经有很多的帖子和博客了。但对于WireShark使用的文章大多是关于IPv4的,而笔者主要是使用WireShark进行IPv6数据包的...博文来自: eddy_liu的专栏

tcp ipv6 pcap 数据包

08-19

tcp ipv6 pcap 数据包

下载

EMPOWER YOUR AI TRANSFORMATION 标新·立异 2019第四范式AI新品发布会

探寻企业AI转型之道

用tcpdump和ethereal捕获IPv6数据包

阅读数 5243

tcpdump和ethereal都是著名的开源网络数据包捕获和分析软件,大家对肯定都曾经用过,其中Ethereal是通过capturefilter设置捕获规则,displayfilter设置显示规则,...博文来自: Gr1x's Blog

IPv6报头与IPv4报头的区别

阅读数 1万+

报头格式IPv4报头如表1所示,包含20bit+选项,13个字段,包括3个指针。IPv4报头 IPv6报头由基本报头+扩展报头链组成,其中基本报头如下表所示,包含40bit,8个字段。IPv6报头IP...博文来自: 一介码夫

IPv4 与 IPv6 的比较

阅读数 8786

IPv4地址长度:32位地址数量:2^32(约4×10^9)IPv4头结构 IPv6地址长度:128位地址数量:2^128(约3.4×10^38)IPv6头结构 IPv6与IPv4头部对比 IPv4与...博文来自: 阳光岛主

[计算机网络笔记]第四部分——网络层 IPv4报文结构

阅读数 911

IPv4      IPv4报文结构版本号首部长度(单位:4字节)服务类型数据包长度标识留空DFMF标识片偏移(单位:8字节)TTL上层协议号首部校验和源IP地址目标IP地址...博文来自: lqadam的博客

ipv6ipv4(1)

阅读数 1418

20174年7月5日参考资料:《Linux高性能服务器编程》       linux-2.6.32源代码《TCP/IP详解》(卷一)        网络编程最重要的一个环节就是要理清TCP/IP传输协...博文来自: zy627836411的博客

 

IPv4格式、首部各字段意义及地址分类知识点总结

阅读数 431

IPv4格式、首部各字段意义及地址分类知识点总结IPv4数据报格式IPv4首部各字段意义版本:占4位。指IP协议是IPv4还是IPv6,通信双方的版本必须一致。首部长度:占4位。以4B为单位,最大值为...博文来自: 日沉云起的博客

IPv4数据包的输入处理

阅读数 183

输入接口定义/** IPprotocollayerinitialiser*/staticstructpacket_typeip_packet_type={ //IP层的数据包类型为ETH_P_IP,当...博文来自: 九天小哥的专栏

IPv4数据报的分段与重组

阅读数 2571

IPv4数据报的分段和重组博文来自: changsoon

IPv6扩展头部 (一) 扩展头部格式、类型与扩展选项

阅读数 4018

 之前几篇博客介绍了IPv6的扩展头部,包括分片头部和路由头部。接下来介绍一下IPv6扩展头部以及扩展选项的内容,可能会有这样的疑问,有了扩展头部怎么还需要扩展选项?扩展选项是干嘛用的?本篇博客就介绍...博文来自: fuyuande的博客

IP数据包的传输全过程详解

阅读数 7130

主机A与主机B通信,APingB,图:A-交换机-B,AB同一子网(1)ping数据包用的是ICMP协议,IP协议的一个子协议,位于三层,包含A的IP,B的IP,三层进行IP封装成包,进入二层(2)A...博文来自: u013485792的专栏

 

基于linux-2.6.31的IPV6数据包接收流程分析

阅读数 4335

staticstructpacket_typeipv6_packet_type__read_mostly={        .type=cpu_to_be16(ETH_P_IPV6),        ...博文来自: 飞火映天

将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化

阅读数 6万+

本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自: Lynn_Blog

linux上安装Docker(非常简单的安装方法)

阅读数 28万+

最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量...博文来自: 我走小路的博客

Android 拍照、选择图片并裁剪

阅读数 3万+

前言:前段时间做项目用到了图片裁剪,调用系统裁剪图片,结果在我的小米3上一直有问题,裁剪界面打不开,在其他设备上没问题,于是研究其他软件是怎么做的,淘宝的裁剪图片是自己做的,当然没问题,京东的是调用的...博文来自: zwenkai

Intellij IDEA 如何通过数据库表生成带注解的实体类图文详细教程

阅读数 2万+

Intellij IDEA 如何通过数据库表生成带注解的实体类图文详细教程 Intellij IDEA 如何通过数据库表生成带注解的实体类 Contents 第一步:新建...博文来自: liu_yulong的专栏

Python for Android,将你的Python应用打包为APK文件

阅读数 2999

采摘处:http://www.iteye.com/news/23978博文来自: crazy_fire

灰度图像的自动阈值分割(Otsu 法)

阅读数 4万+

灰度图像的自动阈值分割(Otsu 法)机器视觉领域许多算法都要求先对图像进行二值化。这种二值化操作阈值的选取非常重要。阈值选取的不合适,可能得到的结果就毫无用处。今天就来讲讲一种自动计算阈值的方法。这...博文来自: Ivan 的专栏

人脸检测工具face_recognition的安装与应用

阅读数 9万+

人脸检测工具face_recognition的安装与应用博文来自: roguesir的博客

Android 合并生成分享图片(View截图)

阅读数 3万+

用以前以前写过的自定义课表软件 ,Android 自定义View课程表表格 原生View截图合成分享的图片 看到的是图片只显示到11节处,下面的没有...博文来自: ShallCheek

windows下python绘图库matplotlib安装方法(亲测)

阅读数 2万+

本matplotlib安装过程在一定程度上参考了 http://blog.csdn.net/qrlhl/article/details/48978107 因为学习机器学习的需要,又准备参考《机器学...博文来自: SCUT_Arucee的博客

【HTTP】Fiddler(一) - Fiddler简介

阅读数 32万+

1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包...博文来自: 专注、专心

python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)

阅读数 11万+

1.从pyCharm提示下载PIL包  http://www.pythonware.com/products/pil/   2.解压后,进入到目录下 cd /Users/jianan/Dow...博文来自: 专注于cocos+unity+服务器全栈

maven项目生成的war包在tomcat下运行报错

阅读数 4万+

maven项目在tomcat博文来自: 直到世界的尽头

Jackson 工具类使用及配置指南

阅读数 3万+

目录 前言Jackson使用工具类Jackson配置属性Jackson解析JSON数据Jackson序列化Java对象 前言 Json数据格式这两年发展的很快,其声称相对XML格式有很对好处...博文来自: kobejayandy的专栏

编译提示imgproc.hpp:50:33: 致命错误: opencv2/core/core.hpp:没有那个文件或目录解决办法

阅读数 8980

将 /usr/local/arm/lib/opencv/include/下文件夹 opencv2 复制到  /usr/local/arm/4.3.2/arm-none-linux-gnueabi/in...博文来自: x397794823的博客

13-Jsp防止二次提交(重复提交) 时间戳

阅读数 2139

servlet页面代码:@每次请求时产生一个token(一般为时间戳),存于session中并随之用hidden提交,在servlet中判断接收到的token和session中的是否一致来判断是否重复...博文来自: 高调做事,低调做人!

APNs初体验

阅读数 9683

首先,确定你已经有了CSR证书请求、开发证书和App ID。如果你不是第一次开发iOS应用程序,那么你可能已经有了这些东西。那么你可以继续以下的步骤。一、配置App ID登录你的provisionin...博文来自: kmyhy的专栏

android利用recyclerview展示带有日期的图片列表

阅读数 2444

目前还没有写出这个demo,不过可以参考下面这两个链接,一个是显示日期的,还有一个是合并单元格: 合并单元格: http://1029457926.iteye.com/blog/229...博文来自: ddddwwww2的博客

spark ml 随机森林源码笔记一

阅读数 3171

以回归为例吧,回归在某些场合可能更精准 支持连续变量和类别变量,类别变量就是某个属性有三个值,a,b,c,需要用Feature Transformers中的vectorindexer处理 上来是一堆...博文来自: chencheng12077的博客

微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用

阅读数 18万+

扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自: Marswill

强连通分量及缩点tarjan算法解析

阅读数 66万+

强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自: 九野的博客

jquery/js实现一个网页同时调用多个倒计时(最新的)

阅读数 54万+

jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自: Websites

关于SpringBoot bean无法注入的问题(与文件包位置有关)

阅读数 26万+

问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统...博文来自: 开发随笔

4种方法让SpringMVC接收多个对象 List 表单提交,以BeanListModel接收

阅读数 2万+

http://blog.csdn.net/lutinghuan/article/details/46820023博文来自: jajave

Qt 之等待提示框(QMovie)

阅读数 2万+

简述关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的。简述 ...博文来自: 本博客暂停更新,后期专注维护个人公众号『高效程序员』,欢迎关注!

python版本DDOS攻击脚本

阅读数 2万+

今天为了休息下,换换脑子,于是就找到了我之前收藏的一篇python的文章,是关于ddos攻击的一个脚本,正好今天有空,就实践下了。 附上源码pyDdos.py: #!/usr/bin/env ...博文来自: jeepxiaozi的专栏

Spark2学习1之基本环境搭建(win)问题

阅读数 5万+

更多代码请见:https://github.com/xubo245/SparkLearning 版本:Spark-2.0.01解释 从【2】中下载release版,idea打开mvn packag...博文来自: Keep Learning

Spring Boot MyBatis 动态数据源切换、多数据源,读写分离

阅读数 3万+

项目地址:https://github.com/helloworlde/SpringBoot-DynamicDataSource/tree/dev 在 Spring Boot 应用中使用到了 MyB...博文来自: HelloWood

 

IPv6数据报头部格式

https://blog.csdn.net/u011784495/article/details/71693296

 

文章摘自书籍《深入理解计算机网络 王达 机械工业出版社》 
IPv4数据报头格式请点击此处

IPv6数据报头部格式

RFC2460定义了IPv6数据报格式。总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的,但在IPv6数据报数据部分还可以包括0个或者多个IPv6扩展报头(Extension header), 如下图所示。IP报头部分固定为40字节长度,而有效载荷部分最长不得超过65535字节。

 


这里写图片描述 

 

IPv6和IPv4之间的最大差别在于:IP地址的长度从32位到128位。 
通过裁剪IPv4报头中的某些字段,或把一些字段移入到扩展报头中,IPv6基本报头的总长度大大减小了。IPv6使用固定长度的基本报头,从而简化了转发设备对IPv6报文的处理,提高了转发效率。尽管IPv6地址长度是IPv4地址长度的4倍,但IPv6基本报头的长度只有40字节,为固定的IPv4报文头长度(不包括选项字段)的2倍。IPv5报头格式如下图所示。

 


IPv6数据报头格式 
图片来源:https://www.oschina.net/news/29748/from-ipv4-to-ipv6 

 

各字段作用

版本(Version)

版本字段用来表示IP数据报使用的是IPv6协议封装,占4位,对应值为6(0110)。

通信分类(Traffic Class)

通信分类字段用来标识对应IPv6的通信流类别,或者说是优先级别,占8位,类似于IPv4中的ToS(服务类型)字段。

流标签(Flow Label)

流标签字段时IPv6数据报中新增的一个字段,占20位,可用来标记报文的数据流类型,以便在网络层区分不同的报文。流标签字段有源节点分配,通过流标签、源地址、目的地址三元组方式就可以唯一标识一条通信流,而不用像IPv4那样需要使用五元组方式(源地址、目的地址、源端口、目的端口和传输层协议号)。这样发动的最大好处有两点:一是流标签可以和任意的关联,需要标识不同类型的流(可以是非五元组)时,无需对流标签做改动;二是流标签在IPv6基本头中,使用IPSec时此域对转发路由器可见,因此转发路由器可以在使用IPv6报文IPSec的情况下仍然可以通过三元组(流标签、源地址、目的地址)针对特定的流进行QoS(质量服务)处理。

有效载荷长度(PayLoad Length)

有效载荷长度字段是以字节为单位的标识IPv6数据报中有效载荷部分(包括所有扩展报头部分)的总长度,也就是除了IPv6的基本报头以外的其他部分的总长度,占20位。

下一个头部(Next Header)

下一个头部字段用来标识当前报头(或者扩展报头)的下一个头部类型,占8位。每种扩展报头都有其对应的值。下一个头部字段内定义的扩展报头类型与IPv4中的协议字段值类似,但在IPv6数据报中,紧接着IPv6报头的可能不是上层协议头部(当没有扩展报头或者为最后一个扩展报头时才是上层协议头),而是IPv6扩展报头。这一机制下处理扩展报头更搞笑,因为标识了数据报中对应的上层协议或者扩展报头类型,转发路由器只需处理必须处理的扩展报头,提高了转发效率。

跳数限制(Hop Limit)

跳数限制于IPv4报文中的TTL字段类似,指定了报文可以有效转发的次数,占8位。报文每经过一个路由器结点,跳数值就减1,当此字段值减到0时,则直接丢弃该报文。

源地址(Source IP Address)

源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。

目的IP地址(Destination IP Address)

目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。

IPv6扩展报头

在各字段介绍中我们讲到了,IPv6报文中可以携带可选的IPv6扩展报头。IPv6扩展报头是跟在IPv6基本报头后面的可选报头。由于在IPv4的报头中包含了几乎所有的可选项,因此每个中间路由器都必须检查这些选项是否存在。在IPv6中,这些相关选项被统一移到了扩展报头中,这样中间路由器不必处理每一个可能出现的选项(仅有“逐跳选项”报头是必须要处理的),提高了处理器处理数据报文的速度,也提高了其转发的性能。 
IPv6扩展报头附加在IPv6报头目的IP地址字段后面,可以有0个,或者多个扩展报头。主要的IPv6扩展报头有一下几类:

逐跳选项头(Hop-by-hop Options Header)

本扩展报头类型值为0(在IPv6报头下一个头部字段中定义,下同)。此扩展报头须被转发路径所有节点处理。目前在路由告警(RSVP和MLDv1)与Jumbo帧处理中使用了逐跳选项头,因为路由告警需要通知到转发路径中所有结点,而Jumbo帧是长度超过65535字节的报文,传输这种报文需要转发路径中所有结点都能正常处理。

目的选项头(Destination Options Header)

本扩展报头类型值为60。只可能出现在两个位置: 
1. 路由头前,这是此选项头被目的节点和路由头中指定的结点处理; 
2. 上层头前(任何的ESP头后),此时只能被目的结点处理。 
移动IPv6中使用了目的选项头,称为家乡地址选项。家乡地址选项由目的选项头携带,用以移动结点离开“家乡”后通知接受节点此移动结点对应的家乡地址。接受节点收到带有家乡地址选项的报文后,会把家乡地址选项中的源地址(移动节点的家乡地址)和报文中源地址(移动节点的转交地址)交换,这样上层协议始终认为是在和移动节点的家乡地址通信,实现了移动漫游功能。

路由头(Routing Header)

本扩展报头类型值为43,用于源路由选项和移动IPv6。

分段头

本扩展报头类型值为44,用于标识数据报的分段,在IPv4中就有对应的字段。当源节点发送的报文超过传输链路MTU(源节点和目的节点之间传输路径的MTU)时,需要对报文进行分段时使用。

认证头

本扩展报头类型值为51,用于IPSec,提供报文验证,完整性检查。

封装安全有效载荷头

本扩展头类型值为50,用于IPSec,提供报文验证、完整性检查差和加密。

上层头

这是用来标识数据报中上层协议类型,如TCP、UDP、ICMP等。

注意:目的选项头最多出现两次,一次在路由头前,一次在上层协议头前,其他选项头最多只能出现一次。IPv6节点必须能够处理选项头(逐跳选项头除外,它固定只能紧随基本报头之后)在任意位置出现,以保证互通性。

总结

对比IPv4数据报头部格式可以看出,IPv6去除了IPv4报头中的头部长度、标识、标志、段偏移、校验和、选项、填充这么多字段,却只增加了流标签这一个字段,因此IPv6报头处理和IPv4报头处理相比大大简化,提高了处理效率。另外,IPv6为了更好地支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有的结构就能做到,理论上可以无限扩展,体现了优异的灵活性。

 

 

 

 

 

你可能感兴趣的:(IPv4与IPv6数据包格式)