TCP/IP各層講解 - 網絡層(中)

IPv4 與 IPv6

下面詳細說一下 IPv4 和 IPv6 之間的差別。安全

IPv4

IPv4 又稱互聯網通訊協議第四版,由32位(4字節)組成,一般以10進制的方式展示出來,如192.168.0.1。網絡

進行IP通訊時,須要在數據的前面加入IP首部信息,而IPv4的首部以下圖:設計

  • 版本:4個比特組成,如0100 ... = Version :4 指的就是IPv4,而0110指的就是IPv6 。
  • 首部長度:由4個比特構成,單位爲4字節,因此首部最大長度爲60個字節(15 * 4)
  • 服務類型:8個字節組成,3個是優先權字段,4個是TOS字段(最低延遲、最大吞吐、最大可靠性、最小代價),最後1個是未定義字段,但必須置0
  • 總長度:16個比特組成表示IP首部和數據加起來的總字節數。
  • 標識:16個比特組成,用於區分數據報中的各個分片,同一個分片標識相同。
  • 標誌:3個比特組成,表示被分片的信息。
  • 片位移:8個比特組成,表示每次分片傳輸的數據之間的偏移距離,也就是某分片的數據在原數據中的相對位置,通常偏移以8字節爲單位
  • 生存時間:由8比特組成,每通過一個路由器,TTL就會減1,直到爲0則丟棄。
  • 協議:8個比特構成,表示IP首部的下一個首部屬於哪一個協議。
  • 首部校驗和:16個比特組成,每通過一次路由器都會檢驗一次首部部分是否被破壞。
  • 源地址:發送端的IP地址。
  • 目標地址:接收端的IP地址。
  • 填充:經過填充0,把首部長度調整爲32比特的整數倍。
  • 數據:包數據。

IPv6基礎

IPv6也叫互聯網協議第6版,主要是爲了解決IPv4地址被耗盡而設計的。3d

IPv6 由128個比特組成,通常寫成8個16位字節,它能夠組成3.40 * 10^38 個地址,足以人們去爲全部的主機和路由分配地址。cdn

IPv6和IPv4所表示的方式不一致,若是用十六進制的方式表示的話就是8個16位比特組成,如:blog

FEDC:BA98:7654:3210:FEDC:BA98:7654:3210路由

若是二進制表示中出現連續的0,則能夠寫成it

1080::8:800:200C:417Aio

IPv6結構

IPv6與IPv4相似,也是經過IP地址的前幾位來標識IP種類的。class

  • 全局單播地址:就是指全世界惟一的地址,是互聯網中通訊最經常使用的地址。它的前64位爲網絡標識,後64位爲主機標識。
  • 鏈路本地單播地址:指的是在同一數據鏈路中通訊的地址。(不經過路由器)(1111 110)
  • 惟一本地地址:指的是不鏈接互聯網而接入私有網絡的地址,爲了提升安全性,網絡之間的通訊經過NAT或網關進行。(1111 1110 10)

IPv6首部

IPv6 首部如圖:

IPv6爲了減小路由器的壓力,取消了首部校驗和字段。此外分片處理的識別碼也變成了可選項。

  • 版本:與IPv4基本一致。
  • 通訊量類: 與IPv4中的TOS字段基本一致。
  • 流標號:20個比特組成,用於服務質量的控制。
  • 有效載荷長度:指的是數據部分的長度。
  • 下一個首部:與IPv4中的協議一致。
  • 跳數限制:與IPv4中的TTL一致。
  • 源地址:發送端地址。
  • 目標地址:接受端地址。

IPv6的分片

IPv6的分片處理被分配在發送端主機上進行,路由器不進行分片,而進行分片的功能就是「路徑MTU發現」。

路徑MTU發現和傳統的路由器分片不一樣,傳統的路由器分片是路由器根據不一樣的數據鏈路中可承載的最大傳輸單元(MTU)來進行分片處理。而路徑MTU發現則是經過發送端發送一個禁止分片表示的包,當路由器遇到須要分片的時候,會把當前的包丟掉,而後返回一個ICMP到主機。在下一次主機根據ICMP所通知的MTU的值進行分片處理,如此反覆,就能獲得最適合的MTU。

路由控制

若是隻有IP地址的話是沒法進行網絡通訊的,在通訊的時候還須要有着下一步的路由器或者主機的信息,而記錄這個信息的就是路由控制表。

路由控制表

路由控制表中記錄着網絡地址和下一步應該發送的路由器地址。當接受到IP包的時候,會先分析首部中的目標地址,而後從控制表中查找與改地址具備相同網絡地址的記錄,就能夠找到下一個須要發送的路由器地址。若是有着多條相同的網絡地址的記錄,會選擇最爲吻合的(也就是相同位數最多的)。

路由地址的類型有着如下分類:

  • 默認路由:指任何目標地址都與之匹配的地址,通常標記了0.0.0.0/0
  • 主機地址:就是整個IP地址都是主機地址,不基於網絡地址進行路由選擇
  • 環回地址:就是localhost或者127.0.0.1,當使用該地址時,數據包不會流向網絡。

路由控制表的聚合

當鏈接的主機和路由器越多的時候,路由控制表所記錄的網絡地址就越多,因此這個時候必須進行聚合。

就如192.168.2.0/24和192.168.3.0/24就能夠聚合爲192.168.2.0/23爲已知,這樣就能夠減小路由表的大小和減小查找的時間。

寫在最後

加油加油~~~

圖解TCP/IP

這會做爲最近的一個長期目標不按期更新。

相關文章
相關標籤/搜索