【网络基础】IP数据报文段解析

IP数据报文段的结构示意图如下:

(1)版本 占4位,指IP协议的版本。

通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到4*15=60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。

首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务 占8位,用来获得更好的服务。

只有在使用区分服务时,这个字段才起作用。

(4)总长度 总长度指首部和数据之和的长度,单位为字节

总长度字段为16字节,因此数据报的最大长度为2^16-1=65535字节。

在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值如果IP数据报的长度大于MTU,则要进行分片处理。

(5)标识(identification) 占16位。

IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但目前只有2位有意义。

标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个

标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片

(7)片偏移 占13位。

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间 占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。

TTL的意义是指明数据报在网络中至多可经过多少个路由器。显然,数据报在网络上经过的路由器的最大数值是255.

若把TTL的初始值设为1,就表示这个数据报只能在本局域网中传送。

(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和 占16位。

这个字段只检验数据报的首部,但不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。如下:

具体方法可以参考:首部检验和演示

(11)源地址 占32位。

(12)目的地址 占32位。

(13)可变部分 占32位。

增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。

本文由Cout_Sev 搜集整理并修改

转载请注明出处

谢谢!

【网络基础】IP数据报文段解析

时间: 2024-07-30 10:42:32

【网络基础】IP数据报文段解析的相关文章

软件定义网络基础---SDN数据平面

主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数据包的处理流程 (四)传统网络数据转发处理特点 比如某一设备的数据平面,只能对某几种特定协议的数据包进行解析 功能模块固定,在网络生产时就已经固定.例如: 二:SDN数据平面架构 (一)主要变化 第一:在该SDN数据平面中,包处理流程中的所有模块,包括解析.转发和调度,都是可编程.协议无关的 第二:

Linux 网络编程——IP 数据包格式详解

IP 数据报首部 TCP/IP 协议定义了一个在因特网上传输的包,称为 IP 数据报 (IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成. 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的.在首部的固定部分的后面是一些可选字段,其长度是可变的.首都中的源地址和目的地址都是 IP 协议地址. IP 数据报首部的固定部分中的各字段: 1)版本:占4位,指IP协议的版本. 通信双方使用的 IP 协议版本必须一致.日前广泛使用的 IP 协议版本号为 4

网络基础---IP编址

一,有类编址:按照严格的界限的IP地址分类的思想为有类编址. 比如,IP地址中的A,B,C,D,E类地址为有类编址. 好处:有类编址严格的将网络号和主机号区分开,有效的利用了地址空间 坏处:严格的分类,影响了地址使用的高效性,例如有可能只要两个地址的链路互联地址却用了一个C类地址. 二,无类编址:没有严格的区分网络号和主机号的位数,一个IP地址的网络号被解释成某一长度的前缀. 好处:高效的利用了地址空间,更加符合实际使用地址空间的实情.且具有灵活性,比如一个有类A类地址可以分成多个小块地址分配给

网络基础 IP 子网划分

比如C类地址: 192.168.0.0    C类网段 255.255.255.0  C类默认掩码 11111111   11111111   11111111  00000000  C类掩码二进制表示 按二进制来看 网络位为24个1,后面的8个0为主机位,默认情况下只分了一个网段,那就是 192.168.0.0----192.168.0.255  子网掩码为默认的24位 255.255.255.0 子网划分方法:默认子网掩码为24位网络位,8位主机位:需要将子网掩码变长,增加网络位数,减少主机

华为HCNA-初级网络基础

内容描述 本文摘自HCNA2网络基础知识,共包含五个Module,全面地介绍了构建一个基本的IP网络所涉及的各种主要技术,重点描述了交换.路由和网络服务等基础内容,以及这些内容如何在VRP上配置和实现的. Module 1系统地介绍了TCP/IP协议模型,侧重讲述了数据链路层.网络层和传输层的功能和作用,其主要目的是帮助读者加深对数据通信中"层次"的理解,并且熟悉和掌握数据在网络中的端到端传输过程. Module 2介绍了华为通用路由平台VRP的基础知识及其操作指导,主要包含了VRP的

网络基础总结

一.网络分层 ? ?? TCP的四层: ? ? 一.应用层: 规定向用户提供应用服务时通信协议. 如DNS ? ? 二.传输层: 提供处于网路连接中两台计算机之间的数据传输所使用的协议.在传输层有两个性质不同的协议TCP和UDP ? ? 三.网络层: 规定了数据通过怎么样的传输路线到对方计算机传送给对方.如IP协议 ? ? 四.链路层: 用来处理连接网络硬件的部分,包括操作系统.硬件设备的驱动.网卡等 二.TCP 1.简介 ? ??TCP是传输控制协议,基于TCP的应用层有HTTP.SMTP.F

深入理解Linux网络技术内幕——IPv4 报文的接收(转发与本地传递)

我们知道,报文经过网卡驱动处理后,调用net_receive_skb传递给具体的协议处理函数,对于IPv4报文来说,其协议处理函数就是ip_rcv了,ip_rcv在进行一些健康检查等操作后,会调用ip_rcv_finish来处理报文.这也是IPv4协议对报文接收处理的开始. 我们先看下ip_rcv_finish源代码: ip_rcv_finish: //ip数据报文的主要处理程序(ip_rcv仅仅只是对ip数据报做一些健康性检查) //ip_rcv_finish 其实是进行路由表查询,,决定报文

IP报文解析及基于IP 数据包的洪水攻击

版本(4bit) 报头长度(4bit) 优先级和服务类型(8bit) 总长度(16bit) 标识(16bit) 标志(3bit) 分段偏移(13bit) 存活期(8bit) 协议(8bit) 报头校验和(16bit) 源IP地址(32bit) 目的IP地址(32bit) 选项(0或32bit,若有的话) 数据(可变) 版本 IP版本号.报头长度 32位字的报头长度(HLEN).优先级和服务类型 服务类型描述数据报将如何被处理.前3位表示优先级位.总长度 包括报头和数据的数据包长度.标识 唯一的I

IP数据网络基础

TCP的连接管理:面向连接的传输需要三个阶段:连接建立.数据传输和连接终止.TCP连接的管理就是使传输连接的建立和释放都能正常地进行. 三次握手过程,采用客户/服务器方式. 服务器告诉自己的TCP已经准备好接受连接,称为被动打开请求.(被动等待连接建立) 客户程序发出请求叫做主动打开.(主动发起连接的建立) 连接建立过程中要解决的三个问题: 要使每一方能够确知对方的存在. 要允许双方协商一些参数. 能够对传输实体资源进行分配. 三次握手过程 主动关闭端发送一个FIN报文段:FIN(seq:x,a