傳說中的MTU

2021-08-28 15:39:12 字數 1823 閱讀 9111

通訊術語 最大傳輸單元(maximum transmission unit,mtu)是指一種通訊協議的某一層上面所能通過的最大資料報大小(以位元組為單位)。最大傳輸單元這個引數通常與通訊介面有關(網路介面卡、串列埠等)。

網際網路協議允許ip分片,這樣就可以將資料報分成足夠小的片段以通過那些最大傳輸單元小於該資料報原始大小的鏈路了。這一分片過程發生在網路層(osi 模型的第三層,此前詞條為傳輸層:o s i 模型中最重要的一層,這裡是根據視窗控制傳輸,而非mtu。傳輸協議同時進行流量控制或是基於接收方可接收資料的快慢程度規定適當的傳送速率。除此之外,傳輸層按照網路能處理的最大尺寸將較長的資料報進行強制分割。例如,乙太網無法接收大於1 5 0 0 位元組的資料報。傳送方節點的傳輸層將資料分割成較小的資料片,同時對每一資料片安排一串行號,以便資料到達接收方節點的傳輸層時,能以正確的順序重組。該過程即被稱為排序。 ),它使用的是將分組傳送到鏈路上的網路介面的最大傳輸單元的值。原始分組的分片都被加上了標記,這樣目的主機的ip層就能將分組重組成原始的資料報了。

在網際網路協議中,一條網際網路傳輸路徑的「路徑最大傳輸單元」被定義為從源位址到目的位址所經過「路徑」上的所有ip跳的最大傳輸單元的最小值。或者從另外乙個角度來看,就是無需進一步分片就能穿過這條「路徑」的傳輸單元的最大值。

rfc 1191描述了「路徑最大傳輸單元發現方法」,這是一種確定兩個ip主機之間路徑最大傳輸單元的技術,其目的是為了避免ip分片。在這項技術中,源位址將資料報的df(don't fragment,不要分片)位置位,再逐漸增大傳送的資料報的大小——路徑上任何需要將分組進行分片的裝置都會將這種資料報丟棄並返回乙個「資料報過大」的icmp響應到源位址——這樣,源主機就「學習」到了不用進行分片就能通過這條路徑的最大的最大傳輸單元了。

不幸的是,越來越多的網路**了icmp的傳輸(譬如說為了防範ddos攻擊)——這使得路徑最大傳輸單元發現方法不能正常工作,其常見表現就是乙個連線在低資料流量的情況下可以正常工作,但一旦有大量資料同時傳送,就會立即掛起(例如在使用irc的時候,客戶會發現在傳送了乙個禁止ip欺騙的ping之後就得不到任何響應了,這是因為該連線被大量的歡迎訊息堵塞了)。而且,在乙個使用網際網路協議的網路中,從源位址到目的位址的「路徑」常常會為了響應各種各樣的事件(負載均衡、擁塞、斷電等等)而被動態地修改——這可能導致路徑最大傳輸單元在傳輸過程中發生改變——有時甚至是反覆的改變。其結果是,在主機尋找新的可以安全工作的最大傳輸單元的同時,更多的分組被丟失掉了。

對於時下大多數使用乙太網的區域網來說,最大傳輸單元的值是1500位元組。但是像pppoe這樣的系統會減小這個數值,這就使得在使用最大傳輸單元發現方法時可能會產生這樣的結果:一些處於配置不當的防火牆之後的站點變得不可達了。對於這種情況,還是可能找到變通的方法的,但這取決於你控制的是網路的哪一部分。這些方法包括改變用來在防火牆一端建立tcp連線的第乙個分組的mss(maximum segment size,最大分段大小)。

對於一些支援老版本乙太網協議的ibm系統(例如xseries),可能只有在把最大傳輸單元設為1492之後才能在當下常見的區域網上進行運作。

如何檢測閘道器的mtu

在本機開啟dos視窗,執行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是閘道器ip位址,1472是資料報的長度。請注意,上面的引數是「-l」(小寫的l),而不是「-1」。 如果能ping通,表示資料報不需要拆包,可以通過閘道器傳送出去。 如果出現: packet needs to be fragmented but df set. 表示資料報需要拆開來傳送。此時,減少資料報長度,再執行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的資料報長度了。把資料報長度加上資料報頭28位元組,就得到mtu的值。 如果檢測到閘道器的mtu值是1500,不需要修改。 如果閘道器有防火牆ping不通,可以試試直接把mtu設為1400。

傳說中的truncate html

學習用rails做blog的時候要用到rails的truncate功能。h truncate post.content,100,問題來了,將html截斷後出現不完整的tag,導致後續的文章排版都錯亂了。本來考慮是不是自己寫乙個,正在思考思路,結果祭起google,好嗎,已經有牛人寫了 簡單記錄一下 ...

傳說中的分頁6

set quoted identifier off goset ansi nulls on go 名稱 分頁儲存過程 使用示例 exec sp pageindex from stusources 2,10 注意 目前還沒有對輸入的引數進行嚴格的驗證 預設為輸入都是合法有效的 alter proc s...

傳說中的絕殺簡訊

1 貓因夜生活所迫在狐狸開的夜來香髮廊 一日老鼠來到髮廊點名要將貓 貓誓死不從,老鼠大怒道 當初追老子追得死去活來,現在送上門還假正經!2 醫生問病人是怎麼骨折的,病人說,我覺得鞋裡有沙子,就扶著電線桿抖鞋,有個混蛋經過那裡以為我觸電了,便抄起木棍給了我兩棍子 3 生物課上老師問 如何才能正確分辨章...