五、傳輸層
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通信子網的特性,最佳的利用網絡資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。
網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。
有關網絡層的重點:
- 傳輸層負責將上層數據分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
- 包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);
- 重要設備:網關。
!
5.1 UDP協議詳解
UDP(User Datagram Protocol: 用戶數據報協議),是一個非常簡單的協議,
UDP協議的特點:
- UDP是無連接協議;
- UDP不能保證可靠的交付數據;
- UDP是面向報文傳輸的;
- UDP沒有擁塞控制;
- UDP首部開銷很小。
UDP數據報結構:
首部:8B,四字段/2B【源端口 | 目的端口 | UDP長度 | 校驗和】數據字段:應用數據
5.2 TCP協議詳解
TCP(Transmission Control Protocol: 傳輸控制協議),是計算機網絡中非常復雜的一個協議。
TCP協議的功能:
- 對應用層報文進行分段和重組;
- 面向應用層實現復用與分解;
- 實現端到端的流量控制;
- 擁塞控制;
- 傳輸層尋址;
- 對收到的報文進行差錯檢測(首部和數據部分都檢錯);
- 實現進程間的端到端可靠數據傳輸控制。
TCP協議的特點:
- TCP是面向連接的協議;
- TCP是面向字節流的協議;
- TCP的一個連接有兩端,即點對點通信;
- TCP提供可靠的傳輸服務;
- TCP協議提供全雙工通信(每條TCP連接只能一對一);
5.2.1 TCP報文段結構:
最大報文段長度:報文段中封裝的應用層數據的最大長度。
TCP首部:
- 序號字段:TCP的序號是對每個應用層數據的每個字節進行編號
- 確認序號字段:期望從對方接收數據的字節序號,即該序號對應的字節尚未收到。用ack_seq標識;
- TCP段的首部長度最短是20B ,最長為60字節。但是長度必須為4B的整數倍
TCP標記的作用:
5.3 可靠傳輸的基本原理
基本原理:
- 不可靠傳輸信道在數據傳輸中可能發生的情況:比特差錯、亂序、重傳、丟失
- 基于不可靠信道實現可靠數據傳輸采取的措施:
差錯檢測:利用編碼實現數據包傳輸過程中的比特差錯檢測確認:接收方向發送方反饋接收狀態重傳:發送方重新發送接收方沒有正確接收的數據序號:確保數據按序提交計時器:解決數據丟失問題;
停止等待協議:是最簡單的可靠傳輸協議,但是該協議對信道的利用率不高。
連續ARQ(Automatic Repeat reQuest:自動重傳請求)協議:滑動窗口+累計確認,大幅提高了信道的利用率。
5.3.1TCP協議的可靠傳輸
基于連續ARQ協議,在某些情況下,重傳的效率并不高,會重復傳輸部分已經成功接收的字節。
5.3.2 TCP協議的流量控制
流量控制:讓發送方發送速率不要太快,TCP協議使用滑動窗口實現流量控制。
5.4 TCP協議的擁塞控制
擁塞控制與流量控制的區別:流量控制考慮點對點的通信量的控制,而擁塞控制考慮整個網絡,是全局性的考慮。擁塞控制的方法:慢啟動算法+擁塞避免算法。
慢開始和擁塞避免:
- 【慢開始】擁塞窗口從1指數增長;
- 到達閾值時進入【擁塞避免】,變成+1增長;
- 【超時】,閾值變為當前cwnd的一半(不能<2);
- 再從【慢開始】,擁塞窗口從1指數增長。
快重傳和快恢復:
- 發送方連續收到3個冗余ACK,執行【快重傳】,不必等計時器超時;
- 執行【快恢復】,閾值變為當前cwnd的一半(不能<2),并從此新的ssthresh點進入【擁塞避免】。
5.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狀態;第三次握手可攜帶數據;
5.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?
- 最后一個報文沒有確認;
- 確保發送方的ACK可以到達接收方;
- 2MSL時間內沒有收到,則接收方會重發;
- 確保當前連接的所有報文都已經過期。
六、應用層
為操作系統或網絡應用程序提供訪問網絡服務的接口。應用層重點:
- 數據傳輸基本單位為報文;
- 包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。
6.1 DNS詳解
DNS(Domain Name System:域名系統)【C/S,UDP,端口53】:解決IP地址復雜難以記憶的問題,存儲并完成自己所管轄范圍內主機的 域名 到 IP 地址的映射。
域名解析的順序:
- 【1】瀏覽器緩存,
- 【2】找本機的hosts文件,
- 【3】路由緩存,
- 【4】找DNS服務器(本地域名、頂級域名、根域名)->迭代解析、遞歸查詢。
- IP—>DNS服務—>便于記憶的域名
- 域名由點、字母和數字組成,分為頂級域(com,cn,net,gov,org)、二級域(baidu,taobao,qq,alibaba)、三級域(www)(12-2-0852)
6.2 DHCP協議詳解
DHCP(Dynamic Configuration Protocol:動態主機設置協議):是一個局域網協議,是應用UDP協議的應用層協議。作用:為臨時接入局域網的用戶自動分配IP地址。
6.3 HTTP協議詳解
文件傳輸協議(FTP):控制連接(端口21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個會話期間一直打開。
HTTP(HyperText Transfer Protocol:超文本傳輸協議)【TCP,端口80】:是可靠的數據傳輸協議,瀏覽器向服務器發收報文前,先建立TCP連接,HTTP使用TCP連接方式(HTTP自身無連接)。
HTTP請求報文方式:
- GET:請求指定的頁面信息,并返回實體主體;
- POST:向指定資源提交數據進行處理請求;
- DELETE:請求服務器刪除指定的頁面;
- HEAD:請求讀取URL標識的信息的首部,只返回報文頭;
- OPETION:請求一些選項的信息;
- PUT:在指明的URL下存儲一個文檔。
6.3.1 HTTP工作的結構
6.3.2 HTTPS協議詳解
HTTPS(Secure)是安全的HTTP協議,端口號443。基于HTTP協議,通過SSL或TLS提供加密處理數據、驗證對方身份以及數據完整性保護。
原文鏈接 https://blog.csdn.net/Royalic/article/details/119985591
-
WAN
+關注
關注
1文章
148瀏覽量
18923 -
城域網
+關注
關注
0文章
63瀏覽量
17719 -
LAN
+關注
關注
0文章
226瀏覽量
37381 -
計算機網絡
+關注
關注
3文章
336瀏覽量
22125
發布評論請先 登錄
相關推薦
評論