tail head cat sleep
QR code linking to this page

manページ  — ICMP

名称

icmp – インターネットコントロールメッセージプロトコル

内容

書式


#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
socket(AF_INET, SOCK_RAW, proto);

解説

ICMP は、 IP 及びインターネットプロトコルファミリにおける、 エラー及び制御通知のためのプロトコルです。 本プロトコルの機能であるネットワークのモニタリング及び診断機能は、 "raw socket" を介したアクセスにより利用することができます。 ICMP ソケットを作成するための socket コールへの引数 protogetprotobyname(3) から得られます。 ICMP ソケットはコネクションレス型であり、普通 sendto(2) 及び recvfrom(2) コールと共に使用されます。 ただし、後で送られるパケットの宛先を固定する場合は connect(2) コールも使用できます (その場合には普通 read(2) または recv(2) 、及び write(2) または send(2) システムコールと共に使用されます)。

送信パケットには (宛先アドレスに基づいて) 作成された IP ヘッダが自動的に付与されます。 受信パケットは、 IP ヘッダ及びオプションが全く損なわれずに受信されます。

診断

ソケット操作の失敗の際には次のエラーのうちの一つが返されます:
[EISCONN] 既にコネクションが確立されているソケットに対し さらにコネクションを確立させようとした時、 あるいは既にソケットのコネクションが確立されているのに、 宛先アドレスを指定してデータグラムを送信しようとした時
[ENOTCONN] ソケットのコネクションが確立されていない場合に、 宛先アドレスの指定をせずデータグラムの送信を行おうとした時
[ENOBUFS] 内部的なデータ構造のためのメモリが不足した時
[EADDRNOTAVAIL]
  対応したネットワークインタフェースが存在しない ネットワークアドレスを指定し、ソケットを作成しようとした時

関連項目

recv(2), send(2), inet(4), intro(4), ip(4)

歴史

icmp プロトコルは BSD 4.3 から登場しました。

BSD 4.3 ICMP (4) June 5, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

UNIX has been evolving feverishly for close to 30 years, sort of like bacteria in a cesspool — only not as attractive
— John Levine, "Unix for Dummies"