日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入了解LinuxTCP慢啟動(dòng)機(jī)制(linuxtcp慢啟動(dòng))

TCP慢啟動(dòng)機(jī)制是TCP協(xié)議的一部分,用于控制TCP連接傳輸?shù)乃俣?。?dāng)TCP連接開始時(shí),慢啟動(dòng)機(jī)制被啟用,它會逐漸增加傳輸速度,直到網(wǎng)絡(luò)開始擁塞為止。在本文中,我們將,以便更好地理解TCP連接傳輸?shù)倪^程。

TCP連接的慢啟動(dòng)機(jī)制可以幫助在連接開始的時(shí)候逐步增加傳輸速度,這個(gè)速度是根據(jù)連接的可用帶寬和延遲時(shí)間決定的。網(wǎng)絡(luò)帶寬是指在一單位時(shí)間內(nèi)數(shù)據(jù)傳輸?shù)乃俾?,而延遲時(shí)間表示從發(fā)送數(shù)據(jù)到接收到響應(yīng)所需的時(shí)間。在TCP連接開始時(shí),慢啟動(dòng)會將數(shù)據(jù)的傳輸速度逐漸增加,直到達(dá)到一個(gè)安全的速度,以避免網(wǎng)絡(luò)擁塞。

為了更好地了解Linux TCP慢啟動(dòng)機(jī)制,我們需要先了解一些基本概念。需要了解的是TCP連接的三次握手。TCP連接的三次握手是建立TCP連接時(shí)的一個(gè)過程,即客戶端發(fā)送SYN請求報(bào)文,服務(wù)器接收后回復(fù)SYN+ACK報(bào)文,最后客戶端再回復(fù)一個(gè)ACK報(bào)文,此時(shí)連接已經(jīng)建立。這個(gè)過程是用來確保連接的可靠性。

需要了解的是TCP擁塞控制算法。TCP擁塞控制算法是防止網(wǎng)絡(luò)擁塞的一種算法。它的原理是當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),TCP連接會將傳輸速率降低,以避免數(shù)據(jù)包的丟失和重傳。這個(gè)算法的實(shí)現(xiàn)是通過調(diào)整TCP發(fā)送數(shù)據(jù)包的速率和窗口大小來實(shí)現(xiàn)的。

在理解了TCP連接的三次握手和TCP擁塞控制算法后,我們就可以深入了解TCP慢啟動(dòng)機(jī)制。TCP慢啟動(dòng)機(jī)制的基本原理是在連接開始時(shí),它會先發(fā)送一些數(shù)據(jù)包,然后等待接收方的確認(rèn)消息。如果沒有出現(xiàn)任何丟包現(xiàn)象,則會逐步增加發(fā)送的數(shù)據(jù)包數(shù),同時(shí)也會增加窗口大小,從而逐漸提高網(wǎng)絡(luò)傳輸速率。

具體來說,當(dāng)一個(gè)TCP連接剛開始時(shí),發(fā)送方會默認(rèn)發(fā)送一個(gè)MSS(更大分段長度)的數(shù)據(jù)包,即表示可以承受的更大數(shù)據(jù)包大小。如果接收方能夠正常接收這個(gè)數(shù)據(jù)包,則發(fā)送方會再發(fā)送兩個(gè)MSS大小的數(shù)據(jù)包,即三個(gè)MSS大小的數(shù)據(jù)包。如果接收方也能正常接收這些數(shù)據(jù)包,則發(fā)送方會再發(fā)送四個(gè)MSS大小的數(shù)據(jù)包,以此類推,直到網(wǎng)絡(luò)出現(xiàn)擁塞為止。當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),TCP連接就會向上層應(yīng)用程序反饋信息,以請求降低傳輸速率。

在Linux系統(tǒng)中,TCP慢啟動(dòng)機(jī)制是通過調(diào)整TCP擁塞窗口來實(shí)現(xiàn)的。擁塞窗口指的是在一個(gè)周期內(nèi)可以發(fā)送的數(shù)據(jù)包的數(shù)量,這個(gè)周期的長度是由網(wǎng)絡(luò)延遲時(shí)間和網(wǎng)絡(luò)帶寬共同決定的。在擁塞窗口的計(jì)算中,Linux系統(tǒng)使用了一個(gè)指數(shù)級增長的算法。也就是說,在開始的時(shí)候,擁塞窗口的大小是1個(gè)MSS的大小,然后每當(dāng)一個(gè)數(shù)據(jù)包被成功發(fā)送和接收時(shí),擁塞窗口就會翻倍,直到達(dá)到實(shí)際帶寬和延遲設(shè)定的閾值為止。

