Wireshark-ICMP数据报分析
ICMP:Internet控制報文協(xié)議
ICMP是TCP/IP協(xié)議族的一個子協(xié)議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡通不通、主機是否可達、路由是否可用等網(wǎng)絡本身的消息。
ICMP協(xié)議通過IP協(xié)議發(fā)送的,IP協(xié)議是一種無連接的,不可靠的數(shù)據(jù)包協(xié)議,屬于網(wǎng)絡層協(xié)議。
ICMP報文是在IP數(shù)據(jù)報內被傳輸?shù)摹T趯嶋H傳輸中的數(shù)據(jù)包結構:20字節(jié)IP首部 + 8字節(jié)ICMP首部+ 1472字節(jié)<數(shù)據(jù)大小>38字節(jié)。
ICMP報文格式:IP首部(20字節(jié))+8位類型+8位代碼+16位校驗和+(不同的類型和代碼,格式也有所不同)。下面即為ICMP報文格式:
ICMP報文的類型
不同類型由報文中的類型字段和代碼字段來共同決定,簡單的可以分為兩種:即ICMP差錯報告報文和ICMP詢問報文。
ICMP請求與應答報文 ping
通過ping程序可以發(fā)送請求報文,在ping的服務器收到報文后會返回應答報文。
下面是請求應答的報文格式:
讓wireshark開始抓包,用icmp過濾,打開cmd窗口,輸入ping www.youku.com,就會發(fā)現(xiàn)wireshark開始抓取報文,ping默認發(fā)4個請求報文,所有這里會抓取到8個報文(請求和應答各4個)。下面查看一個請求報文結構:
再來看一看實際的數(shù)據(jù)域:
Traceroute工具
Traceroute程序可以讓我們看到 I P數(shù)據(jù)報從一臺主機傳到另一臺主機所經(jīng)過的路由,它是用來偵測主機到目的主機之間所經(jīng)路由情況的重要工具,也是最便利的工具。
Traceroute基本原理:這個程序利用報文的TTL信息實現(xiàn)路由的獲取。首先主機向目的主機發(fā)送一個TTL=1的數(shù)據(jù)報,當數(shù)據(jù)報到達第一個路由器時,TTL=0,這時路由器會發(fā)送一個ICMP報文返回給主機,說明數(shù)據(jù)報超時。由此得到第一個路由地址,然后令TTL=2,再次發(fā)送一個數(shù)據(jù)報,會得到第二個路由返回的ICMP,由此一次次增加TTL就可以得到主機到目的主機之間所經(jīng)過的路由信息。
windows cmd中運行結果
在linux中traceroute是可以選則數(shù)據(jù)包的類型(-I,-U,-T)分別代表ICMP,UDP,TCP數(shù)據(jù)包類型。而在windows的cmd中tracert用的是ICMP數(shù)據(jù)包。實際測試中可能會出現(xiàn)一些問題。具體參考:
http://blog.csdn.net/lhq9220/article/details/6436984
總結
以上是生活随笔為你收集整理的Wireshark-ICMP数据报分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用CSS3制作50个超棒动画效果教程
- 下一篇: ejb2.0详细开发过程