OSDN Git Service

Update draft for LDP 3.67
[linuxjm/LDP_man-pages.git] / draft / man7 / raw.7
index 2d9a04c..e2c0d88 100644 (file)
-'\" t
-.\" Don't change the first line, it tells man that we need tbl.
+.\" t
 .\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
+.\"
+.\" %%%LICENSE_START(VERBATIM_ONE_PARA)
 .\" Permission is granted to distribute possibly modified copies
 .\" of this page provided the header is included verbatim,
 .\" and in case of nontrivial modification author and date
 .\" of the modification is added to the header.
+.\" %%%LICENSE_END
+.\"
 .\" $Id: raw.7,v 1.6 1999/06/05 10:32:08 freitag Exp $
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
 .\" Translated 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>
 .\" Updated 2007-01-05, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.43
+.\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"WORD         link level header(s)    ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À
-.\"WORD         effective user ID       ¼Â¸ú¥æ¡¼¥¶¡¼ ID
-.\"WORD         capability              ¸¢¸Â
-.\"WORD         route                   (¥Ñ¥±¥Ã¥È¤Î) ·ÐÏ©
-.\"
-.TH RAW  7 2008-11-20 "Linux" "Linux Programmer's Manual"
-.\"O .SH NAME
-.\"O raw, SOCK_RAW \- Linux IPv4 raw sockets
-.SH Ì¾Á°
-raw, SOCK_RAW \- Linux ¤Î IPv4 raw ¥½¥±¥Ã¥È
-.\"O .SH SYNOPSIS
-.SH ½ñ¼°
-.B #include <sys/socket.h>
+.TH RAW 7 2012\-05\-10 Linux "Linux Programmer's Manual"
+.SH 名前
+raw \- Linux の IPv4 raw ソケット
+.SH 書式
+\fB#include <sys/socket.h>\fP
 .br
-.B #include <netinet/in.h>
+\fB#include <netinet/in.h>\fP
 .br
-.BI "raw_socket = socket(AF_INET, SOCK_RAW, int " protocol );
-.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-.\"O Raw sockets allow new IPv4 protocols to be implemented in user space.
-.\"O A raw socket receives or sends the raw datagram not
-.\"O including link level headers.
-raw ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¿·¤·¤¤ IPv4 ¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¶õ´Ö¤Ç
-¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ raw ¥½¥±¥Ã¥È¤Ï¡¢¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò
-´Þ¤Þ¤Ê¤¤ raw ¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¼õ¿®¤¬¤Ç¤­¤ë¡£
+\fBraw_socket = socket(AF_INET, SOCK_RAW, int \fP\fIprotocol\fP\fB);\fP
+.SH 説明
+raw ソケットを使うと、新しい IPv4 プロトコルをユーザ空間で 実装できるようになる。 raw ソケットは、リンクレベルヘッダを 含まない raw
+データグラムの送受信ができる。
 
-.\"O The IPv4 layer generates an IP header when sending a packet unless the
-.\"O .B IP_HDRINCL
-.\"O socket option is enabled on the socket.
-.\"O When it is enabled, the packet must contain an IP header.
-.\"O For receiving the IP header is always included in the packet.
-IPv4 ¥ì¥¤¥ä¤Ï¡¢°·¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ç
-.B IP_HDRINCL
-¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢
-¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¤È¤­¤Ë IP ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë¡£
-.B IP_HDRINCL
-¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ë¤Ï
-IP ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¼õ¿®»þ¤Ë¤Ï¡¢ IP ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
+IPv4 レイヤは、扱っているソケットで \fBIP_HDRINCL\fP ソケットオプションが有効になっていなければ、 パケットを送信するときに IP
+ヘッダを生成する。 \fBIP_HDRINCL\fP オプションが有効になっているときは、パケットには IP ヘッダが含まれていなければならない。
+受信時には、 IP ヘッダは常にパケットに含まれている。
 
-.\"O Only processes with an effective user ID of 0 or the
-.\"O .B CAP_NET_RAW
-.\"O capability are allowed to open raw sockets.
-¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢
-.B CAP_NET_RAW
-¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬ raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+実効ユーザー ID が 0 のプロセスか、 \fBCAP_NET_RAW\fP 権限を持つプロセスだけが raw ソケットをオープンすることができる。
 
