文章目錄
- NAT 技術
- 1. 因特網的接入方式
- 2. 公網和私網
- 3. NAT 技術
- 鏈路層
- 1. 數據鏈路層概述
- 2. 數據鏈路層的三個問題
- 2.1 封裝成幀
- 2.2 透明傳輸
- 2.3 差錯檢測
NAT 技術
1. 因特網的接入方式
光貓將電信號轉換為數字信號發送給路由器
- 光纖入戶
光纖傳遞的就是數字信號,不需要轉換
2. 公網和私網
所以私網 IP 想進入公網,需要先將私網 IP 轉換為公網 IP
3. NAT 技術
- NAT 轉換
- 靜態轉換
- 每個私網 IP 有個固定與之對應的公網 IP
- 動態轉換
- 每個私網IP 在需要發送數據時進行動態申請,路由器在 IP 池里選一個分配給私網 IP
- PAT
- NAT 將相同主機的不同端口對應到同一公網 IP 的不同端口上
- NAT 將不同主機也會對應到同一公網 IP 的不同端口上
- 內部網絡的所有主機均可共享一個合法外部 IP 地址實現對 Internet 的訪問,從而可以最大限度地節約 IP 地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自 internet 的攻擊。
- 靜態轉換
鏈路層
1. 數據鏈路層概述
- 鏈路是指從一個節點到相鄰節點的一段物理線路(不管有線無線),而且中間沒有其他交換節點
- 集線器本身就只是一種線路連接設備,沒有任何交換行為存在
- 交換機有交換行為,所以是一個節點
- 信道
- 廣播信道用于局域網,也就是私網中。
- 點對點信道用于骨干網中路由器的接受與發送。
- 鏈路與數據鏈路的關系
- 鏈路包含數據鏈路
- 在數據傳輸的過程中,會經過多條鏈路,每條鏈路上的數據鏈路協議可能不同,這些協議可能包括以太網協議、局域網協議、無線協議等。這些協議都屬于數據鏈路層的協議,它們的主要作用是在不可靠的物理鏈路上建立可靠的數據傳輸。
- 在網絡層進行互聯時,物理層的協議必須相同,而數據鏈路層的協議可以不同。這是因為物理層的協議決定了如何在物理媒介上發送和接收數據,而數據鏈路層的協議則決定了如何在這些物理鏈路上進行可靠的數據傳輸。因此,即使數據鏈路層的協議不同,只要物理層的協議相同,數據仍然可以在網絡層進行互聯。這就是為什么在一個數據的傳輸過程中,每條鏈路上的協議可能會不同的原因。
2. 數據鏈路層的三個問題
2.1 封裝成幀
-
幀(Frame)的數據部分是從 IP 層傳下來的數據包
-
最大傳輸單元 MTU(Maximum Transfer Unit)
- 每一種數據鏈路層協議都規定了所能傳輸的幀數據長度上限
- 以太網的 MTU 為 1500 1500 1500 字節
-
以太網V2的 MAC 幀
- 以太網多用于邊緣網絡上的主機與路由的互聯。
- 所以幀中包含了 MAC 地址,標記目標
- 最小幀長為 64 64 64 字節,其中 MTU 最小為 46 46 46 字節。
- 當數據不足 46 B 46B 46B 時,協議會對數據包進行填充補 0 0 0
- 以太網幀的接收
- 以太網幀使用曼徹斯特編碼,每一個碼元的正中間都一定會有一次電壓的跳變,當以太網把一個 MAC 幀發完過后就不在發送其他的碼元了(MAC 幀之間都是有一定間隙的),所以這樣就很容易找到幀的結束位置。
- 而 MAC 幀前含有前導碼標記數據的開始
- 以太網多用于邊緣網絡上的主機與路由的互聯。
-
PPP 幀
- PPP 幀的接收
- PPP是一種點對點協議,邏輯上相連的就一臺設備,因此不需要尋址。PPP 在封裝方式以以太網的封裝方式不同,它沒有以太網幀所要求的 MAC 地址,它通過自身的協商過程實現點到點的數據傳輸。PPP 幀發送的是連續字節流,必須前后都添加定界符以區分不同的幀。在同一個廣播域中只能有兩個節點,無法加入第三個節點,所以也并不需要物理地址。
- PPP 幀的接收
2.2 透明傳輸
-
透明傳輸是指數據鏈路層對上層交付的數據不做任何改變,使得上層感受不到有數據鏈路層的存在。
不做任何改變是指上層接收到的數據跟發送來的數據一致,而不是數據鏈路層不對數據做任何操作。
- 發送方數據鏈路層會對數據做出操作,然后在接收方的數據鏈路層將操作去除,讓接收方的網絡層拿到的數據跟發送時的一樣,對于雙方網絡層來說是“透明的”。
-
面向字節的物理鏈路使用
字節填充法
實現透明傳輸。
- 數據鏈路層將網絡層協議封裝成幀時,會在首部和尾部分別添加SOH以及EOT這兩個特殊字符,接收方是根據這兩個字符來確定幀首和幀尾的。
- 如果上層協議發送過來的數據(即鏈路層的數據部分)包含EOT,那么接收方在解析這個幀的時候就會誤以為數據已經結束1。所以,如果鏈路層對這種情況沒有特殊處理,那么就可以理解鏈路層為非透明傳輸(因為無法傳輸EOT這個字符)。
- 但是數據鏈路層通過對這個字符添加轉移符(如果網絡層數據中還存在轉移符,就再添加一個轉移符)的辦法來使數據部分可以傳輸EOT字符,就實現了透明傳輸。
-
面向比特的物理鏈路使用
零比特填充法
實現透明傳輸。- 在 PPP 協議和 HDLC 協議中,都使用了這種方法。
- 零比特填充法:當數據中出現連續 5 5 5 個 “ 1 ” “1” “1” 時,在其后面插入一個 “ 0 ” “0” “0”。接收端在接收到數據時,如果發現連續 5 5 5 個 “ 1 ” “1” “1”,就將其后面的 “ 0 ” “0” “0” 刪除,從而還原出原來的數據。
- 在 PPP 協議和 HDLC 協議中,都使用了這種方法。
2.3 差錯檢測
- 奇偶校驗
- 對數據每次取一位進行異或,最終得到答案 1 1 1 或 0 0 0,代表數據中 1 1 1 的數量是奇數還是偶數,然后接收方按這個進行驗證。
- 奇偶校驗只能應用于產生一個誤碼的情況,如果產生了多個誤碼,那么這種情況就不適用了。
- 循環冗余校驗(CRC):一般計算的鏈路層采用循環冗余校驗CRC。