計(jì)算機(jī)網(wǎng)絡(luò)知識點(diǎn)詳細(xì)圖文說明!
一、計(jì)算機(jī)網(wǎng)絡(luò)概述
1.1 計(jì)算機(jī)網(wǎng)絡(luò)的分類
按照網(wǎng)絡(luò)的作用范圍:廣域網(wǎng)(WAN)、城域網(wǎng)(MAN)、局域網(wǎng)(LAN);
按照網(wǎng)絡(luò)使用者:公用網(wǎng)絡(luò)、專用網(wǎng)絡(luò)。
1.2 計(jì)算機(jī)網(wǎng)絡(luò)的層次結(jié)構(gòu)
TCP/IP四層模型與OSI體系結(jié)構(gòu)對比:
1.3 層次結(jié)構(gòu)設(shè)計(jì)的基本原則
- 各層之間是相互獨(dú)立的;
- 每一層需要有足夠的靈活性;
- 各層之間完全解耦。
1.4 計(jì)算機(jī)網(wǎng)絡(luò)的性能指標(biāo)
速率:bps=bit/s 時(shí)延:發(fā)送時(shí)延、傳播時(shí)延、排隊(duì)時(shí)延、處理時(shí)延 往返時(shí)間RTT:數(shù)據(jù)報(bào)文在端到端通信中的來回一次的時(shí)間。
二、物理層
物理層的作用:連接不同的物理設(shè)備,傳輸比特流。該層為上層協(xié)議提供了一個(gè)傳輸數(shù)據(jù)的可靠的物理媒體。簡單的說,物理層確保原始的數(shù)據(jù)可在各種物理媒體上傳輸。
物理層設(shè)備:
- 中繼器【Repeater,也叫放大器】:同一局域網(wǎng)的再生信號;兩端口的網(wǎng)段必須同一協(xié)議;5-4-3規(guī)程:10BASE-5以太網(wǎng)中,最多串聯(lián)4個(gè)中繼器,5段中只能有3個(gè)連接主機(jī);
- 集線器:同一局域網(wǎng)的再生、放大信號(多端口的中繼器);半雙工,不能隔離沖突域也不能隔離廣播域。
信道的基本概念:信道是往一個(gè)方向傳輸信息的媒體,一條通信電路包含一個(gè)發(fā)送信道和一個(gè)接受信道。
- 單工通信信道:只能一個(gè)方向通信,沒有反方向反饋的信道;
- 半雙工通信信道:雙方都可以發(fā)送和接受信息,但不能同時(shí)發(fā)送也不能同時(shí)接收;
- 全雙工通信信道:雙方都可以同時(shí)發(fā)送和接收。
三、數(shù)據(jù)鏈路層
3.1 數(shù)據(jù)鏈路層概述
數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸。
該層的作用包括:物理地址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯(cuò)、重發(fā)等。
有關(guān)數(shù)據(jù)鏈路層的重要知識點(diǎn):
- 數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層提供可靠的數(shù)據(jù)傳輸;
- 基本數(shù)據(jù)單位為幀;
- 主要的協(xié)議:以太網(wǎng)協(xié)議;
- 兩個(gè)重要設(shè)備名稱:網(wǎng)橋和交換機(jī)。
封裝成幀:“幀”是數(shù)據(jù)鏈路層數(shù)據(jù)的基本單位:
透明傳輸:“透明”是指即使控制字符在幀數(shù)據(jù)中,但是要當(dāng)做不存在去處理。即在控制字符前加上轉(zhuǎn)義字符ESC。
3.2 數(shù)據(jù)鏈路層的差錯(cuò)監(jiān)測
差錯(cuò)檢測:奇偶校驗(yàn)碼、循環(huán)冗余校驗(yàn)碼CRC
- 奇偶校驗(yàn)碼–局限性:當(dāng)出錯(cuò)兩位時(shí),檢測不到錯(cuò)誤。
- 循環(huán)冗余檢驗(yàn)碼:根據(jù)傳輸或保存的數(shù)據(jù)而產(chǎn)生固定位數(shù)校驗(yàn)碼。
3.3 最大傳輸單元MTU
最大傳輸單元MTU(Maximum Transmission Unit),數(shù)據(jù)鏈路層的數(shù)據(jù)幀不是無限大的,數(shù)據(jù)幀長度受MTU限制.
路徑MTU:由鏈路中MTU的最小值決定。
3.4 以太網(wǎng)協(xié)議詳解
MAC地址:每一個(gè)設(shè)備都擁有唯一的MAC地址,共48位,使用十六進(jìn)制表示。
以太網(wǎng)協(xié)議:是一種使用廣泛的局域網(wǎng)技術(shù),是一種應(yīng)用于數(shù)據(jù)鏈路層的協(xié)議,使用以太網(wǎng)可以完成相鄰設(shè)備的數(shù)據(jù)幀傳輸:
局域網(wǎng)分類:
Ethernet以太網(wǎng)IEEE802.3:
- 以太網(wǎng)第一個(gè)廣泛部署的高速局域網(wǎng)
- 以太網(wǎng)數(shù)據(jù)速率快
- 以太網(wǎng)硬件價(jià)格便宜,網(wǎng)絡(luò)造價(jià)成本低
以太網(wǎng)幀結(jié)構(gòu):
- 類型:標(biāo)識上層協(xié)議(2字節(jié))
- 目的地址和源地址:MAC地址(每個(gè)6字節(jié))
- 數(shù)據(jù):封裝的上層協(xié)議的分組(46~1500字節(jié))
- CRC:循環(huán)冗余碼(4字節(jié))
- 以太網(wǎng)最短幀:以太網(wǎng)幀最短64字節(jié);以太網(wǎng)幀除了數(shù)據(jù)部分18字節(jié);數(shù)據(jù)最短46字節(jié);
MAC地址(物理地址、局域網(wǎng)地址)
- MAC地址長度為6字節(jié),48位;
- MAC地址具有唯一性,每個(gè)網(wǎng)絡(luò)適配器對應(yīng)一個(gè)MAC地址;
- 通常采用十六進(jìn)制表示法,每個(gè)字節(jié)表示一個(gè)十六進(jìn)制數(shù),用 – 或 : 連接起來;
- MAC廣播地址:FF-FF-FF-FF-FF-FF。
四、網(wǎng)絡(luò)層
網(wǎng)絡(luò)層的目的是實(shí)現(xiàn)兩個(gè)端系統(tǒng)之間的數(shù)據(jù)透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。數(shù)據(jù)交換技術(shù)是報(bào)文交換(基本上被分組所替代):采用儲(chǔ)存轉(zhuǎn)發(fā)方式,數(shù)據(jù)交換單位是報(bào)文。
網(wǎng)絡(luò)層中涉及眾多的協(xié)議,其中包括最重要的協(xié)議,也是TCP/IP的核心協(xié)議——IP協(xié)議。IP協(xié)議非常簡單,僅僅提供不可靠、無連接的傳送服務(wù)。IP協(xié)議的主要功能有:無連接數(shù)據(jù)報(bào)傳輸、數(shù)據(jù)報(bào)路由選擇和差錯(cuò)控制。
與IP協(xié)議配套使用實(shí)現(xiàn)其功能的還有地址解析協(xié)議ARP、逆地址解析協(xié)議RARP、因特網(wǎng)報(bào)文協(xié)議ICMP、因特網(wǎng)組管理協(xié)議IGMP。具體的協(xié)議我們會(huì)在接下來的部分進(jìn)行總結(jié),有關(guān)網(wǎng)絡(luò)層的重點(diǎn)為:
- 網(wǎng)絡(luò)層負(fù)責(zé)對子網(wǎng)間的數(shù)據(jù)包進(jìn)行路由選擇。此外,網(wǎng)絡(luò)層還可以實(shí)現(xiàn)擁塞控制、網(wǎng)際互連等功能;
- 基本數(shù)據(jù)單位為IP數(shù)據(jù)包;
- 包含的主要協(xié)議:
- IP協(xié)議(Internet Protocol,因特網(wǎng)互聯(lián)協(xié)議);
- ICMP協(xié)議(Internet Control Message Protocol,因特網(wǎng)控制報(bào)文協(xié)議);
- ARP協(xié)議(Address Resolution Protocol,地址解析協(xié)議);
- RARP協(xié)議(Reverse Address Resolution Protocol,逆地址解析協(xié)議)。
- 重要的設(shè)備:路由器。
路由器相關(guān)協(xié)議
4.1 IP協(xié)議詳解
IP網(wǎng)際協(xié)議是 Internet 網(wǎng)絡(luò)層最核心的協(xié)議。虛擬互聯(lián)網(wǎng)絡(luò)的產(chǎn)生:實(shí)際的計(jì)算機(jī)網(wǎng)絡(luò)錯(cuò)綜復(fù)雜;物理設(shè)備通過使用IP協(xié)議,屏蔽了物理網(wǎng)絡(luò)之間的差異;當(dāng)網(wǎng)絡(luò)中主機(jī)使用IP協(xié)議連接時(shí),無需關(guān)注網(wǎng)絡(luò)細(xì)節(jié),于是形成了虛擬網(wǎng)絡(luò)。
IP協(xié)議使得復(fù)雜的實(shí)際網(wǎng)絡(luò)變?yōu)橐粋€(gè)虛擬互聯(lián)的網(wǎng)絡(luò);并且解決了在虛擬網(wǎng)絡(luò)中數(shù)據(jù)報(bào)傳輸路徑的問題。
其中,版本指IP協(xié)議的版本,占4位,如IPv4和IPv6;首部位長度表示IP首部長度,占4位,最大數(shù)值位15;(歡迎關(guān)注公眾號:網(wǎng)絡(luò)工程師阿龍)總長度表示IP數(shù)據(jù)報(bào)總長度,占16位,最大數(shù)值位65535;TTL表示IP數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中的壽命,占8位;協(xié)議表明IP數(shù)據(jù)所攜帶的具體數(shù)據(jù)是什么協(xié)議的,如TCP、UDP。
4.2 IP協(xié)議的轉(zhuǎn)發(fā)流程
4.3 IP地址的子網(wǎng)劃分
A類(8網(wǎng)絡(luò)號+24主機(jī)號)、B類(16網(wǎng)絡(luò)號+16主機(jī)號)、C類(24網(wǎng)絡(luò)號+8主機(jī)號)可以用于標(biāo)識網(wǎng)絡(luò)中的主機(jī)或路由器,D類地址作為組廣播地址,E類是地址保留。
4.4 網(wǎng)絡(luò)地址轉(zhuǎn)換NAT技術(shù)
用于多個(gè)主機(jī)通過一個(gè)公有IP訪問訪問互聯(lián)網(wǎng)的私有網(wǎng)絡(luò)中,減緩了IP地址的消耗,但是增加了網(wǎng)絡(luò)通信的復(fù)雜度。
NAT 工作原理:
從內(nèi)網(wǎng)出去的IP數(shù)據(jù)報(bào),將其IP地址替換為NAT服務(wù)器擁有的合法的公共IP地址,并將替換關(guān)系記錄到NAT轉(zhuǎn)換表中;
從公共互聯(lián)網(wǎng)返回的IP數(shù)據(jù)報(bào),依據(jù)其目的的IP地址檢索NAT轉(zhuǎn)換表,并利用檢索到的內(nèi)部私有IP地址替換目的IP地址,然后將IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到內(nèi)部網(wǎng)絡(luò)。
4.5 ARP協(xié)議與RARP協(xié)議
地址解析協(xié)議 ARP(Address Resolution Protocol):為網(wǎng)卡(網(wǎng)絡(luò)適配器)的IP地址到對應(yīng)的硬件地址提供動(dòng)態(tài)映射??梢园丫W(wǎng)絡(luò)層32位地址轉(zhuǎn)化為數(shù)據(jù)鏈路層MAC48位地址。
ARP 是即插即用的,一個(gè)ARP表是自動(dòng)建立的,不需要系統(tǒng)管理員來配置。
RARP(Reverse Address Resolution Protocol)協(xié)議指逆地址解析協(xié)議,可以把數(shù)據(jù)鏈路層MAC48位地址轉(zhuǎn)化為網(wǎng)絡(luò)層32位地址。
4.6 ICMP協(xié)議詳解
網(wǎng)際控制報(bào)文協(xié)議(Internet Control Message Protocol),可以報(bào)告錯(cuò)誤信息或者異常情況,ICMP報(bào)文封裝在IP數(shù)據(jù)報(bào)當(dāng)中。
ICMP協(xié)議的應(yīng)用:
- Ping應(yīng)用:網(wǎng)絡(luò)故障的排查;
- Traceroute應(yīng)用:可以探測IP數(shù)據(jù)包在網(wǎng)絡(luò)中走過的路徑。
4.7網(wǎng)絡(luò)層的路由概述
關(guān)于路由算法的要求:正確的完整的、在計(jì)算上應(yīng)該盡可能是簡單的、可以適應(yīng)網(wǎng)絡(luò)中的變化、穩(wěn)定的公平的。
自治系統(tǒng)AS:指處于一個(gè)管理機(jī)構(gòu)下的網(wǎng)絡(luò)設(shè)備群,AS內(nèi)部網(wǎng)絡(luò)自治管理,對外提供一個(gè)或多個(gè)出入口,其中自治系統(tǒng)內(nèi)部的路由協(xié)議為內(nèi)部網(wǎng)關(guān)協(xié)議,如RIP、OSPF等;自治系統(tǒng)外部的路由協(xié)議為外部網(wǎng)關(guān)協(xié)議,如BGP。
靜態(tài)路由:人工配置,難度和復(fù)雜度高;
動(dòng)態(tài)路由:
- 鏈路狀態(tài)路由選擇算法LS:向所有隔壁路由發(fā)送信息收斂快;全局式路由選擇算法,每個(gè)路由器計(jì)算路由時(shí),需構(gòu)建整個(gè)網(wǎng)絡(luò)拓?fù)鋱D;利用Dijkstra算法求源端到目的端網(wǎng)絡(luò)的(歡迎關(guān)注公眾號:網(wǎng)絡(luò)工程師阿龍)最短路徑;Dijkstra(迪杰斯特拉)算法
- 距離-向量路由選擇算法DV:向所有隔壁路由發(fā)送信息收斂慢、會(huì)存在回路;基礎(chǔ)是Bellman-Ford方程(簡稱B-F方程);
4.8 內(nèi)部網(wǎng)關(guān)路由協(xié)議之RIP協(xié)議
路由信息協(xié)議 RIP(Routing Information Protocol)【應(yīng)用層】,基于距離-向量的路由選擇算法,較小的AS(自治系統(tǒng)),適合小型網(wǎng)絡(luò);RIP報(bào)文,封裝進(jìn)UDP數(shù)據(jù)包。
RIP協(xié)議特性:
- RIP在度量路徑時(shí)采用的是跳數(shù)(每個(gè)路由器維護(hù)自身到其他每個(gè)路由器的距離記錄);
- RIP的費(fèi)用定義在源路由器和目的子網(wǎng)之間;
- RIP被限制的網(wǎng)絡(luò)直徑不超過15跳;
- 和隔壁交換所有的信息,30主動(dòng)一次(廣播)。
4.9 內(nèi)部網(wǎng)關(guān)路由協(xié)議之OSPF協(xié)議
開放最短路徑優(yōu)先協(xié)議 OSPF(Open Shortest Path First)【網(wǎng)絡(luò)層】,基于鏈路狀態(tài)的路由選擇算法(即Dijkstra算法),較大規(guī)模的AS ,適合大型網(wǎng)絡(luò),直接封裝在IP數(shù)據(jù)包傳輸。
OSPF協(xié)議優(yōu)點(diǎn):
- 安全;
- 支持多條相同費(fèi)用路徑;
- 支持區(qū)別化費(fèi)用度量;
- 支持單播路由和多播路由;
- 分層路由。
RIP與OSPF的對比(路由算法決定其性質(zhì)):
4.10外部網(wǎng)關(guān)路由協(xié)議之BGP協(xié)議
BGP(Border Gateway Protocol)邊際網(wǎng)關(guān)協(xié)議【應(yīng)用層】:是運(yùn)行在AS之間的一種協(xié)議,尋找一條好路由:首次交換全部信息,以后只交換變化的部分,BGP封裝進(jìn)TCP報(bào)文段.
五、傳輸層
第一個(gè)端到端,即主機(jī)到主機(jī)的層次。傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯(cuò)控制和流量控制問題。
傳輸層的任務(wù)是根據(jù)通信子網(wǎng)的特性,最佳的利用網(wǎng)絡(luò)資源,為兩個(gè)端系統(tǒng)的會(huì)話層之間,提供建立、(歡迎關(guān)注公眾號:網(wǎng)絡(luò)工程師阿龍)維護(hù)和取消傳輸連接的功能,負(fù)責(zé)端到端的可靠數(shù)據(jù)傳輸。在這一層,信息傳送的協(xié)議數(shù)據(jù)單元稱為段或報(bào)文。
網(wǎng)絡(luò)層只是根據(jù)網(wǎng)絡(luò)地址將源結(jié)點(diǎn)發(fā)出的數(shù)據(jù)包傳送到目的結(jié)點(diǎn),而傳輸層則負(fù)責(zé)將數(shù)據(jù)可靠地傳送到相應(yīng)的端口。
有關(guān)網(wǎng)絡(luò)層的重點(diǎn):
- 傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯(cuò)控制和流量控制問題;
- 包含的主要協(xié)議:TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)、UDP協(xié)議(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議);
- 重要設(shè)備:網(wǎng)關(guān)。
5.1 UDP協(xié)議詳解
UDP(User Datagram Protocol: 用戶數(shù)據(jù)報(bào)協(xié)議),是一個(gè)非常簡單的協(xié)議,
UDP協(xié)議的特點(diǎn):
- UDP是無連接協(xié)議;
- UDP不能保證可靠的交付數(shù)據(jù);
- UDP是面向報(bào)文傳輸?shù)模?/li>
- UDP沒有擁塞控制;
- UDP首部開銷很小。
UDP數(shù)據(jù)報(bào)結(jié)構(gòu):
首部:8B,四字段/2B【源端口 | 目的端口 | UDP長度 | 校驗(yàn)和】 數(shù)據(jù)字段:應(yīng)用數(shù)據(jù)
5.2 TCP協(xié)議詳解
TCP(Transmission Control Protocol: 傳輸控制協(xié)議),是計(jì)算機(jī)網(wǎng)絡(luò)中非常復(fù)雜的一個(gè)協(xié)議。
TCP協(xié)議的功能:
- 對應(yīng)用層報(bào)文進(jìn)行分段和重組;
- 面向應(yīng)用層實(shí)現(xiàn)復(fù)用與分解;
- 實(shí)現(xiàn)端到端的流量控制;
- 擁塞控制;
- 傳輸層尋址;
- 對收到的報(bào)文進(jìn)行差錯(cuò)檢測(首部和數(shù)據(jù)部分都檢錯(cuò));
- 實(shí)現(xiàn)進(jìn)程間的端到端可靠數(shù)據(jù)傳輸控制。
TCP協(xié)議的特點(diǎn):
- TCP是面向連接的協(xié)議;
- TCP是面向字節(jié)流的協(xié)議;
- TCP的一個(gè)連接有兩端,即點(diǎn)對點(diǎn)通信;
- TCP提供可靠的傳輸服務(wù);
- TCP協(xié)議提供全雙工通信(每條TCP連接只能一對一);
5.2.1 TCP報(bào)文段結(jié)構(gòu):
最大報(bào)文段長度:報(bào)文段中封裝的應(yīng)用層數(shù)據(jù)的最大長度。
TCP首部:
- 序號字段:TCP的序號是對每個(gè)應(yīng)用層數(shù)據(jù)的每個(gè)字節(jié)進(jìn)行編號
- 確認(rèn)序號字段:期望從對方接收數(shù)據(jù)的字節(jié)序號,即該序號對應(yīng)的字節(jié)尚未收到。用ack_seq標(biāo)識;
- TCP段的首部長度最短是20B ,最長為60字節(jié)。但是長度必須為4B的整數(shù)倍
TCP標(biāo)記的作用:
5.3 可靠傳輸?shù)幕驹?/h3>
基本原理:
- 不可靠傳輸信道在數(shù)據(jù)傳輸中可能發(fā)生的情況:比特差錯(cuò)、亂序、重傳、丟失
- 基于不可靠信道實(shí)現(xiàn)可靠數(shù)據(jù)傳輸采取的措施:
差錯(cuò)檢測:利用編碼實(shí)現(xiàn)數(shù)據(jù)包傳輸過程中的比特差錯(cuò)檢測 確認(rèn):接收方向發(fā)送方反饋接收狀態(tài) 重傳:發(fā)送方重新發(fā)送接收方?jīng)]有正確接收的數(shù)據(jù) 序號:確保數(shù)據(jù)按序提交 計(jì)時(shí)器:解決數(shù)據(jù)丟失問題;
停止等待協(xié)議:是最簡單的可靠傳輸協(xié)議,但是該協(xié)議對信道的利用率不高。
連續(xù)ARQ(Automatic Repeat reQuest:自動(dòng)重傳請求)協(xié)議:滑動(dòng)窗口+累計(jì)確認(rèn),大幅提高了信道的利用率。
5.3.1TCP協(xié)議的可靠傳輸
基于連續(xù)ARQ協(xié)議,在某些情況下,重傳的效率并不高,會(huì)重復(fù)傳輸部分已經(jīng)成功接收的字節(jié)。
5.3.2 TCP協(xié)議的流量控制
流量控制:讓發(fā)送方發(fā)送速率不要太快,TCP協(xié)議使用滑動(dòng)窗口實(shí)現(xiàn)流量控制。
5.4 TCP協(xié)議的擁塞控制
擁塞控制與流量控制的區(qū)別:流量控制考慮點(diǎn)對點(diǎn)的通信量的控制,而擁塞控制考慮整個(gè)網(wǎng)絡(luò),是全局性的考慮。擁塞控制的方法:慢啟動(dòng)算法+擁塞避免算法。
慢開始和擁塞避免:
- 【慢開始】擁塞窗口從1指數(shù)增長;
- 到達(dá)閾值時(shí)進(jìn)入【擁塞避免】,變成+1增長;
- 【超時(shí)】,閾值變?yōu)楫?dāng)前cwnd的一半(不能<2);
- 再從【慢開始】,擁塞窗口從1指數(shù)增長。
快重傳和快恢復(fù):
- 發(fā)送方連續(xù)收到3個(gè)冗余ACK,執(zhí)行【快重傳】,不必等計(jì)時(shí)器超時(shí);
- 執(zhí)行【快恢復(fù)】,閾值變?yōu)楫?dāng)前cwnd的一半(不能<2),并從此新的ssthresh點(diǎn)進(jìn)入【擁塞避免】。
5.5 TCP連接的三次握手(重要)
TCP三次握手使用指令:
面試常客:為什么需要三次握手?
- 第一次握手:客戶發(fā)送請求,此時(shí)服務(wù)器知道客戶能發(fā);
- 第二次握手:服務(wù)器發(fā)送確認(rèn),此時(shí)客戶知道服務(wù)器能發(fā)能收;
- 第三次握手:客戶發(fā)送確認(rèn),此時(shí)服務(wù)器知道客戶能收。
建立連接(三次握手):
第一次
:客戶向服務(wù)器發(fā)送連接請求段,建立連接請求控制段(SYN=1),表示傳輸?shù)膱?bào)文段的第一個(gè)數(shù)據(jù)字節(jié)的序列號是x,此序列號代表整個(gè)報(bào)文段的序號(seq=x);客戶端進(jìn)入 SYN_SEND (同步發(fā)送狀態(tài));
第二次
:服務(wù)器發(fā)回確認(rèn)報(bào)文段,同意建立新連接的確認(rèn)段(SYN=1),確認(rèn)序號字段有效(ACK=1),服務(wù)器告訴客戶端報(bào)文段序號是y(seq=y),表示服務(wù)器已經(jīng)收到客戶端序號為x的報(bào)文段,準(zhǔn)備接受客戶端序列號為x+1的報(bào)文段(ack_seq=x+1);服務(wù)器由LISTEN進(jìn)入SYN_RCVD (同步收到狀態(tài));
第三次
:客戶對服務(wù)器的同一連接進(jìn)行確認(rèn).確認(rèn)序號字段有效(ACK=1),客戶此次的報(bào)文段的序列號是x+1(seq=x+1),客戶期望接受服務(wù)器序列號為y+1的報(bào)文段(ack_seq=y+1);當(dāng)客戶發(fā)送ack時(shí),客戶端進(jìn)入ESTABLISHED 狀態(tài);當(dāng)服務(wù)收到客戶發(fā)送的ack后,也進(jìn)入ESTABLISHED狀態(tài);第三次握手可攜帶數(shù)據(jù);
5.6 TCP連接的四次揮手(重要)
釋放連接(四次揮手)
第一次
:客戶向服務(wù)器發(fā)送釋放連接報(bào)文段,發(fā)送端數(shù)據(jù)發(fā)送完畢,請求釋放連接(FIN=1),傳輸?shù)牡谝粋€(gè)數(shù)據(jù)字節(jié)的序號是x(seq=x);客戶端狀態(tài)由ESTABLISHED進(jìn)入FIN_WAIT_1(終止等待1狀態(tài));
第二次
:服務(wù)器向客戶發(fā)送確認(rèn)段,確認(rèn)字號段有效(ACK=1),服務(wù)器傳輸?shù)臄?shù)據(jù)序號是y(seq=y),服務(wù)器期望接收客戶數(shù)據(jù)序號為x+1(ack_seq=x+1);服務(wù)器狀態(tài)由ESTABLISHED進(jìn)入CLOSE_WAIT(關(guān)閉等待);客戶端收到ACK段后,由FIN_WAIT_1進(jìn)入FIN_WAIT_2;
第三次
:服務(wù)器向客戶發(fā)送釋放連接報(bào)文段,請求釋放連接(FIN=1),確認(rèn)字號段有效(ACK=1),表示服務(wù)器期望接收客戶數(shù)據(jù)序號為x+1(ack_seq=x+1);表示自己傳輸?shù)牡谝粋€(gè)字節(jié)序號是y+1(seq=y+1);服務(wù)器狀態(tài)由CLOSE_WAIT 進(jìn)入 LAST_ACK (最后確認(rèn)狀態(tài));
第四次
:客戶向服務(wù)器發(fā)送確認(rèn)段,確認(rèn)字號段有效(ACK=1),表示客戶傳輸?shù)臄?shù)據(jù)序號是x+1(seq=x+1),表示客戶期望接收服務(wù)器數(shù)據(jù)序號為y+1+1(ack_seq=y+1+1);客戶端狀態(tài)由FIN_WAIT_2進(jìn)入TIME_WAIT,等待2MSL時(shí)間,進(jìn)入CLOSED狀態(tài);服務(wù)器在收到最后一次ACK后,由LAST_ACK進(jìn)入CLOSED;
為什么需要等待2MSL?
- 最后一個(gè)報(bào)文沒有確認(rèn);
- 確保發(fā)送方的ACK可以到達(dá)接收方;
- 2MSL時(shí)間內(nèi)沒有收到,則接收方會(huì)重發(fā);
- 確保當(dāng)前連接的所有報(bào)文都已經(jīng)過期。
六、應(yīng)用層
為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口。應(yīng)用層重點(diǎn):
- 數(shù)據(jù)傳輸基本單位為報(bào)文;
- 包含的主要協(xié)議:FTP(文件傳送協(xié)議)、Telnet(遠(yuǎn)程登錄協(xié)議)、DNS(域名解析協(xié)議)、SMTP(郵件傳送協(xié)議),POP3協(xié)議(郵局協(xié)議),HTTP協(xié)議(Hyper Text Transfer Protocol)。
6.1 DNS詳解
DNS(Domain Name System:域名系統(tǒng))【C/S,UDP,端口53】:解決IP地址復(fù)雜難以記憶的問題,存儲(chǔ)并完成自己所管轄范圍內(nèi)主機(jī)的 域名 到 IP 地址的映射。
域名解析的順序:
- 【1】瀏覽器緩存,
- 【2】找本機(jī)的hosts文件,
- 【3】路由緩存,
- 【4】找DNS服務(wù)器(本地域名、頂級域名、根域名)->迭代解析、遞歸查詢。
- IP—>DNS服務(wù)—>便于記憶的域名
- 域名由點(diǎn)、字母和數(shù)字組成,分為頂級域(com,cn,net,gov,org)、二級域(baidu,taobao,qq,alibaba)、三級域(www)(12-2-0852)
6.2 DHCP協(xié)議詳解
DHCP(Dynamic Configuration Protocol:動(dòng)態(tài)主機(jī)設(shè)置協(xié)議):是一個(gè)局域網(wǎng)協(xié)議,是應(yīng)用UDP協(xié)議的應(yīng)用層協(xié)議。作用:為臨時(shí)接入局域網(wǎng)的用戶自動(dòng)分配IP地址。
6.3 HTTP協(xié)議詳解
文件傳輸協(xié)議(FTP):控制連接(端口21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個(gè)會(huì)話期間一直打開。
HTTP(HyperText Transfer Protocol:超文本傳輸協(xié)議)【TCP,端口80】:是可靠的數(shù)據(jù)傳輸協(xié)議,瀏覽器向服務(wù)器發(fā)收報(bào)文前,先建立TCP連接,HTTP使用TCP連接方式(HTTP自身無連接)。
HTTP請求報(bào)文方式:
- GET:請求指定的頁面信息,并返回實(shí)體主體;
- POST:向指定資源提交數(shù)據(jù)進(jìn)行處理請求;
- DELETE:請求服務(wù)器刪除指定的頁面;
- HEAD:請求讀取URL標(biāo)識的信息的首部,只返回報(bào)文頭;
- OPETION:請求一些選項(xiàng)的信息;
- PUT:在指明的URL下存儲(chǔ)一個(gè)文檔。
6.3.1 HTTP工作的結(jié)構(gòu)
6.3.2 HTTPS協(xié)議詳解
HTTPS(Secure)是安全的HTTP協(xié)議,端口號443?;贖TTP協(xié)議,通過SSL或TLS提供加密處理數(shù)據(jù)、驗(yàn)證對方身份以及數(shù)據(jù)完整性保護(hù)。