-.\"O All packets or errors matching the
-.\"O .I protocol
-.\"O number specified
-.\"O for the raw socket are passed to this socket.
-.\"O For a list of the allowed protocols see RFC\ 1700 assigned numbers and
-.\"O .BR getprotobyname (3).
-¤³¤Î raw ¥½¥±¥Ã¥È¤Ë»ØÄꤵ¤ì¤¿
-.I protocol
-ÈÖ¹æ¤Ë¥Þ¥Ã¥Á¤¹¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤È¥¨¥é¡¼¤È¤¬¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£
-µö²Ä¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï RFC\ 1700 ¤Î³ä¤êÅö¤ÆÈÖ¹æ¤È
-.BR getprotobyname (3)
-¤ò¸«¤è¡£
+この raw ソケットに指定された \fIprotocol\fP 番号にマッチする全てのパケットとエラーとが、このソケットに渡される。
+許可されているプロトコルのリストは RFC\ 1700 の割り当て番号と \fBgetprotobyname\fP(3)  を見よ。
 
-.\"O A protocol of
-.\"O .B IPPROTO_RAW
-.\"O implies enabled
-.\"O .B IP_HDRINCL
-.\"O and is able to send any IP protocol that is specified in the passed
-.\"O header.
-.\"O Receiving of all IP protocols via
-.\"O .B IPPROTO_RAW
-.\"O is not possible using raw sockets.
-.B IPPROTO_RAW
-¤Î¥×¥í¥È¥³¥ë¤Ï°ÅÌۤΤ¦¤Á¤Ë
-.B IP_HDRINCL
-¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ç¡¢
-ÅϤµ¤ì¤¿¥Ø¥Ã¥À¤Ç»ØÄꤵ¤ì¤¿¡¢¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤òÁ÷¿®¤Ç¤­¤ë¡£
-.B IPPROTO_RAW
-·Ðͳ¤Ç¤Î¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤Î¼õ¿®¤Ï¡¢
-raw ¥½¥±¥Ã¥È¤òÍѤ¤¤Æ¤Ï¹Ô¤¨¤Ê¤¤¡£
-.\"O
+\fBIPPROTO_RAW\fP のプロトコルは暗黙のうちに \fBIP_HDRINCL\fP を有効にするので、 渡されたヘッダで指定された、あらゆる IP
+プロトコルを送信できる。 \fBIPPROTO_RAW\fP 経由でのあらゆる IP プロトコルの受信は、 raw ソケットを用いては行えない。
+.RS
 .TS
 tab(:) allbox;
 c s
 l l.
-.\"O IP Header fields modified on sending by \fBIP_HDRINCL\fP
-.\"O IP Checksum:Always filled in.
-.\"O Source Address:Filled in when zero.
-.\"O Packet Id:Filled in when zero.
-.\"O Total Length:Always filled in.
-IP ¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¡£ \fBIP_HDRINCL\fP ¤Ë¤è¤Ã¤ÆÁ÷¿®»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
-IP ¥Á¥§¥Ã¥¯¥µ¥à:¾ï¤ËÊѹ¹¤µ¤ì¤ë¡£
-¥½¡¼¥¹¥¢¥É¥ì¥¹:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
-¥Ñ¥±¥Ã¥È ID:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
-Á´ÂΤÎŤµ:¾ï¤ËËä¤á¤é¤ì¤ë¡£
+IP ヘッダフィールド。 \fBIP_HDRINCL\fP によって送信時に変更される。
+IP チェックサム:常に変更される。
+ソースアドレス:元の値が 0 の時に変更される。
+パケット ID:元の値が 0 の時に変更される。
+全体の長さ:常に埋められる。
 .TE
-.\"O.RE
+.RE
 .sp
 .PP
