亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

http協(xié)議哪一層 tcp如何保證可靠性

1. TCP 可靠性如何保證?

  1. 信道可靠:用三次握手、四次揮手保證連接正確;
  2. 數(shù)據(jù)正確:分區(qū)編號(hào)、校驗(yàn)和、超時(shí)重傳;
  3. 傳輸控制:流量控制、擁塞控制
2. 重傳機(jī)制 TCP可靠傳輸方式是序列號(hào)與確認(rèn)應(yīng)答 。當(dāng)傳送數(shù)據(jù)包丟失時(shí) , 會(huì)用重傳機(jī)制解決 。常見(jiàn)重傳機(jī)制有超時(shí)重傳、快速重傳、SACK、D-SACK 。
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)
http協(xié)議哪一層 tcp如何保證可靠性

文章插圖
在圖中 , 我們可看出灰色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ā)送 。
正常情況
http協(xié)議哪一層 tcp如何保證可靠性

文章插圖
可以看到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ā)送“ 。
丟包情況
http協(xié)議哪一層 tcp如何保證可靠性

文章插圖
有可能我們爆發(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ā)
http協(xié)議哪一層 tcp如何保證可靠性

文章插圖
這個(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ì)您有所幫助: