mtu主要特點
時間:2022-02-12 13:00:01 | 來源:信息時代
時間:2022-02-12 13:00:01 來源:信息時代
因特網(wǎng)協(xié)議允許IP分片,這樣就可以將數(shù)據(jù)包分成足夠小的片段以通過那些最大傳輸單元小于該數(shù)據(jù)包原始大小的鏈路了。這一分片過程發(fā)生在網(wǎng)絡層(OSI模型的第四層,此前詞條為傳輸層:OSI模型中最重要的一層,這里是根據(jù)窗口控制傳輸,而非MTU。傳輸協(xié)議同時進行流量控制或是基于接收方可接收數(shù)據(jù)的快慢程度規(guī)定適當?shù)陌l(fā)送速率。除此之外,傳輸層按照網(wǎng)絡能處理的最大尺寸將較長的數(shù)據(jù)包進行強制分割。
例如,以太網(wǎng)無法接收大于1500字節(jié)的數(shù)據(jù)包。發(fā)送方節(jié)點的傳輸層將數(shù)據(jù)分割成較小的數(shù)據(jù)片,同時對每一數(shù)據(jù)片安排一序列號,以便數(shù)據(jù)到達接收方節(jié)點的傳輸層時,能以正確的順序重組。該過程即被稱為排序。),它使用的是將分組發(fā)送到鏈路上的網(wǎng)絡接口的最大傳輸單元的值。原始分組的分片都被加上了標記,這樣目的主機的IP層就能將分組重組成原始的數(shù)據(jù)報了。
在因特網(wǎng)協(xié)議中,一條因特網(wǎng)傳輸路徑的'路徑最大傳輸單元'被定義為從源地址到目的地址所經(jīng)過'路徑'上的所有IP跳的最大傳輸單元的最小值?;蛘邚牧硗庖粋€角度來看,就是無需進一步分片就能穿過這條'路徑'的傳輸單元的最大值。
RFC1191描述了'路徑最大傳輸單元發(fā)現(xiàn)方法',這是一種確定兩個IP主機之間路徑最大傳輸單元的技術,其目的是為了避免IP分片。在這項技術中,源地址將數(shù)據(jù)報的DF(Don'tFragment,不要分片)位置位,再逐漸增大發(fā)送的數(shù)據(jù)報的大小——路徑上任何需要將分組進行分片的設備都會將這種數(shù)據(jù)報丟棄并返回一個'數(shù)據(jù)報過大'的ICMP響應到源地址——這樣,源主機就'學習'到了不用進行分片就能通過這條路徑的最大的最大傳輸單元了。
不幸的是,越來越多的網(wǎng)絡封殺了ICMP的傳輸(譬如說為了防范DDOS攻擊)——這使得路徑最大傳輸單元發(fā)現(xiàn)方法不能正常工作,其常見表現(xiàn)就是一個連接在低數(shù)據(jù)流量的情況下可以正常工作,但一旦有大量數(shù)據(jù)同時發(fā)送,就會立即掛起(例如在使用IRC的時候,客戶會發(fā)現(xiàn)在發(fā)送了一個禁止IP欺騙的ping之后就得不到任何響應了,這是因為該連接被大量的歡迎消息堵塞了)。而且,在一個使用因特網(wǎng)協(xié)議的網(wǎng)絡中,從源地址到目的地址的'路徑'常常會為了響應各種各樣的事件(負載均衡、擁塞、斷電等等)而被動態(tài)地修改——這可能導致路徑最大傳輸單元在傳輸過程中發(fā)生改變——有時甚至是反復的改變。其結果是,在主機尋找新的可以安全工作的最大傳輸單元的同時,更多的分組被丟失掉了。
對于時下大多數(shù)使用以太網(wǎng)的局域網(wǎng)來說,最大傳輸單元的值是1500字節(jié)。但是像PPPoE這樣的系統(tǒng)會減小這個數(shù)值,這就使得在使用最大傳輸單元發(fā)現(xiàn)方法時可能會產(chǎn)生這樣的結果:一些處于配置不當?shù)姆阑饓χ蟮恼军c變得不可達了。對于這種情況,還是可能找到變通的方法的,但這取決于你控制的是網(wǎng)絡的哪一部分。這些方法包括改變用來在防火墻一端建立TCP連接的第一個分組的MSS(MaximumSegmentSize,最大分段大?。?br>
對于一些支持老版本以太網(wǎng)協(xié)議的IBM系統(tǒng)(例如XSeries),可能只有在把最大傳輸單元設為1492之后才能在當下常見的局域網(wǎng)上進行運作。
如何檢測網(wǎng)關的MTU
在本機打開dos窗口,執(zhí)行:ping-f-l1472192.168.0.1其中192.168.0.1是網(wǎng)關IP地址,1472是數(shù)據(jù)包的長度。請注意,上面的參數(shù)是'-l'(小寫的L),而不是'-1'。如果能ping通,表示數(shù)據(jù)包不需要拆包,可以通過網(wǎng)關發(fā)送出去。如果出現(xiàn):PacketneedstobefragmentedbutDFset.表示數(shù)據(jù)包需要拆開來發(fā)送。此時,減少數(shù)據(jù)包長度,再執(zhí)行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的數(shù)據(jù)包長度了。把數(shù)據(jù)包長度加上數(shù)據(jù)包頭28字節(jié),就得到MTU的值。如果檢測到網(wǎng)關的MTU值是1500,不需要修改。如果網(wǎng)關有防火墻ping不通,可以試試直接把MTU設為1400。
如何修改本機的MTU
修改方法如下:
Windows平臺下
1、運行regedit
2、打開:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces
3、Interfaces下有多個子項,每個子項對應一個網(wǎng)卡。請按如下方法選擇網(wǎng)卡:
A、確定本機用來連接Internet的網(wǎng)卡或撥號連接的IP,如192.168.0.19;
B、用鼠標點擊Interfaces上的子項,查看鍵值列表中的IPAddress項;
C、如果IPAddress的鍵值與A中的IP相同,即192.168.0.19,則該子項就是要找的網(wǎng)卡。
4、進入該子項,在右邊的窗口里按鼠標右鍵,選擇'新建'->'DWORD值',輸入名稱'MTU',按回車。再用鼠標雙擊'MTU',彈出修改窗口,填入MTU的值(一般為十進制的1480)。
填寫前請先把基數(shù)設為十進制。設置好后,需要重啟機器才能生效。
Windows7(XP、Vista未實測)
1、使用管理員權限運行cmd
2、使用netshinterfaceipv4showsubinterfaces命令看看MTU以及本地連接名稱。
3、使用netshinterfaceipv4setsubinterface'本地連接'mtu=1000store=persistent
(注:這里的連接名是你使用上面命令看到的MTU值對應的這個連接名,他在右邊顯示。)
附:1、此方法不用重啟;2、如是ipv6就將上面的ipv4改成ipv6
Linux下可使用如下命令修改需要root權限
ifconfig網(wǎng)卡MTU值
如ifconfigeth0mtu1460
MaxMTU是最大的TCP/IP傳輸單元,在TCP/IP協(xié)議中,將要傳輸?shù)臄?shù)據(jù)分成較小的組進行傳輸,每個組的大小為576字節(jié)。Windows默認的字節(jié)為1500,這是以太網(wǎng)的分組標準。ADSL使用的PPPoE略小于這個數(shù)值,一般為1492。而某些網(wǎng)站采用的MaxMTU大于1492,所以,可能導致某些網(wǎng)頁不能訪問。修改Windows默認的MaxMTU可以解決這個問題。不論是PC機上安裝的PPPoE軟件或者是內置在Modem的PPPoE軟件,在使用中都有可能遇到這個問題。如果使用路由器出現(xiàn)此種情況,請在防火墻配置=>基本設定里,將MTU改為手工,設置為1492即可.那如何確定路由器從ISP獲得的MTU為1500,請見附件圈出的位置.
網(wǎng)絡中一些常見鏈路層協(xié)議MTU的缺省數(shù)值如下:
FDDI協(xié)議:4352字節(jié)
以太網(wǎng)(Ethernet)協(xié)議:1500字節(jié)
PPPoE(ADSL)協(xié)議:1492字節(jié)
X.25協(xié)議(DialUp/Modem):576字節(jié)
Point-to-Point:4470字節(jié)
如果在IP層要傳輸一個數(shù)據(jù)報比鏈路層的MTU還大,那么IP層就會對這個數(shù)據(jù)報進行分片。一個數(shù)據(jù)報會被分為若干片,每個分片的大小都小于或者等于鏈路層的MTU值。當同一網(wǎng)絡上的主機互相進行通信時,該網(wǎng)絡的MTU對通信雙方非常重要。但當主機間要通過很多網(wǎng)絡才能通信時,對通信雙方最重要的是通信路徑中最小的MTU,因為在通信路徑上不同網(wǎng)絡的鏈路層MTU不同。通信路徑中最小的MTU被稱為路徑MTU。