TCP/IP 協議報文轉發

TCP/IP 協議報文轉發

TCP/IP 協議簡介

TCP/IP協議允許計算機、智能手機和嵌入式設備之間通信,並且可以兼容來自不同計算機生產商的設備和各種不同的軟件。TCP/IP協議是一個開放的系統,協議族定義和許多實現是公開的,他是構成全球網絡的基礎。TCP/IP層協議採用四層結構,分別是應用層,傳輸層,網絡層和鏈路層。如下圖所示:
849589-20170628002845914-1085185628

TCP/IP 協議數據包轉發

路由器橋接 (1)

通過上圖,我們可以看到,當我們通過 WIFI 接入互聯網是,是如何訪問網絡上的服務器的。以 HTTP 請求爲例:

  1. 我們首先通過域名 www.xxx.com 去訪問,此時 機器X 會通過 DNS 域名解析器 拿到 服務器R4 的IP地址
  2. 機器X 在自己的轉發表中查找,沒有找到對應的IP地址的路由,此時使用默認的路由,將數據包的下一跳指定爲 無線路由器R1
  3. 機器X 廣播 ARP 協議,根據R1的 IP 地址,尋找對應的 MAC 地址
  4. R1 收到 ARP協議後,發現IP 地址與自己一致,告訴 X 自己的 IP 地址,其餘接受到 ARP 協議的 機器,發現 IP 地址與自己不對應,直接丟掉請求
  5. X 將 HTTP 請求 封裝成 IP 數據包 通過網絡接入點a 發送給 R1 ,數據包的源IP是X的IP,目的IP是R4的IP ,以太網地址的源地址是X的MAC地址,目的地址是R1的MAC地址
  6. R1 接收到X的數據包,首先 鏈路層 去解析以太網首部,發現目的地址與自己的MAC地址一致,然後將數據包傳遞到上層的 網絡層,網絡層 解析 IP 首部,發現目的地IP 與自己不一致,然後會查自己的轉發表,將請求通過 網絡接入點b 發出去,此時發出去的數據包,源IP替換爲R1的IP(正常情況下,源IP是不會變的,此時由於無線路由器使用了NAT轉換,所以將源IP替換爲R1的外網IP),目的IP爲R4的IP,以太網地址的源地址爲R1的MAC地址,目的地址爲R3的MAC地址
  7. 交換機 R2 接收到了R1 的數據包,解析以太網首部,根據目的MAC地址,通過自己的數據庫,直接通過 端口b 轉發數據包,不對數據包做任何處理(也有可能將以太網首部的源地址替換爲自己的MAC地址)
  8. R3 接收到了 數據包,解析之後發現目的地IP與自己不一致,然後會查自己的轉發表,將請求轉發到R4,數據包的源IP是R1的外網IP,目的IP是R4的IP,以太網地址源地址是R3的地址,目的地址是R4的地址。
  9. R4收到數據包後發現MAC地址和IP地址與自己一直,將請求最後傳到應用層HTTP協議去處理,得到相應結果之後,會根據自己收到數據包的源IP(R1的外網IP),將響應的數據包經過網絡最終發送到R
  10. R1收到數據包後,由於R1使用了NAT網絡地址轉換,R1會根據自己內部的 NAT 的映射表,最終將請求發送到我們的機器X

名詞解釋

  1. 交換機:位於TCP/IP協議的鏈路層,本質上是高性能的網橋。用於連接多個物理的鏈路層網絡或成組的站。最基本設置設計連接兩個交換機來形成一個擴展的局域網。交換機內部有一個MAC地址和對應端口的映射表。
  2. 路由器:位於TCP/IP協議的網絡層,路由器與早期的網橋相比有很多的變化和不同。 通常而言,網橋的侷限性比較大,它只能夠連通的 鏈路層 相同或者類似的網絡,不能夠連接 鏈路層 之間有着較大差異的網絡。但是路由器卻不同,它打破了這個侷限,能夠連接任意的兩種不同的網絡,但是這兩種不同的網絡之間要遵守一個原則,就是使用相同的網絡層協議,這樣才能夠被路由器連接。
  3. NAT(網絡地址轉換):本質上是一種允許在互聯網的不同地方重複使用相同的IP地址集的機制。建立NAT的主要動機是真在急劇減少的有限IP地址空間。使用NAT最常見的情況是,唯一與Internet連接的站點僅被分配了很少的幾個IP地址(甚至只有一個IP地址),但是內部卻有多臺主機需要同時上網。

參考資料

  1. NAT網絡地址轉換:https://www.cnblogs.com/imstudy/p/5458133.html
  2. TCP/IP詳解 卷一:協議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章