您現在的位置是:首頁 > 運動

計算機網路知識點全面總結(傳輸層)

由 微笑橙子mR 發表于 運動2022-12-29
簡介緊急指標:指出在本報文段中緊急資料共有多少個位元組(緊急資料放在本報文段資料的最前面)確認 ACK:只有當 ACK=1 時確認好欄位才有效推送 PSH:接收方 TCP 收到 PSH=1 的報文段,就儘快地交付接收應用程序,而不再等到整個快取

工程裡節點什麼意思

第五章 運輸層

運輸層的作用

運輸層向它上面的應用層提供通訊服務(提供端到端,程序到程序的可靠通訊),為執行在不同 host 上的程序提供邏輯通訊,向高層使用者遮蔽通訊子網的細節

2。UDP 和 TCP 的特點,即使用它們的應用程式,熟知埠號

UDP 和 TCP 的特點:

UDP

支援單播、多播、廣播

無連線,不可靠

可以任何速率傳送資料

TCP

僅單播,不支援多播、廣播

面向連線,可靠按序

流量控制(傳送速率不超過接收方的接收能力)

擁塞控制(網路過載時限制傳送方的傳送速率)

及使用它們的應用程式:

計算機網路知識點全面總結(傳輸層)

熟知埠號

計算機網路知識點全面總結(傳輸層)

計算機網路知識點全面總結(傳輸層)

3。UDP:首部格式,檢驗和

首部格式

計算機網路知識點全面總結(傳輸層)

檢驗和

計算機網路知識點全面總結(傳輸層)

傳送端:

先設定檢驗和欄位為 0

每兩個位元組為一組,進位累加求和,多出的加到最後一位

把求和結果求反,求反即轉換成 2 進位制後,0 變 1,1 變 0

把計算結果放入檢驗和欄位

接收端

把每 2 個位元組為一組,進位累加求和

把求和結果求反:為 0 即未檢驗出差錯(不排除沒檢測出來的錯誤)

計算機網路知識點全面總結(傳輸層)

4。TCP 的首部格式(埠號,序號,確認號,視窗,首部長度,檢驗和,6 個標誌位)

計算機網路知識點全面總結(傳輸層)

埠號

:各佔 2 個位元組

當訪問百度時,源埠使用客戶端系統隨機分配的埠號,目的埠是使用熟知埠號 80

序號

:佔 4 個位元組。序號範圍是【0~2^32-1】,迴圈使用

確認號

:佔 4 個位元組,是期望收到對方下一個報文段的第一個資料位元組的序號。若確認號為 N,則代表:序號 N-1 為止的所有資料都已正確收到

視窗

:站 2 個位元組。視窗值是【0~2^16-1】之間的整數。視窗指的是傳送本報文段的一方的接收視窗。視窗值告訴對方:從本報文段首部中的確認號算起,接收方目前允許對方傳送的資料量。視窗值作為接收方讓傳送方設定其傳送視窗的依據。

視窗欄位明確指出了現在允許對方傳送的資料量。視窗值經常在動態變化著

首部長度

:佔 4 位,也叫資料偏移,最小 20,最大 60

檢驗和

:佔 2 位,檢驗和欄位檢驗的範圍包括首部和資料兩部分

6 個標誌位

緊急 URG:當 URG=1 時,表明緊急指標欄位有效。緊急指標:指出在本報文段中緊急資料共有多少個位元組(緊急資料放在本報文段資料的最前面)

確認 ACK:只有當 ACK=1 時確認好欄位才有效

推送 PSH:接收方 TCP 收到 PSH=1 的報文段,就儘快地交付接收應用程序,而不再等到整個快取都填滿了後再向上交付

復位 RST:當 RST=1 時,表明 TCP 連線中出現嚴重差錯,重新建立運輸連線

同步 SYN:同步 SYN=1 表示這是一個連線請求或連線接受報文

終止 FIN:FIN=1 表明傳送端的資料已傳送完畢,並要求釋放運輸連線

5。TCP 的可靠傳輸:超時重傳機制,TCP 流量控制(序號,確認號,確認標誌位,視窗,死鎖問題與持續計時器),傳送快取和接受快取的作用,捎帶確認與累積確認

超時重傳機制

超時計時器時間 RTO:RTO=RTTs+4*RTTD

測量多個 sampleRTT 求平均值,形成 RTT 的估計值 RTTs:

RTTs=(1-α) * RTTS+α * SampleRTT 典型值α=1/8

測量 RTT 的變化值:RTTs 與 SampleRTT 的差值:

