1. TCP 可靠性如何保證?
- 信道可靠:用三次握手、四次揮手保證連接正確;
- 數(shù)據(jù)正確:分區(qū)編號(hào)、校驗(yàn)和、超時(shí)重傳;
- 傳輸控制:流量控制、擁塞控制
2.1 超時(shí)重傳 TCP協(xié)議要求在發(fā)送端每發(fā)送一個(gè)報(bào)文段 , 就啟動(dòng)一個(gè)定時(shí)器并等待確認(rèn)信息;接收端成功接收新數(shù)據(jù)后返回確認(rèn)信息 。若在定時(shí)器超時(shí)前數(shù)據(jù)未能被確認(rèn) , TCP就認(rèn)為報(bào)文段中的數(shù)據(jù)已丟失或損壞 , 需要對(duì)報(bào)文段中的數(shù)據(jù)重新組織和重傳 。
2.2 快速重傳 ?如果收到一個(gè)失序的報(bào)文段時(shí) , TCP需要立刻產(chǎn)生一個(gè)ACK , 這個(gè)ACK不應(yīng)該被延時(shí) , 目的在于讓對(duì)方知道收到一個(gè)失序的報(bào)文 , 并告訴對(duì)方自己希望收到的報(bào)文seq , 我們不知道這個(gè)重復(fù)的ACK的原因 , 因?yàn)檫€是會(huì)等待少量的重復(fù)ACK到來(lái) , 如果連續(xù)收到3個(gè)或者3個(gè)以上的dup ACK , 就被判斷這個(gè)報(bào)文被丟失了 , 于是就需要立即重傳丟失的數(shù)據(jù)段 , 這個(gè)地方不用等待定時(shí)器溢出 。
3. 滑動(dòng)窗口協(xié)議 在TCP協(xié)議中 , 發(fā)送方和接受方通過(guò)各自維護(hù)自己的緩沖區(qū) 。通過(guò)商定包的重傳機(jī)制等一系列操作 , 來(lái)解決不可靠的問(wèn)題 。為了增加網(wǎng)絡(luò)的吞吐量 , 想將數(shù)據(jù)包一起發(fā)送過(guò)去 , 便產(chǎn)生了“滑動(dòng)窗口”協(xié)議。
滑動(dòng)窗口實(shí)現(xiàn)

文章插圖
在圖中 , 我們可看出灰色1號(hào)2號(hào)3號(hào)包已經(jīng)發(fā)送完畢 , 并且已經(jīng)收到Ack 。這些包就已經(jīng)是過(guò)去式 。4、5、6、7號(hào)包是黃色的 , 表示已經(jīng)發(fā)送了 。但是并沒(méi)有收到對(duì)方的Ack , 所以也不知道接收方有沒(méi)有收到 。8、9、10號(hào)包是綠色的 。是我們還沒(méi)有發(fā)送的 。這些綠色也就是我們接下來(lái)馬上要發(fā)送的包 ??梢钥闯鑫覀兊拇翱谡檬?1個(gè) 。后面的11-16還沒(méi)有被讀進(jìn)內(nèi)存 。要等4號(hào)-10號(hào)包有接下來(lái)的動(dòng)作后 , 我們的包才會(huì)繼續(xù)往下發(fā)送 。
正常情況

文章插圖
可以看到4號(hào)包對(duì)方已經(jīng)被接收到 , 所以被涂成了灰色 ?!按翱凇卑偎继鼐W(wǎng)就往右移一格 , 這里只要保證“百思特網(wǎng)窗口”是7格的 。我們就把11號(hào)包讀進(jìn)了我們的緩存 。進(jìn)入了“待發(fā)送”的狀態(tài) 。8、9號(hào)包已經(jīng)變成了黃色 , 表示已經(jīng)發(fā)送出去了 。接下來(lái)的操作就是一樣的了 , 確認(rèn)包后 , 窗口往后移繼續(xù)將未發(fā)送的包讀進(jìn)緩存 , 把“待發(fā)送“狀態(tài)的包變?yōu)椤币寻l(fā)送“ 。
丟包情況

文章插圖
有可能我們爆發(fā)過(guò)去 , 對(duì)方的Ack丟了 。也有可能我們的包并沒(méi)有發(fā)送過(guò)去 。從發(fā)送方角度看就是我們沒(méi)有收到Ack 。
發(fā)生的情況:一直在等Ack 。如果一直等不到的話 , 我們也會(huì)把讀進(jìn)緩存的待發(fā)送的包也一起發(fā)過(guò)去 。但是 , 這個(gè)時(shí)候我們的窗口已經(jīng)發(fā)滿了 。所以并不能把12號(hào)包讀進(jìn)來(lái) , 而是始終在等待5號(hào)包的Ack 。
超時(shí)重發(fā)

文章插圖
這個(gè)Ack是要按順序的 。必須要等到5的Ack收到 , 才會(huì)把6-11的Ack發(fā)送過(guò)去 。這樣就保證了滑動(dòng)窗口的一個(gè)順序 。這時(shí)候可以看出5號(hào)包已經(jīng)接受到Ack , 后面的6、7、8號(hào)包也已經(jīng)發(fā)送過(guò)去已Ack 。窗口便繼續(xù)向后移動(dòng) 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 6缸自然吸氣轎車排行 v6發(fā)動(dòng)機(jī)的車有哪些
- 駕駛證D證,可以駕駛哪些車型 摩托車駕駛證準(zhǔn)駕車型對(duì)照表
- 結(jié)婚戒指女生應(yīng)該戴哪只手
- 博談天下:翡翠酸洗主要洗的是什么?翡翠注膠需要用到哪些東西
- 吾愛(ài)破解:翡翠的進(jìn)貨渠道有哪些?具體問(wèn)題具體分析
- 吾愛(ài)破解:玻璃種翡翠為什么是極品翡翠,其具有的哪些特點(diǎn)?
- 全球手游排行榜2021前十名 火爆的全球手游有哪些 現(xiàn)在最火的手游排行前10名
- 母親節(jié)是哪一天 母親節(jié)的由來(lái)簡(jiǎn)介 母親節(jié)2022年是幾月幾日
- 排名前四的航天航空大學(xué),南昌航空大學(xué)位居第三名 航空學(xué)院有哪些學(xué)校
- 中國(guó)航空航天類大學(xué)哪所好?附:2021年校友會(huì)排名詳情 中國(guó)有名的航空學(xué)校
