OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / draft / man7 / packet.7
index ce01d0d..2255008 100644 (file)
 .\" Updated 2001-02-13, Kentaro Shirakata <argrath@ub32.org>
 .\" Updated 2005-02-21, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\"
-.\"WORD                physical layer          ÊªÍýÁØ
-.\"WORD                link level header(s)    ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À
-.\"WORD                phyxical header(s)      ÊªÍý¥Ø¥Ã¥À
-.\"WORD                effective user id       ¼Â¸ú¥æ¡¼¥¶¡¼ ID
-.\"WORD                capability              ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£
-.\"WORD                pending error           Ãٱ䥨¥é¡¼
-.\"WORD                promiscuous mode        Ìµº¹Ê̥⡼¥É
+.\"WORD                physical layer          物理層
+.\"WORD                link level header(s)    リンクレベルヘッダ
+.\"WORD                phyxical header(s)      物理ヘッダ
+.\"WORD                effective user id       å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ ID
+.\"WORD                capability              ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£
+.\"WORD                pending error           é\81\85延ã\82¨ã\83©ã\83¼
+.\"WORD                promiscuous mode        無差別モード
 .\"
 .TH PACKET  7 2008-08-08 "Linux" "Linux Programmer's Manual"
 .\"O .SH NAME
-.SH Ì¾Á°
+.SH 名前
 .\"O packet, AF_PACKET \- packet interface on device level.
-packet, AF_PACKET \- ¥Ç¥Ð¥¤¥¹¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
+packet, AF_PACKET \- ã\83\87ã\83\90ã\82¤ã\82¹ã\83¬ã\83\99ã\83«ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
 .\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
 .nf
 .B #include <sys/socket.h>
 .br
@@ -35,15 +35,15 @@ packet, AF_PACKET \- 
 .BI "packet_socket = socket(AF_PACKET, int " socket_type ", int "protocol );
 .fi
 .\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
 .\"O Packet sockets are used to receive or send raw packets at the device driver
 .\"O (OSI Layer 2) level.
 .\"O They allow the user to implement protocol modules in user space
 .\"O on top of the physical layer.
-packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð (OSI ¥ì¥¤¥ä 2) ¥ì¥Ù¥ë¤Ç
-À¸¤Î¥Ñ¥±¥Ã¥È (raw packet) ¤òÁ÷¼õ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
-packet ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤ÇʪÍýÁؤξå¤Ë
-¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+packet ソケットは、デバイスドライバ (OSI レイヤ 2) レベルで
+生のパケット (raw packet) を送受信するために用いられる。
+packet ソケットを使うと、ユーザー空間で物理層の上に
+プロトコルモジュールを実装することができる。
 
 .\"O The
 .\"O .I socket_type
@@ -67,37 +67,37 @@ packet 
 .\"O All incoming packets of that protocol type will be passed to the packet
 .\"O socket before they are passed to the protocols implemented in the kernel.
 .I socket_type
-¤Ë¤Ï
+には
 .B SOCK_RAW
-¤È
+と
 .B SOCK_DGRAM
-¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£
+のいずれかを指定する。
 .B SOCK_RAW
-¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò´Þ¤à raw ¥Ñ¥±¥Ã¥È¤ò¡¢
+はリンクレベルヘッダを含む raw パケットを、
 .B SOCK_DGRAM
-¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤¬ºï½ü¤µ¤ì¤¿²Ã¹©ºÑ¤ß¥Ñ¥±¥Ã¥È¤ò¼¨¤¹¡£
-¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¾ðÊó¤Ï
+はリンクレベルヘッダが削除された加工済みパケットを示す。
+リンクレベルヘッダ情報は
 .I sockaddr_ll
-¤Ç¶¦Ä̤Υե©¡¼¥Þ¥Ã¥È¤ÇÆþ¼ê¤Ç¤­¤ë¡£
+で共通のフォーマットで入手できる。
 .I protocol
-¤Ë¤Ï IEEE 802.3 ¥×¥í¥È¥³¥ëÈÖ¹æ¤ò
-¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£
-»ØÄê¤Ç¤­¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
+には IEEE 802.3 プロトコル番号を
+ネットワークバイトオーダーで指定する。
+指定できるプロトコルのリストは、インクルードファイル
 .I <linux/if_ether.h>
-¤ò»²¾È¡£¥×¥í¥È¥³¥ë¤ò
+を参照。プロトコルを
 .B htons(ETH_P_ALL)
-¤Ë¤¹¤ë¤È¡¢Á´¤Æ¤Î¥×¥í¥È¥³¥ë¤¬¼õ¿®¤µ¤ì¤ë¡£
-³°Éô¤«¤éÍ褿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á»ØÄꤷ¤¿¥×¥í¥È¥³¥ë¤Î¤â¤Î¤Ï¡¢
-¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤ËÅϤµ¤ì¤ëÁ°¤ÎÃʳ¬¤Ç¡¢
-packet ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£
+にすると、全てのプロトコルが受信される。
+外部から来たパケットのうち指定したプロトコルのものは、
+カーネルに実装されているプロトコルに渡される前の段階で、
+packet ソケットに渡される。
 
 .\"O Only processes with effective UID 0 or the
 .\"O .B CAP_NET_RAW
 .\"O capability may open packet sockets.