RTTd=(1-β) * RTTD+β * |RTTs-SampleRTT| 典型值:β=1/4

TCP 流量控制(序號,確認號,確認標誌位,視窗,死鎖問題與持續計時器)

序號:傳送窗口裡面的序號表示允許傳送的序號

確認號:表明主機期望收到的下一個序號,而上一個序號位置的資料已經收到了

確認標誌位:

視窗:視窗指的是傳送本報文段的一方的接收視窗;傳送視窗表示:在沒有收到 B 的確認的情況下,A 可以連續把視窗內的資料都發送出去。

死鎖問題:傳送方等待接收方通知視窗大小,接收方等待發送方傳送資料

持續計時器:當傳送方收到接收方的零視窗通知,啟動持續計時器。若持續計時器到期,就傳送一個零視窗探測報文段

接收方傳送的確認報文段中:

若視窗仍是零,則重置持續計時器

若視窗不是零,則死鎖開啟

傳送快取和接受快取的作用

傳送方應用程序把資料傳送到 TCP 的傳送快取;傳送快取暫時存放:1 準備傳送的資料;2 已傳送未確定的資料

接收方應用程序從 TCP 的接收快取中讀取位元組流;接收快取暫時存放:1 已收到但尚未提交的資料;2 失序的資料

捎帶確認與累積確認

累積確認:即不必對收到的分組逐個傳送確認,而是對按序到達的最後一個分組傳送確認,這樣就表示:到這個分組位置的所有分組都已正確收到了

捎帶確認:當一個數據幀到達的時候後,接收方並不是立即傳送一個單獨的控制幀,而是抑制一下自己並且開始等待,知道網路層傳遞給他下一個分組,然後,確認資訊被附在往外發送的資料幀中(使用幀頭中的 ack 域)。實際上,確認報文搭了下一個外發資料幀的便車。

6。TCP 的擁塞控制:網路擁塞的判斷,傳輸輪次與擁塞視窗大小的關係(慢開始與擁塞避免,門限 ssthresh,重傳計時器超時與三個重複 ACK)

網路擁塞的判斷:重傳定時器超時

*** 傳輸輪次與擁塞視窗大小的關係(慢開始與擁塞避免,門限 ssthresh,重傳計時器超時與三個重複 ACK)***:

慢開始:每經過一個 RTT,cwnd 翻倍

擁塞避免:每經過一個 RTT,cwnd 加一

慢開始門限 ssthresh:當 cwnd = ssthresh 時由指數增長切換為線性增長;ssthresh=24 時,重傳計時器超時,傳送方判斷為網路擁塞。調整 ssthresh=cwnd/2,擁塞視窗 cwnd=1,執行慢開始

7。TCP 連線:TCP 的套接字,三次握手建立 TCP 連線,四次握手釋放 TCP 連線

TCP 的套接字:就是對網路中不同主機上的應用程序之間進行雙向通訊的端點的抽象。一個套接字就是網路上程序通訊的一端,提供了應用層程序利用網路協議交換資料的機制

三次握手建立 TCP 連線:

剛開始客戶端 A 和服務端 B 都是關閉的

B 的 TCP 伺服器程序被動開啟,準備接受客戶程序的連線請求

A 主動開啟,A 向 B 發出 SYN 報文段,選擇初始序號,不攜帶資料。SYN=1,SEQ=X

B 收到 SYN 報文段,發回 ACK 報文段,選擇初始序號,分配快取,不攜帶資料。SYN=1。ACK=1。SEQ=Y,ack=x+1

A 向 B 傳送 SYN+ACK 報文段,可攜帶資料。通知上層應用程序:TCP 連線已建立。

B 通知其上層應用程序 TCP 連線已經建立。

計算機網路知識點全面總結(傳輸層)

四次握手釋放 TCP 連線:

客戶端 A 主動關閉。A 向 B 發出 FIN 報文段,並停止傳送是資料。FIN=1,seq=u

B 通知應用程序。B 收到 FIN 報文段,回覆 ACK 報文段。TCP 連線處於半關閉狀態:B 仍可傳送資料。ACK=1,seq=v,ack=u+1

B 被動關閉。若 B 已經沒有要向 A 傳送的資料,向 A 傳送 FIN 報文段。FIN=1,ACK=1,seq=w,ack=u+1

A 收到 FIN 報文段後,必須發出 ACK 報文段。ACK=1,seq=u+1,ack=w+1

B 收到 ACK 報文段後,TCP 連線關閉。

計算機網路知識點全面總結(傳輸層)

推薦文章