计算机网络原理之运输层
文章目錄
- 計算機網絡原理之運輸層
- TCP和UDP的區別:
- TCP協議保證傳輸的可靠性
- 校驗
- 確認
- 超時
- 流量控制(滑動窗口機制)
- 擁塞控制(全局性)
- 慢啟動
- 擁塞避免
- 快重傳
- 快恢復
計算機網絡原理之運輸層
運輸層的任務是向上一層通信的兩個進程之間提供一個可靠的端到端服務,使看不見運輸層以下的數據通信的細節。
運輸層有兩個主要的協議:TCP和UDP。它們都有復用和分用,以及檢錯的功能。
-
TCP(Transmission Control Protocol,傳輸控制協議)是面向連接的協議,也就是說,在收發數據前,必須和對方建立可靠的連接。一個TCP連接必須有三次握手,四次揮手。
-
UDP(User Data Protocol,用戶數據報協議)是一個非連接的協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,并盡可能快的把他扔到網上。
TCP和UDP的區別:
| 連接性 | 面向連接 | 面向非連接 |
| 傳輸可靠性 | 可靠 | 不可靠 |
| 報文 | 面向字節流 | 面向報文 |
| 效率 | 傳輸效率低 | 傳輸效率高 |
| 流量控制 | 滑動窗口 | 無 |
| 擁塞控制 | 慢開始、擁塞避免、快重傳、快恢復 | 無 |
| 傳輸速度 | 慢 | 快 |
| 應用場合 | 對效率要求低,對準確性要求高或要求有連接的場景 | 對效率要求高,對準確性要求低 |
TCP協議保證傳輸的可靠性
校驗
每個TCP報文段都包括檢驗和字段,校驗用來檢查報文段是否出現傳輸錯誤,如報文段出現傳輸錯誤,則丟棄該報文段。
確認
接收端檢查報文是否出錯,發現出錯時就丟棄不發確認,而發送端TCP就通過檢查接收端的確認,判斷發送的報文段是否已正確到達目的地。
超時
發送端根據發出的報文段在規定時間內是否收到確認,從而判斷該報文段是否丟棄或傳輸出錯。
流量控制(滑動窗口機制)
如果發送方把數據發送的過快,接收方可能來不及接收,這就會造成數據的丟失。所謂流量控制就是讓發送的發送速率不要太快,要讓接收方來得及接收。
從上面的圖可以看到滑動窗口左邊的是已發送并且被確認的分組,滑動窗口右邊是還沒有輪到的分組。滑動窗口里面也分為兩塊,一塊是已經發送但是未被確認的分組,另一塊是窗口內等待發送的分組。隨著已發送的分組不斷被確定,窗口內等待發送的分組也會不斷被發送,整個窗口就會往右移動,讓還沒輪到的分組進入窗口內。
滑動窗口起到一個限流的作用,也就是說當前滑動窗口的大小決定了當前TCP發送包的速率,而滑動窗口的大小取決于擁塞窗口cwnd和接收方窗口rwnd的兩者間的最小值。
擁塞控制(全局性)
計算機網絡中的帶寬、交換結點中的緩存及處理機都是網絡的資源。在某段時間,若對網絡中某一資源的需求超過了該資源所能提供的可用部分,網絡的性能就會變壞,這種請求就叫做擁塞。擁塞控制就是防止過多的數據注入網絡中,這樣可以使網絡中的路由器或鏈路不至于過載。 注意,擁塞控制和流量控制不同,前者是一個全局性的過程,而后者指點對點通信量的控制。擁塞控制的算法主要有以下四種:
慢啟動
每經過一個傳輸輪次,擁塞窗口就加倍。即不要一開始就發送大量的數據,先探測一下網絡的擁塞程度,也就是說由小到達逐漸增加擁塞窗口的大小。
擁塞避免
每經過一個RTT(往返時間),擁塞窗口就加1即“加法增大”。擁塞避免算法讓擁塞窗口緩慢增長,即每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1,而不是加倍,這樣擁塞窗口按線性規律緩慢增長。
快重傳
快重傳要求接受方在收到一個失序的報文段后就立即發出重復確認(為的是是發送發及早知道有報文段沒有達到對方)而不要等到自己發送數據時捎帶確認??熘貍魉惴ㄒ幎?#xff0c;發送方只要一連收到三個重復確認就應當立即重傳對方尚未收到的報文段,而不是繼續等待設置的重傳計時器時間到期。
快恢復
快重傳配合使用的還有快恢復算法,當發送方連續接收到三個重復確認時,就執行“乘法減小”算法,把ssthresh門限減半,但是接下去并不執行慢開始算法:因為如果網絡出現擁塞的話就不會受到好幾個重復的確認,所以發送方現在人為網絡可能沒有出現擁塞。所以此時不執行慢開始算法,而是將cwnd設置為ssthresh的大小,然后執行擁塞避免算法。
總結
以上是生活随笔為你收集整理的计算机网络原理之运输层的全部內容,希望文章能夠幫你解決所遇到的問題。