2012-09-15 43 views
0

16位用於IPv4中的「總長度」和IPv6中的「有效載荷長度」。以太網幀頭已包含一個16位長的字段。儘管只有一些可能的值用於表示長度,但它本身應明確指定有效載荷的總長度,並因此指定IP數據報的總長度。爲什麼在IP頭中再次指定它? (並再次在UDP?)爲什麼IP報頭中有一個有效載荷長度字段?

回答

1

IP和以太網在OSI model的不同層。位於第n層的服務不知道第n + 1層發生的任何事情,數據對其完全不透明。因此,必須重複某些事情,如長度。

+0

但是OSI模型的高層不會重複長度,是嗎? IP頭的IP地址也可以在更高層上使用,爲什麼不是長度? – Andres

+0

不是,因爲它不是必要的,如果需要的話,他們可以訪問低層的信息。數據長度只對3個較低層很重要,因爲它們實際上處理分割數據以傳輸它。由於較低層不關心數據包中封裝什麼內容,也不能訪問它,所以必須重複該長度。 – Femaref

+0

但是爲什麼IP不能從較低層獲得長度,就像IP源地址是從較高層的IP獲得的一樣?是否與不提供長度信息的較低層互操作? – Andres

0

一個原因是Layer2不一定是以太網。

IP正在通過不同的低層網絡提供邏輯分層和尋址。因此Layer3有自己的長度,不用擔心layer2。 讓layer2處理它自己的長度。

相關問題