成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

動畫:如何給面試官回答 TCP 的擁塞控制?

網(wǎng)絡 網(wǎng)絡管理
前邊我們分享了網(wǎng)絡分層協(xié)議、TCP 三次握手、TCP 四次分手。今天我們繼續(xù)深入分享一下 TCP 中的擁塞控制。

前邊我們分享了網(wǎng)絡分層協(xié)議、TCP 三次握手、TCP 四次分手。今天我們繼續(xù)深入分享一下 TCP 中的擁塞控制。

對于 TCP 的擁塞控制,里邊設計到很多細節(jié),小鹿希望通過這一節(jié)能夠將這部分內(nèi)容串通起來,能夠讓你更深刻的記憶這部分內(nèi)容。

思維導圖

1. 什么是擁塞控制?

擁塞控制是一種用來調(diào)整傳輸控制協(xié)議(TCP)連接單次發(fā)送的分組數(shù)量的算法。它通過增減單次發(fā)送量逐步調(diào)整,使之逼近當前網(wǎng)絡的承載量。

簡單易懂的話來說,所謂的擁塞控制,從字面的意思來講,網(wǎng)絡通信就像是一個水管里的水,如果水突然因為水管的贓物阻塞了,那么我們就應該采取一定的策略,讓其在阻塞的時候如何處理。

2. 為什么進行擁塞控制?

如果發(fā)送端要給接收端發(fā)送數(shù)據(jù),只有當接收端接收到數(shù)據(jù)時,才會給發(fā)送端返回應答信息。如果接收端沒有發(fā)送應答信息,發(fā)送端則認為該數(shù)據(jù)已經(jīng)丟失,則進行重新發(fā)送。

 

 

 

其實我們也不知道接收端有沒有接收,數(shù)據(jù)包到底在哪一步出現(xiàn)了問題呢?分為兩種情況,如下:

1. 數(shù)據(jù)包真的在半路丟失了

 

2. 網(wǎng)絡通信處于擁擠狀態(tài),數(shù)據(jù)包還沒有到達接收方。

我們的擁塞控制是主要針對于第二種情況的。如果網(wǎng)絡信道中一直處于擁擠狀態(tài),那么發(fā)送端一直進行發(fā)送,就會變得更加的阻塞,而且同時白白浪費掉了網(wǎng)絡的資源。

3. 測試網(wǎng)絡狀況

我們進行擁塞控制之前,首先要判斷網(wǎng)絡信道是否阻塞了,當判斷出網(wǎng)絡阻塞時,我們才能進行擁塞控制。我們一般通過向網(wǎng)絡中連續(xù)發(fā)送多個數(shù)據(jù)包來進行測試,測試過程中,如果發(fā)送數(shù)據(jù)包到達了一定的程度,網(wǎng)絡通信就會阻塞。

有以下兩種探測網(wǎng)絡的情況,第一種就是逐漸遞增發(fā)送數(shù)據(jù)包,一次只發(fā)送一個數(shù)據(jù)包,第二次發(fā)送兩個,第三次發(fā)送三個,以此類推,總會在一個點發(fā)送網(wǎng)絡擁堵情況

第二種情況就是指數(shù)型的增長,顧名思義,就是發(fā)送數(shù)據(jù)包以指數(shù)的形式進行增長,第一次發(fā)生一個,第二次發(fā)送兩個,第三次發(fā)送四個...也會在某一時刻網(wǎng)絡進行擁堵。

但是第一種方法有一個問題就是增長的太慢,當?shù)竭_到擁塞時,需要經(jīng)歷很長的時間,這種探測的方式效率太低。

當我們使用第二種方法時,指數(shù)增長就會出現(xiàn)增長的太快,會錯過增長的點。

既然兩種方式各有所長,我們就結合兩種方式,首先我們進行指數(shù)增長,我們設定一定的閥值,然后到達閥值之后,然后進行逐次遞增,直到出現(xiàn)網(wǎng)絡擁塞為止。

  • 指數(shù)增長階段稱為慢啟動
  • 逐次增長稱之為擁塞避免

4. 什么是擁塞窗口?

我們把一次性能夠發(fā)送的數(shù)據(jù)包多少的窗口稱之為擁塞窗口。

我們通過控制發(fā)送窗口的大小,也就是發(fā)送數(shù)據(jù)包的多少來進行擁塞控制。

5. 阻塞超時

當數(shù)據(jù)包增長到一定程度就會出現(xiàn)超時事件(阻塞),出現(xiàn)超時事件就認為網(wǎng)絡擁塞了,不能再繼續(xù)增長了,此時標記為一個最大值 M。

