36 張圖,一次性補全網絡基礎知識
OSI 和 TCP/IP 是很基礎但又非常重要的知識,很多知識點都是以它們爲基礎去串聯的,作爲底層,掌握得越透徹,理解上層時會越順暢。今天這篇網絡基礎科普,就是根據 OSI 層級去逐一展開的。
01 計算機網絡基礎
01 計算機網絡的分類
按照網絡的作用範圍:廣域網(WAN)、城域網(MAN)、局域網(LAN);
按照網絡使用者:公用網絡、專用網絡。
02 計算機網絡的層次結構
TCP/IP 四層模型與 OSI 體系結構對比:
03 層次結構設計的基本原則
-
各層之間是相互獨立的;
-
每一層需要有足夠的靈活性;
-
各層之間完全解耦。
04 計算機網絡的性能指標
速率:bps=bit/s;
時延:發送時延、傳播時延、排隊時延、處理時延;
往返時間 RTT:數據報文在端到端通信中的來回一次的時間。
02 物理層
物理層的作用:
連接不同的物理設備,傳輸比特流。該層爲上層協議提供了一個傳輸數據的可靠的物理媒體。簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。
物理層設備:
-
中繼器【Repeater,也叫放大器】:同一局域網的再生信號;兩端口的網段必須同一協議;5-4-3 規程:10BASE-5 以太網中,最多串聯 4 箇中繼器,5 段中只能有 3 個連接主機;
-
集線器:同一局域網的再生、放大信號(多端口的中繼器);半雙工,不能隔離衝突域也不能隔離廣播域。
信道的基本概念:信道是往一個方向傳輸信息的媒體,一條通信電路包含一個發送信道和一個接受信道。
-
單工通信信道:只能一個方向通信,沒有反方向反饋的信道;
-
半雙工通信信道:雙方都可以發送和接受信息,但不能同時發送也不能同時接收;
-
全雙工通信信道:雙方都可以同時發送和接收。
03
數據鏈路層
01 數據鏈路層概述
數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。
該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
有關數據鏈路層的重要知識點:
-
數據鏈路層爲網絡層提供可靠的數據傳輸;
-
基本數據單位爲幀;
-
主要的協議:以太網協議;
-
兩個重要設備名稱:網橋和交換機。
封裝成幀:“幀” 是數據鏈路層數據的基本單位:
透明傳輸:“透明” 是指即使控制字符在幀數據中,但是要當做不存在去處理。即在控制字符前加上轉義字符 ESC。
02 數據鏈路層的差錯監測
差錯檢測:奇偶校驗碼、循環冗餘校驗碼 CRC
-
奇偶校驗碼–侷限性:當出錯兩位時,檢測不到錯誤。
-
循環冗餘檢驗碼:根據傳輸或保存的數據而產生固定位數校驗碼。
03 最大傳輸單元 MTU
最大傳輸單元 MTU(Maximum Transmission Unit),數據鏈路層的數據幀不是無限大的,數據幀長度受 MTU 限制。
路徑 MTU:由鏈路中 MTU 的最小值決定。
04 以太網協議詳解
MAC 地址:每一個設備都擁有唯一的 MAC 地址,共 48 位,使用十六進制表示。
以太網協議:是一種使用廣泛的局域網技術,是一種應用於數據鏈路層的協議,使用以太網可以完成相鄰設備的數據幀傳輸:
局域網分類:
Ethernet 以太網 IEEE802.3
-
以太網第一個廣泛部署的高速局域網;
-
以太網數據速率快;
-
以太網硬件價格便宜,網絡造價成本低。
以太網幀結構
-
類型:標識上層協議(2 字節);
-
目的地址和源地址:MAC 地址(每個 6 字節);
-
數據:封裝的上層協議的分組(46~1500 字節);
-
CRC:循環冗餘碼(4 字節);
-
以太網最短幀:以太網幀最短 64 字節;以太網幀除了數據部分 18 字節;數據最短 46 字節。
MAC 地址(物理地址、局域網地址)
-
MAC 地址長度爲 6 字節,48 位;
-
MAC 地址具有唯一性,每個網絡適配器對應一個 MAC 地址;
-
通常採用十六進制表示法,每個字節表示一個十六進制數,用 - 或 : 連接起來;
-
MAC 廣播地址:FF-FF-FF-FF-FF-FF。
04 網絡層
網絡層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。數據交換技術是報文交換(基本上被分組所替代):採用儲存轉發方式,數據交換單位是報文。
網絡層中涉及衆多的協議,其中包括最重要的協議,也是 TCP/IP 的核心協議——IP 協議。IP 協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP 協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。
與 IP 協議配套使用實現其功能的還有地址解析協議 ARP、逆地址解析協議 RARP、因特網報文協議 ICMP、因特網組管理協議 IGMP。
具體的協議我們會在接下來的部分進行總結,有關網絡層的重點爲:
1、網絡層負責對子網間的數據包進行路由選擇。此外,網絡層還可以實現擁塞控制、網際互連等功能;
2、基本數據單位爲 IP 數據報;
3、包含的主要協議:
-
IP 協議(Internet Protocol,因特網互聯協議);
-
ICMP 協議(Internet Control Message Protocol,因特網控制報文協議);
-
ARP 協議(Address Resolution Protocol,地址解析協議);
-
RARP 協議(Reverse Address Resolution Protocol,逆地址解析協議)。
4、重要的設備:路由器。
路由器相關協議:
01 IP 協議詳解
IP 網際協議是 Internet 網絡層最核心的協議。
虛擬互聯網絡的產生:實際的計算機網絡錯綜複雜;物理設備通過使用 IP 協議,屏蔽了物理網絡之間的差異;當網絡中主機使用 IP 協議連接時,無需關注網絡細節,於是形成了虛擬網絡。
IP 協議使得複雜的實際網絡變爲一個虛擬互聯的網絡;並且解決了在虛擬網絡中數據報傳輸路徑的問題。
其中,版本指 IP 協議的版本,佔 4 位,如 IPv4 和 IPv6;
首部位長度表示 IP 首部長度,佔 4 位,最大數值位 15;
總長度表示 IP 數據報總長度,佔 16 位,最大數值位 65535;
TTL 表示 IP 數據報文在網絡中的壽命,佔 8 位;
協議表明 IP 數據所攜帶的具體數據是什麼協議的,如 TCP、UDP。
02 IP 協議的轉發流程
03 IP 地址的子網劃分
A 類(8 網絡號 + 24 主機號)、B 類(16 網絡號 + 16 主機號)、C 類(24 網絡號 + 8 主機號)可以用於標識網絡中的主機或路由器,D 類地址作爲組廣播地址,E 類是地址保留。
04 網絡地址轉換 NAT 技術
用於多個主機通過一個公有 IP 訪問訪問互聯網的私有網絡中,減緩了 IP 地址的消耗,但是增加了網絡通信的複雜度。
NAT 工作原理:
從內網出去的 IP 數據報,將其 IP 地址替換爲 NAT 服務器擁有的合法的公共 IP 地址,並將替換關係記錄到 NAT 轉換表中;
從公共互聯網返回的 IP 數據報,依據其目的的 IP 地址檢索 NAT 轉換表,並利用檢索到的內部私有 IP 地址替換目的 IP 地址,然後將 IP 數據報轉發到內部網絡。
05 ARP 協議與 RARP 協議
地址解析協議 ARP(Address Resolution Protocol):爲網卡(網絡適配器)的 IP 地址到對應的硬件地址提供動態映射。可以把網絡層 32 位地址轉化爲數據鏈路層 MAC48 位地址。
ARP 是即插即用的,一個 ARP 表是自動建立的,不需要系統管理員來配置。
RARP(Reverse Address Resolution Protocol) 協議指逆地址解析協議,可以把數據鏈路層 MAC48 位地址轉化爲網絡層 32 位地址。
06 ICMP 協議詳解
網際控制報文協議(Internet Control Message Protocol),可以報告錯誤信息或者異常情況,ICMP 報文封裝在 IP 數據報當中。
ICMP 協議的應用:
-
Ping 應用:網絡故障的排查;
-
Traceroute 應用:可以探測 IP 數據報在網絡中走過的路徑。
07 網絡層的路由概述
關於路由算法的要求:
正確的完整的、在計算上應該儘可能是簡單的、可以適應網絡中的變化、穩定的公平的。
自治系統 AS:
指處於一個管理機構下的網絡設備羣,AS 內部網絡自治管理,對外提供一個或多個出入口,其中自治系統內部的路由協議爲內部網關協議,如 RIP、OSPF 等;自治系統外部的路由協議爲外部網關協議,如 BGP。
靜態路由:
人工配置,難度和複雜度高。
動態路由:
-
鏈路狀態路由選擇算法 LS:向所有隔壁路由發送信息收斂快;全局式路由選擇算法,每個路由器計算路由時,需構建整個網絡拓撲圖;利用 Dijkstra 算法求源端到目的端網絡的最短路徑;Dijkstra(迪傑斯特拉) 算法;
-
距離 - 向量路由選擇算法 DV:向所有隔壁路由發送信息收斂慢、會存在迴路;基礎是 Bellman-Ford 方程(簡稱 B-F 方程)。
08 內部網關路由協議之 RIP 協議
路由信息協議 RIP(Routing Information Protocol)【應用層】,基於距離 - 向量的路由選擇算法,較小的 AS(自治系統),適合小型網絡;RIP 報文,封裝進 UDP 數據報。
RIP 協議特性:
-
RIP 在度量路徑時採用的是跳數(每個路由器維護自身到其他每個路由器的距離記錄);
-
RIP 的費用定義在源路由器和目的子網之間;
-
RIP 被限制的網絡直徑不超過 15 跳;
-
和隔壁交換所有的信息,30 主動一次(廣播)。
09 內部網關路由協議之 OSPF 協議
開放最短路徑優先協議 OSPF(Open Shortest Path First)【網絡層】,基於鏈路狀態的路由選擇算法(即 Dijkstra 算法),較大規模的 AS ,適合大型網絡,直接封裝在 IP 數據報傳輸。
OSPF 協議優點:
-
安全;
-
支持多條相同費用路徑;
-
支持區別化費用度量;
-
支持單播路由和多播路由;
-
分層路由。
RIP 與 OSPF 的對比(路由算法決定其性質):
10** 外部網關路由協議之 BGP 協議**
BGP(Border Gateway Protocol)邊際網關協議【應用層】:是運行在 AS 之間的一種協議, 尋找一條好路由:首次交換全部信息,以後只交換變化的部分, BGP 封裝進 TCP 報文段。
0*5 傳輸層
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。
此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通信子網的特性,最佳的利用網絡資源,爲兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。
在這一層,信息傳送的協議數據單元稱爲段或報文。
網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。
有關網絡層的重點:
-
傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
-
包含的主要協議:TCP 協議(Transmission Control Protocol,傳輸控制協議)、UDP 協議(User Datagram Protocol,用戶數據報協議);
-
重要設備:網關。
01 UDP 協議詳解
UDP(User Datagram Protocol: 用戶數據報協議),是一個非常簡單的協議。
UDP 協議的特點:
-
UDP 是無連接協議;
-
UDP 不能保證可靠的交付數據;
-
UDP 是面向報文傳輸的;
-
UDP 沒有擁塞控制;
-
UDP 首部開銷很小。
UDP 數據報結構:
首部: 8B,四字段 / 2B【源端口 | 目的端口 | UDP 長度 | 校驗和】 數據字段:應用數據。
02 TCP 協議詳解
TCP(Transmission Control Protocol: 傳輸控制協議),是計算機網絡中非常複雜的一個協議。
TCP 協議的功能:
-
對應用層報文進行分段和重組;
-
面向應用層實現複用與分解;
-
實現端到端的流量控制;
-
擁塞控制;
-
傳輸層尋址;
-
對收到的報文進行差錯檢測(首部和數據部分都檢錯);
-
實現進程間的端到端可靠數據傳輸控制。
TCP 協議的特點:
-
TCP 是面向連接的協議;
-
TCP 是面向字節流的協議;
-
TCP 的一個連接有兩端,即點對點通信;
-
TCP 提供可靠的傳輸服務;
-
TCP 協議提供全雙工通信(每條 TCP 連接只能一對一)。
TCP 報文段結構:
最大報文段長度:報文段中封裝的應用層數據的最大長度。
TCP 首部:
-
序號字段:TCP 的序號是對每個應用層數據的每個字節進行編號;
-
確認序號字段:期望從對方接收數據的字節序號,即該序號對應的字節尚未收到。用 ack_seq 標識;
-
TCP 段的首部長度最短是 20B ,最長爲 60 字節。但是長度必須爲 4B 的整數倍。
TCP 標記的作用:
03 可靠傳輸的基本原理
基本原理:
-
不可靠傳輸信道在數據傳輸中可能發生的情況:比特差錯、亂序、重傳、丟失;
-
基於不可靠信道實現可靠數據傳輸採取的措施。
差錯檢測:利用編碼實現數據包傳輸過程中的比特差錯檢測。
確認:接收方向發送方反饋接收狀態。
重傳:發送方重新發送接收方沒有正確接收的數據。
序號:確保數據按序提交。
計時器:解決數據丟失問題。
停止等待協議:是最簡單的可靠傳輸協議,但是該協議對信道的利用率不高。
連續 ARQ(Automatic Repeat reQuest:自動重傳請求) 協議:滑動窗口 + 累計確認,大幅提高了信道的利用率。
TCP 協議的可靠傳輸:
基於連續 ARQ 協議,在某些情況下,重傳的效率並不高,會重複傳輸部分已經成功接收的字節。
TCP 協議的流量控制:
流量控制:讓發送方發送速率不要太快,TCP 協議使用滑動窗口實現流量控制。
04 TCP 協議的擁塞控制
擁塞控制與流量控制的區別:
流量控制考慮點對點的通信量的控制,而擁塞控制考慮整個網絡,是全局性的考慮。擁塞控制的方法:慢啓動算法 + 擁塞避免算法。
慢開始和擁塞避免:
-
【慢開始】擁塞窗口從 1 指數增長;
-
到達閾值時進入【擁塞避免】,變成 + 1 增長;
-
【超時】,閾值變爲當前 cwnd 的一半(不能 < 2);
-
再從【慢開始】,擁塞窗口從 1 指數增長。
快重傳和快恢復:
-
發送方連續收到 3 個冗餘 ACK,執行【快重傳】,不必等計時器超時;
-
執行【快恢復】,閾值變爲當前 cwnd 的一半(不能 < 2),並從此新的 ssthresh 點進入【擁塞避免】。
05 TCP 連接的三次握手(重要)
TCP 三次握手使用指令:
面試常客:爲什麼需要三次握手?
-
第一次握手:客戶發送請求,此時服務器知道客戶能發;
-
第二次握手:服務器發送確認,此時客戶知道服務器能發能收;
-
第三次握手:客戶發送確認,此時服務器知道客戶能收。
建立連接(三次握手):
第一次:客戶向服務器發送連接請求段,建立連接請求控制段(SYN=1),表示傳輸的報文段的第一個數據字節的序列號是 x,此序列號代表整個報文段的序號(seq=x);客戶端進入 SYN_SEND (同步發送狀態);
第二次:服務器發回確認報文段,同意建立新連接的確認段(SYN=1),確認序號字段有效(ACK=1),服務器告訴客戶端報文段序號是 y(seq=y),表示服務器已經收到客戶端序號爲 x 的報文段,準備接受客戶端序列號爲 x+1 的報文段(ack_seq=x+1);服務器由 LISTEN 進入 SYN_RCVD (同步收到狀態);
第三次:客戶對服務器的同一連接進行確認. 確認序號字段有效 (ACK=1), 客戶此次的報文段的序列號是 x+1(seq=x+1), 客戶期望接受服務器序列號爲 y+1 的報文段 (ack_seq=y+1); 當客戶發送 ack 時,客戶端進入 ESTABLISHED 狀態; 當服務收到客戶發送的 ack 後,也進入 ESTABLISHED 狀態; 第三次握手可攜帶數據。
06 TCP 連接的四次揮手(重要)
釋放連接(四次揮手)
第一次:客戶向服務器發送釋放連接報文段,發送端數據發送完畢,請求釋放連接(FIN=1),傳輸的第一個數據字節的序號是 x(seq=x);客戶端狀態由 ESTABLISHED 進入 FIN_WAIT_1(終止等待 1 狀態);
第二次:服務器向客戶發送確認段,確認字號段有效(ACK=1),服務器傳輸的數據序號是 y(seq=y),服務器期望接收客戶數據序號爲 x+1(ack_seq=x+1); 服務器狀態由 ESTABLISHED 進入 CLOSE_WAIT(關閉等待);客戶端收到 ACK 段後,由 FIN_WAIT_1 進入 FIN_WAIT_2;
第三次:服務器向客戶發送釋放連接報文段,請求釋放連接(FIN=1),確認字號段有效(ACK=1),表示服務器期望接收客戶數據序號爲 x+1(ack_seq=x+1); 表示自己傳輸的第一個字節序號是 y+1(seq=y+1);服務器狀態由 CLOSE_WAIT 進入 LAST_ACK (最後確認狀態);
第四次:客戶向服務器發送確認段,確認字號段有效(ACK=1),表示客戶傳輸的數據序號是 x+1(seq=x+1),表示客戶期望接收服務器數據序號爲 y+1+1(ack_seq=y+1+1);客戶端狀態由 FIN_WAIT_2 進入 TIME_WAIT,等待 2MSL 時間,進入 CLOSED 狀態;服務器在收到最後一次 ACK 後,由 LAST_ACK 進入 CLOSED。
爲什麼需要等待 2MSL?
-
最後一個報文沒有確認;
-
確保發送方的 ACK 可以到達接收方;
-
2MSL 時間內沒有收到,則接收方會重發;
-
確保當前連接的所有報文都已經過期。
06 應用層
爲操作系統或網絡應用程序提供訪問網絡服務的接口。應用層重點:
-
數據傳輸基本單位爲報文;
-
包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3 協議(郵局協議),HTTP 協議(Hyper Text Transfer Protocol)。
01 DNS 詳解
DNS(Domain Name System: 域名系統)【C/S,UDP,端口 53】:解決 IP 地址複雜難以記憶的問題, 存儲並完成自己所管轄範圍內主機的 域名 到 IP 地址的映射。
域名解析的順序:
-
瀏覽器緩存;
-
找本機的 hosts 文件;
-
路由緩存;
-
找 DNS 服務器(本地域名、頂級域名、根域名)-> 迭代解析、遞歸查詢。
IP—>DNS 服務—> 便於記憶的域名。
域名由點、字母和數字組成,分爲頂級域(com,cn,net,gov,org)、二級域(baidu,taobao,qq,alibaba)、三級域(www)(12-2-0852)。
02 DHCP 協議詳解
DHCP(Dynamic Configuration Protocol: 動態主機設置協議):是一個局域網協議,是應用 UDP 協議的應用層協議。作用:爲臨時接入局域網的用戶自動分配 IP 地址。
03 HTTP 協議詳解
文件傳輸協議(FTP):控制連接(端口 21):傳輸控制信息(連接、傳輸請求),以 7 位 ASCII 碼的格式。整個會話期間一直打開。
HTTP(HyperText Transfer Protocol: 超文本傳輸協議)【TCP,端口 80】:是可靠的數據傳輸協議,瀏覽器向服務器發收報文前,先建立 TCP 連接,HTTP 使用 TCP 連接方式(HTTP 自身無連接)。
HTTP 請求報文方式:
-
GET:請求指定的頁面信息,並返回實體主體;
-
POST:向指定資源提交數據進行處理請求;
-
DELETE:請求服務器刪除指定的頁面;
-
HEAD:請求讀取 URL 標識的信息的首部,只返回報文頭;
-
OPETION:請求一些選項的信息;
-
PUT:在指明的 URL 下存儲一個文檔。
(1)HTTP 工作的結構
(2) HTTPS 協議詳解
HTTPS(Secure) 是安全的 HTTP 協議,端口號 443。基於 HTTP 協議,通過 SSL 或 TLS 提供加密處理數據、驗證對方身份以及數據完整性保護。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/gZrzmqSWRxkBnpqXBsj8tg