IP首部

1. 引言

IP是TCP/IP协议族中最为核心的协议。全部的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输,可是IP提供不可靠、无链接的数据报传送服务。
不可靠的意思是它不能保证IP数据报嫩成功地到达目的地。IP仅提供最好的传输服务。若是发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,而后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
无链接的意思是IP并不维护任何关于后续数据报的状态信息。每一个数据报的处理是相互独立的。这也说明,IP数据报能够不按发送顺序接收。若是一信源向相同的信宿发送两个连续的数据报(先是A,而后是B),每一个数据报都是独立地进行路由选择,可能选择不一样的路线,所以B可能在A达到以前先到达。算法

2. IP首部

IP数据报的格式以下,普通IP首部长为20个字节,除非含有选项字段:网络

 

上图中,最高位在左边,记为0bit;最低位在右边,记为31bit。
4个字节的32bit值如下面的次序传输:首先0~7bit,其次8~15bit,而后16~23bit,最后是24~31bit。这种传输次序称做big endian字节序。
因为TCP/IP首部中全部的二进制整数在网络中传输时都要求以这种次序,所以它又称为忘了字节序。以其余形式存储二进制整数的机器,如little endian格式,则必须在传输数据以前把首部转换成网络字节序。
(1)4位版本:目前的协议版本号是4.
(2)4位首部长度:首部占32bit字的数目,包括任何选项,因为它是一个4比特字段,所以首部最长为60个字节。
(3)8位服务类型(TOS):包括一个3bit的优先权子字段,4bit的TOS子字段,1bit未用位但必须置0。4bit的TOS分别表明:最小时延、最大吞吐量、最高可靠性和最小费用,4bit中同时只能置其中1bit为1,。若是全部4bit均为0,那就意味着是通常服务。
(4)16位总长度:指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就能够知道IP数据报中数据内容的起始位置和长度。因为该字段长16比特,因此IP数据包最长可达65535字节,当数据报被分片时,该字段的值也随着变化。
(5)16位标识:惟一标识主机发送的每一份数据报,一般每发送一份报文它的值就会加1。
(6)3位标志
(7)13位片偏移
(8)8位生存时间:TTL设置了数据报能够通过的最多路由器数,它指定了数据报的生存时间。TTL的初始值由源主机设置(一般为32或64),一旦通过一个处理它的路由器,它的值就减去1.当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
(9)8位协议:识别是哪一个协议向IP传送数据。
(10)16位首部检验和:根据IP首部的计算的检验和码。不对首部后面的数据进行计算,ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。若是检验和错误,IP就丢弃收到的数据报,但不生成差错报文,由上层去发现丢弃的数据报并进行重传。
(11)32位源IP地址
(12)32位目的IP地址
(13)选项:可变长的可选信息,选项字段都是以32bit做为界限,在必要的时候插入值位0的填充字节。这样就保证IP首部始终是32bit的整数倍(这是首部长度字段所要求的)。
(14)数据并发

相关文章
相关标签/搜索