需要注意的是,TCP慢啟動(dòng)機(jī)制只會在連接開始時(shí)生效,在連接過程中不會啟用。因此,在連接過程中,如果網(wǎng)絡(luò)出現(xiàn)擁塞,則會啟用TCP的快重傳和快恢復(fù)機(jī)制,以避免數(shù)據(jù)包的丟失和重傳。

TCP慢啟動(dòng)機(jī)制是TCP連接傳輸?shù)囊徊糠郑糜诳刂芓CP連接傳輸?shù)乃俣?。在Linux系統(tǒng)中,TCP慢啟動(dòng)機(jī)制是通過調(diào)整TCP擁塞窗口來實(shí)現(xiàn)的。擁塞窗口指的是在一個(gè)周期內(nèi)可以發(fā)送的數(shù)據(jù)包的數(shù)量,這個(gè)周期的長度是由網(wǎng)絡(luò)延遲時(shí)間和網(wǎng)絡(luò)帶寬共同決定的。在擁塞窗口的計(jì)算中,Linux系統(tǒng)使用了一個(gè)指數(shù)級增長的算法。需要注意的是,TCP慢啟動(dòng)機(jī)制只會在連接開始時(shí)生效,在連接過程中不會啟用。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220

TCP 如何保證可靠性

1. TCP可靠性的保證機(jī)制總結(jié)

2. 網(wǎng)絡(luò)基礎(chǔ):

TCP協(xié)議

-如何保證傳輸可靠性

3. TCP協(xié)議的

流量控制

和擁塞控制

4. TCP 的那些事兒(下)

5. TCP擁塞控制:慢開始、擁塞避免、快重傳、快恢復(fù)

TCP檢驗(yàn)和的計(jì)算與UDP一樣,在計(jì)算時(shí)要加上12byte的偽首部,檢驗(yàn)范圍包括TCP首部及數(shù)據(jù)部分,但是UDP的檢驗(yàn)和字段為可選的,而TCP中是必須有的。計(jì)算方法為:在發(fā)送方將整個(gè)報(bào)文段分為多個(gè)16位的段,然后將所有段進(jìn)行反碼相加,將結(jié)果存放在檢驗(yàn)和字段中,接收方用相同的方法進(jìn)行計(jì)算,如最終結(jié)果為檢驗(yàn)字段所有位是全1則正確(UDP中也是全為1則正確),否則存在錯(cuò)誤。

TCP將每個(gè)

數(shù)據(jù)包

都進(jìn)行了編號友純,這就是序列號。

序列號的作用:

a、保證可靠性(當(dāng)接收到的數(shù)據(jù)總少了某個(gè)序號的數(shù)據(jù)時(shí),能馬上知道)

b、保證數(shù)據(jù)的按序到達(dá)

c、提高效率,可實(shí)現(xiàn)多次發(fā)送,一次確認(rèn)

d、去除重復(fù)數(shù)據(jù)

數(shù)據(jù)傳輸過程中的確認(rèn)應(yīng)答處理、重發(fā)控制以及重復(fù)控制等功能都可以通過序列號來實(shí)現(xiàn)

TCP通過確認(rèn)應(yīng)答機(jī)制實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸。在TCP的首部中有一個(gè)標(biāo)志位——ACK,此標(biāo)志位表示確認(rèn)號是否有效。接收方對于按序到達(dá)的數(shù)據(jù)會進(jìn)行確認(rèn),當(dāng)標(biāo)志位ACK=1時(shí)確認(rèn)首部的確認(rèn)字段有效。進(jìn)行確認(rèn)時(shí),確認(rèn)字段值表示這個(gè)值之前的數(shù)據(jù)都已經(jīng)按序到達(dá)了。而發(fā)送方如果收到了已發(fā)送的數(shù)據(jù)的確認(rèn)報(bào)文,則繼續(xù)傳輸下一部分?jǐn)?shù)據(jù);而如果等待了一定時(shí)間還沒有收到確認(rèn)報(bào)文就會啟動(dòng)重傳機(jī)制。

當(dāng)報(bào)文發(fā)出后在一定的時(shí)間內(nèi)未收到接收方的確認(rèn),發(fā)送方就會進(jìn)行重傳(通常是在發(fā)出報(bào)文段后設(shè)定一個(gè)鬧鐘,到點(diǎn)了還沒有收到應(yīng)答則進(jìn)行重傳)。