-packet ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤Î¤Ï¡¢
-¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢
+packet ソケットをオープンできるのは、
+実効ユーザーID が 0 のプロセスか、
 .B CAP_NET_RAW
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£
+ケーパビリティを持つプロセスだけである。
 
 .\"O .B SOCK_RAW
 .\"O packets are passed to and from the device driver without any changes in
@@ -117,20 +117,20 @@ packet 
 .\"O .B AF_INET/SOCK_PACKET
 .\"O of Linux 2.0.
 .B SOCK_RAW
-¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¼õ¤±ÅϤ·¤¹¤ëºÝ¡¢
-¥Ñ¥±¥Ã¥È¥Ç¡¼¥¿¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
-¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¤Î²òÀϤÀ¤±¤Ï¹Ô¤ï¤ì¡¢
-ɸ½àŪ¤Ê
+パケットでは、パケットをデバイスドライバと受け渡しする際、
+パケットデータに変更が行われることはない。
+パケットの受信時には、アドレスの解析だけは行われ、
+標準的な
 .I sockaddr_ll
-¥¢¥É¥ì¥¹¹½Â¤ÂΤËÅϤµ¤ì¤ë¡£¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®»þ¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬»ØÄꤹ¤ë
-¥Ð¥Ã¥Õ¥¡¤ËʪÍýÁؤΥإåÀ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£
-¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¤Þ¤Þ½¤Àµ¤ò¼õ¤±¤º¤Ë¡¢¹Ô¤­À襢¥É¥ì¥¹¤«¤é·èÄꤵ¤ì¤ë
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥É¥é¥¤¥Ð¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¤ò¾ï¤ËÄɲ乤ë¤â¤Î¤â¤¢¤ë¡£
+アドレス構造体に渡される。パケットの送信時には、ユーザが指定する
+バッファに物理層のヘッダが含まれている必要がある。
+パケットはそのまま修正を受けずに、行き先アドレスから決定される
+インターフェースのネットワークドライバにキューイングされる。
+デバイスドライバによっては、他のヘッダを常に追加するものもある。
 .B SOCK_RAW
-¤Ï Linux 2.0 ¤Î obosolete ¤Ê
+は Linux 2.0 の obosolete な
 .B AF_INET/SOCK_PACKET
-¤È»÷¤Æ¤¤¤ë¤¬¡¢¸ß´¹À­¤¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
+と似ているが、互換性があるわけではない。
 
 .\"O .B SOCK_DGRAM
 .\"O operates on a slightly higher level.
@@ -142,13 +142,13 @@ packet 
 .\"O .I sockaddr_ll
 .\"O destination address before they are queued.
 .B SOCK_DGRAM
-¤Ï¤ä¤ä¹â°Ì¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¡£ÊªÍý¥Ø¥Ã¥À¤Ï¡¢¥Ñ¥±¥Ã¥È¤¬¥æ¡¼¥¶¡¼¤Ë
-ÅϤµ¤ì¤ëÁ°¤Ëºï½ü¤µ¤ì¤ë¡£
+はやや高位のレベルで動作する。物理ヘッダは、パケットがユーザーに
+渡される前に削除される。
 .B SOCK_DGRAM
-¤Î packet ¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥È¤Ï¡¢
+の packet ソケットを通して送られるパケットは、
 .I sockaddr_ll
-¤Î¹Ô¤­À襢¥É¥ì¥¹¤Î¾ðÊó¤Ë´ð¤Å¤­¡¢Å¬ÀÚ¤ÊʪÍýÁؤΥإåÀ¤¬Éղ䵤ì¤Æ¤«¤é¡¢
-¥­¥å¡¼¤ËÁ÷¤é¤ì¤ë¡£
+の行き先アドレスの情報に基づき、適切な物理層のヘッダが付加されてから、
+キューに送られる。
 
 .\"O By default all packets of the specified protocol type
 .\"O are passed to a packet socket.
@@ -162,24 +162,24 @@ packet 
 .\"O and the
 .\"O .I sll_ifindex
 .\"O address fields are used for purposes of binding.
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥È¥³¥ë·¿¤Î¥Ñ¥±¥Ã¥È¤Ï¤¹¤Ù¤Æ packet
-¥½¥±¥Ã¥È¤ËÁ÷¤é¤ì¤ë¡£ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¤Î¥Ñ¥±¥Ã¥È¤À¤±¤ò
-¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
+デフォルトでは、指定したプロトコル型のパケットはすべて packet
+ソケットに送られる。特定のインターフェースからのパケットだけを
+取得したい場合には、
 .I struct sockaddr_ll
-¤Ë¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ
+にアドレスを指定して
 .BR bind (2)
-¤ò¸Æ¤Ó¡¢ packet ¥½¥±¥Ã¥È¤ò¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë·ë¤ÓÉÕ¤±¤ë (¥Ð¥¤¥ó¥É¤¹¤ë)¡£
-¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á
+を呼び、 packet ソケットをそのインターフェースに結び付ける (バインドする)。
+バインドの際には、アドレスフィールドのうち
 .I sll_protocol
