Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ip(4P) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getsockopt(2)

send(2)

recv(2)

intro(4N)

icmp(4P)

inet(4F)

IP(4P)  —  UNIX Programmer’s Manual

名前

ip − インターネットプロトコル

形式

#include <sys/socket.h>
#include <netinet/in.h>

s = socket(AF_INET, SOCK_RAW, proto);

解説

IP は、インターネットプロトコルファミリーによって使用される、 トランスポートレイヤのプロトコルです。 オプションは、IP に基づく上位のプロトコル(TCP や UDP)の使用時に、 IP レベルで設定されます。 また、新しいプロトコルや特別な目的のアプリケーションプログラムを 開発するときには、“rawソケット” からもアクセスされます。

IP レベルには、一般的なオプション IP-OPTIONS がサポートされています。 この IP オプションは、発信パケットそれぞれの IP ヘッダに IP オプションを 付与して転送するように指定するものです。 オプションの設定は、 setsockopt(2) で行われ、 getsockopt(2) で調べられます。 送信される IP オプションの形式は、 IP プロトコル仕様によって指定されたものです。 ただし、ソース経路オプションについてのアドレスリストには、 ゲートウェイのリストの先頭に、最初に送られるゲートウェイが 含まれていなければなりません。 最初に送られるゲートウェイのアドレスは、 オプションリストから取り出され、サイズが調整されてから使用されます。 IP オプションは、インターネットファミリーのあらゆるソケット型で使用されます。

connect(2) コールは、以降に送受するパケット (この場合、 read(2)、 recv(2)、 write(2)、 send(2) システムコールが使われます) の相手先アドレスを設定するためにも 使用できますが、raw 型の IP ソケットは接続がなく(connectionless)、通常、 sendto コールと recvfrom コールで使用されます。

proto が 0 ならば、デフォルトのプロトコル IPPROTO_RAW が発信パケットに使用されます。 また、このプロトコルに対して出されたパケットだけが受信されます。 proto が 0 でないならば、そのプロトコル番号が発信パケットに使用され、 また、受信パケットをフィルタリングするためにも使用されます。

発信パケットは、自動的に、オプションの付いた IP ヘッダ(相手側 アドレスとソケット作成時に指定したプロトコル番号がついている)を付けられます。 受信パケットは、IP ヘッダとオプションを付けたまま受け取られます。

診断

次のエラーが返されたときには、ソケットの操作は失敗しています。

[EISCONN] すでに接続されているソケットにさらに接続しようとした。 または、すでにそのソケットが接続されているにもかかわらず、 相手側のアドレスを指定して データグラムを送ろうとした。

[ENOTCONN] データグラムを送信しようとしたが、その相手側アドレスが指定されていないか、 またはソケットが接続されていない。

[ENOBUFFS] システムが内部データのためのメモリを使い切っている。

[EADDRNOTAVAIL]
ネットワークインタフェースが存在しないネットワークアドレスでソケット を作ろうとしている。

次のエラーは IP 特有のもので、IP オプションを設定したり取り出したり しているときに発生するものです。

[EINVAL] 定義されていないソケットオプション名が与えられた。

[EINVAL] IPフィールドの形式が不適切である。 オプションフィールドが最小値より短すぎるか、 用意されているオプションバッファよりも長すぎる。

関連事項

getsockopt(2), send(2), recv(2), intro(4N), icmp(4P), inet(4F)

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026