IP UDP包头详解

IP UDP包头详解IP UDP包头详解

各字段功能:

1、版本号(Version):长度 4 bit 。标识目前采用的 IP 协议的版本号。一般的值为 0100(IPv4),0110(IPv6)

版本号版本
0保留
1~3未分配
4Internet 协议版本 4(IPv4)
5ST 数据报(Datagram)
6简单 Internet 协议(SIP)
6IPv6
7TP / IX
8P Internet 协议(PIP)
9使用更大地址的 TCP 和 UDP(TUBA)
10~14未分配
15保留

2、IP 报头长度(Header Length):长度 4 bit 。这个字段的作用是为了描述 IP 报头的长度,因为在 IP 报头中有变长的可选部分。该部分占 4 个 bit,长度单位为 4 个字节,即本区域值 = IP 头部长度(单位为字节)/ 长度单位(4 个字节)。因此,一个 IP 报头的长度最长为 “ 1111 ”,即 15 x 4 个字节 = 60 个字节。IP 报头最小长度为 20 字节。

Header LengthHeader Length 所代表的实际的 IP 报头长度
010120 字节
011024 字节
011128 字节
110152 字节
111056 字节
111160 字节

3、服务类型(Type of Service):长度 8 bit 。8 位按位被如下定义:PPP DTRC0

**TOS只表示用户的请求,不具有强制性,实际应用中很少用,路由器通常忽略TOS字段。**
  • PPP:(Precedence)前 3 位,定义包的优先级,取值越大数据越重要。优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。
    - 000 普通(Routine)
    - 001 优先的(Priority)
    - 010 立即的发送(Immediate)
    - 011 闪电式的(Flash)
    - 100 比闪电还闪电式的(Flash Override)
    - 101 CRI / TIC / ECP(找不到这个词的翻译)
    - 110 网间控制(Internetwork Control)
    - 111 网络控制(Network Control)
  • DTRCO:后 5 位
    - D (Delay更低的时延)时延:0:普通,1:延迟尽量小
    - T (Throughput 更高的吞吐量)吞吐量:0:普通,1:流量尽量大
    - R(Reliability更高的可靠性) 可靠性:0:普通,1:可靠性尽量大
    - C (Cost 更低费用的路由)传输成本:0:普通,1:成本尽量小
    - 0 最后一位被保留,恒定为 0

4、IP 包总长度(Total Length):长度 16 bit 。以字节为单位计算的 IP 包的长度(包括头部和数据),所以 IP 包最大长度 65 535 字节。所以,数据包有效载荷的大小 = IP 包总长度(Total Length)- IP 报头长度(Header Length)。

5、标识符(Identifier):长度 16 bit 。该字段和 Flags 和 Fragment Offest 字段联合使用,对较大的上层数据包进行分段(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

6、标记(Flags):长度 3 bit 。

  • 该字段第一位不使用。
  • 第二位是 DF(Don’t Fragment)位,DF 位设为 1 时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。
  • 第三位是 MF(More Fragments)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的 IP 包的报头中将 MF 位设为 1 。

7、片偏移(Fragment Offset):长度 13 bit,以 8 个八位组为单位。表示该 IP 包在该组分片包中位置,接收端靠此来组装还原 IP 包。

8、生存时间(TTL):长度 8 bit,设计之初是以秒(s)为单位的,但实际以跳数为单位,建议的缺省值为 64 。当 IP 包进行传送时,先会对该字段赋予某个特定的值。当 IP 包经过每一个沿途的路由器的时候,每个沿途的路由器会将 IP 包的 TTL 值减少 1 。如果 TTL 减少为 0,则该 IP 包会被丢弃。这个字段可以防止由于路由环路而导致 IP 包在网络中不停被转发。

9、协议(Protocol):长度 8 bit 。标识了上层所使用的协议。以下是比较常用的协议号:1 ICMP;2 IGMP;6 TCP;17 UDP;88 IGRP;89 OSPF 。

10、头部校验(Header Checksum):长度 16 bit 。用来做 IP 头部的正确性检测,但不包含数据部分。 因为每个路由器要改变 TTL 的值,所以路由器会为每个通过的数据包重新计算这个值。

11、起源和目标地址(Source and Destination Addresses):这两个地址都是 32 bit 。标识了这个 IP 包的起源和目标地址。要注意除非使用 NAT,否则整个传输的过程中,这两个地址不会改变。

12、可选项(Options):这是一个可变长的字段。该字段属于可选项,主要用于测试,由起源设备根据需要改写。可选项目包含以下内容:

  • 松散源路由(Loose source routing):给出一连串路由器接口的 IP 地址。IP 包必须沿着这些 IP 地址传送,但是允许在相继的两个 IP 地址之间跳过多个路由器。
  • 严格源路由(Strict source routing):给出一连串路由器接口的 IP 地址。IP 包必须沿着这些 IP 地址传送,如果下一跳不在 IP 地址表中则表示发生错误。
  • 路由记录(Record route):当 IP 包离开每个路由器的时候记录路由器的出站接口的 IP 地址。
  • 时间戳(Timestamps):当 IP 包离开每个路由器的时候记录时间。
  • 填充(Padding):因为 IP 报头长度(Header Length)部分的单位为 32 bit,所以 IP 报头的长度必须为 32 bit 的整数倍。因此,在可选项后面,IP 协议会填充若干个 0,以达到 32 bit 的整数倍。







字段长度含义
版本4比特IP协议的版本号,分为IPv4和IPv6协议。
首部长度4比特IPv4的首部长度。
区分服务8比特用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。
总长度16比特指首部和数据之和的长度。
标识16比特IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
标志3比特目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。
片位移13比特指出较长的分组在分片后,该片在原分组中的相对位置。
生存时间TTL(Time To Live)8比特表示数据报在网络中的寿命,功能是“跳数限制”。
协议8比特指出此数据报携带的数据是使用何种协议。
首部检验和16比特数据报每经过一个设备,设备都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。
源地址32比特报文发送方的IPv4地址。
目的地址32比特报文接收方的IPv4地址。
选项字段0~40字节(长度可变)用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。
数据部分可变用来填充报文。

UDP

IP UDP包头详解

转载于:https://blog.51cto.com/13854765/2163343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值