-.\"NAKANO Aloways filled in. ¤È¤Ï?
-.\"O If
-.\"O .B IP_HDRINCL
-.\"O is specified and the IP header has a nonzero destination address then
-.\"O the destination address of the socket is used to route the packet.
-.\"O When
-.\"O .B MSG_DONTROUTE
-.\"O is specified, the destination address should refer to a local interface,
-.\"O otherwise a routing table lookup is done anyway but gatewayed routes
-.\"O are ignored.
-.B IP_HERINCL
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ IP ¥Ø¥Ã¥À¤Ë
-0 ¤Ç¤Ê¤¤Á÷¿®À襢¥É¥ì¥¹¤¬µ­Æþ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢
-¤½¤ÎÁ÷¿®À襢¥É¥ì¥¹¤¬¥Ñ¥±¥Ã¥È¤Î·ÐÏ©¤ò·è¤á¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
-.B MSG_DONTROUTE
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢
-Á÷¿®À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»²¾È¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¤µ¤â¤Ê¤¤¤È¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Î»²¾È¤Ï¤¤¤º¤ì¤Ë¤»¤è¹Ô¤ï¤ì¤ë¤¬¡¢
-¥²¡¼¥È¥¦¥§¥¤¤¬É¬ÍפʷÐÏ©¤Ï̵»ë¤µ¤ì¤ë¡£
-.\"NAKANO ¥í¡¼¥«¥ë¤Ê¥Í¥Ã¥È¤Ê¤Î¤«¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ê¤Î¤«¡©
-
-.\"O If
-.\"O .B IP_HDRINCL
-.\"O isn't set, then IP header options can be set on raw sockets with
-.\"O .BR setsockopt (2);
-.\"O see
-.\"O .BR ip (7)
-.\"O for more information.
-.B IP_HDRINCL
-¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢
-raw ¥½¥±¥Ã¥È¤Î IP ¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤ò
-.BR setsockopt (2)
-¤òÍѤ¤¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï
-.BR ip (7)
-¤ò¸«¤è¡£
-
-.\"O In Linux 2.2, all IP header fields and options can be set using
-.\"O IP socket options.
-.\"O This means raw sockets are usually only needed for new
-.\"O protocols or protocols with no user interface (like ICMP).
-Linux 2.2 ¤Ç¤Ï¡¢ IP ¥Ø¥Ã¥À¤ÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤È¥ª¥×¥·¥ç¥ó¤È¤ò
-IP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£¤·¤¿¤¬¤Ã¤Æ
-raw ¥½¥±¥Ã¥È¤¬É¬Íפˤʤë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥È¥³¥ë¤òÀ߷פ¹¤ë¾ì¹ç¤«¡¢
-¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤¿¤Ê¤¤¥×¥í¥È¥³¥ë (ICMP ¤Ê¤É) ¤ò°·¤¦¾ì¹ç¤Ë
-¸Â¤é¤ì¤ë¡£
-
-.\"O When a packet is received, it is passed to any raw sockets which have
-.\"O been bound to its protocol before it is passed to other protocol handlers
-.\"O (e.g., kernel protocol modules).
-¥Ñ¥±¥Ã¥È¤Ï¡¢¼õ¿®¤µ¤ì¤ë¤È¤Þ¤º¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤·¤Æ¤¤¤ë
-raw ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¡¢
-¤½¤Î¸å¤Ç¾¤Î¥×¥í¥È¥³¥ë¥Ï¥ó¥É¥é (¥«¡¼¥Í¥ë¤Î¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ê¤É)
-¤ËÅϤµ¤ì¤ë¡£
-.\"O .SS Address Format
-.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È
-.\"O Raw sockets use the standard
-.\"O .I sockaddr_in
-.\"O address structure defined in
-.\"O .BR ip (7).
-.\"O The
-.\"O .I sin_port
-.\"O field could be used to specify the IP protocol number,
-.\"O but it is ignored for sending in Linux 2.2 and should be always
-.\"O set to 0 (see BUGS).
-.\"O For incoming packets,
-.\"O .I sin_port
-.\"O is set to the protocol of the packet.
-.\"O See the
-.\"O .I <netinet/in.h>
-.\"O include file for valid IP protocols.
-raw ¥½¥±¥Ã¥È¤Ïɸ½à¤Î
-.I sockaddr_in
-¥¢¥É¥ì¥¹¹½Â¤ÂΤòÍѤ¤¤ë¡£ÄêµÁ¤Ï
-.BR ip (7)
-¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¡£
-.I sin_port
-¥Õ¥£¡¼¥ë¥É¤ò IP ¥×¥í¥È¥³¥ëÈÖ¹æ¤Î»ØÄê¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢
-Linux 2.2 ¤Ç¤Ï¤³¤ì¤ÏÁ÷¿®»þ¤Ë¤Ï̵»ë¤µ¤ì¡¢¾ï¤Ë 0 ¤Ë¤µ¤ì¤ë
-(¥Ð¥° ¤Î¹à¤ò»²¾È)¡£
-¼õ¿®¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢
-.I sin_port
-¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£
-ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë IP ¥×¥í¥È¥³¥ë¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
-.I <netinet/in.h>
-¤ò¸«¤è¡£
-.\"O .SS Socket Options
-.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó
-.\"O Raw socket options can be set with
-.\"O .BR setsockopt (2)
-.\"O and read with
-.\"O .BR getsockopt (2)
-.\"O by passing the
-.\"O .B IPPROTO_RAW
-.\"O .\" Or SOL_RAW on Linux
-.\"O family flag.
-raw ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢
-.B IPPROTO_RAW
-.\" ¤â¤·¤¯¤Ï Linux ¤Ç¤Ï .I SOL_RAW
-¥Õ¥¡¥ß¥ê¡¼¥Õ¥é¥°¤òÍ¿¤¨¤Æ
-.BR setsockopt (2)
-¤ò¸Æ¤Ù¤ÐÀßÄê¤Ç¤­¡¢
-.BR getsockopt (2)
-¤ò¸Æ¤Ù¤Ð¼èÆÀ¤Ç¤­¤ë¡£
-.TP
-.B ICMP_FILTER
-.\"O Enable a special filter for raw sockets bound to the
-.\"O .B IPPROTO_ICMP
-.\"O protocol.
-.\"O The value has a bit set for each ICMP message type which
-.\"O should be filtered out.
-.\"O The default is to filter no ICMP messages.
-.B IPPROTO_ICMP
-¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿ raw ¥½¥±¥Ã¥È¤Î¤¿¤á¤ÎÆüì¤Ê¥Õ¥£¥ë¥¿¤òÍ­¸ú¤Ë¤¹¤ë¡£
-¤³¤ÎÃͤϠICMP ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¤É¤ì¤ò¥Õ¥£¥ë¥¿¡¼¥¢¥¦¥È
-¤¹¤ë¤«¤òɽ¤·¤¿¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
-ICMP ¥á¥Ã¥»¡¼¥¸¤ÏÁ´¤¯¥Õ¥£¥ë¥¿¡¼¤·¤Ê¤¤¡£
+\fBIP_HERINCL\fP が指定されていて、 IP ヘッダに 0 でない送信先アドレスが記入されていた場合は、
+その送信先アドレスがパケットの経路を決めるのに用いられる。 \fBMSG_DONTROUTE\fP が指定されている時には、
+送信先アドレスはローカルなインターフェースを参照するものでなければならない。 さもないと、ルーティングテーブルの参照はいずれにせよ行われるが、
+ゲートウェイが必要な経路は無視される。
+
+\fBIP_HDRINCL\fP がセットされていなければ、 raw ソケットの IP ヘッダオプションを \fBsetsockopt\fP(2)
+を用いて設定することができる。詳細な情報は \fBip\fP(7)  を見よ。
+
+Linux 2.2 では、 IP ヘッダの全てのフィールドとオプションとを IP ソケットオプションによって設定できる。したがって raw
+ソケットが必要になるのは、新しいプロトコルを設計する場合か、 ユーザーインターフェースを持たないプロトコル (ICMP など) を扱う場合に 限られる。
+
+パケットは、受信されるとまずプロトコルにバインドしている raw ソケットに渡され、 その後で他のプロトコルハンドラ
+(カーネルのプロトコルモジュールなど)  に渡される。
+.SS アドレスのフォーマット
+raw ソケットは標準の \fIsockaddr_in\fP アドレス構造体を用いる。定義は \fBip\fP(7)  でなされている。 \fIsin_port\fP
+フィールドを IP プロトコル番号の指定に用いることができるが、 Linux 2.2 ではこれは送信時には無視され、常に 0 にされる (バグ
+の項を参照)。 受信パケットに対しては、 \fIsin_port\fP はそのパケットのプロトコルにセットされる。 用いることのできる IP
+プロトコルは、インクルードファイル \fI<netinet/in.h>\fP を見よ。
+.SS ソケットオプション
+.\" Or SOL_RAW on Linux
+raw ソケットのオプションは、 \fBIPPROTO_RAW\fP ファミリーフラグを与えて \fBsetsockopt\fP(2)  を呼べば設定でき、
+\fBgetsockopt\fP(2)  を呼べば取得できる。
+.TP 
+\fBICMP_FILTER\fP
+\fBIPPROTO_ICMP\fP プロトコルにバインドされた raw ソケットのための特殊なフィルタを有効にする。 この値は ICMP
+メッセージのタイプそれぞれに対して、どれをフィルターアウト するかを表したビットセットである。デフォルトでは ICMP
+メッセージは全くフィルターしない。
 .PP
