五、傳輸層
第一個端到端,即主機(jī)到主機(jī)的層次。傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務(wù)是根據(jù)通信子網(wǎng)的特性,最佳的利用網(wǎng)絡(luò)資源,為兩個端系統(tǒng)的會話層之間,提供建立、維護(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ù)分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
- 包含的主要協(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é)議),是一個非常簡單的協(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ù)雜的一個協(xié)議。
TCP協(xié)議的功能:
- 對應(yīng)用層報(bào)文進(jìn)行分段和重組;
- 面向應(yīng)用層實(shí)現(xiàn)復(fù)用與分解;
- 實(shí)現(xiàn)端到端的流量控制;
- 擁塞控制;
- 傳輸層尋址;
- 對收到的報(bào)文進(jìn)行差錯檢測(首部和數(shù)據(jù)部分都檢錯);
- 實(shí)現(xiàn)進(jìn)程間的端到端可靠數(shù)據(jù)傳輸控制。
TCP協(xié)議的特點(diǎn):
- TCP是面向連接的協(xié)議;
- TCP是面向字節(jié)流的協(xié)議;
- TCP的一個連接有兩端,即點(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的序號是對每個應(yīng)用層數(shù)據(jù)的每個字節(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ā)生的情況:比特差錯、亂序、重傳、丟失
- 基于不可靠信道實(shí)現(xiàn)可靠數(shù)據(jù)傳輸采取的措施:
差錯檢測:利用編碼實(shí)現(xiàn)數(shù)據(jù)包傳輸過程中的比特差錯檢測確認(rèn):接收方向發(fā)送方反饋接收狀態(tài)重傳:發(fā)送方重新發(fā)送接收方?jīng)]有正確接收的數(shù)據(jù)序號:確保數(shù)據(jù)按序提交計(jì)時器:解決數(shù)據(jù)丟失問題;
停止等待協(xié)議:是最簡單的可靠傳輸協(xié)議,但是該協(xié)議對信道的利用率不高。
連續(xù)ARQ(Automatic Repeat reQuest:自動重傳請求)協(xié)議:滑動窗口+累計(jì)確認(rèn),大幅提高了信道的利用率。
5.3.1TCP協(xié)議的可靠傳輸
基于連續(xù)ARQ協(xié)議,在某些情況下,重傳的效率并不高,會重復(fù)傳輸部分已經(jīng)成功接收的字節(jié)。
5.3.2 TCP協(xié)議的流量控制
流量控制:讓發(fā)送方發(fā)送速率不要太快,TCP協(xié)議使用滑動窗口實(shí)現(xiàn)流量控制。
5.4 TCP協(xié)議的擁塞控制
擁塞控制與流量控制的區(qū)別:流量控制考慮點(diǎn)對點(diǎn)的通信量的控制,而擁塞控制考慮整個網(wǎng)絡(luò),是全局性的考慮。擁塞控制的方法:慢啟動算法+擁塞避免算法。
慢開始和擁塞避免:
- 【慢開始】擁塞窗口從1指數(shù)增長;
- 到達(dá)閾值時進(jìn)入【擁塞避免】,變成+1增長;
- 【超時】,閾值變?yōu)楫?dāng)前cwnd的一半(不能<2);
- 再從【慢開始】,擁塞窗口從1指數(shù)增長。
快重傳和快恢復(fù):
- 發(fā)送方連續(xù)收到3個冗余ACK,執(zhí)行【快重傳】,不必等計(jì)時器超時;
- 執(zhí)行【快恢復(fù)】,閾值變?yōu)楫?dāng)前cwnd的一半(不能<2),并從此新的ssthresh點(diǎn)進(jìn)入【擁塞避免】。
5.5 TCP連接的三次握手(重要)
TCP三次握手使用指令:
面試常客:為什么需要三次握手?
- 第一次握手:客戶發(fā)送請求,此時服務(wù)器知道客戶能發(fā);
- 第二次握手:服務(wù)器發(fā)送確認(rèn),此時客戶知道服務(wù)器能發(fā)能收;
- 第三次握手:客戶發(fā)送確認(rèn),此時服務(wù)器知道客戶能收。
建立連接(三次握手):
第一次
:客戶向服務(wù)器發(fā)送連接請求段,建立連接請求控制段(SYN=1),表示傳輸?shù)膱?bào)文段的第一個數(shù)據(jù)字節(jié)的序列號是x,此序列號代表整個報(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時,客戶端進(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ù)牡谝粋€數(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ù)牡谝粋€字節(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時間,進(jìn)入CLOSED狀態(tài);服務(wù)器在收到最后一次ACK后,由LAST_ACK進(jìn)入CLOSED;
為什么需要等待2MSL?
- 最后一個報(bào)文沒有確認(rèn);
- 確保發(fā)送方的ACK可以到達(dá)接收方;
- 2MSL時間內(nèi)沒有收到,則接收方會重發(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ù)雜難以記憶的問題,存儲并完成自己所管轄范圍內(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:動態(tài)主機(jī)設(shè)置協(xié)議):是一個局域網(wǎng)協(xié)議,是應(yīng)用UDP協(xié)議的應(yīng)用層協(xié)議。作用:為臨時接入局域網(wǎng)的用戶自動分配IP地址。
6.3 HTTP協(xié)議詳解
文件傳輸協(xié)議(FTP):控制連接(端口21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個會話期間一直打開。
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下存儲一個文檔。
6.3.1 HTTP工作的結(jié)構(gòu)
6.3.2 HTTPS協(xié)議詳解
HTTPS(Secure)是安全的HTTP協(xié)議,端口號443。基于HTTP協(xié)議,通過SSL或TLS提供加密處理數(shù)據(jù)、驗(yàn)證對方身份以及數(shù)據(jù)完整性保護(hù)。
原文鏈接 https://blog.csdn.net/Royalic/article/details/119985591
-
WAN
+關(guān)注
關(guān)注
1文章
148瀏覽量
18900 -
城域網(wǎng)
+關(guān)注
關(guān)注
0文章
63瀏覽量
17681 -
LAN
+關(guān)注
關(guān)注
0文章
226瀏覽量
37323 -
計(jì)算機(jī)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
3文章
333瀏覽量
22073
發(fā)布評論請先 登錄
相關(guān)推薦
評論