图解TCP/IP: IPv4首部

本文详细解析了IPv4数据报的格式,包括版本、首部长度、区分服务、总长度、标识、标志、片偏移、生存时间、协议、首部校验和、源地址、目标地址、可选字段、填充及数据部分。深入探讨了TOS、DSCP、ECN、标志、TTL和首部校验和的功能与计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过IP进行通信时,需要在数据的前面加入IP首部信息。IP首部中包含着用于IP协议进行发包控制时所有的必要信息。

# IP数据报格式(IPv4)
Version版本 | IHL首部长度 | Type Of Service区分服务 |        Total Length总长度
             Identification标识                    | Flags标志 | Fragment Offset片偏移
Time To Live生存时间      |      Protocol协议      |     Header Checksum首部校验和
                                  Source Address源地址
                              Destination Address目标地址
                          Options可选字段                               |  Padding填充
                                      Data数据部分
区分服务(TOS:Type Of Service)

由8比特构成,用来表明服务质量。

# 服务类型中各比特的含义
0 1 2 优先度
3     最低延迟
4     最大吞吐
5     最大可靠性
6     最小代价
(3~6) 最大安全
7     未定义

用0、1、2这三位表示0~7的优先度。从0到7表示优先度从低到高。
DSCP段与ECN段
         DSCP段        |   ECN段     

DSCP(Different Services Codepoint, 差分服务代码点)是TOS的一部分,现在统称为DiffServ,用来进行质量控制。如果3~5位的值为0,0~2位则被称作类别选择代码点。对于每一种级别所采取的措施则由提供DiffServ的运营管理者制定,为了与TOS保持一致,值越大优先级也越高。如果第5位为1,表示实验或本地使用的意思。

ECN(Explicit Congestion Notification, 显式拥塞通告)用来报告网络拥堵情况,由两个比特构成。

# ECN域
6 ECT ECN-Capable Transport
7 CE Congestion Experienced

第6位的ECT用以通告上层TCP协议是否处理ECN。当路由器在转发ECN为1的包的过程中,如果出现网络拥堵的情况,就将CE位设置为1。

标志(Flags)

由3比特构成,表示包被分片的相关信息。

# 标志段各位含义
0 未使用,现在必须是0。
1 指示是否进行分片。0-可以分片、1-不能分片
2 包在分片的情况下,是否表示最后一个包。0-最后一个分片的包、1-分片中段的包
生存时间(TTL:Time To Live)

由8比特构成,最初的意思是以秒为单位记录当前包在网络上应该生存的期限,而在实际中它是指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,直到变成0则丢弃该包。

首部校验和(Header Checksum)

由16比特构成,也叫IP首部校验和。该字段只校验数据报的首部,不校验数据部分,它主要用来确保IP数据报不被破坏。

校验和的计算过程:

  • 将该校验和的所有位置设置为0

  • 以16比特为单位划分IP首部,并用1补数计算所有的16位字的和

  • 将所得到这个和的1补数赋给首部校验和字段

(最近更新:2019年09月18日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值