IPv4協(xié)議為面向無(wú)連接協(xié)議,而ICMP是協(xié)助IPv4,用于檢測三層網(wǎng)絡(luò )的連通性、差錯提示和路徑優(yōu)化(重定向Redirect)。
報文封裝:Ethernet2/IPv4/ICMP/FCS(IP協(xié)議號1)
注:Type:類(lèi)型 Code:編碼 checksum:ICMP報文校驗
ICMP消息類(lèi)型和編碼類(lèi)型(Code);目的不可達報文、源端抑制報文、超時(shí)報文、參數問(wèn)題、改變路由、回送請求和回答、時(shí)間戳請求和回答、地址掩碼請求和回答、路由詢(xún)問(wèn)和通告;部分如下:
Ping命令:Echo Request 回聲請求
Echo Reply 回聲應答
報文封裝:Ethernet 2/IPv4/UDP/Traceroute/FCS UDP 端口號33434
原理:Traceroute 命令用TTL字段和 ICMP 錯誤消息來(lái)確定從一個(gè)主機到網(wǎng)絡(luò )上其他主機的路由。首先Traceroute送出一個(gè)TTL是1的IP 數據包到目的地,當路徑上的第一個(gè)路由器收到這個(gè)數據包時(shí),分組改寫(xiě)引擎將TTL減1。此時(shí),TTL變?yōu)?,所以該路由器會(huì )將此數據包丟掉,并送回一個(gè)「ICMP time exceeded」消息(包括發(fā)IP包的源地址,IP包的所有內容及路由器的IP地址),Traceroute收到這個(gè)消息后,便知道這個(gè)路由器存在于這個(gè)路徑上,接著(zhù)Traceroute 再送出另一個(gè)TTL是2 的數據包,發(fā)現第2 個(gè)路由器...... Traceroute 每次將送出的數據包的TTL 加1來(lái)發(fā)現另一個(gè)路由器,這個(gè)重復的動(dòng)作一直持續到某個(gè)數據包抵達目的地。當數據包到達目的地后,該主機則不會(huì )送回ICMP time exceeded消息,一旦到達目的地,由于Traceroute通過(guò)UDP數據包向不常見(jiàn)端口號33434發(fā)送數據包,因此會(huì )收到「ICMP port unreachable」消息,故可判斷到達目的地。
注:Traceroute 1.1.1.1 source 2.2.2.2 指定源地址Traceroute目的地址,思科帶源Traceroute的源地址必須是該路由器的接口地址,防止DDOS攻擊。
聯(lián)系客服