一種情況是發(fā)送包丟失了好簡咐,其基本過程如下:

另一種情況是ACK 丟失,過程如下:

當(dāng)接收方接收到重復(fù)的數(shù)據(jù)時(shí)就將其丟掉,重新發(fā)送ACK。而要識別出重復(fù)的數(shù)據(jù),前面提到的序列號就起作用了。

重傳時(shí)間的確定:

重傳時(shí)間的確定:報(bào)文段發(fā)出到收到應(yīng)答中間有一個(gè)報(bào)文段的往返時(shí)間RTT,顯然超時(shí)重傳時(shí)間RTO會略大于這個(gè)RTT,TCP會根據(jù)網(wǎng)絡(luò)情況動(dòng)態(tài)的計(jì)算RTT,即RTO是不斷變化的。在Linux中,超時(shí)以500ms為單位進(jìn)行控制,每次判定超時(shí)重發(fā)的超時(shí)時(shí)間都是500ms的整數(shù)倍。其規(guī)律為:如果重發(fā)一次仍得不到應(yīng)答,就等待2 500ms后再進(jìn)行重傳,如果仍然得不到應(yīng)答就等待4 500ms后重傳,依次類推,以指數(shù)形式遞增,重傳次數(shù)累計(jì)到一定次數(shù)后,TCP認(rèn)為網(wǎng)絡(luò)或?qū)Χ酥鳈C(jī)出現(xiàn)異常,就會強(qiáng)行關(guān)閉連接。

連接管理機(jī)制即TCP建立連接時(shí)的

三次握手

和斷開連接時(shí)的

四次揮手

。

接收端處理數(shù)據(jù)的速度是有限的,如果發(fā)送方發(fā)送數(shù)據(jù)的速度過快,導(dǎo)致接收端的緩沖區(qū)滿,而發(fā)送方繼續(xù)發(fā)送,就會造成丟包,繼而引起丟包重傳等一系列連鎖反應(yīng)。

因此TCP支持根據(jù)接收端的處理能力,來決定發(fā)送端的發(fā)送速度,這個(gè)機(jī)制叫做流量控制。

在TCP報(bào)文段首部中有一個(gè)16位窗口長度,當(dāng)接收端接收到發(fā)送方的數(shù)據(jù)后,在應(yīng)答報(bào)文ACK中就將自身咐談緩沖區(qū)的剩余大小,放入16窗口大小中。這個(gè)大小隨數(shù)據(jù)傳輸情況而變,窗口越大,

網(wǎng)絡(luò)吞吐量

越高,而一旦接收方發(fā)現(xiàn)自身的緩沖區(qū)快滿了,就將窗口設(shè)置為更小的值通知發(fā)送方。如果緩沖區(qū)滿,就將窗口置為0,發(fā)送方收到后就不再發(fā)送數(shù)據(jù),但是需要定期發(fā)送一個(gè)窗口探測數(shù)據(jù)段,使接收端把窗口大小告訴發(fā)送端。

注意:窗口大小不受16位窗口大小限制,在TCP首部40字節(jié)選項(xiàng)中還包含一個(gè)窗口擴(kuò)大因子M,實(shí)際窗口大小是窗口字段的值左移M位。

流量控制解決了兩臺主機(jī)之間因傳送速率而可能引起的丟包問題,在一方面保證了TCP數(shù)據(jù)傳送的可靠性。然而如果網(wǎng)絡(luò)非常擁堵,此時(shí)再發(fā)送數(shù)據(jù)就會加重網(wǎng)絡(luò)負(fù)擔(dān),那么發(fā)送的數(shù)據(jù)段很可能超過了更大生存時(shí)間也沒有到達(dá)接收方,就會產(chǎn)生丟包問題。

為此TCP引入慢啟動(dòng)機(jī)制,先發(fā)出少量數(shù)據(jù),就像探路一樣,先摸清當(dāng)前的網(wǎng)絡(luò)擁堵狀態(tài)后,再決定按照多大的速度傳送數(shù)據(jù)。

此處引入一個(gè)擁塞窗口:

發(fā)送開始時(shí)定義擁塞窗口大小為1;每次收到一個(gè)ACK應(yīng)答,擁塞窗口加1;而在每次發(fā)送數(shù)據(jù)時(shí),發(fā)送窗口取擁塞窗口與接送段接收窗口最小者。

