IP包头格式及详细解释

IP协议

Writed by Vindeselly

一、IP包头

版本

4 bit

首部长度

4 bit

服务类型(TOS)

8 bit

总长度(字节数)

16 bit

标识

16 bit

标志

3 bit

片偏移

13 bit

生成时间(TTL)

8 bit

协议

8 bit

首部检验和

16 bit

源IP地址

32 bit

目的IP地址

32 bit

选项(可选)

数据

 

二、各部分详解

2.1版本(Version)

4bit的版本字段表示IP的版本号。如果为0100表示IPv4,如果为0110表示IPv6。

2.2首部长度(header length)

4比特的首部长度字段表示IP首部的总长度,其中包括选项字段(如果有)。该字段的表示的长度单位为32bit(4 bytes),因此首部长度最大为15(1111)*32bit=60bytes。在没有选项时,该字段的值为5,表示普通的IP包头长度20bytes。

2.3服务类型(Differentiated Service Field)

8bit的服务器类型(TOS)字段,其中前3个bit表示优先权(现在已经忽略该字段),随后的4个bit表示服务类型,按顺序分别表示为最小时延、最大吞吐量、最高可靠性、最小费用四种。这个4个bit中最多只能有1个bit置位,如果全是0则表示一般服务。最有1个bit为未用位,必须置0。

2.4总长度(Total Length)

16个bit的总长度字段表示整个IP数据报的长度,以字节为单位。所以IP数据报的最大长度为16个1=65535bytes。

此处的总长度字段与MTU是密切相关的,MTU表示IP数据报的最大传输单元的大小,我们知道一般默认的MTU值为1500,也就是说单个IP数据报的最大长度为1500bytes。常规的无选项的IP包头长度为20bytes,可以通过MTU计算出DATA数据字段的最大长度为1480bytes。不仅如此,MTU还与TCP协议报头中的MSS有关联,MSS表示TCP数据报的最大传输长度,常规的TCP报头长度为20bytes,又因为TCP报头是封装在IP包头上的,所以MSS一般为1460bytes=MTU1500-IP包头20-TCP报头20。(其中关于MSS字段的详细解释请参见《TCP协议文档》)。由于默认MTU为1500bytes,所以网卡发送的数据帧的大小为1518bytes,多了18bytes分别为:目的MAC(6bytes)、源MAC(6bytes)、type(2bytes)、CRC(4bytes)。(具体关于二层数据帧的解释请参见《二层数据帧文档》)

2.5标识(Identification)

16bit的标识字段唯一的标识主机发送的每一份数据报,由主机生成具有唯一性。通常每发送一份报文该值加1。该值在数据包分片时,会复制到每一个片中。所以在重组分片包的时候会观察该值,把该值相同的分片收集到一起重组,后面会继续讨论分片。

2.6标志(Flag)

3bit的标识字段每一位都有特定的含义,该字段主要用来分片和重组。第1个bit为保留位(Reserved Bit),一般置位0。第2个bit为不分片位(Don’t Fragment),该位在置1时表示不分片。第3个bit为更多片位(More Fragment),该位表示后面是否还有更多的分片,置位1时表示后面还有,所以除了最后一片报文,其他分片报文该位全部置1。

2.7片偏移(Fragment Offset)

13比特的片偏移字段表示分片时,每一个分片的数据字段偏移原始数据报开始处的位置。比如原始数据报的数据字段总长为1461bytes,使用TCP传输协议,那么对该数据报进行分片,第一片的offset字段为0,第二片的offset字段就应该为1460。就是这么理解就对了^_^

 

再次简要讨论一下分片:把一份超过MTU的数据报分片以后,这些分片只有在到达目的地才进行重新组装。在一组分片报文传输的过程时中间设备有可能会对该分片再次分片。如果采用TCP传输协议,在传输过程中丢失一个分片报文,那么整个TCP数据报都将被重新传送,不会只发送丢失的分片。其原因是TCP协议有自己的超时和重传机制。(详解请参见《TCP协议文档》)

在一组分片报文中,任何传输层的首部只会出现在第一个分片中。并且由于数据报被分片后IP包头的首部校验和将会重算。在分片时,出最后一片外,其他每一片的数据部分必须是8字节的整数倍。

2.8生成时间(Time To Live)

8bit的生成时间字段表示该IP数据包可以经过的路由器的最大数量。最大为256表示可以穿越256台路由,该字段采用减法的方式赋值,比如在开始时8个bit全部置位1,没经过一台路由器该字段的值减1。如果该字段的值减到了0还没有送达目的地,那么该IP数据包将被丢弃。最初设计这个字段是为了防止IP报文在网络中循环无限传输,占用带宽等问题。

2.9协议(Protocol)

8bit的协议字段表示在IP上层承载的是什么协议。比如:0x01表示ICMP协议、0x06表示TCP协议、0x11表示UDP协议等。

2.10首部校验和(Header Checksum)

16bit的首部校验和字段用来使接收端检验收到的报文是否正确。该字段只对IP首部计算校验和不包含后面的数据字段。原因是IP的上层协议比如ICMP、IGMP、TCP、UDP协议的各自首部中均含有同时覆盖首部和数据的校验和。

计算方法:首先把首部中的该字段全部置0,然后对首部中的每个16bit进行反码求和,得到的值就是该字段的值,填入后。将该数据包发给接收端后,接收端将进行相同的操作,对每个16bit进行反码求和(此时首部校验和字段为非0字段),所以计算后的值若为全1表示正确,否则表示收到的数据包不正确,动作为丢弃。

2.11选项(Option)

一般不使用该字段,该字段的值以32bit为单位,不足时以0补充。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值