IP數(shù)據(jù)報(bào)的首部長度和數(shù)據(jù)長度都是可變長的,但總是4字節(jié)的整數(shù)倍。對(duì)于IPv4,4位版本字段是4。4位首部長度的數(shù)值是以4字節(jié)為單位的,最小值為5,也就是說首部長度最小是4x5=20字節(jié),也就是不帶任何選項(xiàng)的IP首部,4位能表示的最大值是15,也就是說首部長度最大是60字節(jié)。8位TOS字段有3個(gè)位用來指定IP數(shù)據(jù)報(bào)的優(yōu)先級(jí)(目前已經(jīng)廢棄不用),還有4個(gè)位表示可選的服務(wù)類型(最小延遲、最大呑吐量、最大可靠性、最小成本),還有一個(gè)位總是0?傞L度是整個(gè)數(shù)據(jù)報(bào)(包括IP首部和IP層payload)的字節(jié)數(shù)。每傳一個(gè)IP數(shù)據(jù)報(bào),16位的標(biāo)識(shí)加1,可用于分片和重新組裝數(shù)據(jù)報(bào)。3位標(biāo)志和13位片偏移用于分片。TTL(Time to live)是這樣用的:源主機(jī)為數(shù)據(jù)包設(shè)定一個(gè)生存時(shí)間,比如64,每過一個(gè)路由器就把該值減1,如果減到0就表示路由已經(jīng)太長了仍然找不到目的主機(jī)的網(wǎng)絡(luò),就丟棄該包,因此這個(gè)生存時(shí)間的單位不是秒,而是跳(hop)。協(xié)議字段指示上層協(xié)議是TCP、UDP、ICMP還是IGMP。然后是校驗(yàn)和,只校驗(yàn)IP首部,數(shù)據(jù)的校驗(yàn)由更高層協(xié)議負(fù)責(zé)。IPv4的IP地址長度為32位。選項(xiàng)字段的解釋從略。
想一想,前面講了以太網(wǎng)幀中的最小數(shù)據(jù)長度為46字節(jié),不足46字節(jié)的要用填充字節(jié)補(bǔ)上,那么如何界定這46字節(jié)里前多少個(gè)字節(jié)是IP、ARP或RARP數(shù)據(jù)報(bào)而后面是填充字節(jié)?