目录
一,IP数据报文的组成
二,IP报文格式
三,IPv4报文示例
作者:柒烨带你飞
一,IP数据报文的组成
一个IP数据报文都是由首部和数据两部分组成。 每个 IP 数据报都以一个 IP 报头开始。IP 报头中包含大量信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等。每个信息都被称为一个字段。
二,IP报文格式
IPv4详细报头格式字段如下:
一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
字段 | 长度 | 含义 |
---|---|---|
版本(version) | 4bit | 指IP版本协议,如IPv4和IPv6,双方通信的协议必须一致 |
首部长度(IHL) | 4bit | 指IP数据报的首部长度,如果不带选项(Option)字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。 |
服务类型(Type of service) | 8bit | 用来获得更好的服务。只有在使用Qos区分服务时,这个字段才起作用 |
总长度(Total Length) | 16bit | 指首部和数据之和的长度,单位为字节,最长为65535字节,以太网最初对报文长度没有限制。 网络层最大可以接收65535个字节,但是数据链路层以太网对于长报文无法可靠地传输,而且丢失后重传也会占用大量的网络资源,所以现在IP数据报的总长度一旦超过最大传输单元MTU, 就会对IP报文进行分片依次传输。 在数据链路层下帧的格式规定,最大传输单元不能超过MTU(目前以太网的MTU=1500字节)文章来源:https://www.toymoban.com/news/detail-403598.html |
标识(Identification) | 16bit | IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序号接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 |
标志(Flags) | 3bit | 占3位,但只有2位有意义。 ①标志字段中的最低位记为MF(MoreFragment)。 MF=1即表示后面“还有分片”的数据报。 MF=0表示这已是若干数据报片中的最后一个。 ②标志字段中的一位记为DF(Don’t Fragment),意思是“不能分片”。 只有当DF=0时才允许分片。 |
片段偏移(Fragment Offset) | 13bit | 较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。 |
生存时间TTL(Time to Live) | 8bit | 生存时间字段常用的的英文缩写是TTL(TimeToLive),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。 每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。 若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。 |
协议(Protocol) | 8bit | 协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。 |
首部效验和(Header Checksum) | 16bit | 这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。 |
源地址(source Address) | 32bit | 发送方地址。 |
目的地址(Destination Address) | 32bit | 接收方地址 |
可选字段 (Options) | 可变 | 用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。 |
填充字段(Padding) | 可变 | 填充字段,全填0 |
三,IPv4报文示例
文章来源地址https://www.toymoban.com/news/detail-403598.html
到了这里,关于IPv4报文格式详解和报文示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!