本文主要分析二層mtu,ip mtu和mss的概念以及它們之間的關係。這三個概念對於路由器來說非常重要,常常很多網頁打不開等問題都是這幾個引數沒配置好導致的。
最大傳輸單元(maximum transmission unit,mtu)是指一種通訊協議在某一層上面所能通過的最大資料報大小(以位元組為單位),它通常與鏈路層協議有密切的關係。ethernetii幀結構如圖 2.1所示。
圖 2.1 ethernetii幀結構
由於乙太網傳輸電氣方面的限制,每個乙太網幀最小64位元組,最大不能超過1518位元組,對於小於或者大於這個限制的乙太網幀,乙太網都可以視之為錯誤的資料幀。一般的乙太網**裝置會丟棄這些資料幀。(注:小於64位元組的資料幀一般是由於乙太網衝突產生的「碎片」或者線路干擾或者壞的乙太網介面產生的,對於大於1518位元組的資料幀我們一般把它叫做giant幀,這種一般是由於線路干擾或者壞的乙太網口產生
)。
這個mtu是網路層協議非常關心的地方,因為網路層協議比如ip協議會根據這個值來決定是否把上層傳下來的資料進行分片。就好比乙個盒子沒法裝下一大塊麵包,就需要把麵包切成片,裝在多個盒子裡面一樣的道理。當兩台遠端pc互聯的時候,它們的資料需要穿過很多的路由器和各種各樣的網路媒介才能到達對端,網路中不同媒介的mtu各不相同,就好比一長段的水管,由不同粗細的水管組成(mtu不同)通過這段水管最大水量就要由中間最細的水管決定。
對於udp協議而言,這個協議本身是無連線的協議,對資料報的到達順序以及是否正確到達不甚關心,所以一般udp應用對分片沒有特殊要求。對於tcp協議而言就不一樣了,這個協議是面向連線的協議,對於tcp協議而言它非常在意資料報的到達順序以及是否傳輸中有錯誤發生,所以有些tcp應用對分片有要求——不能分片(df)。
mss是最大傳輸大小的縮寫,它是tcp協議裡面的乙個概念。如下圖 4.1 所示。
圖 4.1 tcp頭部
注:urg等引數指的是ack urg psh sin fin rst 等引數。
由上文敘述可知:mtu是乙個二層的概念,乙太網最大的mtu就是1500(它是不包含二層頭部的,加上頭部應該為1518位元組),當然這裡說的是很常規的情況,也有些server,比如server2008,發出的就是jumbo frame了,這裡討論常規情況。ip mtu是乙個三層概念,它包含了三層頭部及所有載荷,根據下層為上層服務的,上層基於下層才能做進一步的擴充套件的原則,儘管ip mtu的變化範圍很大(68-65535),但也不得不照顧乙太網mtu的限制,說白了就是ip對乙太網的妥協。mss是tcp裡面的乙個概念,它是tcp資料報每次能夠傳輸的最大資料分段,不包含包頭部分,它與ip mtu滿足如下關係:ip mtu=mss+20位元組(ip包頭)+20位元組(tcp包頭)。當然,如果傳輸的時候還承載有其他協議,還要加些包頭在前面,簡言之,mtu就是總的最後發出去的報文大小,mss就是需要發出去的資料大小,比如pppoe,就是在乙太網上承載ppp協議(點到點連線協議),它包括6位元組的pppoe頭部和2位元組的ppp協議id號,此時,由於乙太網的mtu值為1500,所以上層ppp負載資料不能超過1492位元組,也就是相當於在pppoe環境下的mtu是1492位元組,mss是1452位元組。
通常情況下,mtu不匹配會表現為兩種故障情況:
- ping大包時不通;
- 無法訪問某些站點。
在這種情況下,通常有兩種解決方法:
- 修改使用者端mtu值(不推薦使用);
- 修改傳輸路由所有裝置mtu值,確保路徑mtu值大於使用者傳送的ip報文的長度,以保證使用者報文不會因為超過裝置的mtu值被丟棄。
主要要考慮下面幾種情況:
- 對於純ip網路,要保證:路徑mtu值》最大使用者報文長度;
- 對於純mpls網路(沒有vpn業務),要保證路徑mtu值》最大使用者報文+一層標籤長度(4);
- 對於三層vpn業務,要保證:路徑mtu值》最大使用者報文+兩層標籤長度(8);
- 對於二層vpn業務,要保證:路由mtu值》最大使用者報文長度+兩處標籤長度(8)+二層幀頭長度(18)。
值得注意的是:fast ethernet介面不能調整mtu,所以說在有些裝置中,使用mtu命令不能解決問題的。此外,更改mtu後,如果igp是ospf的話,不同的mtu可能會造成ospf停留在init狀態,此時需要將兩端的mtu調整一致。
MTU引數詳解
mtu 最大傳輸單元,指的是二層裝置所能一次傳輸的最大載荷的大小。如果超過該數值則無法傳輸。一些常見的鏈路的mtu如下 10 100m以太 1500 加上以太幀頭的話是1514 1000m以太 9216 這個應該是不加以太幀頭的 e1 17940 1 mtu和mss的關係 mss是tcp協議在三次握...
VIEWSTATE等引數處理
通過點選日曆來切換內容,使用ajax,重新整理的資料報只有資料那一塊區域。通過post請求獲取日期對應的內容,剛開始只構造selecttime,結果獲得的日期還是預設的 所以還要構造中間幾個引數 viewstate viewstategenerator eventvalidation。viewsta...
decode nvl 等用法詳解
1 decode 條件,if1,then1,if2,then2,預設值 當條件 1時,則為1 else條件 2時 則為2 都不等時,為預設值。2 nvl a b 函式 如果a為null,則函式返回b的值 否則返回a本身。3 to date 2017 04 13 yyyy mm dd 把日期轉化為yy...