aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man4/inet.4
blob: 473a9206ddb79e5ab7122b3c9153e203822282a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
.\" Copyright (c) 1983, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     From: @(#)inet.4	8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"	%Id: inet.4,v 1.8 1997/02/22 13:24:32 peter Exp %
.\"
.Dd February 14, 1995
.Dt INET 4
.Os BSD 4.2
.Sh 名称
.Nm inet
.Nd インターネットプロトコルファミリ
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <netinet/in.h>
.Sh 解説
インターネットプロトコルファミリは
.Em Internet Protocol
.Pq Tn IP
トランスポート層の上に位置し、インターネットアドレスフォーマットを
利用するプロトコル群です。
インターネットファミリは、
.Dv SOCK_STREAM , SOCK_DGRAM
および
.Dv SOCK_RAW
ソケットタイプのためのプロトコルのサポートを提供します。
.Dv SOCK_RAW
インタフェースは
.Tn IP
プロトコルへのアクセスを提供します。
.Sh アドレッシング
インターネットアドレスは 4 バイトの大きさであり、
ネットワーク標準フォーマットで格納されています (
.Tn VAX
では、ワード、バイトの順序を逆にしたものです)。
インクルードファイル
.Aq Pa netinet/in.h
では、このアドレスを
区分された共用体として定義しています。
.Pp
インターネットプロトコルファミリに結合されたソケットは、次の
アドレッシング構造体を利用します。
.Bd -literal -offset indent
struct sockaddr_in {
	u_char	sin_len;
	u_char	sin_family;
	u_short	sin_port;
	struct	in_addr sin_addr;
	char	sin_zero[8];
};
.Ed
.Pp
到着メッセージに対する
.Dq ワイルドカード
マッチングの効果を得る場合、
.Dv INADDR_ANY
ローカルアドレスを用いて、
ソケットを生成することができます。
.Xr connect 2
あるいは
.Xr sendto 2
の呼び出しで与えるアドレスとして、
.Dq このホスト
を意味するために、
.Dv INADDR_ANY
を与えても構いません。
もし最初からネットワークがブロードキャストをサポートするように設定
されていれば、
特別のアドレスである
.Dv INADDR_BROADCAST
が、プライマリネットワーク上のブロードキャストアドレスを表す略記として
許されています。
.Sh プロトコル
インターネットプロトコルファミリは、
.Tn IP
ネットワークプロトコル、
インターネットコントロールメッセージプロトコル
.Pq Tn ICMP
、インターネットグループマネジメントプロトコル
.Pq Tn IGMP
、トランスミッションコントロールプロトコル
.Pq Tn TCP
、およびユーザデータグラムプロトコル
.Pq Tn UDP
からなります。
.Tn TCP
は
.Dv SOCK_STREAM
アブストラクションをサポートするために使われ、
.Tn UDP
は
.Dv SOCK_DGRAM
アブストラクションをサポートするために使われます。
.Tn IP
に対する raw インタフェースが、
.Dv SOCK_RAW
タイプのインターネットソケットを生成することにより
利用可能です。
.Tn ICMP
メッセージプロトコルが raw ソケットからアクセス可能です。
.Pp
32 ビットのインターネットアドレスはネットワーク部とホスト部の
両方を含んでいます。
しかしながら、アドレスに対して直接検査することは推奨されません。
どうしてもアドレスをその 2 つの部分に分割する必要のあるプログラムの
ために、次の
.Xr ioctl 2
コマンドがインターネットドメインのデータグラムソケット向けに
提供されています。
それらは
.Dv SIOCIFADDR
コマンド (
.Xr intro 4
を参照 ) と同じ形式を持ちます。
.Pp
.Bl -tag -width SIOCSIFNETMASK
.It Dv SIOCSIFNETMASK
インタフェースのネットワークマスクを設定します。
ネットワークマスクはアドレスのネットワーク部を定義します。
もしそれがアドレスタイプが示すよりも多いアドレスを含むなら、
サブネットが使われています。
.It Dv SIOCGIFNETMASK
インタフェースのネットワークマスクを得ます。
.El
.Sh ルーティング
インターネットプロトコルの現在の実装は、トランザクション TCP
(Transaction TCP) および経路の MTU 検出 (Path MTU Discovery)
に必要なある種のエンドツーエンド情報に対する強力な
キャッシングを提供するために、ルーティングテーブルに対する
いくつかの調整を含んでいます。
次に示す変更が最も重要です :
.Bl -enum
.It
.Dv RTF_CLONING
フラグ付きあるいはマルチキャストの終点宛
以外の IP 経路は
.Dv RTF_PRCLONING
フラグが強制的に立てられます (これは
.Dq "プロトコルクローニング"
と呼ばれます。)
.It
ある IP 経路への最後の参照が欠落している場合、
その経路が、そのような経路をコピーすることにより生成されたかどうかが
検査されます。
もしそうであれば、
.Dv RTF_PROTO3
フラグが立てられ、net.inet.ip.rtexpire 秒以内に消去されるように
無効化のためのタイマが初期化されます。
そのような経路が再び参照されると、フラグとタイマはリセットされます。
.It
10 分に 1 回、あるいはカーネルのルーティングテーブルに期限切れ直前の
経路が存在するとすぐにカーネルタイムアウトが実行され、
期限切れの経路を削除します。
.El
.Pp
キャッシュされている経路が大きくなり過ぎた場合、
net.inet.ip.rtexpire の値を変更するための
動的な処理が実行されます。
期限切れ消去の実行後に、net.inet.ip.rtmaxcache
より多い数の経路が参照されないまま残っている場合、
rtexpire が 3/4 にされ、これより長い期限をもつ
すべての経路の期限が調整されます。
最小の rtexpire 値 (net.inet.ip.rtminexpire) の指定および
この削減を 10 分に 1 回おきに起こるように制限することにより、
このプロセスの効果はいくらか小さくなります。
.Pp
何らかの外部プロセスが、
プロトコルクローンで作られた経路の
オリジナルの経路を削除した場合、
「子の経路」は削除されます。
(実際のところ、これは、プロトコル要求クローニングをサポートする
ルーティングコードにおける一般的なメカニズムです。)
.Pp
プロトコルクローニングにより生成されたのではない経路を管理する
試みは行なわれません。
それらは静的であり、
外部のルーティングプロセスや、あるいは
リンク層 (たとえば
イーサネットにおける
.Tn ARP )
の管理下にあると想定されます。
.Pp
ある種のネットワーク活動だけが、このメカニズムを用いて経路のクローニング
を行ないます。
特にある宛先を持ち、長い間継続する経路の参照を自分自身でキャッシュ
するプロトコル (
.Tn TCP
や
.Tn UDP
のような )
は、このメカニズムを起動するきっかけとなります。
一方、ローカルに生成されたものであれフォワードされたものであれ、
生の IP パケットだと、このメカニズムは起動しません。
.Sh MIB 変数
.Xr sysctl 3
MTB の net.inet ブランチには、多くの
変数が実装されています。
トランスポートプロトコルによりサポートされる変数
(各々のマニュアルページを参照してください)
に加え、次の一般的な変数が定義されています。
.Bl -tag -width IPCTL_SENDREDIRECTS
.It Dv IPCTL_FORWARDING
.Pq ip.forwarding
ブール値: IP パケットのフォワーディングを可能にする / 抑制する
(デフォルトではカーネル設定オプション
.Dv GATEWAY
によります)。
.It Dv IPCTL_SENDREDIRECTS
.Pq ip.redirect
ブール値: フォワードできない
.Tn IP
パケットについて ICMP リダイレクトを送出する / 送出しない
(デフォルトは真)。
.It Dv IPCTL_DEFTTL
.Pq ip.ttl
整数値: 外に出ていく
.Tn IP
パケットのデフォルトの生存時間。
.It Dv IPCTL_SOURCEROUTE
.Pq ip.sourceroute
ブール値: 始点経路制御された IP パケットのフォワードを
可能にする / 抑制する (デフォルトは偽)。
.It Dv IPCTL_RTEXPIRE
.Pq ip.rtexpire
整数値: プロトコルクローンされた
.Tn IP
経路の、最後の参照が終了した後の秒単位の
生存時間 (デフォルトは 1 時間)。
上記のように、この値は動的に変化します。
.It Dv IPCTL_RTMINEXPIRE
.Pq ip.rtminexpire
整数値: ip.rtexpire の最小値 (デフォルトは 10 秒)。
この値はユーザによる変更に対しては効果がなく、上記のような動的調整に
限られています。
.It Dv IPCTL_RTMAXCACHE
.Pq ip.rtmaxcache
整数値: キャッシュされ、かつ参照されず、かつプロトコル
クローンされた経路の、動的な調整を開始するトリガレベル (デフォルトは 128)。
.El
.Sh 関連項目
.Xr ioctl 2 ,
.Xr socket 2 ,
.Xr sysctl 3 ,
.Xr icmp 4 ,
.Xr igmp 4 ,
.Xr intro 4 ,
.Xr ip 4 ,
.Xr tcp 4 ,
.Xr ttcp 4 ,
.Xr udp 4
.Rs
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%B PS1
.%N 7
.Re
.Rs
.%T "An Advanced 4.3 BSD Interprocess Communication Tutorial"
.%B PS1
.%N 8
.Re
.Sh 警告
インターネットプロトコルのサポートは、インターネットプロトコルの
発展に従属しています。ユーザは現在の実装の詳細に依存してはならず、
むしろエクスポートされたサービスに依存すべきです。
.Sh 歴史
.Nm
プロトコルインタフェースは
.Bx 4.2
で登場しました。
.Dq プロトコルクローニング
のコードは
.Fx 2.1
で登場しました。