实验 IP数据报的格式
- 格式:doc
- 大小:92.50 KB
- 文档页数:4
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数据报的格式如下:注意,上图表示的数据,最高位在左边,记为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数据报格式和IP地址路由⼀、IP数据报格式IP数据报格式如下:注:需要注意的是⽹络数据包以⼤端字节序传输,当然头部也得是⼤端字节序,也就是说:The most significant bit is numbered 0 at the left, and the least significant bit of a 32-bit value is numbered 31 on the right.The 4 bytes in the 32-bit value are transmitted in the order: bits 0-7 first, then bits 8-15, then 16-23, and bits 24-31 last. This is called big endian byte ordering, which is the byte ordering requiredfor all binary integers in the TCP/IP headers as they traverse a network. This is called the network byte order. Machines that store binary integers in other formats, such as the little endian format,must convert the header values into the network byte order before transmitting the data.版本IP协议版本号,长度为4位,IPv4此字段值为4,IPv6此字段值为6⾸部长度以32位的字为单位,该字段长度为4位,最⼩值为5,即不带任何选项的IP⾸部20个字节;最⼤值为15,所以⾸部长度最⼤为60个字节服务类型(TOS)长度为8位。
ip数据报格式相关解答题好的,以下是一篇可能的文章草稿,供您参考:IP数据报格式一、什么是IP数据报?IP数据报是一种在网络中传输的数据单元,通常由一个或多个IP 数据包组成。
它包含了发送主机和接收主机之间的数据和相关控制信息。
二、IP数据报的格式是什么?IP数据报的格式通常包括以下几个部分:1. 版本:IP协议的版本号,目前常用的版本是4(IPv4)。
2. 头部校验和:用于检测数据报在传输过程中是否发生改变。
3. 目标协议地址:接收数据报的设备的IP地址。
4. 源协议地址:发送数据报的设备的IP地址。
5. 数据部分:实际要传输的数据。
三、IP数据报头部有哪些字段?IP数据报头部包含多个字段,以下是其中一些常见的字段:1. 服务类型/TOS:用于控制数据传输的优先级、可靠性与实时性。
2. 标识符:用于跟踪数据报在转发过程中的顺序。
3. 标志字段:用于控制数据报的分片和粘包行为。
4. 片偏移:用于指定数据报片段在原始数据中的位置。
5. TTL(生存时间):用于控制数据报在路由器中的缓存时间和转发次数。
6. 协议:指示使用哪种协议来处理数据报的数据部分。
7. 校验和:用于检测IP数据报在传输过程中是否发生改变。
8. 源主机地址和目标主机地址:与IP数据报头部中的源协议地址和目标协议地址相对应,用于指定发送和接收数据报的主机。
四、如何解析IP数据报?解析IP数据报需要使用特定的协议和工具。
常见的工具包括Wireshark、tcpdump等。
解析过程通常包括以下步骤:1. 读取数据报。
2. 提取头部信息,包括版本、标志、片偏移、TTL等。
3. 根据协议字段确定使用哪种协议来处理数据报的数据部分。
4. 根据头部中的目标主机地址将数据报转发到相应的网络设备或应用程序。
五、如何处理IP数据报的分片?当一个较大的数据包需要通过路由器进行转发时,如果目标主机地址不在同一个网络中,路由器可能会将数据包分成多个更小的片段,并将每个片段发送到不同的网络中。
IP数据报的格式TCP/IP协议使用IP数据报包含一个数据报报头和一个数据区。
IP数据报头包含有源、目的信息,做寻径用。
并且指明承载负载的协议类型。
数据报所携带的数据量不固定!下面给出IP数据报的详细格式:0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7-----------------------------------------------------------------| 版本 |报头长度| 服务类型 | 总长度 | -----------------------------------------------------------------| 标识符 | 标志 | 分片偏移量 | -----------------------------------------------------------------| 存活时间 | 协议 | 报头校验和 | -----------------------------------------------------------------|源地址 | -----------------------------------------------------------------|目的地址 | -----------------------------------------------------------------| IP选项 | 填充 | -----------------------------------------------------------------|数据区。
| -----------------------------------------------------------------| 2.1 版本协议号IP数据报的第一个域是4bit长的版本域(version)。
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字节块为单位。
IP数据报⾸部格式IP协议提供不可靠、⽆连接的数据报传送服务。
不可靠:尽⼒⽽为地传输,不保证IP数据报能成功到达⽬的地。
⽆连接:每⼀个数据报之间相互独⽴地进⾏路由选择,可不按发送顺序接收。
IP⾸部格式例如以下:以下就⽤这幅图结合Wireshark来分析个字段含义。
这次截取的是DNS数据报,它位于应⽤层。
⾸先看⼀下整个IP⾸部的内容:相应的原始数据:以下按字段分别进⾏说明。
4位版本号表⽰眼下的协议版本号号。
这⾥使⽤的是IPv4,当然值就是4啦。
4为⾸部长度表⽰⾸部包括多少个4字节。
相应Header length字段的20字节,但依据原始数据能够看出,这个字段实际值应该是5,也就是有5个4字节,共20字节。
8位服务类型包含最⼩延迟、最⼤吞吐量、最⾼可靠性等性能指标。
这⾥全为0表⽰⼀般服务。
16位总长度是指整个IP数据报的长度。
以字节为单位。
这⾥为514字节。
注意这⼀长度仅仅是包括在以太⽹帧中的IP数据报的长度,不包括以太⽹帧开头的⽬的地址(6字节)、源地址(6字节)、类型(2字节)。
16位标识唯⼀地标识主机发送的每⼀份数据报。
通常每发送⼀份报⽂它的值就加1。
这⼀字段主要⽤来分⽚和重组。
3位标识。
在分⽚和重组时⽤到,这⾥暂不讨论。
13位⽚廉价。
在分⽚和重组时⽤到。
这⾥暂不讨论。
8位⽣存时间表⽰该数据报能够经过的最多路由器数。
经过⼀个路由器值减1。
减到0则丢弃该数据报。
并发送ICMP报⽂通知源主机。
8位协议域。
分别有:1表⽰ICMP协议2表⽰IGMP协议6表⽰TCP协议17表⽰UDP协议我们这⾥是UDP协议。
从⽽能够知道,DNS协议执⾏于UDP之上。
16位⾸部检验和。
详细怎样校验这⾥不讨论。
当校验值有误时,IP层丢弃收到的数据报,但不⽣成差错报⽂,由上层去发现丢失的数据报并进⾏重传。
接下来就是32位的源IP加上32位的⽬的IP。
这⾥没什么好说的。
最后的选项字段⾮常少被使⽤,这⾥就不讨论了。
參考:《TCP/IP具体解释》 P24-P27.。
实验IP数据报的格式
【实验目的】
1、通过分析IP数据报的格式了解IP数据报各个字段的大小、取值范围;
2、掌握它们在IP协议中所起的作用。
【实验内容】
1、分析IP数据报的结构,熟悉各个字段的内容、功能、格式和取值范围;
2、编辑IP数据报首部各字段的内容;
3、单个或批量发送已经编辑好的IP数据报。
【实验原理】
IP数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
20字节之后是一些可选字段,其长度是可变的。
IP数据报的格式如下图所示:
版本:占4 bit,指IP协议的版本。
通信双方使用的IP版本必须一致。
目前广泛使用的版本号为4。
首部长度:占4 bit,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。
服务类型:占8 bit,用来获得更好的服务。
前三个比特表示优先级。
第D比特表示要求有更低的时延。
T比特表示要求有更高的吞吐量。
R比特表示要求有更高的可靠性。
C比特表示要求选择代价更小的路由。
最后一个比特目前尚未使用。
总长度:占16 bit,指首部和数据之和的长度,单位为字节。
标识:占16 bit,它是一个计数器,用来产生数据报的标识。
标志:占3 bit,目前只有前两个比特有意义。
最低位记为MF,MF=1表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF,意思是“不能分片”。
只有当DF=0时才允许分片。
片偏移:占13 bit,表示较长的分组在分片后,某片在原分组中的相对位置。
片偏移以8个字节为偏移单位。
生存时间:占8 bit,表示数据报在网络中可通过的路由器的最大值。
协议:占8 bit,指出此数据报携带的数据是何种协议。
首部校验和:占16 bit,只校验数据报的首部,不包括数据部分。
源IP地址:占4 bit。
目的IP地址:占4 bit。
可选字段:用来支持排错、测量以及安全等措施。
此字段长度可变,从1个字节到40个字节不等,取决于所选择的项目。
【实验步骤】
练习一:分析IP数据报格式
1、运行报文仿真编辑器;
2、选择“文件”菜单中的“打开”菜单项,选择安装目录下Data目录中报文仿真编辑器
存档文件:udp.pef;
3、选中报文列表框中的一条记录,报文仿真编辑器中间部分自动显示此条报文记录的协议
结构树;
4、选中协议结构树中的“IP首部”结点,报文仿真编辑器右侧部分自动显示当前IP数据
报首部各个字段的内容;
5、查看IP数据报首部中的源地址和目的地址的结构和内容;
6、分析IP数据报首部中的类型字段所表示的含义。
练习二:编辑IP数据报格式中的字段内容
1、在报文仿真编辑器的右侧修改IP数据报的各个字段的内容;
2、单击“保存”按钮;
3、查看修改后的字段内容。
练习三:发送和接收IP数据报序列
1、运行报文解析器;
2、单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;
3、单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”
对话框;
4、在报文解析器左侧报文列表框中查看所接收到的报文仿真编辑器发出的报文;
5、选中其中一条报文记录,报文解析器中间部分自动显示此条报文记录的协议结构树,比
较是否与发送的报文相同。
【实验报告要求】
1.记录实验数据
2.分析实验结果
例:MAC帧首部
目的地址:FF-FF-FF-FF-FF-FF
源地址:00-01-6C-E9-0D-2C
类型:ARP
ARP
硬件类型:以太网
协议类型:IP
硬件地址长度:6
协议地址长度:6
操作:ARP请求
源硬件地址:00-01-6C-E9-0D-2C
源协议地址:192.168.1.6
目的硬件地址:00-00-00-00-00-00
目的协议地址:192.168.1.2
(16进制显示框)
00000000:FF FF FF FF FF FF 00 01 – 6C E9 0D 2C 08 06 00 01
00000010:08 00 06 04 00 01 00 01 – 6C E9 0D 2C C0 08 01 06
00000020:00 00 00 00 00 00 C0 A8 – 01 02
其中“类型:ARP”对应值为08 06
3.未知数据包的分析
本部分通过Sniffer软件捕获本机所在计算机网络中的未知数据包,要求对所捕获的数据包进行分析。
数据包一如下(下图截取了该数据包16进制表中的前6行):
未知数据包的16进制值
根据以下举例,分析上述捕获的数据包为一个什么协议的请求报文。
未知数据包二如下:
未知数据包二的16进制值
分析如下:
第一行前12个字节为协议MAC帧首部中的目的硬件地址和源地址。
紧随其后的两个字节是MAC帧首部中的类型字段,标识从上层接收到什么类型的协议,“08 06”表示从上层收到的是类型的数据报。
则接下来的数据就代表该数据报的内容。
“00 01”表示硬件类型为以太网,
“08 00”表示采用的协议类型为IP类型,
“06 04”分别表示硬件地址长度为6字节及协议地址长度为4字节,
“00 01”表示执行ARP请求操作,
“00 13 d4 ae 44 26”“3b 4f 12 9b”表示了源硬件地址,源协议地址(59.79.18.155)“00 00 00 00 00 00”“3b 4f 12 fe”表示了目的硬件地址和目的协议地址(59.79.18.254)。
剩余的0均为填充数据。
综上得出,该数据包为一个什么协议的请求报文。