一、IP数据报首部的格式,普通20字节。 4位版本号:当前4--IPv4。...二、不同应用建议的TOS值如下: 16位总长度:总长度-首部长度=》IP数据报数据起始位置及长度。16bits=2byte,最大数据报长度65535。当数据分片时,此字段变化。...16位标识字段:唯一的标识每一份主机发送的数据报,每发送一份,值就会加1。 8位生存时间(TTL):设置了数据包可以经过的最多路由数。...16为首部检验和:根据IP首部计算的检验和码。检验和置0,然后每16bits进行二进制反码求和。结果存于检验和中。接收方同样进行二进制反码求和。结果为1则正确。 32位源IP地址。...32位目的IP地址。
今咱就抓个数据报具体看一看真实网络中的 IP 报首部. 操作方法很简单, 使用wireshark进行抓包. 抓包后随便找个包看一下就行, 毕竟所有通信的包都需要经过网络层....咱们今儿个主要就看看 IP 协议的首部内容. 走着... ? 要查看指定字段在其中的位置, 左键点击一下, 数据内容就会高亮了. 好贴心哦....简单介绍一下各个字段的意思: 协议版本号(4b): 标识当前 IP 协议的版本号. 首部长度(4b): 标识首部长度. 单位是/4B....仅校验首部 源地址(32b): 数据包的源IP地址 目标地址(32b): 数据包的目标 IP 地址 可选内容: 一些其他的可选字段 对于网络层协议来说, 每增加一个字段, 都会影响整体的传输速度....若此字段缺失, 则无法区分不同版本 IP 协议 首部长度 因为协议的首部存在可选字段, 所以需要添加字段用来指明首部的长度. 以4B 为一个单位应该也是经过多次探讨的了.
文章目录 一、TCP / IP 协议栈 二、IP 数据报 格式 三、IP 数据报 首部格式 一、TCP / IP 协议栈 ---- TCP / IP 协议栈 : ① 应用层 : HTTP , FTP ,...协议 为 IP 协议服务 ; IP 协议为 ICMP 协议 和 IGMP 协议服务 ; 二、IP 数据报 格式 ---- IP 数据包格式 : ① IP 数据报 组成 : 首部 , 数据部分 ; ② 首部数据组成...数据部分 ; 三、IP 数据报 首部格式 ---- IP 数据报 首部格式 : 版本 : 4 比特 , [ 0 , 3 ] 位 , IPv4 / IPv6 , 目前使用的是 IPv4 版本...下面是协议名称 与 字段值的对应关系 ; ICMP : 1 IGMP : 2 TCP : 6 EGP : 8 IGP : 9 UDP : 17 IPv6 : 41 ESP : 50 OSPF : 89 首部检验和...: 检验首部的字段 ; 源地址 / 目的地址 : 长度都是 32 位 , IPv4 的地址长度是 32 位 ; 可选字段 : 范围是可变的 , 取值范围 0 到 40 字节之间 , 用于排错
它的组成部分包括: 版本号 首部长度 服务类型(TOS) 数据报长度 标识,标志,片偏移 寿命 协议 首部检验和 源IP地址/目的IP地址 数据/有效载荷 版本号 这4比特规定了数据报的IP协议版本,目前使用的...IP版本为IPv4 首部长度 因为一个IPv4的数据报包含一些可选项(包含在IP数据报的首部中),所以首部长度并不是固定的,所以我们需要用“首部长度”这4比特来确定数据报中的数据部分是从哪里开始的 服务类型...例如值为6则表明数据部分要交给TCP, 值为17表明数据要交给UDP 首部检验和 首部检验和用于帮助路由器检测收到的IP数据报中的比特错误。...首部检验和是这样计算的: 将首部中每两个字节当作一个数,用反码运算对这些数求和,这个和就叫做“检验和”,被存放在报文字段中。...同时,路由器会对每个接收到的IP数据报计算其首部检验和, 通过检查这两个检验和是否一致,来检查是否出现了错误 源IP地址/目的IP地址 当源主机产生一个数据报的时候, 它在源IP字段中插入它的IP地址
本文将图文并茂的为您讲述 IP 报文的各个字段的含义。 格式总览 ✅ 一个 IP 数据报由首部和数据两部分组成。 ?...首部 ⌛ 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 ? ⏳ 在首部的固定部分的后面是一些可选字段,其长度是可变的。 ?...IP 数据报首部的固定部分中的各字段 ? 版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)。 ? ?...生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。 ? ?...首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 ? IP 数据报首部检验和的计算采用 16 位二进制反码求和算法 ? ?
一、IP数据包的首部格式 一个 IP 数据报由首部和数据两部分组成 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的 版本——占 4 位,指 IP 协议的版本。...生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。...协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程 首部检验和——占16 位,只检验数据报的首部,不检验数据部分。...这里不采用 CRC 检验码而采用简单的计算方法。 源地址和目的地址都各占 4 字节 IP 数据报首部的可变部分,从 1 个字节到 40 个字节不等,取决于所选择的项目。...1.1IP数据报分组转发流程 IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
4、地址解析协议ARP 我们经常会遇到这样的问题:已经知道了一个机器(主机或路由器)的 IP 地址,需要找出其相应的硬件地址。地址解析协议 ARP 就是用来解决这样的问题的。 ?...目前广泛使用的 IP协议 版本号为 4( 即 IPv4)。 首部长度: 占4位,可表示的最大十进制数值是 15 。请注意,首部长度字段所表示数的单位是 32 位字(1个 32 位字长是 4 字节)。...而当首部长度为最大值 1111 时(即十进制数的 15 ),就表明首部长度达到最大值 15 个 32 位字长,即 60 字节。...IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1 ,并将此值赋给标识字段。但这个“标识”并不是序号,因为 IP 是无连接服务,数据报不存在按序接收的问题。...10.首部检验和:首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 ?
请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。...IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。...(9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。 (10)首部检验和,占16位。...这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。...不检验数据部分可减少计算的工作量。 (11)源地址,占32位。 (12)目的地址,占32位。 (13)数据部分,可变,最大为总长度-首部长度。
(4)TCP将保持它首部和数据的检验和。 (5)TCP会对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 (6)当IP数据报发生重复时,TCP的接收端会丢弃重复的数据。...TTL(time to live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。...首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。...UDP检验和覆盖UDP首部和UDP数据,而IP首部检验和只覆盖IP首部并不覆盖IP数据报中的任何数据。UDP的检验和是可选的,而TCP的检验和是必需的。 ...UDP检验和的基本计算方法与IP首部的检验和计算方法相类似(16bit字的二进制反码和),但是它们之间存在不同的地方。
U D P检验和覆盖U D P首部和U D P数据。 U D P和T C P在首部中都有覆盖它们首部和数据的检验和。 U D P的检验和是可选的,而T C P的检验和是必需的。...如果发送端没有计算检验和而接收端检测到检验和有差错,那么 U D P数据报就要被悄悄地丢弃。不产生任何差错报文(当 I P层检测到I P首部检验和有差错时也这样做)。...现在的大部分系统都默认提供了可读写大于 8 1 9 2字节的U D P数据报(使用这个默认值是因为 8 1 9 2是N F S读写用户数据数的默认值)。...如果接收到的数据报长度大于应用程序所能处理的长度,那么会发生什么情况呢? 不幸的是,该问题的答案取决于编程接口和实现。...、 UDP服务器设计 客户IP地址及端口号 来自客户的是 U D P数据报。I P首部包含源端和目的端 I P地址,U D P首部包含了源端和目的端的U D P端口号。
数据报格式 IP数据报格式---------首部的固定部分20B ---- I could be bounded in a nutshell and count myself a king of infinite...数据报格式 首部---------数据部分 固定部分+可变部分 20B+ 一般为0 IP数据报格式---------首部的固定部分20B 版本4位-------ipv6?...总长度------整个数据报的长度----------单位是1B-----------首部+数据 生存时间8位-----------保质期----------TTL----------防止数据报无限制兜圈子...----没经过一个路由器-1 协议8位---------用什么协议-----------对应有字段值------------TCP是6(面向连接666)———UDP是17(被遗弃可能17) 首部检验和-...------只检验首部----------每走一个路由器都算一遍---------因为TTL会变 源IP地址、目的IP地址 可选字段0-40B---------支持排错 测量 填充-----------
总长度是指整个IP数据报的长度,以字节为单位,利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节。...总长度字段是IP首部中必要的内容,因为一些数据链路,需要填充一些数据以达到最小长度。 标识字段唯一地标识主机发送的每一分数据报,通常每发送一份报文它的值就会加1。...TTL生存时间字段设置了数据报可以经过的最多路由器数,指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),当该字段值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。...首部检验和字段是根据IP首部计算的检验和码,不对首部后面的数据进行计算,ICMP、IGMP、UDP和TCP在他们各自的首部中均含有同时覆盖首部和数据检验和码。...如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么如果IP层被设置为路由器的功能,那么久对数据报进行转发,否则,数据报被丢弃。
,设首部检验和为 0,将首部每 2 个字节当做一个数,将所有数相加求和,进位累加,对求和结果求反得到 划分子网:子网划分,子网掩码,根据 IP 地址和子网掩码计算该 IP 地址所在网络的网络地址,广播地址...参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确就丢弃该数据报,并向源点发送参数问题报文 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发给另外的路由器...IPv4 校验检验和 先设置 “首部检验和” 字段为 0 将首部每 2 个字节当做一个数 将所有数相加求和,进位累加 “3029F=02A2” 对求和结果求反得:FD5D 则发送方发送的 IP 分组首部的检验和为...:FD5D 接受方收到的 IP 数据报要进行检验 将首部每 2 个字节当做一个数 将所有数相加求和,进位累加:3FFFC=FFFF 对求和结果求反,得:0000 结论:收到的 IP 分组首部没有检测出差错...把 TTL 字段改称为跳数限制字段,但作用是一样的 取消了协议字段,改用下一个首部字段 取消了检验和字段,这样加快了路由器处理数据报的速度 取消了选项字段,而是扩展首部来实现选项功能 P2P 与 C/
如何计算UDP/TCP检验和checksum 一、下面的图是一个UDP的检验和所需要用到的所有信息,包括三个部分: 1.UDP伪首部 2.UDP...首先解释下伪首部的概念,伪首部包含IP首部一些字段。其目的是让UDP两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。...将该数取反则可以得到检验和checksum。...1.首先将检验和部分添零; 2.然后将TCP伪首部部分,TCP首部部分,数据部分都划分成16位的一个个16进制数; 3.将这些数逐个相加,记得溢出的部分加到最低位上,这是循环加法...0x64B6,大家也可以试试看 IP数据报只检验IP数据报的首部,但UDP检验的是把首部和数据部分一起都检验。
IP 层。...这在终点交付报文时必须使用 长度 UDP 用户数据报的长度,其最小值是8(仅有首部) 检验和 检测 UDP 用户数据报在传输中是否有错。...有错就丢弃 [UDP协议-图2] 端口分用 当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交最后的终点——应用进程 [UDP协议-图3] 如果接受方...在计算检验和时,要在 UDP 用户数据报之前增加 12 个字节的伪首部。所谓“伪首部”是因为这种伪首部并不是 UDP 用户数据报真正的首部。...只是在计算检验和时,临时添加在 UDP 用户数据报前面,得到一个临时的 UDP 用户数据报。检验和就是按照这个临时用户数据报来计算的。
UDP 首部 UDP 首部包含了源端口号、目的端口号、长度、检验和四个字段,分别长 2 字节,总计 8 字节。...其中,长度指的是 UDP 首部和数据的字节长度,这个长度是有冗余的,因此实际使用中不应该以这个长度值计算 UDP 数据报或数据的长度值,IP 首部的 IP 数据报的长度指的是数据报的全长。...检验和则是 UDP 首部和 UDP 数据的 CRC32 计算结果,而 IP 首部的检验和则只覆盖 IP 首部,并不覆盖任何 IP 数据报中的数据,UDP 检验和是可选的,TCP 检验和则是必须的。...IP 首部的 3 位标志位的第二位 DF 位表示“不分片”位,如果该位为 1,且数据报长度大于下一站 MTU,IP 层则会丢弃数据报,并返回一个 ICMP 不可达差错报文给起始端。...当 IP 报文被分片后,每一片都具有自己的 IP 首部,并在选择路由时与其他分片独立,IP 首部的 16 位标识作为 IP 数据报的唯一标识,同一数据报的所有分片都具有相同的标识,下一站 IP 层收到所有分片后根据片偏移字段完成数据报分片的拼装
IPv4首部 IP层提供无连接不可靠的数据报递送服务。...·16位总长度(total length)字段是包括IPv4首部在内的整个IP数据报的字节长度。数据报中的数据量就是本字段减掉4乘以首部长度(回顾一下,首部长度都是32位或4字节的整数倍)。...·16位首部检验和(header checksum)字段只对IP首部(包括任何选项)进行计算。...IPv4地址 32位长度的IPv4地址通常书写成以点号分隔的4个十进制数,称为点分十进制数记法(dotted-decimal notation),其中每个十进制数代表32位地址4个字节中的某一个...校验和(checksum)字段是标准的网际网检验和,不过在具体校验哪些字段上ICMPv4和ICMPv6存在差异:ICMPv4检验和仅仅校验ICMP消息本身,ICMPv6检验和的校验范围还包括IPv6伪首部
ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。 3. ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。 二.ICMP报文的格式 1....类型0,代码0:表示回显应答(ping应答) 类型11,代码0:超时 3>16位的检验和字段:包含数据在内的整个ICMP数据包的检验和;其计算方法和IP头部检验和的计算方法一样的。...4> 參数问题:当路由器或目的主机收到的数据报的首部中的字段的值不对时,就丢弃该数据报,并向源站发送參数问题报文。...将收到的须要进行差错报告IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上响应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。...TTL位于IP首部的生存时间字段。ping程序通过在ICMP报文数据段中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在ICMP报文中的时间值,即是往返时间。
UDP长度字段值是UDP首部和UDP数据的字节长度。 最小值为8字节,也就是没有数据 IP数据报长度值是数据报全长,因此UDP数据报长度是全长减去IP首部的长度。...2、UDP校验和 UDP检验和覆盖UDP首部和UDP数据,而IP检验和只覆盖IP的首部,不涉及到数据。 UDP的检验和是可选的,而TCP的检验和是必需的。...UDP检验和的基本计算方法与IP首部检验和计算方法类似,但存在不同点。 UDP数据报的长度可以为奇数字节,但检验和算法是把若干个16bit字相加。...解决方法是在必要时在最后增加填充字节0,这只是为了检验和的计算。 UDP数据报和TCP端都包含一个12字节长的伪首部,为了计算检验和而设置的。...如果传送的检验和为0,说明发送端没有计算检验和。 如果发送端没有计算检验和而接收端检测到检验和有差错,那么UDP数据报就要被悄悄地丢弃。 3、IP分片 ?
IP 地址的使用范围 4 IP数据报分片 4.1 数据报格式 一个 IP 数据报由首部和数据两部分组成 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的 在首部固定部分的后面是可选字段...在一般的情况下都不使用这个字段 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。...总长度必须不超过最大传送单元 MTU 最大传送单元 MTU IP 数据报分片 生存时间(8 位)记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值 协议(8 位)字段指出此数据报携带的数据使用何种协议...,以便目的主机的 IP 层将数据部分上交给哪个处理过程 协议字段作用 首部检验和(16 位)字段只检验数据报的首部,不检验数据部分。...划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id 5.4 子网掩码(subnet mask) 从一个 IP 数据报的首部并无法判断源/
领取专属 10元无门槛券
手把手带您无忧上云