-¤È
+と
 .I sll_ifindex
-¤À¤±¤¬ÍѤ¤¤é¤ì¤ë¡£
+だけが用いられる。
 
 .\"O The
 .\"O .BR connect (2)
 .\"O operation is not supported on packet sockets.
 .BR connect (2)
-Áàºî¤Ï packet ¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+操作は packet ソケットではサポートされていない。
 
 .\"O When the
 .\"O .B MSG_TRUNC
@@ -190,16 +190,16 @@ packet 
 .\"O the real length of the packet on the wire is always returned,
 .\"O even when it is longer than the buffer.
 .B MSG_TRUNC
-¥Õ¥é¥°¤¬
+フラグが
 .BR recvmsg (2),
 .BR recv (2),
 .BR recvfrom (2)
-¤ËÅϤµ¤ì¤ë¤È¡¢ (¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤è¤êÂ礭¤«¤Ã¤¿¤È¤·¤Æ¤â) ¾ï¤Ë¼ÂºÝ¤ËÄÌ¿®¤µ¤ì¤¿
-¥Ñ¥±¥Ã¥È¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£
+に渡されると、 (バッファサイズより大きかったとしても) 常に実際に通信された
+パケットの長さが返される。
 .\"O .SS Address Types
-.SS ¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×
+.SS アドレスのタイプ
 .\"O The sockaddr_ll is a device independent physical layer address.
-sockaddr_ll ¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤ÊªÍýÁؤΥ¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
+sockaddr_ll はデバイスに依存しない物理層のアドレスである。
 
 .in +4n
 .nf
@@ -213,13 +213,13 @@ sockaddr_ll 
 .\"O     unsigned char  sll_addr[8];  /* Physical layer address */
 .\"O };
 struct sockaddr_ll {
-    unsigned short sll_family;   /* ¾ï¤Ë AF_PACKET */
-    unsigned short sll_protocol; /* ÊªÍýÁؤΥץí¥È¥³¥ë */
-    int            sll_ifindex;  /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */
-    unsigned short sll_hatype;   /* ¥Ø¥Ã¥À¼ïÊÌ */
-    unsigned char  sll_pkttype;  /* ¥Ñ¥±¥Ã¥È¼ïÊÌ */
-    unsigned char  sll_halen;    /* ¥¢¥É¥ì¥¹¤ÎŤµ */
-    unsigned char  sll_addr[8];  /* ÊªÍýÁؤΥ¢¥É¥ì¥¹ */
+    unsigned short sll_family;   /* 常に AF_PACKET */
+    unsigned short sll_protocol; /* 物理層のプロトコル */
+    int            sll_ifindex;  /* インターフェース番号 */
+    unsigned short sll_hatype;   /* ヘッダ種別 */
+    unsigned char  sll_pkttype;  /* パケット種別 */
+    unsigned char  sll_halen;    /* アドレスの長さ */
+    unsigned char  sll_addr[8];  /* ç\89©ç\90\86層ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ */
 };
 .fi
 .in