-.\"O In addition, all
-.\"O .BR ip (7)
-.\"O .B IPPROTO_IP
-.\"O socket options valid for datagram sockets are supported.
-¤µ¤é¤Ë¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë»È¤¨¤ëÁ´¤Æ¤Î
-.BR ip (7)
-.B SOL_IP
-¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£
-.\"O .SS Error Handling
-.SS ¥¨¥é¡¼½èÍý
-.\"O Errors originating from the network are only passed to the user when the
-.\"O socket is connected or the
-.\"O .B IP_RECVERR
-.\"O flag is enabled.
-.\"O For connected sockets, only
-.\"O .B EMSGSIZE
-.\"O and
-.\"O .B EPROTO
-.\"O are passed for compatibility.
-.\"O With
-.\"O .BR IP_RECVERR ,
-.\"O all network errors are saved in the error queue.
-¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÀ¸¤¸¤¿¥¨¥é¡¼¤¬¥æ¡¼¥¶¤ËÅϤµ¤ì¤ë¤Î¤Ï¡¢
-¥½¥±¥Ã¥È¤¬ÀܳºÑ¤ß¤Î¾ì¹ç¤«
-.B IP_RECVERR
-¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£
-ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢
-.B EMSGSIZE
-¤ª¤è¤Ó
-.B EPROTO
-¤À¤±¤¬ÅϤµ¤ì¤ë (¸ß´¹À­¤Î¤¿¤á)¡£
-.B IP_RECVERR
-¤òÀßÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£
-.\"O .SH ERRORS
-.SH ¥¨¥é¡¼
-.TP
-.B EACCES
-.\"O User tried to send to a broadcast address without having the
-.\"O broadcast flag set on the socket.
-¥æ¡¼¥¶¡¼¤¬ broadcast ¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÍѤ¤¤Æ
-¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£
-.TP
-.B EFAULT
-.\"O An invalid memory address was supplied.
-ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¤¬Í¿¤¨¤é¤ì¤¿¡£
-.TP
-.B EINVAL
-.\"O Invalid argument.
-°ú¿ô¤¬Àµ¤·¤¯¤Ê¤¤¡£
-.TP
-.B EMSGSIZE
-.\"O Packet too big.
-.\"O Either Path MTU Discovery is enabled (the
-.\"O .B IP_MTU_DISCOVER
-.\"O socket flag) or the packet size exceeds the maximum allowed IPv4
-.\"O packet size of 64KB.
-¥Ñ¥±¥Ã¥È¤¬Â礭¤¹¤®¤ë¡£ Path MTU Discoverry ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë
-.RB ( IP_MTU_DISCOVER
-¥½¥±¥Ã¥È¥Õ¥é¥°) ¤«¡¢¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤¬ IPv4 ¤Çµö¤µ¤ì¤Æ¤¤¤ë
-¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ÎºÇÂçÃÍ 64KB ¤ò±Û¤¨¤Æ¤¤¤ë¡£
-.TP
-.B EOPNOTSUPP
-.\"O Invalid flag has been passed to a socket call (like
-.\"O .BR MSG_OOB ).
-¥½¥±¥Ã¥È¸Æ¤Ó½Ð¤·¤ËÉÔÀµ¤Ê¥Õ¥é¥°
-.RB ( MSG_OOB
-¤Ê¤É) ¤¬ÅϤµ¤ì¤¿¡£
-.TP
-.B EPERM
-.\"O The user doesn't have permission to open raw sockets.
-.\"O Only processes with an effective user ID of 0 or the
-.\"O .B CAP_NET_RAW
-.\"O attribute may do that.
-¥æ¡¼¥¶¡¼¤Ï raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
-¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢
-.B CAP_NET_RAW
-°À­¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-.TP
-.B EPROTO
-.\"O An ICMP error has arrived reporting a parameter problem.
-¥Ñ¥é¥á¡¼¥¿¤ÎÌäÂê¤òÊó¹ð¤¹¤ë ICMP ¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¡£
-.\"O .SH VERSIONS
-.SH ¥Ð¡¼¥¸¥ç¥ó
-.\"O .B IP_RECVERR
-.\"O and
-.\"O .B ICMP_FILTER
-.\"O are new in Linux 2.2.
-.\"O They are Linux extensions and should not be used in portable programs.
-.B IP_RECVERR
-¤È
-.B ICMP_FILTER
-¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£¤³¤ì¤é¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢
-°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£
-
-.\"O Linux 2.0 enabled some bug-to-bug compatibility with BSD in the
-.\"O raw socket code when the
-.\"O .B SO_BSDCOMPAT
-.\"O socket option was set \(em since Linux 2.2,
-.\"O this option no longer has that effect.
-Linux 2.0 ¤Ç¤Ï
-.B SO_BSDCOMPAT
-¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢
-BSD ¤Î raw ¥½¥±¥Ã¥È¤Ë¤¢¤ë¥Ð¥°¤Ë¸ß´¹À­¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤¿ \(em
-Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤Ï¤ä¸úÎϤò»ý¤¿¤Ê¤¤¡£
-.\"O .SH NOTES
-.SH Ãí°Õ
-.\"O By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.
-.\"O This means the kernel
-.\"O will keep track of the MTU to a specific target IP address and return
-.\"O .B EMSGSIZE
-.\"O when a raw packet write exceeds it.
-.\"O When this happens, the application should decrease the packet size.
-.\"O Path MTU discovery can be also turned off using the
-.\"O .B IP_MTU_DISCOVER
-.\"O socket option or the
-.\"O .I /proc/sys/net/ipv4/ip_no_pmtu_disc
-.\"O file, see
-.\"O .BR ip (7)
-.\"O for details.
-.\"O When turned off, raw sockets will fragment outgoing packets
-.\"O that exceed the interface MTU.
-.\"O However, disabling it is not recommended
-.\"O for performance and reliability reasons.
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢raw ¥½¥±¥Ã¥È¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£
-¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit;
-ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢raw ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç
-.B EMSGSIZE
-¤òÊÖ¤¹¡£
-.B EMSGSIZE
-¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£
-¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó
-.B IP_MTU_DISCOVER
-¤Þ¤¿¤Ï
-.I /proc/sys/net/ipv4/ip_no_pmtu_disc
-¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë
-(¾ÜºÙ¤Ï
-.BR ip (7)
-¤ò»²¾È)¡£
-Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬
-¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È raw ¥½¥±¥Ã¥È¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò
-¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£
-¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò
-̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£
-
-.\"O A raw socket can be bound to a specific local address using the
-.\"O .BR bind (2)
-.\"O call.
-.\"O If it isn't bound, all packets with the specified IP protocol are received.
-.\"O In addition, a RAW socket can be bound to a specific network device using
-.\"O .BR SO_BINDTODEVICE ;
-.\"O see
-.\"O .BR socket (7).
-.BR bind (2)
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤ë¤È¡¢
-raw ¥½¥±¥Ã¥È¤ò
-ÆÃÄê¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤Î¥Ð¥¤¥ó¥É¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢»ØÄꤷ¤¿ IP ¥×¥í¥È¥³¥ë¤Î
-¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤ë¡£
-¤µ¤é¤Ë¡¢
-.B SO_BINDTODEVICE
-¤òÍѤ¤¤ì¤Ð raw ¥½¥±¥Ã¥È¤òÆÃÄê¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ë
-¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-.BR socket (7)
-¤ò¸«¤è¡£
-
-.\"O An
-.\"O .B IPPROTO_RAW
-.\"O socket is send only.
-.\"O If you really want to receive all IP packets, use a
-.\"O .BR packet (7)
-.\"O socket with the
-.\"O .B ETH_P_IP
-.\"O protocol.
-.\"O Note that packet sockets don't reassemble IP fragments,
-.\"O unlike raw sockets.
-.B IPPROTO_RAW
-¥½¥±¥Ã¥È¤ÏÁ÷¿®ÀìÍѤǤ¢¤ë¡£¤â¤·¤É¤¦¤·¤Æ¤â¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ò
-¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢
-.BR packet (7)
-¥½¥±¥Ã¥È¤ò
-.B ETH_P_IP
-¥×¥í¥È¥³¥ë¤ÇÍѤ¤¤ë¤³¤È¡£
-packet ¥½¥±¥Ã¥È¤Ï raw ¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë
-IP ¥Õ¥é¥°¥á¥ó¥È¤òºÆ¹½À®¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£
-
-.\"O If you want to receive all ICMP packets for a datagram socket,
-.\"O it is often better to use
-.\"O .B IP_RECVERR
-.\"O on that particular socket; see
-.\"O .BR ip (7).
-datagram ¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢
-ÆÃÄê¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ
-.B IP_RECVERR
-¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¾ì¹ç¤¬Â¿¤¤¡£
-.BR ip (7)
-¤ò¸«¤è¡£
-
-.\"O Raw sockets may tap all IP protocols in Linux, even
-.\"O protocols like ICMP or TCP which have a protocol module in the kernel.
-.\"O In this case, the packets are passed to both the kernel module and the raw
-.\"O socket(s). This should not be relied upon in portable programs, many other BSD
-.\"O socket implementation have limitations here.
-raw ¥½¥±¥Ã¥È¤Ï¡¢ Linux ¤Î¤¹¤Ù¤Æ¤Î IP ¥×¥í¥È¥³¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-ICMP ¤ä TCP ¤Î¤è¤¦¤Ë¡¢¥«¡¼¥Í¥ëÆâÉô¤Ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò»ý¤Ä¤è¤¦¤Ê
-¤â¤Î¤â²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È
-raw ¥½¥±¥Ã¥È¤ÎξÊý¤ËÅϤµ¤ì¤ë (raw ¥½¥±¥Ã¥È¤¬Ê£¿ô¤¢¤ì¤Ð¤½¤ì¤¾¤ì¤ËÅϤµ¤ì¤ë)¡£
-°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Îµ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
-¾¤Î¿¤¯¤Î BSD ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï¤³¤ÎÅÀ¤Ë¤ª¤¤¤ÆÀ©¸Â¤¬¤¢¤ë¡£
-
-.\"O Linux never changes headers passed from the user (except for filling
-.\"O in some zeroed fields as described for
-.\"O .BR IP_HDRINCL ).
-.\"O This differs from many other implementations of raw sockets.
-Linux ¤Ï¥æ¡¼¥¶¡¼¤«¤éÅϤµ¤ì¤¿¥Ø¥Ã¥À¤ò·è¤·¤ÆÊѹ¹¤·¤Ê¤¤ (¤¿¤À¤·
-.B IP_HDRINCL
-¤ÎÀâÌÀ¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ 0 ¤ò¤¤¤¯¤Ä¤«Ëä¤á¤ë¾ì¹ç¤ò½ü¤¯)¡£
-¤³¤ì¤Ï¾¤Î¿¤¯¤Î raw ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï°Û¤Ê¤ë¡£
-
-.\"O RAW sockets are generally rather unportable and should be avoided in
-.\"O programs intended to be portable.
-°ìÈ̤ˠraw ¥½¥±¥Ã¥È¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢
-°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£
-
-.\"O Sending on raw sockets should take the IP protocol from
-.\"O .IR sin_port ;
-.\"O this ability was lost in Linux 2.2.
-.\"O The workaround is to use
-.\"O .BR IP_HDRINCL .
-raw ¥½¥±¥Ã¥È¤Ø¤ÎÁ÷¿®¤Ç¤Ï¡¢ IP ¥×¥í¥È¥³¥ë¤ò
-.I sin_port
-¤«¤é¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Îµ¡Ç½¤Ï Linux 2.2 ¤Ç¤Ï»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£
-.B IP_HDRINCL
-¤òÍѤ¤¤ì¤ÐƱÍͤΤ³¤È¤¬¼Â¸½¤Ç¤­¤ë¡£
-.\"O .SH BUGS
-.SH ¥Ð¥°
-.\"O Transparent proxy extensions are not described.
-Æ©²á¥×¥í¥¯¥· (transparent proxy) ³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£
-
-.\"O When the
-.\"O .B IP_HDRINCL
-.\"O option is set, datagrams will not be fragmented and are limited to
-.\"O the interface MTU.
-.B IP_HDRINCL
-¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¥Ç¡¼¥¿¥°¥é¥à¤Ï¥Õ¥é¥°¥á¥ó¥È²½¤µ¤ì¤º¡¢
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤ÎÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤ë¡£
-
-.\"O Setting the IP protocol for sending in
-.\"O .I sin_port
-.\"O got lost in Linux 2.2.
-.\"O The protocol that socket was bound to or that
-.\"O was specified in the initial
-.\"O .BR socket (2)
-.\"O call is always used.
-Á÷¿®ÍѤΠIP ¥×¥í¥È¥³¥ë¤ÎÀßÄê¤ò
-.I sin_port
-¤Ë¤·¤Æ¤ª¤¯µ¡Ç½¤Ï Linux 2.2 ¤«¤é»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£
-¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤«¡¢ºÇ½é¤Î
-.BR socket (2)
-¥³¡¼¥ë¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¾ï¤ËÍѤ¤¤é¤ì¤ë¡£
-.\"O .\" .SH AUTHORS
-.\" .SH Ãø¼Ô
-.\"O .\" This man page was written by Andi Kleen.
-.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£
-.\"O .SH SEE ALSO
-.SH ´ØÏ¢¹àÌÜ
-.BR recvmsg (2),
-.BR sendmsg (2),
-.BR capabilities (7),
-.BR ip (7),
-.BR socket (7)
-
-.\"O .B RFC\ 1191
-.\"O for path MTU discovery.
-¥Ñ¥¹ MTU È¯¸«¤Ë´Ø¤¹¤ë¾ðÊó¤Ï
-.B RFC\ 1191
-¤Ë¤¢¤ë
-
-.\"O .B RFC\ 791
-.\"O and the
-.\"O .I <linux/ip.h>
-.\"O include file for the IP protocol.
-IP ¥×¥í¥È¥³¥ë¤Ë´Ø¤·¤Æ¤Ï
-.B RFC\ 791
-¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
-.I <linux/ip.h>
-¤ò»²¾È¡£
+さらに、データグラムソケットに使える全ての \fBip\fP(7)  \fBSOL_IP\fP ソケットオプションがサポートされている。
+.SS エラー処理
+ネットワークで生じたエラーがユーザに渡されるのは、 ソケットが接続済みの場合か \fBIP_RECVERR\fP フラグが有効になっている場合に限られる。
+接続済みのソケットに対しては、 \fBEMSGSIZE\fP および \fBEPROTO\fP だけが渡される (互換性のため)。 \fBIP_RECVERR\fP
+を設定すると、全てのネットワークエラーがエラーキューに保存される。
+.SH エラー
+.TP 
+\fBEACCES\fP
+ユーザーが broadcast フラグを設定していないソケットを用いて ブロードキャストアドレスに送信を行おうとした。
+.TP 
+\fBEFAULT\fP
+不正なメモリアドレスが与えられた。
+.TP 
+\fBEINVAL\fP
+引き数が不正。
+.TP 
+\fBEMSGSIZE\fP
+パケットが大きすぎる。 Path MTU Discoverry が有効になっている (\fBIP_MTU_DISCOVER\fP ソケットフラグ)
+か、パケットのサイズが IPv4 で許されている パケットサイズの最大値 64KB を越えている。
+.TP 
+\fBEOPNOTSUPP\fP
+ソケット呼び出しに不正なフラグ (\fBMSG_OOB\fP など) が渡された。
+.TP 
+\fBEPERM\fP
+ユーザーは raw ソケットをオープンする権限を持っていない。 実行ユーザー ID が 0 のプロセスか、 \fBCAP_NET_RAW\fP
+属性を持つプロセスだけがこれを行うことができる。
+.TP 
+\fBEPROTO\fP
+パラメータの問題を報告する ICMP エラーを受け取った。
+.SH バージョン
+\fBIP_RECVERR\fP と \fBICMP_FILTER\fP は Linux 2.2 で登場した。これらは Linux での拡張であり、
+移植性の必要なプログラムでは用いるべきでない。
+
+Linux 2.0 では \fBSO_BSDCOMPAT\fP ソケットオプションをセットすると、 BSD の raw
+ソケットにあるバグに互換性を取ることができた \(em Linux 2.2 以降では、このオプションはもはや効力を持たない。
+.SH 注意
+デフォルトでは、raw ソケットは Path MTU Discovery を行う。 つまり、カーネルは特定の宛先 IP アドレスの MTU
+(Maximum Transmission Unit; 最大転送単位) を記録し、raw パケットの書き込みが MTU を超えた場合
+\fBEMSGSIZE\fP を返す。 \fBEMSGSIZE\fP を返された場合、アプリケーションはパケットサイズを小さくすべきである。 ソケットオプション
+\fBIP_MTU_DISCOVER\fP または \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP ファイルを使って Path
+MTU Discovery を無効にすることもできる (詳細は \fBip\fP(7)  を参照)。 Path MTU Discovery
+を無効にした場合は、パケットサイズが インタフェースの MTU よりも大きいと raw ソケットはそのパケットを フラグメント化して送出する。
+しかしながら、性能と信頼性の理由から Path MTU Discovery を 無効にするのは推奨できない。
+
+\fBbind\fP(2)  システムコールを用いると、 raw ソケットを 特定のローカルアドレスにバインドさせることができる。
+このバインドがされていない場合は、指定した IP プロトコルの すべてのパケットが受信される。 さらに、 \fBSO_BINDTODEVICE\fP
+を用いれば raw ソケットを特定のネットワークデバイスに バインドさせることもできる。 \fBsocket\fP(7)  を見よ。
+
+\fBIPPROTO_RAW\fP ソケットは送信専用である。もしどうしてもすべての IP パケットを 受信したい場合は、 \fBpacket\fP(7)
+ソケットを \fBETH_P_IP\fP プロトコルで用いること。 packet ソケットは raw ソケットのように IP
+フラグメントを再構成しないことに注意。
+
+datagram ソケットに対するすべての ICMP パケットを受信したい場合は、 特定のソケットに対して \fBIP_RECVERR\fP
+を用いるほうが良い場合が多い。 \fBip\fP(7)  を見よ。
+
+raw ソケットは、 Linux のすべての IP プロトコルを受信することができる。 ICMP や TCP
+のように、カーネル内部にプロトコルモジュールを持つような ものも可能である。この場合には、パケットはカーネルモジュールと raw
+ソケットの両方に渡される (raw ソケットが複数あればそれぞれに渡される)。 移植性の必要なプログラムではこの機能に依存するべきではない。 他の多くの
+BSD におけるソケットの実装ではこの点において制限がある。
+
+Linux はユーザーから渡されたヘッダを決して変更しない (ただし \fBIP_HDRINCL\fP の説明にあるように、 0
+をいくつか埋める場合を除く)。 これは他の多くの raw ソケットの実装では異なる。
+
+一般に raw ソケットは移植性がないことが多いので、 移植性が必要なプログラムでは避けるべきである。
+
+raw ソケットへの送信では、 IP プロトコルを \fIsin_port\fP から取得できなければならない。この機能は Linux 2.2
+では使えなくなった。 \fBIP_HDRINCL\fP を用いれば同様のことが実現できる。
+.SH バグ
+透過プロクシ (transparent proxy) 拡張については記述していない。
+
+\fBIP_HDRINCL\fP オプションがセットされているとデータグラムはフラグメント化されず、 インターフェースの MTU の大きさに制限される。
+
+.\" .SH AUTHORS
+.\" This man page was written by Andi Kleen.
+送信用の IP プロトコルの設定を \fIsin_port\fP にしておく機能は Linux 2.2 から使えなくなった。
+ソケットにバインドされているプロトコルか、最初の \fBsocket\fP(2)  コールによって指定されたプロトコルが常に用いられる。
+.SH 関連項目
+\fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBip\fP(7), \fBsocket\fP(7)
+
+Path MTU discovery に関しては \fBRFC\ 1191\fP を参照。 IP プロトコルに関しては \fBRFC\ 791\fP
+とインクルードファイル \fI<linux/ip.h>\fP を参照。
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。