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