OSI和TCP/IP是很基礎但又非常重要的知識,很多知識點都是以它們為基礎去串聯的,作為底層,掌握得越透徹,理解上層時會越順暢。今天這篇網路基礎科普,就是根據OSI層級去逐一展開的。
一、電腦網路基礎
1. 電腦網路的分類
按照網路的作用範圍:廣域網路(WAN)、都會網路(MAN)、區域網路(LAN);
按照網路使用者:公用網路、專用網路。
2. 電腦網路的階層
TCP/IP四層模型與OSI體系結構對比:
3. 階層設計的基本原則
4. 電腦網路的效能指標
速率:bps=bit/s;
時延:發送時延、傳播時延、排隊時延、處理時延;
往返時間RTT:資料包在端到端通訊中的來回一次的時間。
二、實體層
實體層的作用:
連線不同的物理裝置,傳輸位元流。該層為上層協定提供了一個傳輸數據的可靠的物理媒體。簡單的說,實體層確保原始的數據可在各種物理媒體上傳輸。
實體層裝置:
通道的基本概念:通道是往一個方向傳輸資訊的媒體,一條通訊電路包含一個發送通道和一個接受通道。
三、數據鏈路層
1. 數據鏈路層概述
數據鏈路層在實體層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。
該層的作用包括:實體位址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
有關數據鏈路層的重要知識點:
封裝成幀:「幀」是數據鏈路層數據的基本單位:
透明傳輸:「透明」是指即使控制字元在幀數據中,但是要當做不存在去處理。即在控制字元前加上轉義字元ESC。
2. 數據鏈路層的差錯監測
差錯檢測:奇偶校驗碼、迴圈冗余校驗碼CRC
3. 最大傳輸單元MTU
最大傳輸單元MTU(Maximum Transmission Unit),數據鏈路層的數據幀不是無限大的,數據幀長度受MTU限制。
路徑MTU:由鏈路中MTU的最小值決定。
4. 乙太網路協定詳解
MAC地址:每一個裝置都擁有唯一的MAC地址,共48位元,使用十六進制表示。
乙太網路協定:是一種使用廣泛的區域網路技術,是一種套用於數據鏈路層的協定,使用乙太網路可以完成相鄰裝置的數據幀傳輸:
區域網路分類:
Ethernet乙太網路IEEE802.3
乙太網路幀結構:
MAC地址(實體位址、區域網路地址)
四、網路層
網路層的目的是實作兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、連線的建立、保持和終止等。數據交換技術是報文交換(基本上被分組所替代):采用儲存轉發方式,數據交換單位是報文。
網路層中涉及眾多的協定,其中包括最重要的協定,也是TCP/IP的核心協定——IP協定。IP協定非常簡單,僅僅提供不可靠、無連線的傳送服務。IP協定的主要功能有:無連線數據報傳輸、數據報路由選擇和差錯控制。
與IP協定配套使用實作其功能的還有地址解析協定ARP、逆地址解析協定RARP、因特網報文協定ICMP、因特網組管理協定IGMP。
具體的協定我們會在接下來的部份進行總結,有關網路層的重點為:
1)網路層負責對子網路間的封包進行路由選擇。此外,網路層還可以實作擁塞控制、網際互連等功能;
2)基本數據單位為IP數據報;
3)包含的主要協定:
4)重要的裝置:路由器。
路由器相關協定:
1. IP協定詳解
IP網際協定是 Internet 網路層最核心的協定。
虛擬互聯網路的產生:實際的電腦網路錯綜復雜;物理裝置透過使用IP協定,遮蔽了物理網路之間的差異;當網路中主機使用IP協定連線時,無需關註網路細節,於是形成了虛擬網路。
IP協定使得復雜的實際網路變為一個虛擬互聯的網路;並且解決了在虛擬網路中數據報傳輸路徑的問題。
其中,版本指IP協定的版本,占4位元,如IPv4和IPv6;
首部位長度表示IP首部長度,占4位元,最大數值位15;
總長度表示IP數據報總長度,占16位元,最大數值位65535;
TTL表示IP資料包在網路中的壽命,占8位元;
協定表明IP數據所攜帶的具體數據是什麽協定的,如TCP、UDP。
2. IP協定的轉發流程
3. IP地址的子網路劃分
A類(8網路號+24主機號)、B類(16網路號+16主機號)、C類(24網路號+8主機號)可以用於標識網路中的主機或路由器,D類地址作為組廣播地址,E類是地址保留。
4. 網路地址轉換NAT技術
用於多個主機透過一個公有IP存取存取互聯網的私有網路中,減緩了IP地址的消耗,但是增加了網路通訊的復雜度。
NAT 工作原理:
從內網出去的IP數據報,將其IP地址替換為NAT伺服器擁有的合法的公共IP地址,並將替換關系記錄到NAT轉換表中;
從公共互聯網返回的IP數據報,依據其目的的IP地址檢索NAT轉換表,並利用檢索到的內部私有IP地址替換目的IP地址,然後將IP數據報轉發到企業網路絡。
5. ARP協定與RARP協定
地址解析協定 ARP(Address Resolution Protocol):為網卡(網路介面卡)的IP地址到對應的硬體地址提供動態對映。可以把網路層32位元地址轉化為數據鏈路層MAC48位元地址。
ARP 是隨插即用的,一個ARP表是自動建立的,不需要系統管理員來配置。
RARP(Reverse Address Resolution Protocol)協定指逆地址解析協定,可以把數據鏈路層MAC48位元地址轉化為網路層32位元地址。
6. ICMP協定詳解
網際控制報文協定(Internet Control Message Protocol),可以報告錯誤資訊或者異常情況,ICMP報文封裝在IP數據報當中。
ICMP協定的套用:
7. 網路層的路由概述
關於路由演算法的要求:
正確的完整的、在計算上應該盡可能是簡單的、可以適應網路中的變化、穩定的公平的。
自治系統AS:
指處於一個管理機構下的網路裝置群,AS企業網路絡自治管理,對外提供一個或多個出入口,其中自治系統內部的路由協定為企業網路關協定,如RIP、OSPF等;自治系統外部的路由協定為外部閘道器協定,如BGP。
靜態路由:
人工配置,難度和復雜度高。
動態路由:
8. 企業網路關路由協定之RIP協定
路由資訊協定 RIP(Routing Information Protocol)【套用層】,基於距離-向量的路由選擇演算法,較小的AS(自治系統),適合小型網路;RIP報文,封裝進UDP數據報。
RIP協定特性:
9. 企業網路關路由協定之OSPF協定
開放最短路徑優先協定 OSPF(Open Shortest Path First)【網路層】,基於鏈路狀態的路由選擇演算法(即Dijkstra演算法),較大規模的AS ,適合大型網路,直接封裝在IP數據報傳輸。
OSPF協定優點:
RIP與OSPF的對比(路由演算法決定其性質):
10. 外部閘道器路由協定之BGP協定
BGP(Border Gateway Protocol)邊際閘道器協定【套用層】:是執行在AS之間的一種協定,尋找一條好路由:首次交換全部資訊,以後只交換變化的部份,BGP封裝進TCP報文段。
五、傳輸層
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。
此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通訊子網路的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連線的功能,負責端到端的可靠數據傳輸。
在這一層,資訊傳送的協定數據單元稱為段或報文。
網路層只是根據網路地址將源結點發出的封包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的埠。
有關傳輸層的重點:
1. UDP協定詳解
UDP(User Datagram Protocol: 使用者數據報協定),是一個非常簡單的協定。
UDP協定的特點:
UDP數據報結構:
首部:8B,四欄位/2B【源埠 | 目的埠 | UDP長度 | 校驗和】 數據欄位:套用數據。
2. TCP協定詳解
TCP(Transmission Control Protocol: 傳輸控制協定),是電腦網路中非常復雜的一個協定。
TCP協定的功能:
TCP協定的特點:
TCP報文段結構:
最大報文段長度:報文段中封裝的套用層數據的最大長度。
TCP首部:
TCP標記的作用:
3. 可靠傳輸的基本原理
基本原理:
差錯檢測:利用編碼實作封包傳輸過程中的位元差錯檢測。
確認:接收方向發送方反饋接收狀態。
重傳:發送方重新發送接收方沒有正確接收的數據。
序號:確保數據按序送出。
計時器:解決數據遺失問題。
停止等待協定:是最簡單的可靠傳輸協定,但是該協定對通道的利用率不高。
連續ARQ(Automatic Repeat reQuest:自動重傳請求)協定:滑動視窗+累計確認,大幅提高了通道的利用率。
TCP協定的可靠傳輸:
基於連續ARQ協定,在某些情況下,重傳的效率並不高,會重復傳輸部份已經成功接收的字節。
TCP協定的流量控制:
流量控制:讓發送方發送速率不要太快,TCP協定使用滑動視窗實作流量控制。
4. TCP協定的擁塞控制
擁塞控制與流量控制的區別:
流量控制考慮點對點的通訊量的控制,而擁塞控制考慮整個網路,是全域性的考慮。擁塞控制的方法:慢啟動演算法+擁塞避免演算法。
慢開始和擁塞避免:
快重傳和快恢復:
5. 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狀態;第三次握手可攜帶數據。
6. 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?
六、套用層
為作業系統或網路應用程式提供存取網路服務的介面。套用層重點:
1. DNS詳解
DNS(Domain Name System:網域名稱系統)【C/S,UDP,埠53】:解決IP地址復雜難以記憶的問題,儲存並完成自己所管轄範圍內主機的 網域名稱 到 IP 地址的對映。
網域名稱解析的順序:
IP—>DNS服務—>便於記憶的網域名稱。
網域名稱由點、字母和數位組成,分為頂級域(com,cn,net,gov,org)、二級域(baidu,taobao,qq,alibaba)、三級域(www)(12-2-0852)。
2. DHCP協定詳解
DHCP(Dynamic Configuration Protocol:動態主機設定協定):是一個區域網路協定,是套用UDP協定的套用層協定。作用:為臨時接入區域網路的使用者自動分配IP地址。
3. HTTP協定詳解
檔傳輸協定(FTP):控制連線(埠21):傳輸控制資訊(連線、傳輸請求),以7位ASCII碼的格式。整個會話期間一直開啟。
HTTP(HyperText Transfer Protocol:超文本傳輸協定)【TCP,埠80】:是可靠的數據傳輸協定,瀏覽器向伺服器發收報文前,先建立TCP連線,HTTP使用TCP連線方式(HTTP自身無連線)。
HTTP請求報文方式:
(1)HTTP工作的結構
(2) HTTPS協定詳解
HTTPS(Secure)是安全的HTTP協定,埠號443。基於HTTP協定,透過SSL或TLS提供加密處理數據、驗證對方身份以及數據完整性保護。