計算機網路(謝希仁版) 運輸層

2022-07-13 14:24:17 字數 4207 閱讀 6685

運輸層概述:

網路層是為主機之間提供邏輯通訊,而運輸層是為應用程序之間提供端到端的邏輯通訊。

網路層只對ip資料報的首部進行檢驗,而運輸層對協議的首部和資料部分都進行檢驗。

運輸層有兩種不同的運輸協議:一對一的可靠的面向連線的tcp和不可靠的無連線的udp,兩者對應的資料單元分別是tcp報文段和udp使用者資料報。

運輸層是通過埠號,復用和分用網路層(ip層)的,該埠不是作業系統的程序識別符號,而是應用層的各種協議程序與運輸實體進行層間互動的一種位址。

運輸層的埠號是16位的,分為伺服器端使用的埠號和客戶端使用的埠號;

伺服器端使用的埠號又分為熟知埠號(所有使用者都知道),比如http的埠號為80,還有一種叫登記埠號(顧名思義);

客戶端使用的埠號又稱短暫埠號,只在客戶程序執行時才動態選擇,用於伺服器端回發資料給客戶端,通訊結束就不復存在。

使用者資料報協議udp:

udp是無連線的,使用盡最大努力交付,以及面向報文的;應用層交給udp多長的報文,udp就照樣傳送,同時加上udp首部,因此,應用層交付的報文長度要控制好,不能太長也不能太短,否則都會降低ip層的效率。

udp的首部由源埠、目的埠、長度、檢驗和組成;udp檢驗和計算的時候要加上偽首部,偽首部由源ip位址、目的ip位址、運輸層協議號(17、6)和udp長度組成。

傳輸控制協議tcp:

tcp是面向連線的,一對一的,可靠交付的,提供全雙工通訊,面向位元組流的;同時應用層無需關注交付的報文長度,因為,報文長度由視窗值、擁塞程度等決定。

可靠傳輸的工作原理:

停止等待協議、超時重傳(超時計時器)、確認丟失操作和確認遲到操作,這些合起來叫做自動重傳請求arq,使得在不可靠的傳輸網路上實現可靠的通訊。

但是這樣會導致通道利用率很低,於是產生了連續arq協議和滑動視窗協議,傳送方是無需確認的連續傳送視窗中的所有位元組,接收方採用累積確認,即對按序到達的最後乙個分組傳送確認(注意確認分組之後的分組的接收情況,傳送方無從得知,只能一律重發,這叫go-back-n,但也有一定的方法解決)。

tcp報文段的首部格式(前20個位元組是固定的,後面都是可選的,總長最多60個位元組):

固定部分包括:

源埠、目的埠、

序號(32位):tcp傳送的位元組流中的每乙個位元組都按順序編號,序號欄位是指本報文段所傳送資料的第乙個位元組的序號

資料偏移:即首部總長度

緊急urg:置1即放到本報文段資料的最前面

確認ack:僅當ack=1時,確認號字段才有效,連線建立之後所有的報文的ack必須為1

推送psh、復位rst、同步syn、終止fin

視窗(2位元組):指的是傳送本報文段的一方的接收視窗,視窗值作為接收方讓傳送方設定其傳送視窗的依據 

檢驗和、緊急指標、以及拓展選項:

其中較重要的是最大報文長度mss,指的是資料字段的最大長度,在建立連線的過程中,雙方就將把自己支援的mss寫入這一字段,雙方值可以不一樣,如果沒有填寫,則預設為536位元組長

視窗擴大(顧名思義)

時間戳:計算報文段的往返時間rtt和防止序號繞回

選擇確認:用來報告收到的不連續的位元組塊的邊界,最多報告4個位元組塊,一定程度上解決go-back-n問題

tcp可靠傳輸的實現:

核心:以位元組為單位的滑動視窗

注意:傳送快取包含傳送視窗,傳送視窗不僅取決於對方的接收視窗,還會根據擁塞程度適當減小傳送視窗,接收視窗由接收快取的大小決定。

接收方必須有累計確認的功能,同時確認推遲的時間不應超過0.5s

超時重傳時間選擇:karn演算法:在計算加權平均rtt時,只要報文重傳了,就不採用其時間樣本。實際上,報文重傳一次,超時重傳時間就增大一倍,較為合理。

tcp的流量控制:

利用滑動視窗機制中的序號、確認號、視窗號實現流量控制;

必須考慮傳輸效率:

可以用不同的機制來控制tcp報文段的傳送時機:

1. tcp維持乙個變數,等於mss,只要快取中存放的資料達到mss位元組時,就組裝成乙個tcp報文段傳送出去;

2. 由傳送方的應用程序指明要求傳送報文段,即tcp支援的推送(psh)操作;

3. 傳送方的乙個計時器期限到了,這時就把當前已有的快取資料裝入報文段(但長度不能超過mss),傳送出去。

在tcp中廣泛使用的是nagle演算法:即邊快取邊傳送報文段,即第一次傳送乙個位元組,之後每次收到接收方的確認後,就組裝所有的快取資料成報文段(但長度不能超過mss)並傳送出去;同時該演算法還規定,當快取中的資料已到達傳送視窗大小的一半或已到達mss時,就立即傳送乙個報文段。

遇到糊塗視窗綜合症(即應用程式每次只從接收快取中讀取1個位元組)時,可以讓接收方等到接收快取中有mss長度或一半空閒空間後再傳送確認資訊。總之,傳送方和接收方都不要太急,有一點點資料就傳送資料報文或一點點空間就傳送確認報文。

tcp的擁塞控制:

