ICMP(4) FreeBSD カーネルインタフェースマニュアル ICMP(4)
名称
icmp − インターネットコントロールメッセージプロトコル |
書式
#include <sys/types.h> int |
socket(AF_INET, SOCK_RAW, proto); |
解説 |
ICMP は、 IP 及びインターネットプロトコルファミリにおける、エラー及び制御 通知のためのプロトコルです。本プロトコルの機能であるネットワークのモニタ リング及び診断機能は、 ‘‘raw socket’’ を介したアクセスにより利用すること ができます。 ICMP ソケットを作成するための socket コールへの引数 proto は getprotobyname(3) から得られます。 ICMP ソケットはコネクションレス型であ り、普通 sendto(2) 及び recvfrom(2) コールと共に使用されます。ただし、後 で送られるパケットの宛先を固定する場合は connect(2) コールも使用できます (その場合には普通 read(2) または recv(2) 、及び write(2) または send(2) システムコールと共に使用されます)。 送信パケットには (宛先アドレスに基づいて) 作成された IP ヘッダが自動的に 付与されます。受信パケットは、 IP ヘッダ及びオプションが全く損なわれずに 受信されます。 |
診断
ソケット操作の失敗の際には次のエラーのうちの一つが返されます: |
[EISCONN]
既にコネクションが確立されているソケットに対しさらにコネ クションを確立させようとした時、あるいは既にソケットのコ ネクションが確立されているのに、宛先アドレスを指定して データグラムを送信しようとした時 [ENOTCONN] [ENOBUFS] [EADDRNOTAVAIL] 関連項目 |
歴史
icmp プロトコルは 4.3BSD から登場しました。 4.3 Berkeley Distribution June 5, 1993 4.3 Berkeley Distribution |