-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
tcpmss影響網(wǎng)速
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于tcpmss影響網(wǎng)速的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內(nèi)免費(fèi)在線使用,能給你生成想要的原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等
你只需要給出你的關(guān)鍵詞,它就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端,官網(wǎng):https://ai.de1919.com
本文目錄:
一、網(wǎng)絡(luò)每天都好卡,求幫助```
網(wǎng)速慢的幾種原因:
一、網(wǎng)絡(luò)自身問題
您想要連接的目標(biāo)網(wǎng)站所在的服務(wù)器帶寬不足或負(fù)載過大。處理辦法很簡單,請換個(gè)時(shí)間段再上或者換個(gè)目標(biāo)網(wǎng)站。
二、網(wǎng)線問題導(dǎo)致網(wǎng)速變慢
我們知道,雙絞線是由四對線按嚴(yán)格的規(guī)定緊密地絞和在一起的,用來減少串?dāng)_和背景噪音的影響。同時(shí),在T568A標(biāo)準(zhǔn)和T568B標(biāo)準(zhǔn)中僅使用了雙絞線的 1、2和3、6四條線,其中,1、2用于發(fā)送,3、6用于接收,而且1、2必須來自一個(gè)繞對,3、6必須來自一個(gè)繞對。只有這樣,才能最大限度地避免串?dāng)_,保證數(shù)據(jù)傳輸。本人在實(shí)踐中發(fā)現(xiàn)不按正確標(biāo)準(zhǔn)(T586A、T586B)制作的網(wǎng)線,存在很大的隱患。表現(xiàn)為:一種情況是剛開始使用時(shí)網(wǎng)速就很慢;另一種情況則是開始網(wǎng)速正常,但過了一段時(shí)間后,網(wǎng)速變慢。后一種情況在臺式電腦上表現(xiàn)非常明顯,但用筆記本電腦檢查時(shí)網(wǎng)速卻表現(xiàn)為正常。對于這一問題本人經(jīng)多年實(shí)踐發(fā)現(xiàn),因不按正確標(biāo)準(zhǔn)制作的網(wǎng)線引起的網(wǎng)速變慢還同時(shí)與網(wǎng)卡的質(zhì)量有關(guān)。一般臺式計(jì)算機(jī)的網(wǎng)卡的性能不如筆記本電腦的,因此,在用交換法排除故障時(shí),使用筆記本電腦檢測網(wǎng)速正常并不能排除網(wǎng)線不按標(biāo)準(zhǔn)制作這一問題的存在。我們現(xiàn)在要求一律按T586A、T586B標(biāo)準(zhǔn)來壓制網(wǎng)線,在檢測故障時(shí)不能一律用筆記本電腦來代替臺式電腦。
三、網(wǎng)絡(luò)中存在回路導(dǎo)致網(wǎng)速變慢
當(dāng)網(wǎng)絡(luò)涉及的節(jié)點(diǎn)數(shù)不是很多、結(jié)構(gòu)不是很復(fù)雜時(shí),這種現(xiàn)象一般很少發(fā)生。但在一些比較復(fù)雜的網(wǎng)絡(luò)中,經(jīng)常有多余的備用線路,如無意間連上時(shí)會構(gòu)成回路。比如網(wǎng)線從網(wǎng)絡(luò)中心接到計(jì)算機(jī)一室,再從計(jì)算機(jī)一室接到計(jì)算機(jī)二室。同時(shí)從網(wǎng)絡(luò)中心又有一條備用線路直接連到計(jì)算機(jī)二室,若這幾條線同時(shí)接通,則構(gòu)成回路,數(shù)據(jù)包會不斷發(fā)送和校驗(yàn)數(shù)據(jù),從而影響整體網(wǎng)速。這種情況查找比較困難。為避免這種情況發(fā)生,要求我們在鋪設(shè)網(wǎng)線時(shí)一定養(yǎng)成良好的習(xí)慣:網(wǎng)線打上明顯的標(biāo)簽,有備用線路的地方要做好記載。當(dāng)懷疑有此類故障發(fā)生時(shí),一般采用分區(qū)分段逐步排除的方法。
四、網(wǎng)絡(luò)設(shè)備硬件故障引起的廣播風(fēng)暴而導(dǎo)致網(wǎng)速變慢
作為發(fā)現(xiàn)未知設(shè)備的主要手段,廣播在網(wǎng)絡(luò)中起著非常重要的作用。然而,隨著網(wǎng)絡(luò)中計(jì)算機(jī)數(shù)量的增多,廣播包的數(shù)量會急劇增加。當(dāng)廣播包的數(shù)量達(dá)到30%時(shí),網(wǎng)絡(luò)的傳輸效率將會明顯下降。當(dāng)網(wǎng)卡或網(wǎng)絡(luò)設(shè)備損壞后,會不停地發(fā)送廣播包,從而導(dǎo)致廣播風(fēng)暴,使網(wǎng)絡(luò)通信陷于癱瘓。因此,當(dāng)網(wǎng)絡(luò)設(shè)備硬件有故障時(shí)也會引起網(wǎng)速變慢。當(dāng)懷疑有此類故障時(shí),首先可采用置換法替換集線器或交換機(jī)來排除集線設(shè)備故障。如果這些設(shè)備沒有故障,關(guān)掉集線器或交換機(jī)的電源后,DOS下用 “Ping”命令對所涉及計(jì)算機(jī)逐一測試,找到有故障網(wǎng)卡的計(jì)算機(jī),更換新的網(wǎng)卡即可恢復(fù)網(wǎng)速正常。網(wǎng)卡、集線器以及交換機(jī)是最容易出現(xiàn)故障引起網(wǎng)速變慢的設(shè)備。
五、網(wǎng)絡(luò)中某個(gè)端口形成了瓶頸導(dǎo)致網(wǎng)速變慢
實(shí)際上,路由器廣域網(wǎng)端口和局域網(wǎng)端口、交換機(jī)端口、集線器端口和服務(wù)器網(wǎng)卡等都可能成為網(wǎng)絡(luò)瓶頸。當(dāng)網(wǎng)速變慢時(shí),我們可在網(wǎng)絡(luò)使用高峰時(shí)段,利用網(wǎng)管軟件查看路由器、交換機(jī)、服務(wù)器端口的數(shù)據(jù)流量;也可用 Netstat命令統(tǒng)計(jì)各個(gè)端口的數(shù)據(jù)流量。據(jù)此確認(rèn)網(wǎng)絡(luò)數(shù)據(jù)流通瓶頸的位置,設(shè)法增加其帶寬。具體方法很多,如更換服務(wù)器網(wǎng)卡為100M或1000M、安裝多個(gè)網(wǎng)卡、劃分多個(gè)VLAN、改變路由器配置來增加帶寬等,都可以有效地緩解網(wǎng)絡(luò)瓶頸,可以最大限度地提高數(shù)據(jù)傳輸速度。
六、蠕蟲病毒的影響導(dǎo)致網(wǎng)速變慢
通過E-mail散發(fā)的蠕蟲病毒對網(wǎng)絡(luò)速度的影響越來越嚴(yán)重,危害性極大。這種病毒導(dǎo)致被感染的用戶只要一上網(wǎng)就不停地往外發(fā)郵件,病毒選擇用戶個(gè)人電腦中的隨機(jī)文檔附加在用戶機(jī)子的通訊簿的隨機(jī)地址上進(jìn)行郵件發(fā)送。成百上千的這種垃圾郵件有的排著隊(duì)往外發(fā)送,有的又成批成批地被退回來堆在服務(wù)器上。造成個(gè)別骨干互聯(lián)網(wǎng)出現(xiàn)明顯擁塞,網(wǎng)速明顯變慢,使局域網(wǎng)近于癱瘓。因此,我們必須及時(shí)升級所用殺毒軟件;計(jì)算機(jī)也要及時(shí)升級、安裝系統(tǒng)補(bǔ)丁程序,同時(shí)卸載不必要的服務(wù)、關(guān)閉不必要的端口,以提高系統(tǒng)的安全性和可靠性。
七、防火墻的過多使用
防火墻的過多使用也可導(dǎo)致網(wǎng)速變慢,處理辦法不必多說,卸載下不必要的防火墻只保留一個(gè)功能強(qiáng)大的足以。
八、系統(tǒng)資源不足
您可能加載了太多的運(yùn)用程序在后臺運(yùn)行,請合理的加載軟件或刪除無用的程序及文件,將資源空出,以達(dá)到提高網(wǎng)速的目的。
網(wǎng)速慢的原因及解決辦法!
本文為本人一網(wǎng)友所贈,愿與大家共分享。(有添加和改動(dòng))
如有錯(cuò)誤之處,望高手指正。
一、網(wǎng)絡(luò)自身問題
您想要連接的目標(biāo)網(wǎng)站所在的服務(wù)器帶寬不足或負(fù)載過大。處理辦法很簡單,請換個(gè)時(shí)間段再上或者換個(gè)目標(biāo)網(wǎng)站。
二、網(wǎng)線問題導(dǎo)致網(wǎng)速變慢
我們知道,雙絞線是由四對線按嚴(yán)格的規(guī)定緊密地絞和在一起的,用來減少串?dāng)_和背景噪音的影響。同時(shí),在T568A標(biāo)準(zhǔn)和T568B標(biāo)準(zhǔn)中僅使用了雙絞線的1、2和3、6四條線,其中,1、2用于發(fā)送,3、6用于接收,而且1、2必須來自一個(gè)繞對,3、6必須來自一個(gè)繞對。只有這樣,才能最大限度地避免串?dāng)_,保證數(shù)據(jù)傳輸。本人在實(shí)踐中發(fā)現(xiàn)不按正確標(biāo)準(zhǔn)(T586A、T586B)制作的網(wǎng)線,存在很大的隱患。表現(xiàn)為:一種情況是剛開始使用時(shí)網(wǎng)速就很慢;另一種情況則是開始網(wǎng)速正常,但過了一段時(shí)間后,網(wǎng)速變慢。后一種情況在臺式電腦上表現(xiàn)非常明顯,但用筆記本電腦檢查時(shí)網(wǎng)速卻表現(xiàn)為正常。對于這一問題本人經(jīng)多年實(shí)踐發(fā)現(xiàn),因不按正確標(biāo)準(zhǔn)制作的網(wǎng)線引起的網(wǎng)速變慢還同時(shí)與網(wǎng)卡的質(zhì)量有關(guān)。一般臺式計(jì)算機(jī)的網(wǎng)卡的性能不如筆記本電腦的,因此,在用交換法排除故障時(shí),使用筆記本電腦檢測網(wǎng)速正常并不能排除網(wǎng)線不按標(biāo)準(zhǔn)制作這一問題的存在。我們現(xiàn)在要求一律按T586A、T586B標(biāo)準(zhǔn)來壓制網(wǎng)線,在檢測故障時(shí)不能一律用筆記本電腦來代替臺式電腦。
三、網(wǎng)絡(luò)中存在回路導(dǎo)致網(wǎng)速變慢
當(dāng)網(wǎng)絡(luò)涉及的節(jié)點(diǎn)數(shù)不是很多、結(jié)構(gòu)不是很復(fù)雜時(shí),這種現(xiàn)象一般很少發(fā)生。但在一些比較復(fù)雜的網(wǎng)絡(luò)中,經(jīng)常有多余的備用線路,如無意間連上時(shí)會構(gòu)成回路。比如網(wǎng)線從網(wǎng)絡(luò)中心接到計(jì)算機(jī)一室,再從計(jì)算機(jī)一室接到計(jì)算機(jī)二室。同時(shí)從網(wǎng)絡(luò)中心又有一條備用線路直接連到計(jì)算機(jī)二室,若這幾條線同時(shí)接通,則構(gòu)成回路,數(shù)據(jù)包會不斷發(fā)送和校驗(yàn)數(shù)據(jù),從而影響整體網(wǎng)速。這種情況查找比較困難。為避免這種情況發(fā)生,要求我們在鋪設(shè)網(wǎng)線時(shí)一定養(yǎng)成良好的習(xí)慣:網(wǎng)線打上明顯的標(biāo)簽,有備用線路的地方要做好記載。當(dāng)懷疑有此類故障發(fā)生時(shí),一般采用分區(qū)分段逐步排除的方法。
四、網(wǎng)絡(luò)設(shè)備硬件故障引起的廣播風(fēng)暴而導(dǎo)致網(wǎng)速變慢
作為發(fā)現(xiàn)未知設(shè)備的主要手段,廣播在網(wǎng)絡(luò)中起著非常重要的作用。然而,隨著網(wǎng)絡(luò)中計(jì)算機(jī)數(shù)量的增多,廣播包的數(shù)量會急劇增加。當(dāng)廣播包的數(shù)量達(dá)到30%時(shí),網(wǎng)絡(luò)的傳輸效率將會明顯下降。當(dāng)網(wǎng)卡或網(wǎng)絡(luò)設(shè)備損壞后,會不停地發(fā)送廣播包,從而導(dǎo)致廣播風(fēng)暴,使網(wǎng)絡(luò)通信陷于癱瘓。因此,當(dāng)網(wǎng)絡(luò)設(shè)備硬件有故障時(shí)也會引起網(wǎng)速變慢。當(dāng)懷疑有此類故障時(shí),首先可采用置換法替換集線器或交換機(jī)來排除集線設(shè)備故障。如果這些設(shè)備沒有故障,關(guān)掉集線器或交換機(jī)的電源后,DOS下用“Ping”命令對所涉及計(jì)算機(jī)逐一測試,找到有故障網(wǎng)卡的計(jì)算機(jī),更換新的網(wǎng)卡即可恢復(fù)網(wǎng)速正常。網(wǎng)卡、集線器以及交換機(jī)是最容易出現(xiàn)故障引起網(wǎng)速變慢的設(shè)備。
五、網(wǎng)絡(luò)中某個(gè)端口形成了瓶頸導(dǎo)致網(wǎng)速變慢
實(shí)際上,路由器廣域網(wǎng)端口和局域網(wǎng)端口、交換機(jī)端口、集線器端口和服務(wù)器網(wǎng)卡等都可能成為網(wǎng)絡(luò)瓶頸。當(dāng)網(wǎng)速變慢時(shí),我們可在網(wǎng)絡(luò)使用高峰時(shí)段,利用網(wǎng)管軟件查看路由器、交換機(jī)、服務(wù)器端口的數(shù)據(jù)流量;也可用Netstat命令統(tǒng)計(jì)各個(gè)端口的數(shù)據(jù)流量。據(jù)此確認(rèn)網(wǎng)絡(luò)數(shù)據(jù)流通瓶頸的位置,設(shè)法增加其帶寬。具體方法很多,如更換服務(wù)器網(wǎng)卡為100M或1000M、安裝多個(gè)網(wǎng)卡、劃分多個(gè)VLAN、改變路由器配置來增加帶寬等,都可以有效地緩解網(wǎng)絡(luò)瓶頸,可以最大限度地提高數(shù)據(jù)傳輸速度。
六、蠕蟲病毒的影響導(dǎo)致網(wǎng)速變慢
通過E-mail散發(fā)的蠕蟲病毒對網(wǎng)絡(luò)速度的影響越來越嚴(yán)重,危害性極大。這種病毒導(dǎo)致被感染的用戶只要一上網(wǎng)就不停地往外發(fā)郵件,病毒選擇用戶個(gè)人電腦中的隨機(jī)文檔附加在用戶機(jī)子的通訊簿的隨機(jī)地址上進(jìn)行郵件發(fā)送。成百上千的這種垃圾郵件有的排著隊(duì)往外發(fā)送,有的又成批成批地被退回來堆在服務(wù)器上。造成個(gè)別骨干互聯(lián)網(wǎng)出現(xiàn)明顯擁塞,網(wǎng)速明顯變慢,使局域網(wǎng)近于癱瘓。因此,我們必須及時(shí)升級所用殺毒軟件;計(jì)算機(jī)也要及時(shí)升級、安裝系統(tǒng)補(bǔ)丁程序,同時(shí)卸載不必要的服務(wù)、關(guān)閉不必要的端口,以提高系統(tǒng)的安全性和可靠性。
七、防火墻的過多使用
防火墻的過多使用也可導(dǎo)致網(wǎng)速變慢,處理辦法不必多說,卸載下不必要的防火墻只保留一個(gè)功能強(qiáng)大的足以。
八、系統(tǒng)資源不足
您可能加載了太多的運(yùn)用程序在后臺運(yùn)行,請合理的加載軟件或刪除無用的程序及文件,將資源空出,以達(dá)到提高網(wǎng)速的目的。
二、IP 分片/MTU 與TCP分段/MSS
TCP/IP協(xié)議時(shí)都知道,TCP報(bào)文段如果很長的話,會在發(fā)送時(shí)發(fā)生分段,在接受時(shí)進(jìn)行重組,同樣IP數(shù)據(jù)報(bào)在長度超過一定值時(shí)也會發(fā)生分片,在接收端再將分片重組。
我們先來看兩個(gè)與TCP報(bào)文段分段和IP數(shù)據(jù)報(bào)分片密切相關(guān)的概念。
MTU前面已經(jīng)說過了,是鏈路層中的網(wǎng)絡(luò)對 數(shù)據(jù)幀的一個(gè)限制 ,依然以以太網(wǎng)為例,MTU為1500個(gè)字節(jié)。一個(gè)IP數(shù)據(jù)報(bào)在以太網(wǎng)中傳輸, 如果它的長度大于該MTU值,就要進(jìn)行分片傳輸,使得每片數(shù)據(jù)報(bào)的長度小于MTU。分片傳輸?shù)腎P數(shù)據(jù)報(bào)不一定按序到達(dá),但I(xiàn)P首部中的信息能讓這些數(shù)據(jù)報(bào)片按序組裝。
IP數(shù)據(jù)報(bào)的分片與重組是在網(wǎng)絡(luò)層進(jìn)完成的。
MSS是TCP里的一個(gè)概念(首部的 選項(xiàng)字段 中)。MSS是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段, TCP報(bào)文段的長度大于MSS時(shí),要進(jìn)行分段傳輸 。
TCP協(xié)議在建立連接的時(shí)候通常要協(xié)商雙方的MSS值,每一方都有用于通告它期望接收的MSS選項(xiàng)(MSS選項(xiàng)只出現(xiàn)在SYN報(bào)文段中,即TCP三次握手的前兩次)。MSS的值一般為MTU值減去兩個(gè)首部大?。ㄐ枰獪p去IP數(shù)據(jù)包包頭的大小20Bytes和TCP數(shù)據(jù)段的包頭20Bytes)所以如果用鏈路層以太網(wǎng), MSS的值往往為1460 。而Internet上標(biāo)準(zhǔn)的MTU(最小的MTU,鏈路層網(wǎng)絡(luò)為x2.5時(shí))為576,那么如果不設(shè)置,則MSS的默認(rèn)值就為536個(gè)字節(jié)。很多時(shí)候,MSS的值最好取512的倍數(shù)。 TCP報(bào)文段的分段與重組是在運(yùn)輸層完成的 。
TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明顯,分段后的每一段TCP報(bào)文段再加上IP首部后的長度不可能超過MTU,因此也就不需要在網(wǎng)絡(luò)層進(jìn)行IP分片了。 因此TCP報(bào)文段很少會發(fā)生IP分片的情況 。
再來看UDP數(shù)據(jù)報(bào),由于UDP數(shù)據(jù)報(bào)不會自己進(jìn)行分段,因此當(dāng)長度超過了MTU時(shí),會在網(wǎng)絡(luò)層進(jìn)行IP分片。 同樣,ICMP(在網(wǎng)絡(luò)層中)同樣會出現(xiàn)IP分片情況。
總結(jié):UDP不會分段,就由IP來分。TCP會分段,當(dāng)然就不用IP來分了!
IP數(shù)據(jù)報(bào)分片后,只有第一片帶有UDP首部或ICMP首部,其余的分片只有IP頭部,到了端點(diǎn)后根據(jù)IP頭部中的信息再網(wǎng)絡(luò)層進(jìn)行重組。
而TCP報(bào)文段的每個(gè)分段中都有TCP首部,到了端點(diǎn)后根據(jù)TCP首部的信息在傳輸層進(jìn)行重組。 IP數(shù)據(jù)報(bào)分片后,只有到達(dá)目的地后才進(jìn)行重組,而不是向其他網(wǎng)絡(luò)協(xié)議,在下一站就要進(jìn)行重組。
對IP分片的數(shù)據(jù)報(bào)來說,即使只丟失一片數(shù)據(jù)也要重新傳整個(gè)數(shù)據(jù)報(bào)(既然有重傳,說明傳輸層使用的是具有重傳功能的協(xié)議,如TCP協(xié)議)。
這是因?yàn)?IP層本身沒有超時(shí)重傳機(jī)制 ------由更高層(比如TCP)來負(fù)責(zé)超時(shí)和重傳。
當(dāng)來自TCP報(bào)文段的某一段(在IP數(shù)據(jù)報(bào)的某一片中)丟失后,TCP在超時(shí)后會重發(fā)整個(gè)TCP報(bào)文段,該報(bào)文段對應(yīng)于一份IP數(shù)據(jù)報(bào)(可能有多個(gè)IP分片),沒有辦法只重傳數(shù)據(jù)報(bào)中的一個(gè)數(shù)據(jù)分片。
三、華三路由器tcpmss值設(shè)置多少
MTU改為1492以下。
因?yàn)?492再加上報(bào)頭什么的就達(dá)到1500以上了,而大于1500以上的報(bào)文是會被路由器丟棄的。TCPMSS是H3C路由器里面有的。它主要是針對網(wǎng)頁的TCP連接的。一般在網(wǎng)絡(luò)設(shè)置或者是WAN接口設(shè)置里面有。
四、【網(wǎng)絡(luò)】MTU和MSS
MTU是一個(gè)老概念了,是屬于以太網(wǎng)數(shù)據(jù)鏈路層的概念,而MSS是新的概念,由于MTU和MSS概念都十分重要,且容易混淆,為了討論清晰,單獨(dú)拎一章節(jié)來討論它們倆。
首先我們要說明下討論前提,本文基于以太網(wǎng)協(xié)議、IP協(xié)議版本使用的是IPv4版本討論 。
概括來講,MTU是以太網(wǎng)數(shù)據(jù)鏈路層中約定的數(shù)據(jù)載荷部分最大長度,數(shù)據(jù)不超過它時(shí)就無需分片。
MSS是傳輸層的概念,由于數(shù)據(jù)往往很大,會超出MTU,所以我們之前在網(wǎng)絡(luò)層中學(xué)習(xí)過IP分片的知識,將很大的數(shù)據(jù)載荷分割為多個(gè)分片發(fā)送出去。
TCP為了IP層不用分片主動(dòng)將數(shù)據(jù)包切割為MSS大小。
一個(gè)等式可見他兩關(guān)系匪淺: MSS = MTU - IP header頭大小 - TCP 頭大小
MTU全稱是Maximum Transmission Unit,即最大傳輸單元。
在學(xué)習(xí)數(shù)據(jù)鏈路層時(shí),我們學(xué)習(xí)過以太網(wǎng)協(xié)議,以太網(wǎng)定義了一個(gè)叫做幀的概念,一個(gè)幀中包含如下信息:
此外,我們學(xué)習(xí)了幀的大小,其中幀頭大小為:
1. 接收方和發(fā)送方的 MAC 地址分別占用 6 個(gè)字節(jié);
2. 第 3 層的協(xié)議用 2 個(gè)字節(jié)編碼;
3. CRC 用 4 個(gè)字節(jié)編碼。
6 x 2 + 2 + 4 = 18。
因此以太網(wǎng)的幀頭一共有 18 個(gè)字節(jié),并且以太網(wǎng)中還規(guī)定了最小幀長和最大幀長:
以太網(wǎng)幀的最小尺寸是 64 字節(jié),那么一幀中最少報(bào)文長度為46字節(jié)。
以太網(wǎng)幀的最大尺寸是 1518 字節(jié),那么一幀中中最大報(bào)文長度為1500字節(jié)。
其中1500字節(jié)往往就是以太網(wǎng)的MTU值了,傳輸?shù)臄?shù)據(jù)小于它時(shí),就無需切片。
太大的數(shù)據(jù)就需要切分,就像一個(gè)超級大包裹需要切分為若干個(gè)小包裹才方便托運(yùn)。
假設(shè)傳輸100KB的數(shù)據(jù),則需要切分為多少個(gè)幀進(jìn)行傳輸呢?
100KB=100*1024B,由于幀中最大的報(bào)文長度是1500B,那么100KB/1500B≈68.27,顯然需要69個(gè)以太網(wǎng)幀才能承載。
一臺機(jī)器上,不同網(wǎng)卡的MTU也不一樣,比如我的一臺虛擬機(jī)上的網(wǎng)卡MTU為:
容易想到,一個(gè)包從發(fā)送端傳輸?shù)浇邮斩?,中間要跨越很多個(gè)網(wǎng)絡(luò),每條鏈路的MTU都可能不一樣,就像開車,有的時(shí)候可以經(jīng)過寬敞的四車道,有的時(shí)候不得不行駛于鄉(xiāng)間小路,這個(gè)通信過程中最小的MTU稱為路徑MTU(Path MTU)。
比如第一段鏈路MTU為1200字節(jié),第二段鏈路MTU為800字節(jié),第三段鏈路MTU為1500字節(jié),那么路徑MTU就是最小的800字節(jié)。
路徑 MTU 就跟木桶效應(yīng)是一個(gè)道理,木桶的盛水量由最短的那條短板決定,路徑MTU也是由通信鏈條中最小的MTU決定。
基本原理十分簡單,當(dāng)一方發(fā)送了超過MTU的數(shù)據(jù)包后,對方會返回一個(gè)ICMP錯(cuò)誤包,告知發(fā)送方包太大需要分片,并且告知發(fā)送方下一個(gè)分片的大小按照比如MTU=1200來計(jì)算,由于MTU取小者,那么A就需要隨之調(diào)整MTU為1200字節(jié):
下面我們實(shí)際抓包驗(yàn)證下,不過在驗(yàn)證前,我們需要重新認(rèn)識下ping命令。
我們之前學(xué)習(xí)過了 ping命令,其原理是基于ICMP協(xié)議,而ICMP協(xié)議實(shí)際上是封裝在IP數(shù)據(jù)中的,首部為8字節(jié)長度 ,關(guān)于ICMP我們已經(jīng)討論過,這里不再贅述。
ping后面是可以跟著一些參數(shù)滿足我們的一些測試用例的,我們將使用到的命令是:
ping 192.168.56.102 -l 1472 -f -n 1
如何查看后續(xù)參數(shù)的含義呢,我們在windows上的窗口界面輸入:
ping -help
-l 1472表示發(fā)送的數(shù)據(jù)包大小,單位是字節(jié);
-n表示只發(fā)送一個(gè)請求,因?yàn)閣indows下默認(rèn)會自動(dòng)發(fā)送四個(gè)數(shù)據(jù)包請求;
-f表示不分片,實(shí)際上就是IPv4固定首部中的標(biāo)志位中的DF字段:
標(biāo)志位中間位即第2位記為DF(Don't Fragment),意思是原數(shù)據(jù)報(bào)能否分片。
當(dāng)值為1時(shí),表示該數(shù)據(jù)報(bào)不允許分片,當(dāng)值為0時(shí),表示該數(shù)據(jù)報(bào)允許分片。
我們下面分別執(zhí)行兩條命令,來看下神奇情況的發(fā)生:
可以看到,我們前后發(fā)出了兩個(gè)ping請求,第一次攜帶1472字節(jié)數(shù)據(jù),第二次攜帶1473字節(jié)數(shù)據(jù),并且都設(shè)置了DF為1即不允許分片。
僅僅相差一個(gè)字節(jié),為什么在結(jié)果上出現(xiàn)了天壤之別呢?
首先 ICMP首部固定為8字節(jié) , IP首部固定部分是20字節(jié) ,我們這里沒有額外部分,加上 1472字節(jié)的數(shù)據(jù) ,正好就是以太網(wǎng)幀中最大1500字節(jié)大小,即8+20+1472=1500字節(jié)。
對本次ping的抓包結(jié)果如下:
不然理解,第一次請求正好是1500字節(jié),沒有超過MTU限制,所以可以傳輸成功,而第二次超出了一個(gè)字節(jié),又不允許分片,因此傳輸失敗。
對于第二種情況,如果ping命令后面不攜帶-f參數(shù),也是可以ping成功的,只是在路上會被切分為兩個(gè)包。
我們繼續(xù)來抓包證明自己的想法,去掉-f選項(xiàng),允許分片,執(zhí)行命令:
ping 192.168.56.102 -l 1473 -n 1
我們看到了 fragmented ip protocol 字眼,中文意思是分段ip協(xié)議,說明 1473字節(jié) 的數(shù)據(jù)被分片了,我們且來看第一個(gè)分片報(bào)文詳情:
繼續(xù)看下一個(gè)報(bào)文詳情:
也可以注意到一個(gè)細(xì)節(jié),第二個(gè)報(bào)文段中不包含ICMP首部。此外可以注意到wireshark上顯示的包length為35長度,之前不是說過至少是60字節(jié)的嗎?(加上FCS校驗(yàn)應(yīng)該是64字節(jié))
實(shí)際上,如果數(shù)據(jù)部分小于以太網(wǎng)幀需要的最小的46字節(jié)時(shí),就會在以太網(wǎng)層自動(dòng)填充0,使得數(shù)據(jù)達(dá)到46字節(jié),從而達(dá)到最小64字節(jié)的幀長度要求。而這里顯示35字節(jié)大概率是因?yàn)閣ireshark捕獲的時(shí)候還未進(jìn)行填充,從而顯示出了這個(gè)異常的長度包(對于這一點(diǎn)如果有錯(cuò)誤還請指正)。
MSS的英文全稱叫Max Segment Size,是TCP最大段大小。
在建立TCP連接的同時(shí),也可以確定發(fā)送數(shù)據(jù)包的單位,我們稱為MSS, 這個(gè)MSS正好是IP中不會被分片處理的最大數(shù)據(jù)長度 。
TCP在傳送大量數(shù)據(jù)時(shí),是以MSS的大小將數(shù)據(jù)進(jìn)行分割發(fā)送的,重發(fā)時(shí)也是以MSS為單位。
MSS是在三次握手的時(shí)候,在兩端主機(jī)之間被計(jì)算得出,兩端主機(jī)在發(fā)出建立連接的請求時(shí),會在TCP首部中寫入MSS選項(xiàng),告訴對方自己的接口能夠適應(yīng)的MSS的大小,然后在兩者之間選擇一個(gè)較小的值投入使用。
從以上描述中可以看出來:
MSS = MTU - IP header頭大小 - TCP 頭大小
這樣一個(gè) MSS 的數(shù)據(jù)恰好能裝進(jìn)一個(gè) MTU 而不用分片。
在我們熟悉的以太網(wǎng)中,TCP的MSS最大值是:以太網(wǎng)MSS=1500(MTU)-20(IP首部長度)-20(TCP首部大小)=1460字節(jié)
好了,理論介紹完畢,下面我們來看下實(shí)際抓包。
我的虛擬機(jī)上安裝了一個(gè)nginx,端口使用的是熟知端口號80,我在本地客戶端通過curl命令訪問nginx的服務(wù):
從下圖抓包中可以看到, MSS的值是在三次握手的SYN報(bào)文中商量出來的 ,可以看到互相說明自己允許的最大段大小都是1460字節(jié),那么MSS的值就可以取為1460。
在以太網(wǎng)協(xié)議中,一般情況下MTU是1500字節(jié),MSS為1460字節(jié)(相差20字節(jié)的IP首部+20字節(jié)的TCP首部),不過以上是基于IPv4協(xié)議討論的,在IPv6中,IP首部長度是40字節(jié),那么MSS一般就是1440字節(jié)了。
MSS選項(xiàng)只能出現(xiàn)在SYN報(bào)文中,為此SYN報(bào)文TCP頭部里包含了 12字節(jié)的選項(xiàng)(Options)字段 ,可以清晰看到里面有一個(gè)MSS選項(xiàng),所以本次的TCP的握手報(bào)文中的TCP首部長度為32字節(jié),即20字節(jié)的固定首部加12字節(jié)的可變首部,整體為4字節(jié)的整數(shù)倍。
傳輸層篇-MTU和MSS
https://mp.weixin.qq.com/s/ZMV2izeYkBIqjPhsv_-wdw
以上就是關(guān)于tcpmss影響網(wǎng)速相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
蘇州景觀設(shè)計(jì)網(wǎng)站(蘇州景觀設(shè)計(jì)網(wǎng)站推薦)