瀏覽量:87次
解決“通”或“不通”這類功能性問題,其實(shí)很好解決。解決網(wǎng)頁打開“很慢”、“慢”、“正?!?、“快”之類的性能問題,有時(shí)并不那么容易。
通過題主的描述可以獲得以下事實(shí):
網(wǎng)絡(luò)的連通性沒有問題,否則也無法Ping通服務(wù)器域名解析也沒有問題,否則也無法訪問網(wǎng)頁服務(wù)器應(yīng)該工作正常,否則也無法訪問網(wǎng)絡(luò)是暢通的,否則Ping的延遲不可能正常既然網(wǎng)絡(luò)看起來是好的,為何訪問網(wǎng)頁慢呢?
根據(jù)多年的從業(yè)經(jīng)驗(yàn),我的推測是:
MTU問題
局域網(wǎng)出口網(wǎng)關(guān),可能由于PPPoE撥號(hào),在正常的用戶IP報(bào)文頭前又增添了8個(gè)字節(jié)的PPPoE頭,使得用戶1500字節(jié)的IP報(bào)文,變成了1508字節(jié)。
由于出口網(wǎng)關(guān)WAN接口的MTU = 1500。很顯然1508字節(jié)的IP報(bào)文 > WAN接口的MTU,網(wǎng)關(guān)需要將1508字節(jié)的IP報(bào)文,分成2片,每片都要小于等于1500字節(jié),才能通行。
分片(Fragment)會(huì)消耗網(wǎng)關(guān)的硬件資源、軟件資源,如果網(wǎng)關(guān)是使用純軟件來進(jìn)行分片,那效率是非常低下的,會(huì)造成延遲的增大。
當(dāng)分片到達(dá)服務(wù)器時(shí),服務(wù)器要組織硬件、軟件來將分片進(jìn)行重組(Reassemble),重組成最原始的1500字節(jié)(此時(shí)PPPoE頭已經(jīng)不存在了),這在一定程度上增加了處理延遲。
如果服務(wù)器沒有采用網(wǎng)卡硬件加速重組,而是由TCP/IP協(xié)議棧(純軟件)進(jìn)行重組,又是一個(gè)令人難以忍受的漫長。
還沒有完,等服務(wù)器返程的IP報(bào)文(1500字節(jié)),到達(dá)局域網(wǎng)所在的接入網(wǎng)絡(luò)時(shí),又需要增添8字節(jié)的PPPoE頭,IP報(bào)文又一次膨脹為1508字節(jié),同樣需要分片,這又一次增加了處理延遲。
當(dāng)分片到達(dá)題主的主機(jī)時(shí),同樣需要進(jìn)行重組,這又一次增加了處理延遲。
一來一回共增加了四次處理延遲,訪問網(wǎng)頁自然會(huì)慢。
還沒有完,還沒有考慮到有丟包的情況發(fā)生。如果2個(gè)分片有1個(gè)分片傳輸過程中丟了,源主機(jī)需要重傳整個(gè)IP報(bào)文,而重傳的IP報(bào)文一樣需要分片。在這種情況下,不但有TCP 超時(shí)重傳的延遲,還有分片的延遲。
這無疑是雪上加霜,讓本來很糟的情況,變得更加糟糕。
這還沒有完,分片到達(dá)服務(wù)器/主機(jī)時(shí),由于其孿生兄弟還沒有到達(dá),需要暫時(shí)呆在緩存里等待孿生兄弟的到來,才能重組,對(duì)嗎?
在網(wǎng)絡(luò)丟包嚴(yán)重時(shí),孿生兄弟可能永遠(yuǎn)都無法到達(dá)(丟了),呆在緩沖區(qū)的分片需要等待一段時(shí)間才能刪除。要命了,會(huì)有茫茫多的分片不斷到達(dá)緩沖區(qū),并快速占滿緩存空間。
有讀者會(huì)問,為什么它們賴著不走啊?
因?yàn)閷\生兄弟(分片)還沒有到達(dá)!
再有分片到達(dá)時(shí),沒有緩存可以用了,怎么辦? 丟!
TCP如何修復(fù)這些丟包?
超時(shí)重傳!
超時(shí)重傳又增加了延遲!
說了那么多,其實(shí)就是一個(gè)意思,一旦分片了,就做好網(wǎng)絡(luò)變慢的思想準(zhǔn)備!
上文的觀點(diǎn),不是憑空的推測,而是多年實(shí)驗(yàn)室實(shí)驗(yàn)研究的結(jié)論。
如何證明是MTU造成的問題?
只要把主機(jī)的MTU從標(biāo)準(zhǔn)的1500修改成1492或更小,然后再次訪問網(wǎng)頁,和其它主機(jī)對(duì)比一下便知。
如何系統(tǒng)性地解決這個(gè)問題?
一般商用的路由器,為了避免分片,會(huì)部署一個(gè)Feature : “TCP Adjust-MSS”,用于動(dòng)態(tài)修改用戶TCP報(bào)文的MSS值,只要將將MSS值減小8個(gè)字節(jié),以抵消PPPoE頭帶來的長度增加。
如果題主的網(wǎng)關(guān)路由器支持這個(gè)功能,打開這個(gè)功能。如果不支持,需要升級(jí)路由器?;?qū)⒕钟蚓W(wǎng)的主機(jī)MTU都改小8個(gè)字節(jié)。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776