2018-04-04,個人筆記
-
IPv4:
- Header's length,通常不帶任何選項字段,值為20
- Datagram's length,數據包總長度(首部+數據)。
-
IPv6:
- 只有一個 有效載荷長度(payload length),其首部無選項字段,是40字節定長的。
-
TCP:
-
Header's length,通常不帶任何選項字段,值為20
-
不包含數據報總長度:實際是使用 ip 包信息計算出來。(實際就是ip包的數據長度)
-
-
UDP:
-
只有一個長度字段:指UDP包的總長度(實際上該數據是冗余的,它也同 tcp 的第二點一樣,可用 ip 包信息推算出來)因為這個字段為16bit,最大數值為65535,因此這也是 UDP 數據報的最大長度。
-
但是 udp 的首部長度是固定的,因此其數據長度=包總長度-8字節
-
-
UDP為何要攜帶一個冗余字段?
協議首部都是以 4 字節為單位對齊的,這是為了方便處理,就像計算機內部以 byte 為單位對齊一樣。 這導致udp首部出現2byte的空白,那就隨便帶點有用的信息了。。(合理的解釋之一)