網際網路協定(Internet Protocol, IP)

IP 層的四個特性:
  • Connectionless
  • Asynchronous Communication
  • Unreliable
  • Efficient



IP 層的下一層是 資料鏈結層,所以 IP 層在封裝封包時,必須封裝成資料鏈結層所能承載的 MTU 大小。

不同型態的資料鏈結層所能承載資料的最大長度稱為 Maximum Transmission Unit, MTU,常見的網路型能及其 MTU 為:
網路型態 MTU
Ethernet 1,500 Bytes
X.25 1,600 Bytes
FDDI 576 Bytes
ATM 9,180 Bytes



在 IP 封包傳送的過程,可能會遇到比當初封包的 MTU 還小的網路類型,此時,就必須對該 IP 封包進行分割(Fragmentation)。
IP 封包在傳送的過程中,所經過的 Router 只會決定與負責對 IP 封包作分割(Fragmentation),而不負責重新組合(Reassemble),將分割段(Fragments)重新組合的工作,是由最終的目的主機所負責。


舉例來說,一個資料長度為 5,000 byte 的封包,透過 IP 傳送,經過一個 MTU 為 1,500 bytes 的 Ethernet 時,它的分割情況是這樣的:

原始的封包總長度為: IP header (20 bytes) + data (5,000 bytes) = 5,020 bytes
MTU 為 1,500 bytes 的封包為: IP header (20 bytes) + data (1,480 bytes) = 1,500 bytes

所以分割後的封包為:
IP header (20 bytes) + data (1,480 bytes) = 1,500 bytes,Offset = 0, More Fragment = 1
IP header (20 bytes) + data (1,480 bytes) = 1,500 bytes,Offset = 1480/8 = 185, More Fragment = 1
IP header (20 bytes) + data (1,480 bytes) = 1,500 bytes,Offset = 2960/8 = 370, More Fragment = 1
IP header (20 bytes) + data (560 bytes) = 580 bytes,Offset = 4440/8 = 555, More Fragment = 0


IP 的 Time to Live(TTL) 欄位是一個 counter,可設定的最大值為 255,目的是為了避免 IP 封包因為某些因素找不到目的地,而在網路上不斷繞行。

每 IP 封包在網路上繞行時,每經過一個 Router,其 TTL 就會被該 Router 減 1 後,再傳送出去,如果 IP 封包到達 Router 時,其 TTL 為 1,則該 Router 會直接丟棄(discard)此封包,不再繼續往下傳遞。




Reference

TCP/IP網路通訊協定(第二版)


文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
arrow
arrow
    全站熱搜

    silverwind1982 發表在 痞客邦 留言(0) 人氣()