sourCEntral - mobile manpages

pdf

ICMP

NAME 名稱

icmp, IPPROTO_ICMP − Linux IPv4 ICMP 核心模塊.

DESCRIPTION 描述

本網路核心協議模塊實現了基於 RFC792 協議中定義的《網際網路控制報文協議》 。它針對網路主機間通訊出錯的情況作出回應並給出診斷信息。 使用者不能直接使用本模塊。相反本模塊需與核心中的其他協議進行通訊,而這 些協議將 ICMP 出錯信息返回到網路協議的應用層。ICMP 核心模塊也回應 ICMP 請求。

如果用 IPPROTP_ICMP 打開原始套接字(raw socket)時, 使用者協議有可以收到任意本地套接字 ICMP 包。 IPPROTO_ICMP. 請參閱 raw(7) 傳遞到套接字的 ICMP 包可以用 ICMP_FILTER 套接字選項進行過濾。核心會處理所有 ICMP 包,包括傳遞到使用者的套接字去的。

Linux 對可以到達每個目標主機出錯信息包的比率設立了限制。 ICMP_REDIRECTICMP_DEST_UNREACH 也受進入包的目標路由的限制。

SYSCTLS

ICMP 支持通過 sysctl 接口來設置一些全局 IP 參數。對 Sysctl 的訪問可以通過讀、寫 /proc/sys/net/ipv4/* 下的檔案通過 sysctl(2) 接口進行. 大多數這些 sysctls 對特定 ICMP 類型的數據包數量進行了限制。 Linux 2.2 使用記號單元過濾器對 ICMP 包進行限制。 此值表示超時錯誤,以秒計,直到到頂後記號單元過濾器被清除為止。
icmp_destunreach_rate

發送目的地不可到達 ICMP 消息包的最大數據包比率。這限制了發送到任意一個 路由或目的地的數據包的比率。 這個限制不影響發送用來發現數據鏈路最大傳送單位(MTU)的 ICMP_FRAG_NEEDED包 數據包。

icmp_echo_ignore_all

如果該值不為零,Linux將忽略所有的 ICMP_ECHO 請求。

icmp_echo_ignore_broadcasts

如果該值不為零,Linux將忽略所有發送到廣播地址的 ICMP_ECHO 數據包。

icmp_echoreply_rate

發送響應 ICMP_ECHOREQUEST 請求的 ICMP_ECHOREPLY 數據包比率的最大值。

icmp_paramprob_rate

發送 ICMP_PARAMETERPROB 數據包比率的最大值。當一個具有非法 IP 報頭數據包到達時將發送這些包。

icmp_timeexceed_rate

發送 ICMP_TIME_EXCEEDED 包比率的最大值。當一個數據包通過太多網段時,這些包用作防止路由回環。

NOTES

由於在許多其他實現中不支持 IPPROTO_ICMP 原始套接字(raw socket),可移植程式不能依靠這一特性。

當Linux不作為路由器時,將不被發送 ICMP_REDIRECT 包。核心也只有在路由表中的舊網關和路由重新定向超時時才接受這些包。

ICMP_TIMESTAMP 返回的 64 位毫秒為單位的時間戳是自1970年1月1日以來的時間.

Linux 的 ICMP 在內部使用原始套接字(raw socket)來發送ICMP包。 這個原始套接字可能在 netstat(8) 消息輸出中出現,帶著一個「zero inode」信息。

VERSIONS

在2.2版本中將再不支持 ICMP_ADDRESS 請求。

在2.2版本中將不再支持 ICMP_SOURCE_QUENCH

參見

ip(7)

RFC792 對ICMP協議進行了詳細的敘述。

[中文版維護人]

LetBright <letbright AT netease DOT com>

[中文版最新更新]

2000/10/30

《中國linux論壇man手冊頁翻譯計劃》:

http://cmpp.linuxforum.net

pdf