Linux — 網絡基礎三

網絡層

負責地址管理和路由選擇
通過對地址的管理,能夠保證數據從一臺主機發送到另一臺主機,並且選擇合適的路徑進行傳輸。

IP協議

主機: 兩端的PC
路由器: 實現中間數據轉發的設備
節點: 網絡中的每個設備都是一個節點
IP地址: 網絡中唯一標識一臺主機

地址管理: 因爲現在大量的私網建立(通過DHCP/NAT技術實現全民上網),在複雜的網絡中實現通信就要進行良好的地址管理,因此只有良好的地址管理纔不會造成嚴重的IP衝突,才能進行路由選擇。
爲了避免網絡IP地址的分配混亂導致二義性,無法實現數據傳輸,因此每個路由器在給自己組建的局域網地址中主機分配地址時都需要帶有自己局域網的網絡標識——網絡號,而局域網中每個主機也需要擁有唯一的標識——主機號。

一個IP地址包含了兩部分數據
網絡號: 區分網絡
主機號: 區分網絡中的主機
相鄰的網絡不能使用相同的網絡號,相鄰的網絡分配的IP地址就不會衝突了。
只有相鄰的網絡中網絡號相同時,纔會造成地址衝突,導致路由器不知道數據該怎麼轉發。

網段劃分

同一個網段才能表示在同一個網絡
早期的網段劃分中將整個網絡中的IP地址劃分成了五類IP地址,因爲早期網段劃分方式太過於粗糙,浪費較多,因此被淘汰。
在這裏插入圖片描述

CIDR

子網掩碼: 由一段連續的二進制1組成
功能
子網掩碼與IP地址進行相與則得到網絡號 net = ip & mask
子網掩碼取反則可以得到最大的主機號(主機號範圍) range = ~mask
IP地址與子網掩碼做與運算可以得到網絡號,主機號從全0到全1就是子網的地址範圍

例: 路由器分配給主機的信息
子網掩碼:255.255.255.0 net(網絡號) = 192.168.122.0
IP地址:192.168.122.132 range(主機號範圍):0~255
網關地址:192.168.112.1

例: 現在有一個網絡的網段是192.168.122.0, 子網掩碼是255.255.255.0,要將這個網絡劃平均分成爲四個子網,每個子網的主機範圍以及子網掩碼是多少?

  1. 通過掩碼得到的主機號個數:256
  2. 因爲要平均劃分四個子網,則每個子網的中主機號有:256/4 = 64
  3. 每個子網有64個主機號,~0.0.0.63 255.255.255.192 最大主機號取反,得到子網掩碼
  4. 192.168.122.0~192.168.122.63
    192.168.122.64~192.168.122.127
    192.168.122.128~192.168.122.191
    192.168.122.192~192.168.122.255

在一個網絡中不是所有的主機號都可以分配給主機
主機號全爲0 ----網絡號-標識網絡,代表這個局域網
主機號全爲1 ----廣播地址(UDP),用於給同一個鏈路中相互連接的所有主機發送數據包

特殊的IP地址
127.0.0.1----本地迴環網卡地址(虛擬網卡)–用於本地網路測試

公網與私網的IP地址劃分
RFC1918規定了用於組建私網的網段
10. * . * . * 組建大型網段
172.16.* .* ~172.31.* .* 組建雲服務器
192.168.* .*

動態分配IP地址: 只給接入網絡的設備分配IP地址。因此同一個MAC地址的設備,每次接入互聯網中,得到的IP地址不一定是相同的。

路由選擇

路由的過程,就是一跳一跳(Hop by Hop) “問路” 的過程。所謂 “一跳” 就是數據鏈路層中的一個區間。具體在以太網中指從源MAC地址到目的MAC地址之間的幀傳輸區間。IP數據包的傳輸過程也和問路一樣,當IP數據包到達路由器時,路由器會先查看目的IP,決定這個數據包是能直接發送給目標主機,還是需要發送給下一個路由器,依次反覆,一直到達目標IP地址。
爲了判定當前這個數據包該發送到哪裏,就需要依靠每個節點內部維護一個路由表,路由表可以使用route命令查看,如果目的IP命中了路由表,就直接轉發即可。路由表中的最後一行,主要由下一跳地址和發送接口兩部分組成,當目的地址與路由表中其它行都不匹配時,就按缺省路由條目規定的接口發送到下一跳地址。

