ICMP 協定 (Internet Control Message Protocol)

ICMP 主要目的在於輔助 IP 協定的不足,功能分成「查詢」(Query) 與「錯誤回報」(Error-Reporting)兩大類。

ICMP 的查詢功能有:
  • Echo Request: 也就是 ping 的功能
  • Echo Reply

  • Timestamp Request
  • Timestamp Reply

  • Address Mask Request
  • Address Mask Reply

  • Router Solicitation: 支援 IPv6 的主機向 Router 尋問設定資訊
  • Router Advertisement




ICMP 的錯誤回報功能有:
  • Destination Unreachable: 找不到到 Destination 的 route

  • Source Quench: 通知來源主機降速

  • Redirection: 通知來源主機走另一條 route

  • Time Exceeded: Router 通知來源主機,該封包的 TTL 已經逾時

  • Parameter Problem: 目的主機通知來源主機,封包的欄位值不正確





ICMP 封包格式

ICMP 的運作原理是基於網路層,因此,ICMP 的封包在封裝時,會先封裝 ICMP Header,接著封裝 IP Header,然後才是 L2 Header。

ICMP 封包格式
Type (8)
Code (8)
Checksum (16)
ICMP Data (變動長度)





常見的 ICMP 指令

ping: 由 Echo Request 及 Echo Reply 互相配合

traceroute: 以遞增的方式設定封包的 TTL,搭配 Router 在收到 TTL 為 1 的封包後,會傳送 Time Exceeded ICMP 封包給主機

ping -r: 由 Echo Request 及 Echo Reply 互相配合,並紀錄 Router 資訊在封包的 Options 欄位。




ICMP 攻擊

Ping of Death

在 ICMP 的訊息格式中,其 Option Data 欄位長度必須小於 65,535 Bytes,如果在 Option Data 欄位塞入大於 65,535 Bytes 的資料,接收端的作業系統有可能就會因此當機。



Smurf Attack

分散式攻擊 + 偽裝受害者主機 造成受害者主機一直收到爆量的 ICMP Reply 封包,導致正常服務被阻斷(Denial of Service, DoS),更進一步的,如果網路流量夠大,也可以造成受害者主機所在的網路被癱瘓。




Reference

TCP/IP網路通訊協定(第二版)

文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
arrow
arrow
    全站熱搜

    silverwind1982 發表在 痞客邦 留言(0) 人氣()