IPV4数据包格式
- 格式:ppt
- 大小:1.18 MB
- 文档页数:32
ipv4协议的详解协议名称:IPv4协议的详解一、引言IPv4(Internet Protocol version 4)是互联网协议的第四个版本,是一种网络层协议,用于在网络中传输数据包。
本协议旨在详细解释IPv4协议的工作原理、数据格式和相关特性。
二、协议概述1. IPv4协议是一种面向连接的协议,用于在不同主机之间进行数据通信。
2. IPv4协议使用32位的IP地址来唯一标识网络中的主机。
3. IPv4协议使用分组交换技术来传输数据,将数据分割成小的数据包进行传输。
4. IPv4协议提供了一些基本的服务,如寻址、路由和分组重组等。
三、IPv4协议的数据格式1. IPv4数据包由首部和数据部分组成。
2. 首部包含了源IP地址、目标IP地址、协议版本号、首部长度、服务类型、数据包长度、标识、标志、片偏移、生存时间、协议类型、首部校验和等字段。
3. 数据部分包含了传输的实际数据。
四、IPv4协议的工作原理1. IP地址分配:IPv4协议使用32位的IP地址来标识网络中的主机,IP地址由网络号和主机号组成。
2. 数据传输:当一台主机要向另一台主机发送数据时,它会将数据分割成小的数据包,每个数据包都包含了源IP地址和目标IP地址。
3. 路由选择:数据包在传输过程中会经过多个路由器,路由器根据目标IP地址选择合适的路径进行转发。
4. 分组重组:当数据包到达目标主机时,目标主机会将接收到的数据包按照顺序进行重组,恢复原始数据。
五、IPv4协议的特性1. 有限的地址空间:IPv4协议使用32位的IP地址,理论上最多可以分配约42亿个IP地址,但由于地址空间有限,导致IP地址短缺问题。
2. 无连接性:IPv4协议是一种无连接协议,每个数据包都是独立传输的,不保证数据包的可靠性。
3. 不提供加密和认证:IPv4协议不提供数据加密和身份认证功能,数据在传输过程中可能会被窃听或篡改。
4. 不支持多播和广播:IPv4协议不直接支持多播和广播功能,但可以通过特殊的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),表⽰数据报在⽹络中的寿命,由发出的源站点设置,⽬的就是防⽌⽆法交付的数据报在因特⽹中⽆限制的兜圈⼦,⽩⽩消耗资源。
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字节块为单位。
Ipv4协议收发实验实验说明:由于tcp/ipv4协议已经集成在系统和网卡的驱动程序中,自己单独编写实现基于ipv4协议收发的实验,要求对系统及硬件的相关接口能够理解和应用。
其中的工作量是很大的,在网上也没有相关可以利用的实现平台。
只查到了基于NetRiver2000实验系统的tcp协议收发实验例程,该系统提供了操作系统和硬件底层的接口用来实现函数的的编写及调用。
这里,限于知识储备,我对相关的函数及ipv4数据包的格式,分组,封装实现及收发流程做了分析和研究,对tcp/ipv4的协议有了更好的理解。
1.实验目的IPv4协议是互联网的核心协议,它保证了网络节点(包括网络设备和主机)在网络层能够按照标准协议互相通信。
IPv4地址唯一标识了网络节点。
在我们日常使用的计算机的主机协议栈中,IPv4协议必不可少,它能够接收网络中传送给本机的分组,同时也能根据上层协议的要求将报文封装为IPv4分组发送出去。
本实验通过设计实现主机协议栈中的IPv4协议,让学生深入了解网络层协议的基本原理,学习IPv4协议基本的分组接收和发送流程。
另外,通过本实验,学生可以初步接触互联网协议栈的结构和计算机网络实验系统,为后面进行更为深入复杂的实验奠定良好的基础。
2.实验原理TCP协议簇本身4层:主机-网络层(接口层)、互连层、传输层、应用层。
IP协议在第二层(OSI的第三层:网络层)TCP在第三层。
(OSI的第四层:传输层)Ipv4数据包格式:3 实验要求在理解TCP/Ipv4协议数据格式及处理流程的基础上,根据计算机网络实验系统所提供的上下层接口函数和协议中分组收发的主要流程,设计实现一个简单的IPv4分组收发模块。
要求实现的主要功能包括:1)IPv4分组的基本接收处理;2)IPv4分组的封装发送;3)理解对IPv4协议中的选项和分片处理的原理4 .实验内容1)实现IPv4分组的基本接收处理功能对于接收到的IPv4分组,检查目的地址是否为本地地址,并检查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协议的详解协议名称:IPv4协议的详解一、引言IPv4(Internet Protocol version 4)是互联网上广泛使用的网络协议,它为互联网上的设备提供了唯一的标识和通信方式。
本协议旨在详细解释IPv4协议的工作原理、数据包格式、地址分配和路由选择等关键方面,以便读者能够全面了解和应用IPv4协议。
二、IPv4协议的工作原理1. IPv4协议是一种无连接的协议,每个数据包(称为IP数据报)都是独立地传输。
发送端将数据分割成较小的数据块,并添加IP首部信息,然后通过网络传输到目标设备。
2. IPv4协议使用IP地址来唯一标识网络上的设备。
IP地址由32位二进制数表示,通常以点分十进制表示法呈现。
IP地址分为网络地址和主机地址两部分,网络地址用于标识网络,主机地址用于标识具体设备。
3. IPv4协议还使用子网掩码来划分网络和主机地址。
子网掩码是一个32位的二进制数,与IP地址进行逻辑与运算,以确定网络地址和主机地址的范围。
4. IPv4协议还支持网络地址转换(NAT),它允许多个设备共享一个公共IP 地址。
NAT通过修改IP数据报的源地址和目标地址来实现。
三、IPv4数据包格式1. IPv4数据包由首部和数据两部分组成。
首部包含了控制信息,用于路由选择和数据包重组等操作。
数据部分包含了传输的实际数据。
2. IPv4首部包含了20个字节,由14个字段组成。
这些字段包括版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、首部校验和、源IP地址和目标IP地址等。
3. 首部长度字段指示了首部的长度,单位为4字节。
IPv4首部的最小长度为20字节,最大长度为60字节。
4. 标志字段包含了3个位,用于指示数据包的特殊处理要求。
片偏移字段用于指示数据包在原始数据中的位置。
5. 生存时间字段用于指定数据包在网络中的最大生存时间,以防止数据包在网络中无限循环。
6. 协议字段用于指示IP数据报中封装的上层协议,如TCP、UDP或ICMP等。
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)标志:占三位,但目前只有两位有意义。
北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级XXX 3班学号0123456 姓名 XXX 指导教师ZHANG XUE 成绩实验题目IPv4 数据报首部格式实验时间 2014.1一、实验目的掌握IPv4 协议原理,理解IPv4 分组首部结构及各字段的含义。
二、实验环境1.连接外网的Windows XP 主机一台,并安装有科来网络分析系统。
2.通过科来网络分析系统捕获一段时间内的IPv4 分组。
三、实验内容1.用科来网络分析系统捕获数据包。
2.分析捕获到的IP数据包中首部各个字段的意义。
四、实验步骤1.打开科来网络分析系统,开始捕获数据包。
2.用浏览器访问百度,用ping 命令探测临机、网关和百度。
3.停止捕获,观察捕获到的数据包。
访问百度:Ping临机如图:Ping网关如图:Ping百度如图:4.将访问百度以及ping 临机、网关和百度的IP 数据包首部中各字段的值记录在下表中,需要记录IP 数据报的版本号、首部长度、总长度、标识、标志、片偏移、生存时间、上层协议、源地址和目的地址。
5.比较所记录的各字段的值,理解首部字段的含义和作用。
五、心得体会经过上一次上机实践对网络命令的操作的结果分析,本次实践已经大概明白了网络命令的操作和作用和对网络命令的操作的结果分析…六、实验要求完成本次实验后,仔细观察所捕获的数据包,对网络层数据包首部的各字段进行整理,说明参数之间的关联性,进而加深理解网络层的工作过程。
思考与讨论:1.在连续捕获到的数据包中,IPv4首部哪些字段的值是不变的?说明原因。
实验发现IPv4首部的版本号,首部长度,片偏移,生存时间这些值不变。
原因是不管ping哪个网址,这些字段在IP协议中都是规定好所占用的位数的,所以这些值不变。
2.在连续捕获到的数据包中,IPv4首部哪些字段的值是变化的?说明原因。
实验发现IPv4首部的总长度,标识,标志,源地址,目的地址的值会改变。