IP数据报格式
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数据报格式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数据报的格式通常包括以下几个部分: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数据报的格式
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)。
以太网帧格式、IP报文格式、TCPUDP报文格式
以太⽹帧格式、IP报⽂格式、TCPUDP报⽂格式1、ISO开放系统有以下⼏层:7应⽤层6表⽰层5会话层4传输层3⽹络层2数据链路层1物理层2、TCP/IP ⽹络协议栈分为应⽤层(Application)、传输层(Transport)、⽹络层(Network)和链路层(Link)四层。
通信过程中,每层协议都要加上⼀个数据⾸部(header),称为封装(Encapsulation),如下图所⽰不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。
数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,最后将应⽤层数据交给应⽤程序处理。
其实在链路层之下还有物理层,指的是电信号的传递⽅式,⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤等都属于物理层的概念。
3、集线器(Hub)是⼯作在物理层的⽹络设备,⽤于双绞线的连接和信号中继(将已衰减的信号再次放⼤使之传得更远)。
交换机是⼯作在链路层的⽹络设备,可以在不同的链路层⽹络之间转发数据帧(⽐如⼗兆以太⽹和百兆以太⽹之间、以太⽹和令牌环⽹之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层⾸部重新封装之后再转发。
路由器是⼯作在第三层的⽹络设备,同时兼有交换机的功能,可以在不同的链路层接⼝之间转发数据包,因此路由器需要将进来的数据包拆掉⽹络层和链路层两层⾸部并重新封装。
4、⽹络层的IP 协议是构成Internet 的基础。
IP 协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应⽤程序中提供⽀持。
传输层可选择TCP 或UDP 协议。
TCP 是⼀种⾯向连接的、可靠的协议,有点像打电话,双⽅拿起电话互通⾝份之后就建⽴了连接,然后说话就⾏了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。
数据包报文格式(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数据报进行,同时也是计算机三级考试的重要内容,店铺整理了相关知识点,一起来复习下吧:1.IP数据报的格式IP数据报的格式可以分为报头区和数据区两部分,数据区包括高层需要传输的数据,而报头区是为了正确传输高层数据而增加的控制信息。
通俗地说,数据报的数据区就像是一个信件,而信封上写明寄信人和收信人等信息后,就相当于是一个报头区。
把两者结合一起,就是一个IP数据报。
报头区包含了源IP地址、目的IP地址等控制信息,具体内容如下。
(1)版本和协议类型在IP报头中,版本字段表示该数据报对应的IP协议版本号,不同的IP协议版本规定的数据报格式稍有不同,目前使用的IP协议版本号为4。
协议字段表示该数据报数据区数据的高级协议类型(如TCP),用于指明数据区数据的格式。
(2)长度报头中有两个表示长度的字段,一个为报头长度,另一个为总长度。
报头长度以32b为单位,指出该报头区的长度。
在没有选项和填充的情况下,该值为“5”。
总长度以8b为单位,表示整个IP数据报的总长度(其中包含报头区长度和数据区长度)。
(3)服务类型服务类型字段规定对本数据报的处理方式。
利用该字段,发送端可以为IP数据包分配一个转发优先级,并可以要求中转路由器尽量使用低延迟、高吞吐率或高可靠性的线路投递。
(4)生存周期IP数据报的路由选择具有独立性,因此从源主机到目的主机的传输延迟也具有随机性。
如果路由表发生错误,数据报就有可能进入一个死循环。
利用IP报头中的生存周期字段,可以有效的控制数据报在网络中无休止的流动。
在网络中,“生存周期”域随时间而递减,在该域为0时,报文将被删除,避免死循环的发生。
(5)头部校验和头部校验和用于保证IP数据报头的完整性。
注意,在IP数据报中,只含有报头校验字段,没有数据区校验字段。
IP数据报格式
位)属性 – 是有链路层最大帧的 限制决定的.
不同类型的链路, 不同的
MTUs
❖ 较大的IP分组在网络中会被分割
(“fragmented”)
一个分组就被分成了若干分 组
分组只是在最终的信宿站点 被重新“组装-reassembled”
reassembly
5b-2
ICMP: 因特网控制报文协议(Internet Control Message Protocol)
❖ 用于主机、路由器、网关之间交 换网络层信息
报告错误: unreachable host, network, port, protocol
进行request/reply 应答(ping 命令)
control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header
第5讲 网络层之二
5b-3
因特网中的路由选择
❖ 全球因特网是由诸多 Autonomous Systems (AS)互联而成:
Gateway
Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
127.0.0.1
127.0.0.1
UH
0 26492 lo0
192.168.2.
192.168.2.5
小型自治系统(Stub AS): 中小型企业 分区自治系统(Multihomed AS):大型企业 (非跨越的) 跨越式自治系统(Transit AS): NBP等
IP数据报首部格式
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数据报格式
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几种协议数据报格式简介
TCP 是面向连接的可靠数据传输协议,因此比较复杂,在此仅作简单介绍。“序号”指数据在发送端数据流中 的位置。“确认号”指出本机希望下一个接收的字节的序号。与 IP 校验不同的是 TCP,UDP 校验采用伪头标加整个 报文一同校验的方法。TCP 协议工作原理另行介绍。
TCP 数据报中依次包括以下信息:
协议采用分层结构,因此,数据报文也采用分层封装的方法。下面以应用最广泛的以太网为例说明其数据报 文分层封装,如下图所示:
任何通讯协议都有独特的报文格式,TCP/IP 协议也不例外。对于通讯协议编程,我们首先要清楚其报文格式。 由于 TCP/IP 协议采用分层模型,各层都有专用的报头,以下就简单介绍以太网下 TCP/IP 各层报文格式。
1、 16 位源端口 Source Port。该部分占 16 个 BIT。通过此值,可以看出发起连接的计算机源端口号。
2、 16 位目的端口 Destination Port。该部分占 16 个 BIT。通过此值,可以看出要登录的目的端口号。
3、 32 位序列号 Initial Sequence Number。表示初始连接的请求号,即 SEQ 值。该部分占 32 个 BIT。
4、 32 位确认号 Next Expected SEQ Numbe。对方返回的 ACK 值。该部分占 32 个 BIT。
5、 4 位数据偏移 Data Offset。表示数据偏移的大小。该部分占 4 个 BIT。
6、 6 位保留位 Reserved Bites:保留位,此处不用。该部分占 6 个 BIT。
的 16 次方减 1,即:65535 个字节。因此,在以太网中能够传输的最大 IP 数据包为 65535 个字节。
5、 16 位标识号 Identification。该部分占 16 个 BIT,以十进制数表示。
IP数据报的格式
IP数据报的格式 IP协议具有什么功能从数据报的格式中就能够知道,⼀个IP数据报被分为了⾸部和数据两个部分,在⾸部中有20个字节是固定的,还有⼀些可选字段长度是可变的,下⾯是IP数据报的具体格式:IP数据报各个字段的意义 1.版本号 版本号占4位,指使⽤的IP协议的版本,通信双⽅使⽤的版本要⼀致才能通信,⽬前的版本有IPv4和IPv6, 2.⾸部长度 指数据报的⾸部的长度,占4位,注意这⾥的⾸部长度的单位是4个字节,所以最⼤的⾸部长度可以达到 15 * 4 = 60 个字节,当⾸部长度不是4个整数倍的时候,就要使⽤填充字段进⾏填充。
3.区分服务 占8位,⽤来获得更好的服务,只有在使⽤区分服务的时候,这个字段才有⽤,⼀般情况下,都不使⽤这个字段 4.总长度 ⾸部和数据部分长度之和,占16位,因此IP数据报的最⼤长度位2的16次⽅ - 1,即65535个字节,然⽽这样长度的数据报是极少遇到的,我们知道在数据链层规定了MTU的⼤⼩(常⽤的以太⽹的MTU为1500字节),当数据报的⼤⼩超过MTU时,就要进⾏分⽚处理。
IP协议规定所有的主机和路由器,必须能够接受长度不超过576字节的数据报,当要发送的数据包的长度超过576个字节时,就应该先了解⽬的主机是否能够接受所发送的数据报的长度,否则就要进⾏分⽚处理了。
5.标识 占16位,IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据报,就将计数器加⼀,并将此值赋值给标识字段,当数据报的长度,超过⽹络的MTU时,就必须进⾏分⽚处理,这个标识将会赋值到所有的分⽚中,也就是说⼀个数据报经过分⽚之后的形成的多个数据报的标识是⼀样的,这样做是为了将它们组成⼀个完整的数据报。
6.标志 占3位,但⽬前只有两位有意义, 标志字段的最低位为MF,当MF = 1 时,表⽰后⾯还有分⽚,MF = 0表⽰这是最后⼀个分⽚ 中间位位DF,DF的意思是不能分⽚,当DF=0时,才允许分⽚ 7.⽚位移 占13位,分⽚之后的每⼀⽚在原来的数据报中的位置,即相对于数据报的起点位置,该⽚从何处开始,⽚位移以8个字节位单位, 8.⽣存时间 占8位,英⽂缩写为TTL(Time To Live),这个字段指明数据报在⽹络中的⽣存时间,每当数据报经过⼀个路由器,TTL就减1,当TTL为0时,路由器就丢弃该数据报,⽽不进⾏转发了,这样做的⽬的是为了防⽌数据报在⽹络中“兜圈⼦”⽽⽩⽩消耗⽹络资源,⼀般的操作系统都有默认的TTL: Linux 64 Windows 128 Unix 256 9.协议 占8位,协议字段指出数据包的数据部分使⽤的是何种协议,以便使⽬的主机的IP层知道应该将数据报中的数据交给哪个部分来处理,常见的协议和对应的字段值如下: ICMP 1 IGMP 2 IP 4 , IP数据报再封装到IP数据报中 TCP 6 IGP 9 UDP 17 IPv6 41 ESP 50 OSPF 89 10.⾸部检验和 占16位,只将⾸部检验过后的检验和填⼊此字段中,不检验数据报的数据部分,数据报每经过⼀个路由器都要重新计算检验和,检验和的计算过程如下: 先将检验和字段设置为全0, 然后将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和, 将得到的结果取反,并写⼊检验和字段,注意这个取反后的结果和原来的结果相加为全1 接收⽅收到数据报之后,也将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和, 若将得到的结果取反不为0,那么证明出错了,则丢弃该数据报,若取反结果为0,将数据报上交。
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报文格式
2.2 TCP/IP报文格式1、IP报文格式IP协议是TCP/IP协议族中最为核心的协议。
它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。
在局域网环境,IP协议往往被封装在以太网帧(见本章1.3节)中传送。
而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。
如图2-3所示:图2-3 TCP/IP报文封装图2-4是IP头部(报头)格式:(RFC 791)。
图2-4 IP头部格式其中:●版本(Version)字段:占4比特。
用来表明IP协议实现的版本号,当前一般为IPv4,即0100。
●报头长度(Internet Header Length,IHL)字段:占4比特。
是头部占32比特的数字,包括可选项。
普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。
此字段最大值为60字节。
●服务类型(Type of Service ,TOS)字段:占8比特。
其中前3比特为优先权子字段(Precedence,现已被忽略)。
第8比特保留未用。
第4至第7比特分别代表延迟、吞吐量、可靠性和花费。
当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。
这4比特的服务类型中只能置其中1比特为1。
可以全为0,若全为0则表示一般服务。
服务类型字段声明了数据报被网络系统传输时可以被怎样处理。
例如:TELNET协议可能要求有最小的延迟,FTP协议(数据)可能要求有最大吞吐量,SNMP协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用,而ICMP协议可能无特殊要求(4比特全为0)。
实际上,大部分主机会忽略这个字段,但一些动态路由协议如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决策。
计算机网络原理 IP数据报的格式
计算机网络原理IP数据报的格式要进行传输的数据在IP层首先需要加上IP头信息,封装成IP数据报。
IP数据报包括一个报文头以及与更高层协议相关的数据。
图6-22所示为IP数据报的具体格式。
图6-22 IP数据报格式IP数据报的格式可以分为报头区和数据区两大部分,其中,数据区包括高层需要传输的数据,报头区是为了正确传输高层数据而增加的控制信息,这些控制信息包括:●版本。
长度为4bit,表示与数据报对应的IP协议版本号。
不同的IP协议版本,其数据报格式有所不同。
当前的IP协议版本号为“4”。
所有IP软件在处理数据报之前都必须检查版本号,以确保版本正确。
IP软件将拒绝处理版本不同的数据报,以避免错误解释其中内容。
●报头长度。
长度为4bit,指出以32bit长计算的报头长度,IP数据报头中除IP选项域外,其他各域均为定长域,各定长域长度为20个字节,这样一个不含选项域的普通IP数据报其头标长度域值为“5”。
总的来说,头标长度应为32bit的整数位,假如不是,在头标尾部添“0”凑齐。
●服务类型。
服务类型(SERVICE TYPE)规定对本数据报的处理方式。
该域长度为一个字节,被分为5个子域,其子域结构如表6-6所示。
其中,3bit的“优先权”(PRECEDENCE)子域指示本数据报的优先权,表示本数据报的重要程度。
优先权取值从0到7,“0”表示一般优先权,“7”表示网络控制优先权,优先权值是由用户指定的。
大多数网络软件对此不予理睬,然而它毕竟提供了一种手段,允许控制信息享受比一般数据较高的优先权。
DTR三位数据表示本数据报所要的传输类型。
其中,D 代表低延迟——Delay;T代表高吞吐率——Throughput;R代表高可靠性——Reliability。
上述3位只是用户的请求,不具有强制性,Internet在寻找路径时可能以它们为参考。
●总长:总长域为16bit,指示整个IP数据报的长度,以字节为单位,其中包括报头长度及数据区长。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IP数据报格式:
TCP/IP协议定义了一个在因特网上传输的包,
称为IP数据报(IP Datagram)。
这是一个与硬件无关的虚拟包,
由首部和数据两部分组成。
首部的前一部分是固定长度,共20 字节,
是所有IP数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
首都中的源地址和目的地址都是IP 协议地址。
那么IP数据报格式又是怎样要求的呢?
1. 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 (DifferentiatedServices)。
只有在使用区分服务时,这个字段才起作用。
④总长度:总长度指首都及数据之和的长度,单位为字节。
因为总长度字段为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位。
2. IP数据报首部的可变部分
IP首都的可变部分就是一个可选字段。
选项字段用来支持排错、测量以及安全等措施,内容很丰富。
此字段的长度可变,从1 个字节到40个字节不等,取决于所选择的项目。
某些选项只需要1 个字节,它只包括1 个字节的选项代码。
但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0 的填充字段补齐成为4字节的
整数倍。
增加首都的可变部分是为了增加IP 数据报的功能,但这同时也使得IP 数据报的首部长度成为可变的。
这就增加了每一个路由器处理数据报的开销。
实际上这些选项很少被使用。
新的IPv6就将IP数据报的首部长度做成固定的。
I P数据包指的是第三层的PDU,
IP首部只是其中的一部分,是在第三层网络层上加上去的,是给路由器看的。
IP数据包的总长度过大,超过链路的最大MTU时,数据包就会被分成多片,
而在如今的IPv4的网络中,数据传输时不可靠的,是尽力而为的,
所以这些分片的数据单元到达对端的链路和时间都是不同的,
对端根据IP首部中的标示符(Identification)、标志(Flag)、段偏置值字段
重组数据包。