如果超時了之后,我們開始進行擁塞控制,怎么做呢?我們將增長的閥值進行降低,降低到 M 的一半大小,也就是 M/2。如下圖所示,最大值為 24,此時發(fā)生擁塞,所以將閥值降為 12。

有的小伙伴就說了,你那超時不一定發(fā)生阻塞了,上邊你也提到了,可能出現(xiàn)了數(shù)據(jù)包的丟失,那怎么判斷這種情況呢?

6. 判斷發(fā)送超時的情況

我們上邊也說了,超時存在兩種情況,我們就采用連續(xù)發(fā)送 ACK 的方式來進行判斷到底是網(wǎng)絡阻塞了還是網(wǎng)絡數(shù)據(jù)包丟失了。

如下圖所示,如果發(fā)送一個數(shù)據(jù)包,接收端成功接收之后,就會返回一個響應數(shù)據(jù)包,然后發(fā)送端再次發(fā)送下一個數(shù)據(jù)包。

一旦發(fā)送端在發(fā)送數(shù)據(jù)包的時候中途丟失了,接收端會返回上一次接收的數(shù)據(jù)包的確認響應數(shù)據(jù)包,當發(fā)送端連續(xù)接收到三個相同的響應數(shù)據(jù)包時,就說明該數(shù)據(jù)包丟失了,然后快速重傳該數(shù)據(jù)包。

然后會把我們的閥值設置為擁塞最大值 M 的一半,這時候的擁塞窗口的大小為 1,當擁塞窗口的大小等于閥值時,再進行線性增長。我們也把上邊這種情況稱之為快速恢復。

小結

今天主要分享了 TCP 的擁塞控制,為什么會有擁塞控制?如何進行擁塞控制以及如何判斷網(wǎng)絡中的情況。

通過擁塞控制,我們能夠更好地進行數(shù)據(jù)高效的傳輸,除此之外,我們后邊的文章還會更新 TCP 的流量控制,為了能夠使得網(wǎng)絡中的流量得到充分的利用。

 

責任編輯:趙寧寧 來源: 小鹿動畫學編程
相關推薦

2021-10-22 08:37:13

消息不丟失rocketmq消息隊列

2021-05-18 08:32:33

TCPIP協(xié)議

2023-12-26 01:07:03

TCP擁塞控制

2021-03-22 17:20:48

MYSQL開發(fā)數(shù)據(jù)庫

2015-08-13 10:29:12

面試面試官

2019-11-21 08:40:44

面試官優(yōu)化性能

2022-09-13 14:44:40

HashMap哈希表紅黑樹

2019-04-16 11:02:10

TCPIPLinux

2020-06-22 11:50:38

TCPIP協(xié)議

2019-02-15 20:00:49

軟件測試工程師面試

2010-08-12 16:28:35

面試官

2023-02-16 08:10:40

死鎖線程

2021-03-24 10:25:24

優(yōu)化VUE性能

2021-05-14 08:34:32

UDP TCP場景

2021-07-15 07:23:25

React動畫頁面

2020-12-03 06:30:11

內(nèi)部類對象變量

2024-06-26 11:55:44

2024-04-03 00:00:00

Redis集群代碼

2024-09-11 22:51:19

線程通訊Object

2021-07-06 07:08:18

管控數(shù)據(jù)數(shù)倉
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久久久久丝袜 | 美女久久 | 伊人网在线播放 | 欧美日韩成人在线 | 亚洲日韩欧美一区二区在线 | 成年免费在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 在线欧美小视频 | 日韩美香港a一级毛片免费 国产综合av | 美女操网站 | 欧产日产国产精品视频 | 亚洲国产成人久久综合一区,久久久国产99 | 91免费在线| 国产a区 | 欧美亚洲视频 | 日韩最新网站 | 国产又色又爽又黄又免费 | 日韩免费看片 | 91综合在线视频 | 色播视频在线观看 | 一本一道久久a久久精品蜜桃 | 亚洲国产二区 | av三级在线观看 | 免费一级黄色录像 | 日本人做爰大片免费观看一老师 | 黄色91在线 | 午夜三区 | 日本高清视频在线播放 | а天堂中文最新一区二区三区 | 99精品欧美一区二区三区综合在线 | 福利视频二区 | 中文字幕欧美在线观看 | av手机在线免费观看 | 精品久久中文 | 久久精品国产久精国产 | 欧美久久久久久久 | 一级黄色片日本 | 黄色一级片aaa | 国产探花在线观看视频 | 草草影院ccyy| 国精日本亚洲欧州国产中文久久 |