`
阿尔萨斯
  • 浏览: 4168514 次
社区版块
存档分类
最新评论

IP协议头格式

 
阅读更多

以下内容摘自笔者编著的《网管员必读——网络测试、监控和实验》一书。

3.3 IP协议头格式和Sniiffer PortableIP

IPInternet Protocol,因特网协议)是OSI第三层——网络层协议,本节仅以IPv4版本为例进行介绍。IP协议也是一个无连接的协议,主要就是负责在主机间寻址,并为数据包设定路由,在交换数据前它并不建立会话。因为它不保证正确传递。另一方面,数据在被收到时,IP不需要收到确认,所以它是不可靠的。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">3.3.1</span></chsdate> IP协议头格式

数据在经过IP网络层时,也会对数据进行封装,也就有相应的IP协议包头了。在以太网帧中,IPv4包头紧跟着以太网帧头,同时以太网帧头中的协议类型值设置为十六进制的0800它的基本格式如图3-12所示。

n 版本(Version

指定IP协议的版本号。因为目前仍主要使用IPv4版本,所以这里的值通常是0x4(注意封包使用的数字通常都是十六进位的)4位。
3-12 IP协议头格式
n 包头长度(Internet Header LengthIHL

指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5。占4位。由于它是一个4比特字段,因此首部最长为60个字节,但实际上目前最多仍为24个字节。

n 服务类型(Type of ServiceTOS

定义IP封包在传送过程中要求的服务类型共由8bit组成其中每个bit的组合分别代表不同的意思4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。具体如下:

Ø 000.....Routine):过程字段,占3位。设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)

Ø ...0....Delay):延迟字段,占1位,取值:0(正常)、1(期特低的延迟)

Ø ....0...Throughput):流量字段,占1位。取值:0(正常)、1(期特高的流量)

Ø .....0..Reliability可靠性字段,占1位。取值:0(正常)、1(期特高的可靠性)

Ø …..0.ECN-Capable Transport):显式拥塞指示传输字段,占1位。由源端设置,以显示源端节点的传输协议是支持ECNExplicit Cogestion Notifica tion,显式拥塞指示)的。取值:0(不支持ECN)、1(支持ECN

Ø .......0Congestion Experienced):拥塞预警字段,1位。取值:0(正常,不拥塞)、1(拥塞)

n 包长度(Total LengthTL

指定IP包的总长,通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。以字节为单位,16位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
经验之谈由于该字段长16比特,所以IP数据报最长可达65535字节。尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分段。而且,主机也要求不能接收超过576字节的数据报。由于TCP把用户数据分成若干段,因此一般来说这个限制不会影响TCPUDP的应用(如RIPTFTPBOOTPDNSSNMP等),都限制用户数据报长度为512字节,小于576字节。但是,事实上现在大多数的实现允许超过8192字节的IP数据报。
总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46个字节(将在本章后面介绍),但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。

n 标识(Identification

每一个IP封包都有一个16位的唯一识别码。当程序产生的数据要通过网络传送时都会被拆散成封包形式发送,当封包要进行重组的时候这个ID就是依据了。占16位。

标识字段唯一地标识主机发送的每一份数据报。通常每发送一份消息它的值就会加1RFC791认为标识字段应该由让IP发送数据报的上层来选择。假设有两个连续的IP数据报,其中一个是由TCP生成的,而另一个是由UDP生成的,那么它们可能具有相同的标识字段。尽管这也可以照常工作(由重组算法来处理),但是在大多数从伯克利派生出来的系统中,每发送一个IP数据报,IP层都要把一个内核变量的值加1,不管交给IP的数据来自哪一层。内核变量的初始值根据系统引导时的时间来设置。

n 标记(Flags

这是当封包在传输过程中进行最佳组合时使用的3bit的识别记号。占3位。

Ø 000Reserved Fragment):保留分段。当此值为0的时候表示目前未被使用。

Ø .0.Don't Fragment):不分段。当此值为0的时候表示封包可以被分段,如果为1则不能被分割。

Ø ..0More Fragment):更多分段。当上一个值为0时,此值为0就示该封包是最後一个封包,如果为1则表示其後还有被分割的封包。

n 分段偏移(Fragment OffsetFO

当封包被分段之后,由于网路情况或其它因素影响其抵达顺序不会和当初切割顺序一至,所以当封包进行分段的时候会为各片段做好定位记录,以便在重组的时候就能够对号入座。值为多少个字节,如果封包并没有被分段,则FO值为“0”13位。 

n 生存时间(Time To LiveTTL

生存时间字段设置了数据报可以经过的最多路由器数,表示数据包在网络上生存多久。TTL的初始值由源主机设置(通常为3264),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP消息通知源主机。这样当封包在传递过程中由於某些原因而未能抵达目的地的时候就可以避免其一直充斥在网路上面。占8位。

n 协议(ProtocolPROT

指该封包所使用的网络协议类型,如ICMPDNS等。占8位。各协议对应的值如表3-1所示。

3-1 协议号

协议号

协议

协议号

协议

00

IP

22

XNS-IDP

01

ICMP

27

RDP

02

IGMP

29

ISO-TP4

03

GGP

36

XTP

04

IP-ENCAP

37

DDP

05

ST

39

IDPR-CMTP

06

TCP

73

RSPF

08

EGP

81

VMTP

12

PUP

89

OSPFIGP

17

UDP

94

IPIP

20

HMP

98

ENCAP

n 头校验和(Header checksum

IPv4数据报包头的校验和。这个数值用来检错用的,用以确保封包被正确无误的接收到。当封包开始进行传送后,接收端主机会利用这个检验值会来检验余下的封包,如果一切无误就会发出确认信息表示接收正常。与UDPTCP协议包头中的校验和作用是一样的。占16位。

经验之谈首部检验和字段是根据IP首部计算的检验和码,不对首部后面的数据进行计算。ICMPIGMPUDPTCP协议在它们各自的首部中均含有同时覆盖首部和数据检验和码。
为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16位进行二进制反码求和(整个首部看成是由一串16位的字组成),结果存在检验和字段中。当接收端收到一份IP数据报后,同样对首部中每个16 位进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错消息,由上层去发现丢失的数据报并进行重传。
ICMPIGMPUDPTCP都采用相同的检验和算法,尽管TCPUDP除了本身的首部和数据外,在IP首部中还包含不同的字段。由于路由器经常只修改TTL字段(减1),因此当路由器转发一份消息时可以增加它的检验和,而不需要对IP整个首部进行重新计算。
n 源地址(Source AddressSA

发送IP数据包的IP地址。占32位。

n 目的地址(Destination Address

接收IP数据包的IP地址。也占32位。

n 选项(Options+填充(Padding

这两个选项较少使用,只有某些特殊的封包需要特定的控制才会利用到。共32位。这些选项通常包括:

Ø 安全和处理限制:用于军事领域

Ø 记录路径:让每个路由器都记下它的IP地址

Ø 时间戳:让每个路由器都记下它的IP地址和时间

Ø 宽松的源站选路:为数据报指定一系列必须经过的IP地址

Ø 严格的源站选路:与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址。

以上这些选项很少被使用,而且并非所有的主机和路由器都支持这些选项。选项字段一直都是以32位作为界限,在必要的时候插入值为0的填充字节。这样就保证IP首部始终是32位的整数倍(这是首部长度字段所要求的)。

从以上IP包头格式可以看出,IP协议包头大小也有两种:当没有“选项”这个字段时,为160位,20个字节;当有“选项”字段时为192位,24个字节。它与TCP协议包头大小是一样的。
分享到:
评论

相关推荐

    TCP/IP协议的数据包头格式

    TCP/IP协议的数据包头格式,包括TCP,UDP,IP,ARP等

    易语言伪造请求ip 伪造请求ip 网页访问伪造ip

    X-Forwarded-For 请求头格式: X-Forwarded-For: client, proxy1, proxy2 X-Forwarded-For 请求头的内容由英文逗号和空格隔开,每经过一级代理服务器, X-Forwarded-For 后面就会继续添加该代理设备的IP地址。 因此...

    FuIP v2.1 专为单片机联网而定制的TCP/IP协议栈

    FuIP专为单片机而定制的TCP/IP协议栈,适用于任何8,16,32位单片机 技术论坛:www.fuhome.net/bbs/ FuIP可用于,客户端,服务端,亦可接入fuhome.net 平台进行远程控制 版本:v2.1 2014年10月15日 龙剑奋斗 定期...

    IP交换技术协议与体系结构

    2.3 IPv4头格式 15 2.4 IPv4寻址 16 2.4.1 子网划分 17 2.4.2 超网 18 2.5 IP选路和转发 18 2.6 路由协议 20 2.6.1 距离向量选路 21 2.6.2 链路状态选路 22 2.6.3 RIP 24 2.6.4 OSPF 24 2.6.5 BGP 25 2.7 TCP和UDP ...

    FuIP 2.0协议栈,专为各种单片机的TCP/IP协议,接入互联网

    FuIP专为单片机而定制的TCP/IP协议栈,适用于任何8,16,32位单片机 技术论坛:www.fuhome.net/bbs/ FuIP可用于,客户端,服务端,亦可接入fuhome.net 平台进行远程控制 版本:v2.0 2014年6月29日 龙剑奋斗 定期...

    通过连接实例解读TCp/IP

    本文通过一个实例分析,对IP协议.IP数据包头部格式进行了介绍,以方便初学TCP/IP的能进一步了解TCP/IP.

    RTSP 的协议和格式分析

    RTP 打包原则:RTP 的包长度必须要小于 MTU(最大传输单元),IP 协议中 MTU 的最大长 度为 1500 字节。除去 IP 报头(20 字节)、UDP 报头(8 字节)、RTP 头(12 字节), 所有 RTP 有效载荷(即 NALU 内容)的长度...

    ip头部结构的详解知识

    ip属于网络层协议,其意义在于确定...但又和arp与tcp不同,它是为传输层服务的,通常将tcp和udp架在ip协议之上。所以他只不过是一个数据的载体,本身并没有自己的询问与回复功能。他在程序中,只起到确定传输的功能。

    TCPIP数据包的分析

    截取了一个TCP/IP数据包后,首先分离出IP协议(IP“Internet Protocol”协议是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP和IGMP数据等都是以IP数据报格式传输的)的头部分,从IP协议头中可以得到很多关键...

    RFC1752_推荐IP下一代协议.doc

    12.1 IPV6的头格式 25 12.2扩充头 27 12.2.1 HOP-by-HOP 选择头(option Header) 27 12.2.2 IPv6头选项 28 12.2.3路由头 29 12.2.4断片头 31 12.2.5鉴定头 32 12.2.6隐秘头(Privacy Header) 33 12.2.7端对端选项...

    书名 IP交换技术协议与体系结构

    2.3 IPv4头格式 15 2.4 IPv4寻址 16 2.4.1 子网划分 17 2.4.2 超网 18 2.5 IP选路和转发 18 2.6 路由协议 20 2.6.1 距离向量选路 21 2.6.2 链路状态选路 22 2.6.3 RIP 24 2.6.4 OSPF 24 2.6.5 BGP 25 2.7 TCP和UDP ...

    TCP/IP技术大全

    3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...

    TCP/IP教程TCP/IP基础

    3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...

    TCP-IP技术大全

    3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...

    千兆通讯协议

    RGMII Image通信协议,包括数据格式、IP头部checksum 算法、接收IP数据报检验IP校验和、千兆UDP命令包及寄存器值表示意义

    TCP/IP技术大全(中文PDF非扫描版)

    3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...

    TCP/IP详解

    3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络...

    协议数据分析.pdf

    所以Ethernet II类型以太⽹帧格式⽤2个字节标识出以太⽹帧所携带的上层数据类型,⽽16进制数 0x0800代表IP协议数据,所以在此帧类型是0800,因为他是IP协议数据。 2.4记录该⽹络数据块"IP数据报"层次的⽬的IP地址、...

    TCPIP协议详解(4-1)

    IP协议家族 77 9.1 TCP/IP模型 77 9.1.1 解剖TCP/IP模型 78 9.1.2 协议组件 78 9.2 理解网际协议(IP) 79 9.2.1 IPv4结构 79 9.2.2 IP做什么 80 9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头...

Global site tag (gtag.js) - Google Analytics