1.分片
應用程序只關心IP數據報的長度,若是它超過MTU值,那麼就要對數據包進行分片。
2.UDP首部字段圖:3d
(16位源端口號+16位目端口號+16位UDP長度+16位UDP校驗和+數據)
3.UDP校驗和
UDP檢驗和是一個端到端的檢驗和。它由發送端計算,而後由接收端驗證。其目的是爲了發現UDP首部和數據在發送端到接收端之間發生的任何改動。blog
(UDP僞首部+UDP首部+數據+填充字節)
udp打印出值爲0,則發送端沒有計算校驗和;1位已計算。
不要徹底相信數據鏈路(如以太網,令牌環等)的 C R C檢驗。應該始終打開端到端的檢驗和功能。
4.IP數據報及分組的關係:
ip數據報是指iP層端到端的傳輸單元(在分片以前和從新組裝以後),分組是指在IP層和鏈路層之間傳送的數據單元。一個分組能夠是一個完整的 I P數據報,也能夠是I P數據報的一個分片。
ip
(UDP分片舉例)
5.ICMP不可達差錯(須要分片)
MTU發現機制:當設備收到一份須要分片的數據報,但又在IP首部設置了不分片(DF)標誌時,若是某個程序須要判斷到達目的端的路途中最小MTU多少。
路由
(須要分片但又設置不分片標誌比特時的ICMP不可達差錯報文格式)
6.藉助traceroute來判斷對端MTU值
如第5點所屬,當DF標誌位1,但數據報確實須要分片時,須要返回一個icmp MTU值爲0的不可到打包。那麼藉助tracroute向目的地址發送不一樣的MTU值,可判斷對端真實的MTU值。
打包
(MTU符合的時候,將到達下一跳)
7.ICMP源站抑制差錯
當一個系統(路由器或主機)接受數據報的速度比其處理數據的速度快時,系統可能會發送icmp源站抑制差錯報文。使用UDP很容易產生這樣的ICMP差錯。
route
(ICMP源站抑制差錯報文格式)
路由器
(來自路由器s u n 的ICMP源站抑制)udp
8.(現網)H3C默認MTU值爲1500。當數據大小爲1500-20(IP頭部)=1480時,則須要分片。每一個分片爲1500,數據大小爲1480字節。程序