計算機網路 網際控制報文協議ICMP

2021-10-05 02:08:38 字數 1504 閱讀 2889

為了更有效地**資料報和提高交付成功的機會,在網際層使用了網際控制報文協議icmp,icmp允許主機或路由器報告差錯情況和提供有關異常情況的報告。icmp報文是裝在ip資料報中,作為其資料的一部分。

報文格式

icmp報文分為2種:

icmp差錯報文

所有的差錯報文的資料字段都具有相同的格式,即把收到的需要進行差錯報告的ip資料報的首部和ip資料報內容前8個位元組提取出來,作為icmp報文的資料部分。這樣接收icmp差錯報文的模組就能把它與某個特定的協議(ip資料報首部中的協議字段)和使用者程序(ip資料報內容的前8個位元組即為tcp和udp埠號)聯絡起來。

icmp詢問報文

ping

icmp報文乙個重要的應用就是分組網間探測ping,用來測試2個主機之間的連通性。

ping使用了icmp回送請求和回答報文,ping是應用層直接使用網路層icmp的乙個例子,它沒有通過運輸層的tcp和udp。

比如pc向目的伺服器傳送4個icmp回送請求報文。如果伺服器正常工作而且響應這個icmp報文,那麼它就發回icmp回送回答報文。由於往返的icmp報文上面都有時間戳,因此,還可以得出往返時間rtt。

traceroute

traceroute用來跟蹤乙個分組從源點到終點的路徑。

traceroute從源主機向目的主機傳送乙個連串的ip資料報,ip資料報中封裝的是無法交付的udp使用者資料報(埠非法),第乙個資料報p1的生存時間ttl設定為1,當p1到達路徑上的第乙個路由器r1時,路由器r1先收下它,接著把ttl的值減1,由於ttl等於0了,r1就把p1丟棄了,並向源主機傳送乙個icmp時間超過的差錯報文。

源主機接著傳送第二個資料報p2,並把ttl設定為2。p2先到到路由器r1,r1將ttl減1再**給路由器r2。r2將ttl減1變為0,於是丟棄p2,並向源主機傳送乙個icmp時間超過的差錯報文。

這樣一直繼續下去,直到到達目的主機,此時ttl為1,目的主機不**資料報,也不把ttl減1。但因ip資料報封裝的是無法交付的運輸層udp使用者資料報,因此目的主機向源主機傳送icmp終點不可達差錯報文。

以下為部落格:計算機網路基礎知識–面試收藏必備

計算機網路 網路層 ICMP網際控制協議

icmp報文主要是進行差錯報告和詢問報文 icmp差錯報告主要分四種 終點不可達 時間超過,ip資料報生存時間為0 引數問題 收到的資料報首部有字段不正確 改變路由 重定向 有更好的路由 路徑 icmp詢問報文有兩種 回送請求和回答,向乙個特定的主機傳送詢問,用於了解目的是否可到達,及其有關狀態。目...

網路層(網際控制報文協議ICMP)

icmp是 internet control message protocol internet控制報文協議。它是tcp ip協議族的乙個子協議,用於在ip主機 路由器之間傳遞控制訊息。控制訊息是指網路通不通 主機是否可達 路由是否可用等網路本身的訊息。這些控制訊息雖然並不傳輸使用者資料,但是對於使...

計算機網路 網際層協議 ARP RARP

tcp ip的四層結構分別是 網路介面層 網際層 傳輸層 應用層。本文分享關於網際層的兩個基本協議 arp,rarp。1.為什麼需要位址解析協議?通常a主機向b主機進行傳送資料,a主機一般是知道b主機的ip位址,光有乙個ip位址就可以傳送資料嗎?不是的,在網路介面層,位於區域網內部的主機都是通過ma...