2010年3月22日 星期一

ICMP 協定

ICMP 的全稱是『 Internet Control Message Protocol, 網際網路訊息控制協定 』。 基本上,ICMP 是一個錯誤偵測與回報的機制,最大的功能就是可以確保我們網路的連線狀態與連線的正確性! 同樣的,ICMP 封包也是必須要裝在 IP 封包的 Data 內才行喔! 因為在 Internet 上面有傳輸能力的就是 IP 封包啦! ICMP 有相當多的類別可以偵測與回報,底下是比較常見的幾個 ICMP 的類別 (Type):

類別代號類別名稱與意義
0Echo Reply (代表一個回應信息)
3Destination Unreachable (表示目的地不可到達)
4Source Quench (當 router 的負載過高時,此類別碼可用來讓發送端停止發送訊息)
5Redirect (用來重新導向路由路徑的資訊)
8Echo Request (請求回應訊息)
11Time Exceeded for a Datagram (當資料封包在某些路由傳送的現象中造成逾時狀態,此類別碼可告知來源該封包已被忽略的訊息)
12Parameter Problem on a Datagram (當一個 ICMP 封包重複之前的錯誤時,會回覆來源主機關於參數錯誤的訊息)
13Timestamp Request (要求對方送出時間訊息,用以計算路由時間的差異,以滿足同步性協定的要求)
14Timestamp Reply (此訊息純粹是回應 Timestamp Request 用的)
15Information Request (在 RARP 協定應用之前,此訊息是用來在開機時取得網路信息)
16Information Reply (用以回應 Infromation Request 訊息)
17Address Mask Request (這訊息是用來查詢子網路 mask 設定信息)
18Address Mask Reply (回應子網路 mask 查詢訊息的)

那麼我們是如何利用 ICMP 來檢驗網路的狀態呢?最簡單的指令就是 ping 與 traceroute 了, 這兩個指令可以透過 ICMP 封包的輔助來確認與回報網路主機的狀態。在設定防火牆的時候, 我們最容易忽略的就是這個 ICMP 的封包了,因為只會記住 TCP/UDP 而已~事實上, ICMP 封包可以幫助連線的狀態回報,除了上述的 8 可以考慮關閉之外,基本上, ICMP 封包也不應該全部都擋掉喔!

沒有留言:

張貼留言