IP協議字段功能

在這裏插入圖片描述
4位協議版本: IPV4/IPV6
4位首部長度: IP長度最大60字節最小20字節
8位Tos字段: 最小延時、最大吞吐量、最高可靠性、最小成本
16位數據報長度: 決定了數據有多長=64k - iphdrlen - tcphdrlen/udphdrlen
數據分片相關: 鏈路層MTU:最大傳輸單元,若UDP數據大於MTU大小,將會在網絡層進行分片
16位標識: 標識當前分片屬於哪一個UDP數據包
3位標誌: 是否禁止分片,以及分片的結束標記
13位片偏移: 標記分片在UDP數據報中的偏移量(有多少個8個字節)
8位TTL報文生存週期: TTL默認現在是128;每經過一個節點進行-1,爲0時丟棄
8位上層協議: TCP/UDP,表示上層協議的類型
16位校驗和: 使用CRC進行校驗,來鑑別頭部是否損壞
32位源地址/目標地址: 表示發送端和接收端
40字節選項數據

數據鏈路層

負責相鄰設備之間的數據幀傳輸

MAC地址: 網卡上的物理地址(網卡的編號),定位相鄰的兩個設備,用來識別數據鏈路層中相連的節點。
類型: unit8_mac[6] 48bit(長度爲48位, 及6個字節. 一般用16進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19))
MAC地址在網卡出廠時就確定了,不能修改。MAC地址通常是唯一的(虛擬機中的MAC地址不是真實的MAC地址,可能會衝突;也有些網卡支持用戶配置MAC地址)。

以太網協議

在這裏插入圖片描述
eth字段信息: 源mac地址,目的mac地址,上層協議類型,數據,幀尾CRC

ARP協議

通過IP地址獲取MAC地址------介於網絡層與鏈路層之間的協議
在這裏插入圖片描述
通過全網廣播一個ARP請求獲取一個ARP響應,則確定目的MAC地址。ARP獲取到對端的MAC地址後,會在本機上將IP地址與MAC地址的映射關係緩存一段時間(很短),防止對方在短時間內更換IP地址。

MTU

最大傳輸單元----限制了網卡在傳輸數據的時候,數據的最大長度(不包含以太網幀頭幀尾)

MTU的影響

MSS: 最大數據段的大小—純粹的應用層數據大小 MSS = MTU - IP - TCP/UDP
TCP的影響: TCP在傳輸層進行數據傳輸(在三次握手的時候)會雙方協商MSS大小,在傳輸層自動進行數據分段,而這個MSS也取決於MTU大小,雙方會選擇較小的一方作爲傳輸大小,因此TCP數據在網絡層不會進行分片。
UDP的影響: UDP在數據傳輸的時候數據不大於64k - IPhdrlen - UDPhdrlen,都可以進行傳輸,但是若數據大小大於MTU大小則會在網絡層進行數據分片。UDP數據若被分片,則任意一個分片丟失或出錯就會造成分片重組失敗,導致整個UDP數據報被丟棄;分片越多,危險越大。因此,UDP數據最好在應用層就將數據段大小分配合適。

其他重要協議/技術

DNS協議:domain name system域名系統

作用: 域名解析 通過域名獲取到服務器IP地址
域名: 服務器IP地址的一種表示
發展
在這裏插入圖片描述

域名解析流程

在這裏插入圖片描述
瀏覽器中輸入了url回車之後發生了什麼?

  1. dns解析 獲取IP地址
  2. 組織HTTP請求信息
  3. 建立tcp客戶端發送HTTP請求
  4. 網絡層ip協議
  5. 鏈路層的eth協議
    在這裏插入圖片描述

ICMP協議

控制報文協議----網絡層協議
功能: 進行網絡探測
ping: 通過ICMP協議實現----並不使用端口

NAT技術

地址轉換技術
在本地建立NAPT映射關係,保證收到的回覆數據,能夠確認應該發送給內網的那個主機。

NAT和代理服務器的區別

  • NAT工作在網絡層,進行地址轉換,通常部署在網關設備上
  • 代理服務器是一個應用,可以部署在任何主機上
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章