擁塞控制和流量控制的區別:

擁塞控制是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載;擁塞控制都有乙個前提,網路能夠承受現有的網路負荷。擁塞控制是乙個全域性性的過程,涉及到所有的主機、路由器以及與降低網路傳輸效能有關的所有引數。

流量控制是指點對點通訊流量的控制,是個端到端的問題(接收端控制傳送端),流量控制是抑制傳送端傳送資料的速率,以便接收端來得及接收。

擁塞控制的兩個概念:輸入負載(網路負載)即單位時間內輸入給網路的分組數目,吞吐量即單位時間內從網路中輸出的分組數目。所謂擁塞,就是在吞吐量達到飽和之前,就出現輸入負載小於吞吐量的情況,此時就需要擁塞控制。

常見的擁塞控制方法:

擁塞控制中傳送方維持乙個擁塞視窗(cwnd),和之前由接收視窗(rwnd)決定的視窗無關,兩者取較小者作為最後的傳送方視窗大小

1. 慢開始演算法(指數增長):從初始cnwd(乙個mss)開始,每經過乙個傳輸輪次(傳送視窗中的資料都傳送出去,並且接收到最後資料的確認),擁塞視窗cnwd就加倍。(本質是每收到對乙個對新報文的確認後(重傳的不算在內),就把擁塞視窗增加乙個mss長度)

2. 擁塞避免演算法(線性增長):當慢開始演算法執行到,cwnd等於白慢開始門限後,開始執行擁塞避免演算法,即每經過乙個傳輸輪次,擁塞視窗只增加乙個mss長度。(本質是每收到對乙個對新報文的長度的確認後,就把擁塞視窗增加乙個(mss * mss / cwnd)長度)

如果出現網路擁塞,則將慢開始門限的大小減半,並重新開始執行慢開始演算法。

3. 快重傳演算法:收到失序的報文段後立即發出重複確認(之前最後一次有序報文段的確認),快重傳規定傳送方只要一連收到三個重複確認,就立即重傳對方尚未收到的報文段。

4. 快恢復演算法:傳送方只要一連收到三個重複確認,就將慢開始門限的大小減半,由於傳送方認為網路可能沒有發生擁塞(一連收到三個重複確認就說明了這點),就把cwnd設值為新的慢開始門限,並繼續執行擁塞避免演算法。

在採用快恢復演算法時,慢開始演算法只在tcp連線時或網路超時時才使用。

5. 隨機早期檢測red:路由器機制,防止出現全域性同步,許多tcp連線在同一時間突然都進入到慢開始狀態。

tcp的運輸連線管理:

運輸連線有三個階段:連線建立、資料傳送和連線釋放。

連線建立是三次握手:

接收方的tcp伺服器程序先建立傳輸控制塊tcb,準備接收客戶程序的連線請求;

傳送方的tcp客戶程序建立傳輸控制塊tcb,然後向接收方發出連線請求報文段;

接收方收到連線請求報文段後,如同意建立連線,則向傳送方發出確認報文段;

傳送方收到確認報文段後,還要向接收方發出確認報文段,此時傳送方已進入已連線狀態;

接收方收到後確認報文段後,也進入到已連線狀態。

出現第三次握手,是為了防止已失效的連線請求報文段滯留在網路的某處,在上一次tcp連線釋放之後,接收方又接收到了該請求報文段,從而產生錯誤。

連線釋放是四次握手:

傳送方先發出連線釋放報文段;

接收方接收到連線釋放報文段後,就向傳送方發出確認報文段,這時接收方tcp伺服器程序通知高層應用程序,傳送方到接收方這個方向的連線就釋放了,即傳送方已不能傳輸資料到接收方了;

傳送方收到確認報文段後,就等待接收方發出連線釋放報文段;

接收方如沒有資料傳送,就發出連線釋放報文段;

傳送方接收到連線釋放報文段後,就向接收方發出確認報文段;

此時,tcp連線還沒有釋放掉,傳送方必須經過時間等待計時器設定的時間2msl後,才進入結束狀態,而接收方稍早一點,在接收到確認之後,就進入結束狀態。

傳送方必須經過時間等待計時器設定的時間2msl,是因為接收方最後一次可能沒有接收到確認訊號,則接收方會重傳請求,而傳送方接收到連線釋放報文段後就結束,就會接收不到新的連線請求,接收方也就不能進入結束狀態。

計算機網路整理(謝希仁版)

計算機網路第一章 概述 1 計算機網路的定義 計算機網路是一些互相連線的 自治的計算機的集合。必考 2 從網路的作用範圍進行分類 廣域網wan wide area network 區域網lan local area network 都會網路man metropolitan area network ...

計算機網路第七版(謝希仁)

1.1 計算機網路在資訊時代的的作用 1.2 網際網路概述 1.3 網際網路的組成 1.4 計算機網路在我國的發展 1.5 計算機網路的類別 1.6 計算機網路的效能 可能大題 1.7 計算機網路體系結構2.1 物理層的基本概念 2.2 資料通訊的基礎知識 傅利葉變換 2.3 物理層下面的傳輸 2....

計算機網路筆記(一) 謝希仁編著

2.1網際網路的組成 網際網路的邊緣部分主機a的某個程序和主機b上的另乙個程序進行通訊。網際網路的核心部分核心部分其特殊作用的是路由器,路由器是實現分組交換,收到的分組。1.電路交換的特點 建立連線 占用通訊資源 通話 一直占用通訊資源 釋放連線 歸還通訊資源 在通話的全部時間內,通話的兩個使用者始...