?
TCP協(xié)議的可靠性
數(shù)據(jù)包丟失是對(duì)網(wǎng)絡(luò)的破壞,因?yàn)樗鼘?dǎo)致延遲。TCP協(xié)議建立了可靠的數(shù)據(jù)傳輸,但掩蓋了丟包的影響。TCP確保數(shù)據(jù)的傳輸是基于一個(gè)叫做 "滑動(dòng)窗口 "的概念。這種機(jī)制控制著傳輸?shù)淖止?jié)序列和收到的確認(rèn)。
在排序的幫助下,接收方可以通知發(fā)送方丟失的數(shù)據(jù)(如數(shù)據(jù)包丟失)。獨(dú)立地講,發(fā)送方可以通過(guò)重傳定時(shí)器的到期來(lái)檢測(cè)丟包。從性能分析的角度來(lái)看,必須了解丟包的重要性,以避免 "機(jī)器中的幽靈"。下面的文章探討了這些機(jī)制的行為和性能。
?
重傳計(jì)時(shí)器
每個(gè)傳輸?shù)臄?shù)據(jù)包都由發(fā)送方鏈接到重傳計(jì)時(shí)器。如果計(jì)時(shí)器在已傳輸?shù)臄?shù)據(jù)段被確認(rèn)之前過(guò)期,則該數(shù)據(jù)段將被聲明為丟失并重新傳輸。在性能方面,重傳定時(shí)器有兩個(gè)重要特點(diǎn):
初始重新傳輸超時(shí) (RTO) 的默認(rèn)值幾乎始終為 3000 毫秒。隨后,該值會(huì)根據(jù)實(shí)際路徑重傳時(shí)間動(dòng)態(tài)調(diào)整為更真實(shí)的值。
對(duì)于數(shù)據(jù)包的后續(xù)重新傳輸,超時(shí)值始終加倍。
?
對(duì)于短數(shù)據(jù)流(例如網(wǎng)絡(luò)流量),重傳計(jì)時(shí)器用于檢測(cè)數(shù)據(jù)包丟失。只有 1000 字節(jié)的消息在單個(gè)數(shù)據(jù)包中傳輸。當(dāng)然,如果數(shù)據(jù)包丟失,接收方無(wú)法發(fā)送接收確認(rèn),因?yàn)榻邮辗讲恢纴G失的數(shù)據(jù)包曾經(jīng)發(fā)送過(guò)。如果數(shù)據(jù)包在 TCP 連接的早期丟失,例如在三次握手期間丟失 SYN 數(shù)據(jù)包,則數(shù)據(jù)包丟失在三秒鐘內(nèi)不會(huì)恢復(fù)。
三次重復(fù)的ACK
在較大的數(shù)據(jù)流中,可以在重傳定時(shí)器過(guò)期前檢測(cè)到丟失的數(shù)據(jù)包。這是借助于三個(gè)收到的ACK副本來(lái)完成的。這種機(jī)制通常比等待重傳定時(shí)器過(guò)期更有效。如果到達(dá)的節(jié)點(diǎn)收到的數(shù)據(jù)包不符合順序,它就會(huì)發(fā)出重復(fù)的ACKs。失序的數(shù)據(jù)包可以是在丟失的數(shù)據(jù)包數(shù)據(jù)之后發(fā)送的數(shù)據(jù)包。重復(fù)的ACK包包含接收方仍在等待的準(zhǔn)確序列號(hào)。當(dāng)發(fā)送節(jié)點(diǎn)收到第三個(gè)重復(fù)的ACK時(shí),它認(rèn)為有關(guān)的數(shù)據(jù)包不僅被延遲,而且實(shí)際上已經(jīng)丟失。結(jié)果,丟失的數(shù)據(jù)包被重新傳輸。如果發(fā)生這種情況,發(fā)件人會(huì)假定網(wǎng)絡(luò)中存在擁堵,并將擁堵窗口減少50%,以積極應(yīng)對(duì)擁堵。慢速啟動(dòng)機(jī)制會(huì)緩慢增加CWD值。
例如,如果一個(gè)服務(wù)器向客戶傳輸一個(gè)大文件,由于慢速啟動(dòng)機(jī)制,發(fā)送節(jié)點(diǎn)的吞吐量提升得更慢。當(dāng)擁塞窗口達(dá)到24時(shí),數(shù)據(jù)包丟失會(huì)被一個(gè)三重復(fù)的ACK檢測(cè)到。隨后,服務(wù)器重傳丟失的數(shù)據(jù),CWD值減少到12。慢速啟動(dòng)機(jī)制將在這個(gè)時(shí)候重新啟用其擁塞避免模式。這種行為在現(xiàn)代網(wǎng)絡(luò)中經(jīng)??吹健?/p>
?
結(jié)論和糾正措施
顯而易見(jiàn)的是,防止因擁堵造成的數(shù)據(jù)包丟失將提高性能。然而,這只有通過(guò)減少其他流量的擁堵才能實(shí)現(xiàn),可以通過(guò)以下方式實(shí)現(xiàn):
用于排隊(duì)優(yōu)先的QoS政策
減少總流量或增加帶寬
如果數(shù)據(jù)包丟失是由于其他情況造成的,如網(wǎng)絡(luò)接口故障、隊(duì)列配置錯(cuò)誤或電纜連接不良,則必須確保TCP連接不會(huì)被不必要地關(guān)閉,不被不必要地超時(shí),人們還可以減少重傳超時(shí)的值。
擴(kuò)展閱讀
虹科 Allegro 介紹
虹科Allegro網(wǎng)絡(luò)萬(wàn)用表 - 網(wǎng)絡(luò)故障排除的一體化解決方案
虹科Allegro網(wǎng)絡(luò)萬(wàn)用表是是先進(jìn)的網(wǎng)絡(luò)診斷工具,通過(guò)瀏覽器中的Web界面訪問(wèn)分析數(shù)據(jù)。簡(jiǎn)單部署,無(wú)需配置,只需要點(diǎn)擊幾下就可檢測(cè)到網(wǎng)絡(luò)問(wèn)題??梢葬槍?duì)問(wèn)題區(qū)域或錯(cuò)誤,并可以從預(yù)算的流量中捕獲PCAP以進(jìn)一步分析。
一體化分析設(shè)備
軟件永久許可(全功能可用)
L2-L7全面分析
即插即用,無(wú)需配置
多種型號(hào)可選,1-200Gbit/s,滿足不同規(guī)模網(wǎng)絡(luò)需求
高速全流量捕獲分析,回溯分析
中文界面支持
?
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7589瀏覽量
89052
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論