慢啟動(dòng):在啟動(dòng)初期以指數(shù)增長方式增長;設(shè)置一個(gè)慢啟動(dòng)的閾值,當(dāng)以指數(shù)增長達(dá)到閾值時(shí)就停止指數(shù)增長,按照線性增長方式增加;線性增長達(dá)到網(wǎng)絡(luò)擁塞時(shí)立即“乘法減小”,擁塞窗口置回1,進(jìn)行新一輪的“慢啟動(dòng)”,同時(shí)新一輪的閾值變?yōu)樵瓉淼囊话搿?/p>

“慢啟動(dòng)”機(jī)制可用圖表示:

1)連接建好的開始先初始化cwnd = 1,表明可以傳一個(gè)MSS大小的數(shù)據(jù)。

2)每當(dāng)收到一個(gè)ACK,cwnd++; 呈線性上升

3)每當(dāng)過了一個(gè)RTT,cwnd = cwnd*2; 呈指數(shù)讓升

4)還有一個(gè)ssthresh(slow start threshold),是一個(gè)上限,當(dāng)cwnd >= ssthresh時(shí),就會進(jìn)入“擁塞避免算法”(后面會說這個(gè)算法)

1)收到一個(gè)ACK時(shí),cwnd = cwnd + 1/cwnd

2)當(dāng)每過一個(gè)RTT時(shí),cwnd = cwnd + 1

這樣就可以避免增長過快導(dǎo)致網(wǎng)絡(luò)擁塞,慢慢的增加調(diào)整到網(wǎng)絡(luò)的更佳值。很明顯,是一個(gè)線性上升的算法。

當(dāng)出現(xiàn)ack超時(shí)的時(shí)候,需要重傳數(shù)據(jù)包。

TCP認(rèn)為這種情況太糟糕,反應(yīng)也很強(qiáng)烈。

快速重傳在收到3個(gè)duplicate ACK時(shí)就開啟重傳(三次 ack 就認(rèn)為丟包的原理見 關(guān)于TCP亂序和重傳的問題 、 TCP 快速重傳為什么是三次冗余 ACK ),而不用等到RTO超時(shí)。

TCP Reno的實(shí)現(xiàn)是:

快速重傳和快速恢復(fù)算法一般同時(shí)使用。快速恢復(fù)算法是認(rèn)為,你還有3個(gè)Duplicated Acks說明網(wǎng)絡(luò)也不那么糟糕,所以沒有必要像RTO超時(shí)那么強(qiáng)烈。 注意,正如前面所說,進(jìn)入Fast Recovery之前,cwnd 和 sshthresh已被更新:

然后,真正的Fast Recovery算法如下:

cwnd = sshthresh + 3 * MSS (3的意思是確認(rèn)有3個(gè)數(shù)據(jù)包被收到了)

重傳Duplicated ACKs指定的數(shù)據(jù)包

如果再收到 duplicated Acks,那么cwnd = cwnd +1

如果收到了新的Ack,那么,cwnd = sshthresh ,然后就進(jìn)入了擁塞避免的算法了。

如果你仔細(xì)思考一下上面的這個(gè)算法,你就會知道,上面這個(gè)算法也有問題,那就是——它依賴于3個(gè)重復(fù)的Acks。注意,3個(gè)重復(fù)的Acks并不代表只丟了一個(gè)數(shù)據(jù)包,很有可能是丟了好多包。但這個(gè)算法只會重傳一個(gè),而剩下的那些包只能等到RTO超時(shí),于是,進(jìn)入了惡夢模式——超時(shí)一個(gè)窗口就減半一下,多個(gè)超時(shí)會超成TCP的傳輸速度呈級數(shù)下降,而且也不會觸發(fā)Fast Recovery算法了。

linux tcp 慢啟動(dòng)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux tcp 慢啟動(dòng),深入了解Linux TCP慢啟動(dòng)機(jī)制,TCP 如何保證可靠性的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、SEO優(yōu)化、手機(jī)網(wǎng)站、小程序開發(fā)、APP開發(fā)公司等,多年經(jīng)驗(yàn)沉淀,立志成為成都網(wǎng)站建設(shè)第一品牌!


網(wǎng)站題目:深入了解LinuxTCP慢啟動(dòng)機(jī)制(linuxtcp慢啟動(dòng))
網(wǎng)站地址:http://www.dlmjj.cn/article/cogjghj.html