網(wǎng)絡(luò)專題—談?wù)凪TU

MTU , Maximum Transmission Unit工窍,最大傳輸單元。

一前酿、基本概念

指通信協(xié)議某一層上面能傳輸?shù)淖畲笞止?jié)數(shù)患雏。這個(gè)參數(shù)通常和網(wǎng)絡(luò)接口有關(guān)。以太網(wǎng)MTU都是1500bytes罢维。

一個(gè)英文字母占一個(gè)一節(jié)淹仑,假如要模擬發(fā)送最大的字節(jié)數(shù),比如1500言津,就寫(xiě)1500個(gè)a攻人。

每種協(xié)議頭部和尾部字段都是規(guī)定好的,所以每種協(xié)議MTU減去頭部尾部的長(zhǎng)度剩下就是有效數(shù)據(jù)的長(zhǎng)度悬槽。

分片,因?yàn)殒溌范紩?huì)傳輸大數(shù)據(jù)的情況瞬浓,假如這臺(tái)機(jī)器正好不能把這個(gè)大包傳輸初婆,這個(gè)時(shí)候分片的概念就出現(xiàn)了,在一端分片以后,另一端還需要進(jìn)行重組磅叛,分片和重組對(duì)性能的損耗比較大屑咳,所以盡量減少分片情況出現(xiàn),于是就有了鏈路MTU的概念弊琴。

鏈路MTU兆龙,整條鏈路,單次傳輸能傳輸?shù)淖畲笞止?jié)數(shù)敲董。一般是由鏈路中最小的點(diǎn)決定的紫皇。這一點(diǎn)很好理解,就像不同大小水管拼接起來(lái)腋寨,是由最窄水管決定能傳多少水聪铺。

在進(jìn)行端到端的傳輸時(shí),傳輸之前先定位出來(lái)這條路上最窄的水管能裝多少水萄窜,之后就按照那個(gè)大小來(lái)發(fā)送铃剔。如何定位呢?

定位工具是常用的traceroute命令

traceroute主要是利用icmp錯(cuò)誤包來(lái)判斷端到端路徑中的每一跳的延時(shí)查刻,第一次先發(fā)ttl為1的包udp包键兜,這時(shí)會(huì)收到第一跳路由器ttl為0,產(chǎn)生的icmp錯(cuò)誤包穗泵,目的地不可達(dá)普气,依次增大ttl為 2,3火欧,4…直到收到的錯(cuò)誤包不是ttl超時(shí)而是udp端口不可達(dá)棋电,這樣就證明了確實(shí)到了對(duì)端。

二苇侵、定位手段

1.現(xiàn)象

最典型的現(xiàn)象赶盔,小包傳輸正常,大包傳輸失敗榆浓,一般這種問(wèn)題只能用抓包來(lái)看于未。

case 1:

場(chǎng)景抓包截圖如下:

看第一副圖,這個(gè)很明顯client一直在努力的發(fā) 長(zhǎng)度為 1460的包陡鹃,直到對(duì)方發(fā)回來(lái)reset烘浦。這種小包正常,大包重傳基本可以認(rèn)定是mtu問(wèn)題

client

server端萍鲸,中間丟了包闷叉,所以一直發(fā)ack,告訴對(duì)端中間有丟包


server

這個(gè)case是經(jīng)過(guò)了負(fù)載均衡轉(zhuǎn)發(fā)脊阴,所以源和目的地址對(duì)不上握侧,還有Fin和Reset的行為對(duì)不上蚯瞧。不過(guò)中間的傳輸是沒(méi)有問(wèn)題的,可以通過(guò)兩邊的行為品擎,典型的一邊一直再發(fā)埋合,另一邊收不到,所以一直告訴對(duì)方丟了中間的包萄传,直到重傳導(dǎo)致連接斷開(kāi)

case 2:

和case1一樣甚颂,wireshark顯示長(zhǎng)度為1514的包重傳,導(dǎo)致連接中斷

圖片發(fā)自簡(jiǎn)書(shū)App

case 3:

以下這種情況收到icmp error以后秀菱,修正自己的發(fā)包大小

收到ICMP error

查到中間路徑返回的icmp error 振诬,告訴他下一跳的MTU是 1452,這樣發(fā)送端調(diào)整發(fā)送大小答朋,服務(wù)正常進(jìn)行下去贷揽。

ICMP error包詳情

case 4:

udp包測(cè)試最大MTU,udp沒(méi)有分片的情況梦碗,因?yàn)閁DP協(xié)議本身就是無(wú)狀態(tài)的禽绪,所以u(píng)dp發(fā)大包,會(huì)直接丟棄洪规。

udp模擬印屁,nc是很好的工具

client端運(yùn)行,nc serverip port

server端運(yùn)行? nc -l -u port

ping -M do www.baidu.com -s 1472

可以在server直觀的看到是否收到對(duì)端發(fā)來(lái)的包

圖片發(fā)自簡(jiǎn)書(shū)App

三斩例、后記

想要探測(cè)沿途的mtu雄人,盡管大多數(shù)的系統(tǒng)不支持路徑MTU發(fā)現(xiàn)功能,但可以很容易地修改traceroute程序念赶,用它來(lái)確定路徑MTU础钠。要做的是發(fā)送分組,并設(shè)置“不可分片”標(biāo)志比特叉谜。發(fā)送的第一個(gè)分組的長(zhǎng)度正好與出口MTU相等旗吁,每次收到ICMP“不能分片”差錯(cuò)時(shí)就減小分組的長(zhǎng)度。如果路由器發(fā)送的ICMP差錯(cuò)報(bào)文是新格式停局,包含出口的MTU很钓,那么就用該MTU值來(lái)發(fā)送,否則就用下一個(gè)最小的MTU值來(lái)發(fā)送董栽。正如RFC1191[Mogul and Deering 1990]聲明的那樣码倦,MTU值的個(gè)數(shù)是有限的,因此在我們的程序中有一些由近似值構(gòu)成的表锭碳,取下一個(gè)最小MTU值來(lái)發(fā)送袁稽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市擒抛,隨后出現(xiàn)的幾起案子运提,更是在濱河造成了極大的恐慌蝗柔,老刑警劉巖闻葵,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件民泵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡槽畔,警方通過(guò)查閱死者的電腦和手機(jī)栈妆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)厢钧,“玉大人鳞尔,你說(shuō)我怎么就攤上這事≡缰保” “怎么了寥假?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)霞扬。 經(jīng)常有香客問(wèn)我糕韧,道長(zhǎng),這世上最難降的妖魔是什么喻圃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任萤彩,我火速辦了婚禮,結(jié)果婚禮上斧拍,老公的妹妹穿的比我還像新娘雀扶。我一直安慰自己,他們只是感情好肆汹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布愚墓。 她就那樣靜靜地躺著,像睡著了一般昂勉。 火紅的嫁衣襯著肌膚如雪浪册。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天硼啤,我揣著相機(jī)與錄音议经,去河邊找鬼。 笑死谴返,一個(gè)胖子當(dāng)著我的面吹牛煞肾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗓袱,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼籍救,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了渠抹?” 一聲冷哼從身側(cè)響起蝙昙,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闪萄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后奇颠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體败去,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年烈拒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了圆裕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荆几,死狀恐怖吓妆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨铸,我是刑警寧澤行拢,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诞吱,受9級(jí)特大地震影響舟奠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狐胎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一鸭栖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧握巢,春花似錦晕鹊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至歌焦,卻和暖如春飞几,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背独撇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工屑墨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纷铣。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓卵史,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親搜立。 傳聞我的和親對(duì)象是個(gè)殘疾皇子以躯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容