@@ -231,12 +231,12 @@ struct sockaddr_ll {
 .\"O include file.
 .\"O It defaults to the socket's protocol.
 .I sll_protocol
-¤Ïɸ½àŪ¤Ê¥¤¡¼¥µ¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤Î¥¿¥¤¥×¤Ç¡¢
-¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤¹¤ë¡£
-¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
+は標準的なイーサネットプロトコルのタイプで、
+ネットワークバイトオーダーで記述する。
+インクルードファイル
 .I <linux/if_ether.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-¤³¤ì¤¬¤³¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£
+で定義されている。
+これがこのソケットのプロトコルのデフォルトとなる。
 
 .\"O .I sll_ifindex
 .\"O is the interface index of the interface
@@ -244,19 +244,19 @@ struct sockaddr_ll {
 .\"O .BR netdevice (7));
 .\"O 0 matches any interface (only permitted for binding).
 .I sll_ifindex
-¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë
+はそのインターフェースの interface index である
 .RB ( netdevice (7)
-¤ò»²¾È)¡£
-0 ¤Ï (¥Ð¥¤¥ó¥É¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë)  Ç¤°Õ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
+を参照)。
+0 は (バインドが許可されている)  任意のインターフェースにマッチする。
 
 .\"O .I sll_hatype
 .\"O is a ARP type as defined in the
 .\"O .I <linux/if_arp.h>
 .\"O include file.
 .I sll_hatype
-¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
+は、インクルードファイル
 .I <linux/if_arp.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë ARP ¼ïÊ̤Ǥ¢¤ë¡£
+で定義されている ARP 種別である。
 
 .\"O .I sll_pkttype
 .\"O contains the packet type.
@@ -275,20 +275,20 @@ struct sockaddr_ll {
 .\"O socket.
 .\"O These types make only sense for receiving.
 .I sll_pkttype
-¤Ï¥Ñ¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë¡£»ØÄê¤Ç¤­¤ë¼ïÊ̤ϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë:
+はパケット種別である。指定できる種別は以下のいずれかである:
 .B PACKET_HOST
-(¥í¡¼¥«¥ë¥Û¥¹¥È¸þ¤±¤Î¥Ñ¥±¥Ã¥È)¡¢
+(ローカルホスト向けのパケット)、
 .B PACKET_BORADCAST
-(ʪÍýÁØ¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È)¡¢
+(物理層のブロードキャストパケット)、
 .B PACKET_MULTICAST
-(ʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤ë¥Ñ¥±¥Ã¥È)¡¢
+(物理層のマルチキャストアドレスに送るパケット)、
 .B PACKET_OTHERHOST
-(¾¤Î¥Û¥¹¥È¤Ë¸þ¤±¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á¡¢
-̵º¹Ê̥⡼¥É (promiscuous mode: ¸å½Ò) ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤êÊä­¤µ¤ì¤¿¤â¤Î)¡¢
+(他のホストに向けられたパケットのうち、
+無差別モード (promiscuous mode: 後述) のデバイスドライバにより補足されたもの)、
 .B PACKET_OUTGOING
-(¥í¡¼¥«¥ë¥Û¥¹¥È¤«¤éȯ¿®¤µ¤ì¡¢
-packet ¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤·¤Æ¤­¤¿¥Ñ¥±¥Ã¥È)¡£
-¤³¤ì¤é¤Î¼ïÊ̤¬°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¼õ¿®»þ¤Î¤ß¤Ç¤¢¤ë¡£
+(ローカルホストから発信され、
+packet ソケットにループバックしてきたパケット)。
+これらの種別が意味を持つのは受信時のみである。
 
 .\"O .I sll_addr
 .\"O and
@@ -296,44 +296,44 @@ packet 
 .\"O contain the physical layer (e.g., IEEE 802.3) address and its length.
 .\"O The exact interpretation depends on the device.
 .I sll_addr
-¤È
+と
 .I sll_halen
-¤Ï¡¢ÊªÍýÁؤΠ(¤Ä¤Þ¤ê IEEE 802.3 ¤Î) ¥¢¥É¥ì¥¹¤È¤½¤ÎŤµ¤Ç¤¢¤ë¡£
-¸·Ì©¤Ê²ò¼á¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤¹¤ë¡£
+は、物理層の (つまり IEEE 802.3 の) アドレスとその長さである。
+厳密な解釈はデバイスに依存する。
 
 .\"O When you send packets it is enough to specify
 .\"O .IR sll_family ,
 .\"O .IR sll_addr ,
 .\"O .IR sll_halen ,
 .\"O .IR sll_ifindex .
-¥Ñ¥±¥Ã¥È¤òÁ÷¤ë¾ì¹ç¤Ï¡¢
+パケットを送る場合は、
 .IR sll_family ,
 .IR sll_addr ,
 .IR sll_halen ,
 .I sll_ifindex
-¤ò»ØÄꤹ¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£
+を指定すれば十分である。
 .\"O The other fields should be 0.
-¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£
+その他のフィールドは 0 にしておくべきである。
 .\"O .I sll_hatype
 .\"O and
 .\"O .I sll_pkttype
 .\"O are set on received packets for your information.
 .I sll_hatype
-¤È
+と
 .I sll_pkttype
-¤Ë¤Ï¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¾ðÊó¤¬ÀßÄꤵ¤ì¤ë¡£
+には受信したパケットの情報が設定される。
 .\"O For bind only
 .\"O .I sll_protocol
 .\"O and
 .\"O .I sll_ifindex
 .\"O are used.
-¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢
+バインドの際には、
 .I sll_protocol
-¤È
+と
 .I sll_ifindex
-¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£
+だけが使用される。
 .\"O .SS Socket Options
-.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó
+.SS ソケットオプション
 .\"O Packet sockets can be used to configure physical layer multicasting
 .\"O and promiscuous mode.
 .\"O It works by calling
@@ -348,20 +348,20 @@ packet 
 .\"O They both expect a
 .\"O .B packet_mreq
 .\"O structure as argument:
-packet ¥½¥±¥Ã¥È¤Ï¡¢ÊªÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¤ä
-̵º¹Ê̥⡼¥É (promiscuous mode) ¤òÀßÄꤷ¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤ì¤Ë¤Ï
+packet ソケットは、物理層のマルチキャストや
+無差別モード (promiscuous mode) を設定して使うことができる。
+これには
 .B SOL_PACKET
-¤È°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Æ
+と以下のオプションのいずれかを指定して
 .BR setsockopt (2)
-¤ò¸Æ¤Ù¤Ð¤è¤¤¡£
-¥Ð¥¤¥ó¥É¤òÄɲ乤ë¾ì¹ç¤Ï
+を呼べばよい。
+バインドを追加する場合は
 .B PACKET_ADD_MEMBERSHIP
-¤Ç¤¢¤ê¡¢¼è¤êµî¤ë¾ì¹ç¤Ï
+であり、取り去る場合は
 .B PACKET_DROP_MEMBERSHIP
-¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¤¤¤º¤ì¤â
+である。これらはいずれも
 .B packet_mreq
-¹½Â¤ÂΤò°ú¤­¿ô¤Ë¼è¤ë¡£
+構造体を引き数に取る。
 
 .in +4n
 .nf
@@ -372,10 +372,10 @@ packet 
 .\"O     unsigned char  mr_address[8]; /* physical layer address */
 .\"O };
 struct packet_mreq {
-    int            mr_ifindex;    /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */
-    unsigned short mr_type;       /* Æ°ºî */
-    unsigned short mr_alen;       /* ¥¢¥É¥ì¥¹¤ÎŤµ */
-    unsigned char  mr_address[8]; /* ÊªÍýÁؤΥ¢¥É¥ì¥¹ */
+    int            mr_ifindex;    /* インターフェース番号 */
+    unsigned short mr_type;       /* 動作 */
+    unsigned short mr_alen;       /* アドレスの長さ */
+    unsigned char  mr_address[8]; /* ç\89©ç\90\86層ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ */
 };
 .fi
 .in
@@ -399,33 +399,33 @@ struct packet_mreq {
 .\"O sets the socket up to receive all multicast packets arriving at
 .\"O the interface.
 .I mr_ifindex
-¤Ï¡¢¥¹¥Æ¡¼¥¿¥¹¤òÊѹ¹¤·¤¿¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ¤Ç¤¢¤ë¡£
+は、ステータスを変更したいインターフェースの
+インターフェース番号である。
 .I mr_type
-¥Ñ¥é¥á¡¼¥¿¤Ï¼Â¹Ô¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë:
+パラメータは実行する動作を指定する:
 .B PACKET_MR_PROMISC
-¤Ï¡¢¶¦Í­¤·¤Æ¤¤¤ëÇÞÂΤ«¤é¤ÎÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë
-(¤·¤Ð¤·¤Ð "̵º¹Ê̥⡼¥É (promiscuous mode)" ¤È¸Æ¤Ð¤ì¤ë)¡£
+は、共有している媒体からの全てのパケットを受信できるようにする
+(しばしば "無差別モード (promiscuous mode)" と呼ばれる)。
 .B PACKET_MR_MULTICAST
-¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤ò¡¢
+は、そのソケットを、
 .I mr_address
-¤È
+と
 .I mr_alen
-¤Ç»ØÄꤵ¤ì¤ëʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Ö¥ë¡¼¥×¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£
+で指定される物理層のマルチキャストブループにバインドする。
 .B PACKET_MR_ALLMULTI
-¤Ï socket ¤ò up ¤Ë¤·¤Æ¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÅþ㤷¤¿¤¹¤Ù¤Æ¤Î
-¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£
+は socket を up にして、そのインターフェースに到達したすべての
+マルチキャストパケットを受信できるようにする。
 
 .\"O In addition the traditional ioctls
 .\"O .BR SIOCSIFFLAGS ,
 .\"O .BR SIOCADDMULTI ,
 .\"O .B SIOCDELMULTI
 .\"O can be used for the same purpose.
-ÀΤ«¤é¤¢¤ë ioctl ¤À¤±¤Ç¤Ê¤¯¡¢
+昔からある ioctl だけでなく、
 .BR SIOCSIFFLAGS ,
 .BR SIOCADDMULTI ,
 .B SIOCDELMULTI
-¤òƱ¤¸ÌÜŪ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+を同じ目的に用いることができる。
 .\"O .SS Ioctls
 .SS ioctl
 .\"O .B SIOCGSTAMP
@@ -433,10 +433,10 @@ struct packet_mreq {
 .\"O Argument is a
 .\"O .IR "struct timeval" .
 .B SIOCGSTAMP
-¤òÍѤ¤¤ë¤È¡¢ºÇ¸å¤Ë¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-°ú¤­¿ô¤Ï
+を用いると、最後に受信したパケットのタイムスタンプを得ることができる。
+引き数は
 .I struct timeval
-¤Ç¤¢¤ë¡£
+である。
 .\" FIXME Document SIOCGSTAMPNS
 
 .\"O In addition all standard ioctls defined in
@@ -444,89 +444,89 @@ struct packet_mreq {
 .\"O and
 .\"O .BR socket (7)
 .\"O are valid on packet sockets.
-¤µ¤é¤Ë¡¢
+さらに、
 .BR netdevice (7)
-¤ª¤è¤Ó
+および
 .BR socket (7)
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëɸ½à¤Î ioctl ¤Ï¤¤¤º¤ì¤â
-packet ¥½¥±¥Ã¥È¤Ë»ØÄê²Äǽ¤Ç¤¢¤ë¡£
+で定義されている標準の ioctl はいずれも
+packet ソケットに指定可能である。
 .\"O .SS Error Handling
-.SS ¥¨¥é¡¼½èÍý
+.SS エラー処理
 .\"O Packet sockets do no error handling other than errors occurred
 .\"O while passing the packet to the device driver.
 .\"O They don't have the concept of a pending error.
-packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÅϤ¹¤È¤­¤Ë
-µ¯¤­¤¿¥¨¥é¡¼¤·¤«½èÍý¤·¤Ê¤¤¡£Ãٱ䥨¥é¡¼ (pending error)
-¤Ë´Ø¤¹¤ë³µÇ°¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
+packet ソケットは、パケットをデバイスドライバに渡すときに
+èµ·ã\81\8dã\81\9fã\82¨ã\83©ã\83¼ã\81\97ã\81\8bå\87¦ç\90\86ã\81\97ã\81ªã\81\84ã\80\82é\81\85延ã\82¨ã\83©ã\83¼ (pending error)
+に関する概念は持っていない。
 .\"O .SH ERRORS
-.SH ¥¨¥é¡¼
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EADDRNOTAVAIL
 .\"O Unknown multicast group address passed.
-ÉÔÌÀ¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤¿¡£
+不明なマルチキャストグループアドレスが渡された。
 .TP
 .B EFAULT
 .\"O User passed invalid memory address.
-¥æ¡¼¥¶¤¬ÅϤ·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£
+ユーザが渡したメモリアドレスが不正。
 .TP
 .B EINVAL
 .\"O Invalid argument.
-°ú¤­¿ô¤¬ÉÔÀµ¡£
+引き数が不正。
 .TP
 .B EMSGSIZE
 .\"O Packet is bigger than interface MTU.
-¥Ñ¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤êÂ礭¤¤¡£
+パケットがインターフェースの MTU より大きい。
 .TP
 .B ENETDOWN
 .\"O Interface is not up.
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤Ç¤Ê¤¤¡£
+インターフェースが up でない。
 .TP
 .B ENOBUFS
 .\"O Not enough memory to allocate the packet.
-¥Ñ¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
+パケットに割り当てるメモリが足りない。
 .TP
 .B ENODEV
 .\"O Unknown device name or interface index specified in interface address.
-¥Ç¥Ð¥¤¥¹Ì¾¤¬ÉÔÌÀ¡£¤¢¤ë¤¤¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÌÀ¡£
+デバイス名が不明。あるいはインターフェースアドレスで指定された
+インターフェースインデックスが不明。
 .TP
 .B ENOENT
 .\"O No packet received.
-¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤â¼õ¿®¤·¤Æ¤¤¤Ê¤¤¡£
+パケットを一つも受信していない。
 .TP
 .B ENOTCONN
 .\"O No interface address passed.
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤Ê¤«¤Ã¤¿¡£
+インターフェースアドレスが渡されなかった。
 .TP
 .B ENXIO
 .\"O Interface address contained an invalid interface index.
-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ËÉÔÀµ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
+インターフェースアドレスに不正なインターフェースインデックスが含まれている。
 .TP
 .B EPERM
 .\"O User has insufficient privileges to carry out this operation.
-¤³¤ÎÁàºî¤ò¹Ô¤¦¤Î¤ËɬÍפʸ¢¸Â¤ò¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
+この操作を行うのに必要な権限をユーザが持っていない。
 
 .\"O In addition other errors may be generated by the low-level driver.
-¾åµ­°Ê³°¤Î¥¨¥é¡¼¤¬¡¢Äã¥ì¥Ù¥ë¤Î¥É¥é¥¤¥Ð¤ÇÀ¸À®¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£
+上記以外のエラーが、低レベルのドライバで生成されることがある。
 .\"O .SH VERSIONS
-.SH ¥Ð¡¼¥¸¥ç¥ó
+.SH バージョン
 .\"O .B AF_PACKET
 .\"O is a new feature in Linux 2.2.
 .\"O Earlier Linux versions supported only
 .\"O .BR SOCK_PACKET .
 .B AF_PACKET
-¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£¤³¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï
+は Linux 2.2 の新機能である。これより古いバージョンの Linux では
 .B SOCK_PACKET
-¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£
+のみをサポートしていた。
 .PP
 .\"O The include file
 .\"O .I <netpacket/packet.h>
 .\"O is present since glibc 2.1.
 .\"O Older systems need:
-¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
+インクルードファイル
 .I <netpacket/packet.h>
-¤¬Â¸ºß¤¹¤ë¤Î¤Ï glibc 2.1 °Ê¹ß¤Ç¤¢¤ë¡£
-¤½¤ì°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë:
+が存在するのは glibc 2.1 以降である。
+それ以前のシステムでは以下のようにする必要がある:
 .sp
 .in +4n
 .nf
@@ -536,7 +536,7 @@ packet 
 .fi
 .in
 .\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
 .\"O For portable programs it is suggested to use
 .\"O .B AF_PACKET
 .\"O via
@@ -544,13 +544,13 @@ packet 
 .\"O although this only covers a subset of the
 .\"O .B AF_PACKET
 .\"O features.
-°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢
+移植性の必要なプログラムでは、
 .BR pcap (3)
-·Ðͳ¤Ç
+経由で
 .B AF_PACKET
-¤òÍѤ¤¤ë¤³¤È¤ò¤ªÁ¦¤á¤¹¤ë¡£¤¿¤À¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï
+を用いることをお薦めする。ただし、この方法では
 .B AF_PACKET
-¤Îµ¡Ç½¤¹¤Ù¤Æ¤òÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
+の機能すべてを利用することはできない。
 
 .\"O The
 .\"O .B SOCK_DGRAM
@@ -573,28 +573,28 @@ packet 
 .\"O The default for sending is the standard Ethernet DIX
 .\"O encapsulation with the protocol filled in.
 .B SOCK_DGRAM
-packet ¥½¥±¥Ã¥È¤Ï¡¢IEEE 802.3 ¥Õ¥ì¡¼¥à¤Î IEEE 802.2 LLC ¥Ø¥Ã¥À¤Î
-À¸À®¤ä²òÀϤò¹Ô¤ª¤¦¤È¤·¤Ê¤¤¡£
+packet ソケットは、IEEE 802.3 フレームの IEEE 802.2 LLC ヘッダの
+生成や解析を行おうとしない。
 .B ETH_P_802_3
-¤¬Á÷¿®¥×¥í¥È¥³¥ë¤Ë»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï 802.3 ¥Õ¥ì¡¼¥à¤ò
-À¸À®¤·¤Æ length ¥Õ¥£¡¼¥ë¥É¤Ë½ñ¤­¹þ¤à¡£
-´°Á´¤Ë½àµò¤·¤¿¥Ñ¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬ LLC ¥Ø¥Ã¥À¤ò
-Í¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ÅþÃ夷¤¿ 802.3 ¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢
-DSAP/SSAP protocol ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤Ï¿½Å²½ (multiplex) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-Âå¤ï¤ê¤Ë¤³¤ì¤é¤Ï LLC ¥Ø¥Ã¥À¤¬Á°ÃÖ¤µ¤ì¤¿
+が送信プロトコルに指定されると、カーネルは 802.3 フレームを
+生成して length フィールドに書き込む。
+完全に準拠したパケットを得るためにはユーザーが LLC ヘッダを
+与える必要がある。到着した 802.3 パケットでは、
+DSAP/SSAP protocol の各フィールドは多重化 (multiplex) されていない。
+代わりにこれらは LLC ヘッダが前置された
 .B ETH_P_802_2
-¥×¥í¥È¥³¥ë¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢
+プロトコルとして与えられる。したがって、
 .B ETH_P_802_3
-¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë
+にバインドすることはできない。かわりに
 .B ETH_P_802_2
-¤Ë¥Ð¥¤¥ó¥É¤·¡¢¼«Ê¬¼«¿È¤Ç¥×¥í¥È¥³¥ë¤Î¿½Å²½¤ò¹Ô¤¦¤³¤È¡£
-Á÷¿®¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä
-ɸ½à¤Î Ethernet DIX encapsulation ¤Ç¤¢¤ë¡£
+にバインドし、自分自身でプロトコルの多重化を行うこと。
+送信のデフォルトは、プロトコルフィールドを持つ
+標準の Ethernet DIX encapsulation である。
 
 .\"O Packet sockets are not subject to the input or output firewall chains.
-packet ¥½¥±¥Ã¥È¤ÏÆþ½ÐÎϤΠfirewall chain ¤Ë±Æ¶Á¤ò¤¦¤±¤Ê¤¤¡£
+packet ソケットは入出力の firewall chain に影響をうけない。
 .\"O .SS Compatibility
-.SS °Ü¿¢À­
+.SS 移植性
 .\"O In Linux 2.0, the only way to get a packet socket was by calling
 .\"O .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR.
 .\"O This is still supported but strongly deprecated.
@@ -604,14 +604,14 @@ packet 
 .\"O .I struct sockaddr_pkt
 .\"O to specify an interface, which doesn't provide physical layer
 .\"O independence.
-Linux 2.0 ¤Ç¤Ï¡¢ packet ¥½¥±¥Ã¥È¤òÆÀ¤ëÊýË¡¤Ï
+Linux 2.0 では、 packet ソケットを得る方法は
 .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR
-¤ò¸Æ¤Ö¤ä¤êÊý¤·¤«¤Ê¤«¤Ã¤¿¡£¤³¤ÎÊýË¡¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢
-ÍѤ¤¤Ê¤¤¤³¤È¤ò¶¯¤¯¿ä¾©¤¹¤ë¡£¸½ºß¤ÎÊýË¡¤È¤Î¼ç¤Ê°ã¤¤¤Ï¡¢
+を呼ぶやり方しかなかった。この方法はまだサポートされているが、
+用いないことを強く推奨する。現在の方法との主な違いは、
 .B SOCK_PACKET
-¤Ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î»ØÄê¤Ë¸Å¤¤
+ではインターフェースの指定に古い
 .I struct sockaddr_pkt
-¤òÍѤ¤¤ëÅÀ¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤ÏʪÍýÁؤ«¤é¤ÎÆÈΩÀ­¤¬¤Ê¤¤¡£
+を用いる点である。これには物理層からの独立性がない。
 
 .in +4n
 .nf
@@ -633,25 +633,25 @@ struct sockaddr_pkt {
 .\"O .I spkt_device
 .\"O is the device name as a null-terminated string, for example, eth0.
 .I spkt_family
-¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢
+はデバイスのタイプ、
 .I spkt_protocol
-¤Ï
+は
 .I <sys/if_ether.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë IEEE 802.3 ¥×¥í¥È¥³¥ë¥¿¥¤¥×¡¢
+で定義されている IEEE 802.3 プロトコルタイプ、
 .I spkt_device
-¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÇÍ¿¤¨¤¿¤â¤Î (Îã: eth0) ¤Ç¤¢¤ë¡£
+はデバイスの名前を NULL 終端された文字列で与えたもの (例: eth0) である。
 
 .\"O This structure is obsolete and should not be used in new code.
-¤³¤Î¹½Â¤ÂΤϠobsolete ¤Ç¤¢¤ê¡¢
-¿·¤·¤¯¥³¡¼¥É¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£
+この構造体は obsolete であり、
+新しくコードを書く時には用いるべきでない。
 .\"O .SH BUGS
-.SH ¥Ð¥°
+.SH ã\83\90ã\82°
 .\"O glibc 2.1 does not have a define for
 .\"O .BR SOL_PACKET .
 .\"O The suggested workaround is to use:
-glibc 2.1 ¤Ë¤Ï
+glibc 2.1 には
 .B SOL_PACKET
-¤ÎÄêµÁ¤¬¤Ê¤¤¡£²óÈòºö¤È¤·¤Æ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤È¤è¤¤¡£
+の定義がない。回避策としては、以下のようにするとよい。
 .in +4n
 .nf
 
@@ -663,14 +663,14 @@ glibc 2.1 
 .in
 .\"O This is fixed in later glibc versions and also does not occur on
 .\"O libc5 systems.
-¤³¤ÎÌäÂê¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£
-libc5 ¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤³¤ÎÌäÂê¤Ï¤Ê¤¤¡£
+この問題は新しいバージョンの glibc では修正されている。
+libc5 のシステムにはこの問題はない。
 
 .\"O The IEEE 802.2/803.3 LLC handling could be considered as a bug.
-IEEE 802.2/803.3 ¤Î LLC ¤Î°·¤¤Êý¤Ï¡¢¥Ð¥°¤È¹Í¤¨¤Æ¤âÎɤ¤¤À¤í¤¦¡£
+IEEE 802.2/803.3 の LLC の扱い方は、バグと考えても良いだろう。
 
 .\"O Socket filters are not documented.
-¥½¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+ソケットフィルターについて記載されていない。
 
 .\"O The
 .\"O .B MSG_TRUNC
@@ -681,20 +681,20 @@ IEEE 802.2/803.3 
 .\"O .BR SOCK_DGRAM .
 .B MSG_TRUNC
 .BR recvmsg (2)
-³ÈÄ¥¤ÏÈó¾ï¤Ë¤Þ¤º¤¤Âнè¤Ç¤¢¤ê¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¤ÇÃÖ¤­´¹¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£
-º£¤Î¤È¤³¤í
+拡張は非常にまずい対処であり、制御メッセージで置き換えるべきである。
+今のところ
 .B SOCK_DGRAM
-·Ðͳ¤Ç¥Ñ¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤òÆÀ¤ëÊýË¡¤¬¤Ê¤¤¡£
+経由でパケットについていた宛先アドレスを得る方法がない。
 .\"O .\" .SH CREDITS
-.\" .SH Ãø¼Ô
+.\" .SH 著者
 .\"O .\" This man page was written by Andi Kleen with help from Matthew Wilcox.
 .\"O .\" AF_PACKET in Linux 2.2 was implemented
 .\"O .\" by Alexey Kuznetsov, based on code by Alan Cox and others.
-.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Matthew Wilcox ¤Î½õÎϤΤâ¤È¤Ë Andi Kleen ¤¬½ñ¤¤¤¿¡£
-.\" Linux 2.2 ¤Î AF_PACKET ¤Ï¡¢
-.\" Alan Cox ¤¿¤Á¤Î¥³¡¼¥É¤ò¤â¤È¤Ë¤·¤Æ Alexey Kuznetsov ¤¬¼ÂÁõ¤·¤¿¡£
+.\" この man ページは Matthew Wilcox の助力のもとに Andi Kleen が書いた。
+.\" Linux 2.2 の AF_PACKET は、
+.\" Alan Cox たちのコードをもとにして Alexey Kuznetsov が実装した。
 .\"O .SH SEE ALSO
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR socket (2),
 .BR pcap (3),
 .BR capabilities (7),
@@ -703,14 +703,14 @@ IEEE 802.2/803.3 
 .BR socket (7)
 
 .\"O RFC\ 894 for the standard IP Ethernet encapsulation.
-ɸ½à IP Ethernet encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 894 ¤Ë¤¢¤ë¡£
+標準 IP Ethernet encapsulation に関する情報は RFC\ 894 にある。
 
 .\"O RFC\ 1700 for the IEEE 802.3 IP encapsulation.
-IEEE 802.3 IP encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 1700 ¤Ë¤¢¤ë¡£
+IEEE 802.3 IP encapsulation に関する情報は RFC\ 1700 にある。
 
 .\"O The
 .\"O .I <linux/if_ether.h>
 .\"O include file for physical layer protocols.
-ʪÍýÁؤΥץí¥È¥³¥ë¤Ë´Ø¤¹¤ëµ­½Ò¤Ï
+物理層のプロトコルに関する記述は
 .I <linux/if_ether.h>
-¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£
+インクルードファイルにある。