Manpages

名 前

tcp − TCP プ ロ ト コ ル

書 式

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

tcp_socket = socket(AF_INET, SOCK_STREAM, 0);

説 明

こ れ は RFC 793, RFC 1122, RFC 2001 で 定 義 さ れ て い る TCP プ ロ ト コ ル を NewReno 拡 張 と SACK 拡 張 を 含 め て 実 装 し た も の で あ る 。 TCP は 、 ip(7) 上 の 二 つ の ソ ケ ッ ト 間 に 、 信 頼 性 の 高 い 、 ス ト リ ー ム 指 向 の 全 二 重 (full−duplex) 通 信 を 提 供 す る 。 v4 と v6 の 両 方 の バ ー ジ ョ ン の ip(7) に 対 応 し て い る 。 TCP は 、 デ ー タ が 順 序 を 守 っ て 到 着 す る こ と 、 途 中 で 失 わ れ た パ ケ ッ ト が 再 送 さ れ る こ と を 保 証 す る 。 ま た 、 パ ケ ッ ト 単 位 に チ ェ ッ ク サ ム を 生 成 、 検 査 す る こ と で 、 転 送 エ ラ ー を 検 知 す る 。 TCP は レ コ ー ド 境 界 (record boundary) を 保 存 し な い 。 新 し く 生 成 さ れ た ば か り の TCP ソ ケ ッ ト は 、 リ モ ー ト ア ド レ ス か ロ ー カ ル ア ド レ ス が な く 、 し た が っ て 詳 細 が 完 全 に 指 定 さ れ た 状 態 で は な い 。 外 部 へ の TCP 接 続 を 生 成 す る に は 、 connect(2) を 用 い て も う 一 方 の TCP ソ ケ ッ ト へ の 接 続 を 確 立 す る 。 外 部 か ら の 新 た な 接 続 を 受 け る に は 、 ま ず bind(2) で ソ ケ ッ ト を ロ ー カ ル な ア ド レ ス と ポ ー ト に 結 び つ け 、 次 に listen(2) を 呼 ん で ソ ケ ッ ト を 接 続 待 ち 受 け 状 態 に す る 。 そ の 後 、 到 着 し た 接 続 要 求 に 対 し て accept(2) を 用 い 、 ソ ケ ッ ト を 新 し く 生 成 す る 。 accept(2) ま た は connect(2) の コ ー ル が 成 功 し た ソ ケ ッ ト は 、 詳 細 が 完 全 に 指 定 さ れ た 状 態 と な り 、 デ ー タ の や り と り が 可 能 と な る 。 接 続 待 ち 受 け 状 態 の (listening) ソ ケ ッ ト や 、 接 続 (connect) さ れ て い な い ソ ケ ッ ト を 通 し て デ ー タ を や り と り す る こ と は で き な い 。

Linux は RFC 1323 の TCP high performance 拡 張 を サ ポ ー ト し て い る 。 こ れ に は 、 Protection Against Wrapped Sequence Numbers (PAWS)、 ウ ィ ン ド ウ ス ケ ー リ ン グ 、 タ イ ム ス タ ン プ な ど が 含 ま れ て い る 。 ウ ィ ン ド ウ ス ケ ー リ ン グ を 利 用 す る と 、 遅 延 ま た は 帯 域 の 大 き な 接 続 で 、 (64K 以 上 の ) 巨 大 な TCP ウ ィ ン ド ウ を 用 い る こ と が 可 能 と な る 。 こ れ を 用 い る に は 、 送 受 信 の バ ッ フ ァ ー サ イ ズ を 大 き く し な け れ ば な ら な い 。 シ ス テ ム 全 体 に 対 す る バ ッ フ ァ ー サ イ ズ の 変 更 は 、 フ ァ イ ル /proc/sys/net/ipv4/tcp_wmem/proc/sys/net/ipv4/tcp_rmem を 用 い て 行 う こ と が で き る 。 ま た 、 個 々 の ソ ケ ッ ト の み を 大 き く し た い 場 合 に は 、 SO_SNDBUFSO_RCVBUF ソ ケ ッ ト オ プ シ ョ ン を 用 い て setsockopt(2) コ ー ル を 用 い て 設 定 す れ ば よ い 。

SO_SNDBUFSO_RCVBUF の メ カ ニ ズ ム で 宣 言 さ れ る ソ ケ ッ ト バ ッ フ ァ ー の 最 大 サ イ ズ は 、 フ ァ イ ル /proc/sys/net/core/rmem_max/proc/sys/net/core/wmem_max で 指 定 さ れ た シ ス テ ム と し て の 制 限 値 を 超 え る こ と は で き な い 。 TCP は 実 際 に は setsockopt(2) コ ー ル が 要 求 し た バ ッ フ ァ ー サ イ ズ の 二 倍 を 割 り 当 て る 。 そ の た め 、 こ の 後 で getsockopt(2) コ ー ル を 行 う と 、 setsockopt(2) で 要 求 し た バ ッ フ ァ ー サ イ ズ と は 異 な る 値 が 返 る 。 TCP は こ の 余 分 な 空 間 を 、 管 理 目 的 や カ ー ネ ル 内 部 の 構 造 体 に 用 い て い る 。 /proc フ ァ イ ル の 値 は 、 こ れ ら を 反 映 し 、 実 際 の TCP ウ ィ ン ド ウ よ り も 大 き な 値 と な る 。 各 接 続 に お け る ソ ケ ッ ト の バ ッ フ ァ ー サ イ ズ 変 更 を 有 効 に す る に は 、 listen(2)connect(2) コ ー ル の 前 に 設 定 し な け れ ば な ら な い 。 よ り 詳 し い 情 報 は socket(7) を 見 よ 。

TCP は 緊 急 デ ー タ (urgent data) を サ ポ ー ト し て い る 。 緊 急 デ ー タ は 何 ら か の 重 要 な メ ッ セ ー ジ が デ ー タ ス ト リ ー ム に 含 ま れ て い る こ と 、 そ の デ ー タ を で き る だ け 早 く 処 理 す べ き こ と 、 を 受 信 者 に 伝 え る た め に 用 い ら れ る 。 緊 急 デ ー タ を 送 る に は 、 send(2)MSG_OOB オ プ シ ョ ン を 指 定 す る 。 緊 急 デ ー タ を 受 信 す る と 、 カ ー ネ ル は SIGURG シ グ ナ ル を 送 信 す る 。 送 信 先 は SIOCSPGRPFIOSETOWN ioctl (や POSIX.1−2001 で 規 定 さ れ て い る fcntl(2) F_SETOWN 操 作 ) を 用 い て そ の ソ ケ ッ ト の 「 所 有 者 」 と し て 設 定 さ れ た プ ロ セ ス か プ ロ セ ス グ ル ー プ で あ る 。 SO_OOBINLINE ソ ケ ッ ト オ プ シ ョ ン が 有 効 に な っ て い る と 、 緊 急 デ ー タ は 通 常 の デ ー タ ス ト リ ー ム の 中 に 混 ぜ て 送 ら れ る (プ ロ グ ラ ム は 下 記 の SIOCATMARK ioctl を 使 っ て 緊 急 デ ー タ の 場 所 を 調 べ る こ と が で き る )。 無 効 に な っ て い る 場 合 に は 、 recv(2)recvmsg(2)MSG_OOB フ ラ グ が セ ッ ト さ れ て い る と き に の み 、 緊 急 デ ー タ を 受 信 で き る 。

Linux 2.4 で は 多 く の 変 更 が な さ れ 、 ス ル ー プ ッ ト と ス ケ ー リ ン グ が 向 上 し 、 機 能 も 高 ま っ た 。 こ れ ら の 機 能 に は 、 ゼ ロ コ ピ ー sendfile(2)、 Explicit Congestion Notification、 TIME_WAIT ソ ケ ッ ト の 新 し い 管 理 法 、 keep−alive ソ ケ ッ ト オ プ シ ョ ン 、 Duplicate SACK 拡 張 の サ ポ ー ト な ど が あ る 。 ア ド レ ス の フ ォ ー マ ッ ト
TCP は IP の 上 層 に 構 築 さ れ て い る (ip(7) を 参 照 )。 ip(7) に 定 義 さ れ て い る ア ド レ ス フ ォ ー マ ッ ト は TCP に も 適 用 さ れ る 。 TCP は point−to−point の 通 信 だ け を サ ポ ー ト す る 。 ブ ロ ー ド キ ャ ス ト や マ ル チ キ ャ ス ト は サ ポ ー ト し な い 。

/proc イ ン タ ー フ ェ ー ス シ ス テ ム 全 体 に 対 す る TCP パ ラ メ ー タ ー の 設 定 に は 、 /proc/sys/net/ipv4/ デ ィ レ ク ト リ 内 の フ ァ イ ル に よ り ア ク セ ス で き る 。 さ ら に 、 IP に 関 連 す る /proc イ ン タ ー フ ェ ー ス の ほ と ん ど は TCP に つ い て も 適 用 さ れ る 。 ip(7) を 参 照 の こ と 。 Boolean は 整 数 値 で 、 0 以 外 の 値 ("true") は 対 応 す る オ プ シ ョ ン が 有 効 、 0 値 ("false") は 無 効 、 で あ る こ と を 意 味 す る 。
tcp_abc
(Integer; default: 0; Linux 2.6.15 以 降 )

RFC 3465 で 定 義 さ れ て い る Appropriate Byte Count (ABC) を 制 御 す る 。 ABC は 、 部 分 的 な ACK に 応 じ た 輻 輳 ウ ィ ン ド ウ (cwnd) の 増 加 を よ り 緩 や か に す る 方 法 で あ る 。 以 下 の 値 を 指 定 で き る 。

0

ACK を 受 信 す る 毎 に cwnd を 増 や す (ABC な し )。

1

フ ル サ イ ズ の セ グ メ ン ト の ACK を 受 信 す る 毎 に cwnd を 増 や す 。
2

ACK が 遅 延 ACK (delayed acknowledgment) を 相 殺 す る た め の 2 セ グ メ ン ト に 対 す る ACK の 場 合 に 、 cwnd を 2 増 や す こ と が で き る 。

tcp_abort_on_overflow (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4 以 降 ) 接 続 を 待 ち 受 け て い る サ ー ビ ス が 遅 す ぎ て 、 受 信 に つ い て い け な い 場 合 に 、 接 続 を リ セ ッ ト で き る よ う に す る 。 こ れ を 用 い る と 、 バ ー ス ト に よ っ て オ ー バ ー フ ロ ー が 起 こ っ た と き に 、 接 続 を 回 復 で き る よ う に な る 。 こ の オ プ シ ョ ン を 用 い る の は 、 受 信 デ ー モ ン を 高 速 化 で き な い 場 合 に 「 限 定 す る 」 こ と 。 こ の オ プ シ ョ ン を 用 い る と 、 そ の サ ー バ に 接 続 し て い る ク ラ イ ア ン ト に と っ て は 害 に な る こ と が あ る 。
tcp_adv_win_scale
(integer; default: 2; Linux 2.4 以 降 ) バ ッ フ ァ ー リ ン グ の オ ー バ ー ヘ ッ ド の 計 算 方 法 を 、 tcp_adv_win_scale が 正 の 場 合 は bytes/2^tcp_adv_win_scale に 、 tcp_adv_win_scale が 負 か 0 の 場 合 は bytes−bytes/2^(−tcp_adv_win_scale) と す る 。 ソ ケ ッ ト の 受 信 バ ッ フ ァ ー 空 間 は ア プ リ ケ ー シ ョ ン と カ ー ネ ル で 共 有 さ れ る 。 TCP は バ ッ フ ァ ー の 一 部 を TCP ウ ィ ン ド ウ と し て 管 理 し 、 こ れ を 受 信 ウ ィ ン ド ウ と し て 接 続 の 他 端 に 通 知 す る 。 空 間 の 残 り は 「 ア プ リ ケ ー シ ョ ン 」 バ ッ フ ァ ー と し て 用 い ら れ 、 ス ケ ジ ュ ー リ ン グ や ア プ リ ケ ー シ ョ ン の 遅 延 か ら ネ ッ ト ワ ー ク を 隔 離 す る 。 tcp_adv_win_scale の デ フ ォ ル ト 値 は 2 で あ り 、 こ の 場 合 ア プ リ ケ ー シ ョ ン バ ッ フ ァ ー は 全 体 の 1/4 に な る 。
tcp_allowed_congestion_control
(String; default: see text; Linux 2.4.20 以 降
) 非 特 権 プ ロ セ ス で 利 用 で き る 輻 輳 制 御 ア ル ゴ リ ズ ム の 選 択 肢 を 表 示 /設 定 す る (TCP_CONGESTION ソ ケ ッ ト オ プ シ ョ ン の 説 明 を 参 照 の こ と )。 こ の リ ス ト の 要 素 は ホ ワ イ ト ス ペ ー ス で 区 切 ら れ 、 改 行 文 字 で 終 端 さ れ る 。 こ の リ ス ト は tcp_available_congestion_control で 表 示 さ れ る リ ス ト の 部 分 集 合 と な る 。 こ の リ ス ト の デ フ ォ ル ト 値 は 、 "reno" と tcp_congestion_control の デ フ ォ ル ト 設 定 を あ わ せ た も の と な る 。
tcp_autocorking
(ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 3.14 以 降 ) こ の オ プ シ ョ ン を 有 効 に す る と 、 送 信 総 パ ケ ッ ト 数 を 減 ら す た め 、 カ ー ネ ル は 小 さ な write (連 続 す る write(2)sendmsg(2) の 呼 び 出 し ) を 可 能 な 限 り 結 合 し よ う と す る 。 パ ケ ッ ト の 結 合 が 行 わ れ る の は 、 そ の フ ロ ー の 前 の パ ケ ッ ト が 少 な く と も 一 つ は qdisc キ ュ ー か デ バ イ ス の 送 信 キ ュ ー で 送 信 待 ち の 場 合 で あ る 。 こ の オ プ シ ョ ン が 有 効 な 場 合 で も TCP_CORK オ プ シ ョ ン を 使 う こ と が で き 、 ア プ リ ケ ー シ ョ ン が ソ ケ ッ ト の 「 コ ル ク 解 除 」 (送 信 待 ち 状 態 の 解 除 ) を い つ ど の よ う に 行 え ば よ い か 分 か っ て い る 場 合 に は 、 最 適 な 動 作 を さ せ る こ と が で き る 。
tcp_available_congestion_control
(String; read−only; Linux 2.4.20 以 降 ) 登 録 さ れ て い る 輻 輳 制 御 ア ル ゴ リ ズ ム の リ ス ト を 表 示 す る 。 こ の リ ス ト の 要 素 は ホ ワ イ ト ス ペ ー ス で 区 切 ら れ 、 改 行 文 字 で 終 端 さ れ る 。 こ の リ ス ト に 載 っ て い る も の だ け が 、 tcp_allowed_congestion_control に 表 示 さ れ る 。 他 の 輻 輳 制 御 ア ル ゴ リ ズ ム が モ ジ ュ ー ル と し て 利 用 可 能 だ が 、 モ ジ ュ ー ル が ロ ー ド さ れ て い な い こ と も あ る 。
tcp_app_win
(integer; default: 31; Linux 2.4 以 降 ) こ の 変 数 は 、 TCP ウ ィ ン ド ウ の 何 バ イ ト 分 を バ ッ フ ァ ー リ ン グ の オ ー バ ー ヘ ッ ド 用 に 予 約 す る か を 指 定 す る 。 そ の ウ ィ ン ド ウ の window/2^tcp_app_win と mss の 大 き い ほ う (バ イ ト 単 位 ) が ア プ リ ケ ー シ ョ ン バ ッ フ ァ ー と し て 予 約 さ れ る 。 0 を 指 定 す る と 一 切 予 約 領 域 を 取 ら な い 。
tcp_base_mss
(Integer; default: 512; Linux 2.6.17 以 降 ) パ ケ ッ ト 化 レ イ ヤ の Path MTU discovery (MTU probing) で 、 search_low の 初 期 値 と 使 用 さ れ る 値 。 MTU probing が 有 効 な 場 合 、 こ の 値 は そ の 接 続 の MSS の 初 期 値 と な る 。
tcp_bic
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4.27/2.6.6 か ら 2.6.13 ま で
)

BIC TCP 輻 輳 制 御 ア ル ゴ リ ズ ム を 有 効 に す る 。 BIC−TCP は 送 信 側 の み の 変 更 で 、 ス ケ ー ラ ビ リ テ ィ と TCP 親 和 性 (friendliness) の 両 方 を 提 供 し つ つ 、 大 き な ウ ィ ン ド ウ の 下 で の 線 形 な RTT 公 平 性 を 保 証 す る も の で あ る 。 こ の プ ロ ト コ ル で は additive increase (追 加 的 な 増 加 ) と binary search increase (二 分 探 索 増 加 ) と い わ れ る 二 つ の 仕 組 み を 組 み 合 わ せ て い る 。 輻 輳 ウ ィ ン ド ウ が 大 き い と き は 、 増 分 の 大 き い additive increase に よ り 、 ス ケ ー ラ ビ リ テ ィ を 確 保 し な が ら 線 形 な RTT 公 平 性 を 保 証 す る 。 輻 輳 ウ ィ ン ド ウ が 小 さ い と き に は binary search increase に よ り TCP 親 和 性 を 達 成 し て い る 。

tcp_bic_low_window (integer; default: 14; Linux 2.4.27/2.6.6 以 降
2.6.13 ま で )

BIC TCP が 輻 輳 ウ ィ ン ド ウ の 調 整 を 開 始 す る 閾 値 ウ ィ ン ド ウ (パ ケ ッ ト 単 位 ) を 設 定 す る 。 こ の 閾 値 を 下 回 る 場 合 、 BIC TCP は デ フ ォ ル ト の TCP Reno と 同 じ 動 作 を す る 。

tcp_bic_fast_convergence (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux
2.4.27/2.6.6 以 降 2.6.13 ま で )

BIC TCP が 輻 輳 ウ ィ ン ド ウ の 変 化 に よ り 速 く 反 応 す る よ う に す る 。 同 じ コ ネ ク シ ョ ン を 共 有 す る 二 つ の フ ロ ー が 一 つ に ま と ま る の を よ り 速 く 行 う よ う に す る 。

tcp_congestion_control (String; default: 説 明 参 照 ; Linux 2.4.13 以 降 ) 新 規 の 接 続 で 使 用 さ れ る デ フ ォ ル ト の 輻 輳 制 御 ア ル ゴ リ ズ ム を 設 定 す る 。 "reno" ア ル ゴ リ ズ ム は 常 に 利 用 可 能 だ が 、 カ ー ネ ル 設 定 次 第 で は 別 の 選 択 肢 が 利 用 で き る こ と も あ る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は カ ー ネ ル 設 定 の 一 つ と し て 設 定 さ れ る 。
tcp_dma_copybreak
(integer; default: 4096; Linux 2.6.24 以 降 ) シ ス テ ム に DMA コ ピ ー エ ン ジ ン が 存 在 し 、 カ ー ネ ル で CONFIG_NET_DMA オ プ シ ョ ン が 有 効 に な っ て い る 場 合 に 、 DMA コ ピ ー エ ン ジ ン に オ フ ロ ー ド さ れ る ソ ケ ッ ト の 読 み 込 み サ イ ズ の 下 限 値 (バ イ ト 単 位 )。
tcp_dsack
(ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.4 以 降 )

RFC 2883 の TCP Duplicate SACK の サ ポ ー ト を 有 効 に す る 。

tcp_ecn (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4 以 降 )

RFC 2884 の Explicit Congestion Notification を 有 効 に す る 。 こ れ を 有 効 に す る と 、 間 違 っ た 振 舞 い を す る 古 い ル ー タ ー が 経 路 の 途 中 に あ る よ う な 接 続 先 に 対 し て 影 響 が 生 じ 、 場 合 に よ っ て は 接 続 が 落 ち る か も し れ な い 。

tcp_fack (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.2 以 降 )

TCP Forward Acknowledgement の サ ポ ー ト を 有 効 に す る 。

tcp_fin_timeout (integer; default: 60; Linux 2.2 以 降 ) ソ ケ ッ ト を 強 制 的 に ク ロ ー ズ す る 前 に 、 最 後 の FIN パ ケ ッ ト を 待 つ 時 間 を 秒 単 位 で 指 定 す る 。 こ れ は 厳 密 に は TCP の 仕 様 を 満 た し て い な い が 、 DoS 攻 撃 (denial of service attack) か ら 身 を 守 る た め に 必 要 で あ る 。 Linux 2.2 で は デ フ ォ ル ト 値 は 180 で あ っ た 。
tcp_frto
(integer; default: 0; Linux 2.4.21/2.6 以 降 )

F−RTO を 有 効 に す る 。 F−RTO は TCP 再 送 タ イ ム ア ウ ト (RTO) か ら の 復 旧 性 能 を 向 上 さ せ た ア ル ゴ リ ズ ム で あ る 。 こ の 機 能 は 無 線 環 境 で 特 に 効 果 を 発 揮 す る 。 無 線 環 境 で は 、 通 常 は 、 中 間 ル ー タ ー の 輻 輳 で は な く ラ ン ダ ム な 無 線 の 干 渉 に よ り パ ケ ッ ト ロ ス が 発 生 す る 。 詳 細 は RFC 4138 を 参 照 。 こ の フ ァ イ ル は 以 下 の い ず れ か の 値 を 取 る こ と が で き る 。

0

F−RTO を 無 効 に す る 。

1

基 本 版 の F−RTO ア ル ゴ リ ズ ム を 有 効 に す る 。

2 そ の フ ロ ー

で SACK を 使 用 す る 場 合 、 SACK 拡 張 版 の F−RTO を 有 効 に す る 。 基 本 版 の F−RTO も SACK が 使 用 さ れ て い る 場 合 に も 使 用 で き る が 、 基 本 版 の 場 合 に は F−RTO が SACK が 有 効 に な っ た TCP フ ロ ー で の パ ケ ッ ト 数 計 測 と 、 相 性 が 悪 く 相 互 干 渉 が 起 こ る 場 面 が 存 在 す る 。

Linu 2.6.22 よ り 前 で は 、 こ の パ ラ メ ー タ ー は ブ ー ル 値 で あ り 、 上 記 の 0 と 1 の み を サ ポ ー ト し て い た 。

tcp_frto_response (integer; default: 0; Linux 2.6.22 以 降 )

F−RTO が TCP 再 送 タ イ ム ア ウ ト が 偽 物 だ と 検 出 し た 場 合 (つ ま り 、 TCP が も っ と 長 い 再 送 タ イ ム ア ウ ト を 設 定 し て い れ ば タ イ ム ア ウ ト が 避 け ら れ た 場 合 )、 次 に ど う す る か に 関 し て 選 択 肢 が い く つ か あ る 。 以 下 の 値 を 選 択 で き る 。

0 レ ー ト を 元 の 半 分 に す る 。 滑 ら か で 、 保 守 的 な 反 応 を 行 い 、

RTT

1回 分 の 時 間 後 に 輻 輳 ウ ィ ン ド ウ (cwnd) と ス ロ ー ス タ ー ト の 閾 値 (ssthresh) が 半 分 に な る 。

1 非 常 に 保 守 的 な 反 応 。 こ の オ プ シ ョ ン の 使 用 は 推 奨 さ れ な い 。 反 応 が 正 し か っ た 場 合 で あ っ て も 、

Linux TCP の 他 の 部 分 と う ま く 連 携 で き な い か ら で あ る 。 cwndssthresh は 直 ち に 半 分 に さ れ る 。

2 積 極 的 な 反 応 。 不 要 と 判 明 し た 輻 輳 制 御 の 測 定 情 報 を 取 り 消 す

(TCP が も っ と 注 意 深 く 扱 う べ き 再 送 が 失 わ れ る 可 能 性 を 無 視 す る )。 。 cwndssthresh は タ イ ム ア ウ ト 前 の 値 に 戻 さ れ る 。

tcp_keepalive_intvl (integer; default: 75; Linux 2.4 以 降 )

TCP keep−alive の プ ロ ー ブ を 送 る 間 隔 (秒 単 位 )。

tcp_keepalive_probes (integer; default: 9; Linux 2.2 以 降 )

TCP keep−alive プ ロ ー ブ の 最 大 回 数 。 こ の 回 数 だ け 試 し て も 接 続 先 か ら 反 応 が 得 ら れ な い 場 合 は 、 あ き ら め て 接 続 を 切 断 す る 。

tcp_keepalive_time (integer; default: 7200; Linux 2.2 以 降 ) 接 続 が ア イ ド ル 状 態 に な っ て か ら 、 keep−alive プ ロ ー ブ を 送 信 す る ま で の 時 間 を 秒 単 位 で 指 定 す る 。 SO_KEEPALIVE ソ ケ ッ ト オ プ シ ョ ン が 有 効 に な っ て い る 場 合 の み keep−alive は 送 信 さ れ る 。 デ フ ォ ル ト 値 は 7200 秒 (2 時 間 )。 keep−alive が 有 効 に な っ て い る 場 合 、 さ ら に お よ そ 11 分 (75 秒 間 隔 の 9 プ ロ ー ブ 分 ) 経 過 す る と ア イ ド ル 状 態 の 接 続 は 終 了 さ せ ら れ る 。 下 層 に あ る 接 続 追 跡 機 構 や ア プ リ ケ ー シ ョ ン で の タ イ ム ア ウ ト は 、 も っ と ず っ と 短 い か も し れ な い 。
tcp_low_latency
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4.21/2.6 以 降 ) 有 効 に す る と 、 TCP ス タ ッ ク は ス ル ー プ ッ ト を 高 く す る よ り も 遅 延 を 少 な く す る こ と を 優 先 し て 判 断 を 行 う 。 こ の オ プ シ ョ ン を 無 効 に す る と 、 ス ル ー プ ッ ト を 高 く す る こ と が 優 先 さ れ る 。 こ の デ フ ォ ル ト 値 を 変 更 し た 方 が よ い ア プ リ ケ ー シ ョ ン の 例 と し て は Beowulf コ ン ピ ュ ー タ ク ラ ス タ が 挙 げ ら れ る だ ろ う 。
tcp_max_orphans
(integer; default: see below; Linux 2.4 以 降 ) シ ス テ ム が 許 容 す る 、 orphan な (ど の ユ ー ザ ー フ ァ イ ル ハ ン ド ル に も ア タ ッ チ さ れ て い な い ) TCP ソ ケ ッ ト の 最 大 数 。 こ の 数 を 越 え る と 、 orphan な 接 続 は リ セ ッ ト さ れ 、 警 告 が 表 示 さ れ る 。 こ の 制 限 が 存 在 す る の は 、 単 純 な 使 用 不 能 (denial−of−service) 攻 撃 を 防 ぐ た め に 過 ぎ な い 。 こ の 値 を 小 さ く す る こ と は 推 奨 し な い 。 ネ ッ ト ワ ー ク の 条 件 に よ っ て は 、 こ の 数 値 を 大 き く し な い と い け な い か も し れ な い が 、 orphan な ソ ケ ッ ト ひ と つ あ た り 64K 程 度 の ス ワ ッ プ 不 可 能 な メ モ リ ー を 消 費 す る こ と も 注 意 せ よ 。 デ フ ォ ル ト の 初 期 値 は カ ー ネ ル パ ラ メ ー タ ー の NR_FILE と 等 し い 。 こ の 初 期 デ フ ォ ル ト 値 は シ ス テ ム の メ モ リ ー に 応 じ て 調 整 さ れ る 。
tcp_max_syn_backlog
(integer; default: 下 記 参 照 ; Linux 2.2 以 降 ) 接 続 し て き て い る ク ラ イ ア ン ト か ら ack を 受 信 し て い な い 状 態 の 接 続 リ ク エ ス ト を キ ュ ー に 置 け る 最 大 数 。 こ の 数 値 を 越 え る と 、 カ ー ネ ル は リ ク エ ス ト を 捨 て 始 め る 。 デ フ ォ ル ト の 値 は 256 で 、 シ ス テ ム に 充 分 な メ モ リ ー が あ る (128Mb 以 上 ) 場 合 は 1024 に な り 、 メ モ リ ー が 非 常 に 少 な い 場 合 (32 Mb 以 下 ) は 128 に な る 。 こ の 数 値 を 1024 以 上 に 増 や し た い 場 合 は 、 include/net/tcp.h の TCP_SYNQ_HSIZE を TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog の よ う に 修 正 し 、 カ ー ネ ル を 再 コ ン パ イ ル す る こ と を 奨 め る 。
tcp_max_tw_buckets
(integer; default: 下 記 参 照 ; Linux 2.4 以 降 ) シ ス テ ム が 許 容 す る TIME_WAIT 状 態 に あ る ソ ケ ッ ト の 最 大 数 。 こ の 制 限 が 存 在 す る の は 、 単 純 な 使 用 不 能 (denial−of−service) 攻 撃 を 防 ぐ た め に 過 ぎ な い 。 デ フ ォ ル ト 値 は NR_FILE*2 で 、 シ ス テ ム の メ モ リ ー に 応 じ て 調 整 さ れ る 。 こ の 数 値 を 越 え る と 、 そ の よ う な ソ ケ ッ ト は ク ロ ー ズ さ れ 、 警 告 が 表 示 さ れ る 。
tcp_moderate_rcvbuf
(ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.4.17/2.6.7 以 降
) 有 効 に す る と 、 TCP は 受 信 バ ッ フ ァ ー の 自 動 調 整 を 行 う 。 具 体 的 に は 、 (tcp_rmem[2] を 超 え な い 範 囲 で ) バ ッ フ ァ ー の 大 き さ を 自 動 的 に 変 化 さ せ 、 そ の 経 路 で 最 大 の ス ル ー プ ッ ト を 達 成 す る の に 必 要 な 大 き さ に 合 わ せ よ う と す る 。
tcp_mem
(Linux 2.4 以 降 ) こ れ は 3 つ の 整 数 [low, pressure, high] か ら な る ベ ク ト ル 値 で あ る 。 こ れ ら は TCP が メ モ リ ー 使 用 量 を 追 跡 す る た め に 用 い ら れ る (使 用 量 は シ ス テ ム の ペ ー ジ サ イ ズ 単 位 で 計 測 さ れ る )。 デ フ ォ ル ト は ブ ー ト 時 に 利 用 で き る メ モ リ ー の 量 か ら 計 算 さ れ る 。 (実 際 に は 、 TCP は low memory の み を 使 用 す る 。 値 は 32ビ ッ ト シ ス テ ム で は 約 900 メ ガ バ イ ト に 制 限 さ れ る 。 64 ビ ッ ト シ ス テ ム で は こ の 制 限 は な い 。 )

low

TCP は 、 グ ロ ー バ ル に ア ロ ケ ー ト し た ペ ー ジ が こ の 数 値 以 下 の 場 合 は 、 メ モ リ ー ア ロ ケ ー シ ョ ン を 調 整 し な い 。

pressure

TCP が ア ロ ケ ー ト し た メ モ リ ー が こ の 数 値 分 の ペ ー ジ 数 を 越 え る と 、 TCP は メ モ リ ー 消 費 を 抑 え る よ う に な る 。 ア ロ ケ ー ト し た ペ ー ジ 数 が low 以 下 に な る と 、 こ の メ モ リ ー 圧 迫 状 態 か ら 脱 す る 。

high

TCP が グ ロ ー バ ル に 割 り 当 て る ペ ー ジ 数 の 最 大 値 。 こ の 値 は カ ー ネ ル に よ っ て 課 さ れ る あ ら ゆ る 制 限 よ り も 優 先 さ れ る 。

tcp_mtu_probing (integer; default: 0; Linux 2.6.17 以 降 ) こ の パ ラ メ ー タ ー は 、 TCP の パ ケ ッ ト 化 レ イ ヤ の Path MTU discovery を 制 御 す る 。 こ の フ ァ イ ル に は 以 下 の 値 を 設 定 で き る 。

0 無 効 に す る 。

1 デ フ ォ ル ト で は 無 効 だ が 、

ICMP ブ ラ ッ ク ホ ー ル が 検 出 さ れ た 場 合 は

有 効 に す る 。

2 常 に 有 効 に す る 。

MSS の 初 期 値 と し て tcp_base_mss が 使 用 さ れ

る 。

tcp_no_metrics_save (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.6.6 以 降 ) デ フ ォ ル ト で は 、 TCP は 接 続 ク ロ ー ズ 時 に 各 種 の 接 続 パ ラ メ ー タ ー を ル ー ト キ ャ ッ シ ュ (route cache) に 保 存 し 、 近 い 将 来 に 接 続 が 確 立 さ れ た 際 に こ れ ら の 情 報 を 初 期 状 態 と し て 使 用 で き る よ う に な っ て い る 。 通 常 は 、 こ れ に よ り 全 体 と し て 性 能 が 向 上 す る が 、 時 と し て 性 能 の 劣 化 を 引 き 起 こ す こ と も あ る 。 tcp_no_metrics_save を 有 効 に す る と 、 TCP は 接 続 ク ロ ー ズ 時 に 接 続 パ ラ メ ー タ ー を キ ャ ッ シ ュ し な く な る 。
tcp_orphan_retries
(integer; default: 8; Linux 2.4 以 降 ) こ ち ら か ら ク ロ ー ズ し た 接 続 に つ い て 、 先 方 を プ ロ ー ブ す る 最 大 試 行 数 。
tcp_reordering
(integer; default: 3; Linux 2.4 以 降 )

TCP パ ケ ッ ト ス ト リ ー ム で パ ケ ッ ト 順 序 の 逆 転 が 発 生 し た だ け で あ り 、 パ ケ ッ ト ロ ス が 起 こ っ た と は み な さ な い 、 パ ケ ッ ト 数 の 最 大 値 。 こ の 値 を 超 え て パ ケ ッ ト の 順 序 逆 転 が 起 こ る と 、 パ ケ ッ ト ロ ス が 生 じ た と み な し 、 slow start に 入 る 。 こ の 数 値 は 変 更 し な い ほ う が 良 い 。 こ れ は 、 接 続 中 の パ ケ ッ ト の 並 び 替 え に よ っ て 生 じ る 不 必 要 な 速 度 低 下 や 再 送 を 最 小 化 す る よ う に 設 計 さ れ た 、 パ ケ ッ ト 並 び 替 え (packet reordering) の 検 知 メ ト リ ッ ク な の で あ る 。

tcp_retrans_collapse (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.2 以 降 ) 再 送 の 際 に フ ル サ イ ズ の パ ケ ッ ト を 送 ろ う と す る 。
tcp_retries1
(integer; default: 3; Linux 2.2 以 降 ) 普 通 に 確 立 さ れ て い る 接 続 上 に 、 TCP が ネ ッ ト ワ ー ク 層 を 巻 き 込 ま ず に 再 送 を 試 み る 回 数 。 再 送 が こ の 回 数 を 越 え る と 、 ま ず 最 初 に 、 新 し い 再 送 を 送 る 前 に 可 能 な ら ネ ッ ト ワ ー ク 層 に 経 路 を 更 新 さ せ る 。 デ フ ォ ル ト は RFC が 指 定 し て い る 最 少 数 で あ る 3。
tcp_retries2
(integer; default: 15; Linux 2.2 以 降 ) 確 立 状 態 の 接 続 に 、 こ の 回 数 TCP パ ケ ッ ト の 再 送 信 を 行 な っ て も だ め な 場 合 は あ き ら め る 。 デ フ ォ ル ト 値 は 15 で 、 こ れ は (再 送 の タ イ ム ア ウ ト に 依 存 す る が ) お よ そ 13〜 30 分 程 度 の 期 間 に 対 応 す る 。 RFC 1122 は 最 小 の 限 界 を 100 秒 と 置 い て い る が 、 こ れ は た い て い の 場 合 に は 短 す ぎ る と 思 わ れ る 。
tcp_rfc1337
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.2 以 降 )

TCP の 動 作 を RFC 1337 に 準 拠 さ せ る 。 無 効 に す る と 、 TIME_WAIT 状 態 の と き に RST が 受 信 さ れ た 場 合 、 TIME_WAIT 期 間 の 終 了 を 待 た ず に そ の ソ ケ ッ ト を 直 ち に ク ロ ー ズ す る 。

tcp_rmem (Linux 2.4 以 降 ) こ れ は 3 つ の 整 数 [min, default, max] か ら な る ベ ク ト ル 値 で あ る 。 こ れ ら は TCP が 受 信 バ ッ フ ァ ー サ イ ズ を 調 整 す る た め に 用 い ら れ る 。 TCP は 、 シ ス テ ム で 利 用 で き る メ モ リ ー に 応 じ て 、 受 信 バ ッ フ ァ ー の サ イ ズ を こ れ ら の 変 数 の 範 囲 で 以 下 に 示 す デ フ ォ ル ト か ら 動 的 に 調 整 す る 。

min

TCP ソ ケ ッ ト が 用 い る 受 信 バ ッ フ ァ ー の 最 小 サ イ ズ 。 デ

フ ォ ル ト 値 は シ ス テ ム の ペ ー ジ サ イ ズ で あ る (Linux 2.4 で は 、 デ フ ォ ル ト 値 は 4K バ イ ト で 、 メ モ リ ー の 少 な い シ ス テ ム で は PAGE_SIZE バ イ ト に 減 ら さ れ る )。 こ の 値 は 、 メ モ リ ー 圧 迫 モ ー ド に お い て も 、 こ の サ イ ズ の 割 り 当 て が 成 功 す る こ と を 保 証 す る た め に 用 い ら れ る 。 こ れ は 、 SO_RCVBUF を 用 い て ソ ケ ッ ト の 最 低 受 信 バ ッ フ ァ ー サ イ ズ を 宣 言 す る 際 に は 用 い ら れ な い 。

default

TCP ソ ケ ッ ト の 受 信 バ ッ フ ァ ー の デ フ ォ ル ト サ イ ズ 。 こ の 値 は 、 す べ て の プ ロ ト コ ル に 対 し て 定 義 さ れ て い る 、 ジ ェ ネ リ ッ ク な グ ロ ー バ ル の デ フ ォ ル ト バ ッ フ ァ ー サ イ ズ net.core.rmem_default よ り 優 先 さ れ る 。 デ フ ォ ル ト 値 は 87380 バ イ ト で あ る (Linux 2.4 で は 、 メ モ リ ー の 少 な い シ ス テ ム の 場 合 43689 ま で 減 ら さ れ る )。 大 き な 受 信 バ ッ フ ァ ー サ イ ズ が 必 要 な 場 合 は 、 こ の 値 を 増 や す べ き で あ る (す べ て の ソ ケ ッ ト に 影 響 す る )。 大 き な TCP ウ ィ ン ド ウ を 用 い る に は 、 net.ipv4.tcp_window_scaling を 有 効 に し て お か な け れ ば な ら な い (デ フ ォ ル ト は 有 効 )。

max

各 TCP ソ ケ ッ ト で 用 い る 受 信 バ ッ フ ァ ー の 最 大 サ イ ズ 。 こ の 値 よ り も グ ロ ー バ ル の net.core.rmem_max が 優 先 さ れ る 。 こ れ は 、 SO_RCVBUF を 用 い て ソ ケ ッ ト の 受 信 バ ッ フ ァ ー サ イ ズ 制 限 を 宣 言 す る 際 に は 用 い ら れ な い 。 デ フ ォ ル ト 値 は 以 下 の 式 で 計 算 さ れ る 。

max(87380, min(4MB, tcp_mem[1]*PAGE_SIZE/128))

(Linux 2.4 で は 、 デ フ ォ ル ト 値 は 87380*2 バ イ ト で 、 メ モ リ ー の 少 な い シ ス テ ム で は 87380 ま で 減 ら さ れ る 。 )

tcp_sack (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.2 以 降 )

RFC 2018 の TCP Selective Acknowledgements を 有 効 に す る 。

tcp_slow_start_after_idle (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.6.18 以 降
) 有 効 に す る と 、 RFC 2861 の 動 作 が 行 わ れ 、 ア イ ド ル 時 間 経 過 後 に 輻 輳 ウ ィ ン ド ウ を タ イ ム ア ウ ト さ せ る 。 ア イ ド ル 時 間 は 現 在 の RTO (再 送 タ イ ム ア ウ ト ) で 定 義 さ れ る 。 無 効 に す る と 、 輻 輳 ウ ィ ン ド ウ は ア イ ド ル 時 間 経 過 後 も タ イ ム ア ウ ト さ れ な い 。
tcp_stdurg
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.2 以 降 ) こ の オ プ シ ョ ン を 有 効 に す る と 、 TCP 緊 急 ポ イ ン タ ー (urgent−pointer) フ ィ ー ル ド を RFC 1122 に 従 っ た 解 釈 を 行 う 。 こ の 解 釈 に 従 う と 、 緊 急 ポ イ ン タ ー は 緊 急 デ ー タ の 最 後 の バ イ ト を 指 す 。 こ の オ プ シ ョ ン を 無 効 に す る と 、 緊 急 ポ イ ン タ ー の 解 釈 が BSD 互 換 の 方 法 で 行 わ れ る : 緊 急 ポ イ ン タ ー は 緊 急 デ ー タ の 後 の 最 初 の バ イ ト を 指 す 。 こ の オ プ シ ョ ン を 有 効 に す る と 、 相 互 運 用 性 に 問 題 が 生 じ る か も し れ な い 。
tcp_syn_retries
(integer; default: 5; Linux 2.2 以 降 ) ア ク テ ィ ブ な TCP 接 続 に 初 期 SYN の 再 送 を 試 み る 最 大 回 数 。 こ の 数 値 は 255 よ り も 大 き く す べ き で は な い 。 デ フ ォ ル ト の 値 は 5 で 、 お よ そ 180 秒 に 対 応 す る 。
tcp_synack_retries
(integer; default: 5; Linux 2.2 以 降 )

passive な TCP 接 続 の SYN/ACK セ グ メ ン ト で 再 送 を 試 み る 最 大 数 。 こ の 数 値 は 255 よ り も 大 き く す べ き で は な い 。

tcp_syncookies (Boolean; Linux 2.2 以 降 )

TCP syncookies を 有 効 に す る 。 カ ー ネ ル は CONFIG_SYNCOOKIES を つ け て コ ン パ イ ル し て お か な け れ ば な ら な い 。 ソ ケ ッ ト の バ ッ ク ロ グ キ ュ ー が オ ー バ ー フ ロ ー す る と 、 syncookies が 送 信 さ れ る 。 syncookies 機 能 は 、 SYN flood 攻 撃 か ら ソ ケ ッ ト を 守 ろ う と す る 。 こ れ は い ず れ に し て も 、 最 終 手 段 と し て 用 い る べ き で あ る 。 こ れ は TCP プ ロ ト コ ル に 違 反 し て お り 、 TCP 拡 張 の よ う な 、 TCP の 他 の 部 分 と 衝 突 し て し ま う 。 ク ラ イ ア ン ト や リ レ ー で 問 題 が 起 こ る こ と も あ る 。 過 負 荷 や 設 定 間 違 い に よ っ て 負 荷 の 大 き な 状 態 に あ る サ ー バ を 調 整 し て 救 う た め の 機 構 と み な す べ き で は な い 。 そ の よ う な 用 途 に は 、 代 わ り に tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow な ど の 使 用 を 考 え る こ と 。

tcp_timestamps (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.2 以 降 )

RFC 1323 の TCP timestamps を 有 効 に す る 。

tcp_tso_win_divisor (integer; default: 3; Linux 2.6.9 以 降 ) こ の パ ラ メ ー タ ー は 、 一 つ の TCP Segmentation Offload (TSO) フ レ ー ム で 消 費 で き る 輻 輳 ウ ィ ン ド ウ の 割 合 (パ ー セ ン ト ) を 制 御 す る 。 バ ー ス ト 性 と 、 ど れ だ け 大 き な TSO フ レ ー ム を 構 築 す る か の は ト レ ー ド オ フ で あ り 、 こ の パ ラ メ ー タ ー は そ の 度 合 い を 設 定 す る 。
tcp_tw_recycle
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4 以 降 )

TIME_WAIT ソ ケ ッ ト の 素 早 い 再 利 用 (fast recycling) を 有 効 に す る 。 通 常 の イ ン タ ー ネ ッ ト と 通 信 し た り NAT (ネ ッ ト ワ ー ク ア ド レ ス 変 換 ) を 使 う デ バ イ ス で は 、 こ の オ プ シ ョ ン を 有 効 に す る の は 推 奨 さ れ な い 。 い く つ か の NAT ゲ ー ト ウ ェ イ で は IP タ イ ム ス タ ン プ を そ の ま ま 通 過 さ せ る の で 、 一 つ の IP が 増 加 し な い タ イ ム ス タ ン プ を 持 つ よ う に 見 え る 。 RFC 1323 (PAWS), RFC 6191 を 参 照 。

tcp_tw_reuse (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4.19/2.6 以 降 ) プ ロ ト コ ル の 面 か ら 見 て 問 題 な い 場 合 に 新 規 コ ネ ク シ ョ ン に TIME_WAIT 状 態 の ソ ケ ッ ト を 再 利 用 す る こ と を 許 可 す る 。 技 術 的 に 詳 し い 人 の 助 言 や 要 請 な し に こ の オ プ シ ョ ン を 変 更 す べ き で は な い 。
tcp_vegas_cong_avoid
(ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.2 か ら 2.6.13 ま で
)

TCP Vegas 輻 輳 制 御 ア ル ゴ リ ズ ム を 有 効 に す る 。 TCP Vegas は 帯 域 を 推 測 す る こ と で 輻 輳 の 起 こ り 始 め を 予 想 す る よ う に TCP の 送 信 側 の み に 変 更 を 加 え た も の で あ る 。 TCP Vegas は 輻 輳 ウ ィ ン ド ウ を 修 正 す る こ と で 、 送 信 レ ー ト を 調 整 す る 。 TCP Vegas は TCP Reno と 比 べ て パ ケ ッ ト ロ ス は 少 な い が 、 TCP Reno ほ ど 積 極 的 な 挙 動 は し な い 。

tcp_westwood (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.4.26/2.6.3 か ら
2.6.13 ま で )

TCP Westwood+ 輻 輳 制 御 ア ル ゴ リ ズ ム を 有 効 に す る 。 TCP Westwood+ は TCP 輻 輳 制 御 の 性 能 を 最 適 化 す る よ う に TCP Reno の プ ロ ト コ ル ス タ ッ ク の 送 信 側 の み に 修 正 を 加 え た も の で あ る 。 輻 輳 が 起 こ っ た 後 で 、 輻 輳 ウ ィ ン ド ウ や slow start の 閾 値 を 通 信 両 端 間 の 帯 域 の 推 測 に 基 づ い て 設 定 す る 。 こ の 推 測 を 使 っ て 、 TCP Westwood+ は 輻 輳 が 発 生 し た 時 に 使 っ て い た 帯 域 を 考 慮 に 入 れ た slow start の 閾 値 と 輻 輳 ウ ィ ン ド ウ を 設 定 す る 。 TCP Westwood+ は 、 有 線 ネ ッ ト ワ ー ク に お け る TCP Reno の 公 平 性 (fairness) と 、 無 線 リ ン ク で の ス ル ー プ ッ ト を 大 き く 向 上 す る 。

tcp_window_scaling (ブ ー ル 値 ; デ フ ォ ル ト : 有 効 ; Linux 2.2 以 降 )

RFC 1323 の TCP ウ ィ ン ド ウ ス ケ ー リ ン グ を 有 効 に す る 。 こ の 機 能 を 用 い る と 、 接 続 先 が 対 応 し て い れ ば 、 TCP 接 続 で 大 き な (64K 以 上 の ) ウ ィ ン ド ウ が 使 え る よ う に な る 。 通 常 は TCP ヘ ッ ダ ー の ウ イ ン ド ウ 長 フ ィ ー ル ド は 16 ビ ッ ト な の で 、 ウ ィ ン ド ウ サ イ ズ は 64K バ イ ト 以 下 に 限 ら れ る 。 も っ と 大 き な ウ ィ ン ド ウ を 使 い た い 場 合 は 、 ア プ リ ケ ー シ ョ ン は ソ ケ ッ ト バ ッ フ ァ ー の サ イ ズ を 増 や し て 、 ウ ィ ン ド ウ ス ケ ー リ ン グ の オ プ シ ョ ン を 利 用 す れ ば よ い 。 tcp_window_scaling を 無 効 に し て い る と 、 TCP は 他 端 と の 接 続 設 定 の 際 に 、 ウ ィ ン ド ウ ス ケ ー リ ン グ の ネ ゴ シ エ ー シ ョ ン を 行 な わ な い 。

tcp_wmem (Linux 2.4 以 降 ) こ れ は 3 つ の 整 数 [min, default, max] か ら な る ベ ク ト ル 値 で あ る 。 こ れ ら は TCP が 送 信 バ ッ フ ァ ー サ イ ズ を 調 整 す る た め に 用 い ら れ る 。 TCP は 、 シ ス テ ム で 利 用 で き る メ モ リ ー に 応 じ て 、 送 信 バ ッ フ ァ ー の サ イ ズ を こ れ ら の 変 数 の 範 囲 で 以 下 に 示 す デ フ ォ ル ト か ら 動 的 に 調 整 す る 。

min

TCP ソ ケ ッ ト が 用 い る 送 信 バ ッ フ ァ ー の 最 小 サ イ ズ 。 デ

フ ォ ル ト 値 は シ ス テ ム の ペ ー ジ サ イ ズ で あ る (Linux 2.4 で は 、 デ フ ォ ル ト 値 は 4K で あ る )。 こ の 値 は 、 メ モ リ ー 圧 迫 モ ー ド に お い て も 、 こ の サ イ ズ 以 下 の 割 り 当 て が 成 功 す る こ と を 保 証 す る た め に 用 い ら れ る 。 こ れ は 、 SO_SNDBUF を 用 い て ソ ケ ッ ト の 最 低 送 信 バ ッ フ ァ ー サ イ ズ を 宣 言 す る 際 に は 用 い ら れ な い 。

default

TCP ソ ケ ッ ト の 送 信 バ ッ フ ァ ー の デ フ ォ ル ト サ イ ズ 。 こ の 値 は 、 す べ て の プ ロ ト コ ル に 対 し て 定 義 さ れ て い る 、 ジ ェ ネ リ ッ ク な グ ロ ー バ ル の デ フ ォ ル ト バ ッ フ ァ ー サ イ ズ /proc/sys/net/core/wmem_default よ り 優 先 さ れ る 。 デ フ ォ ル ト 値 は 16K バ イ ト で あ る 。 大 き な 送 信 バ ッ フ ァ ー サ イ ズ が 必 要 な 場 合 は 、 こ の 値 を 増 や す べ き で あ る (す べ て の ソ ケ ッ ト に 影 響 す る )。 大 き な TCP ウ ィ ン ド ウ を 用 い る に は 、 /proc/sys/net/ipv4/tcp_window_scaling を 0 以 外 の 値 (デ フ ォ ル ト 値 ) に し て お か な け れ ば な ら な い 。

max

各 TCP ソ ケ ッ ト で 用 い る 送 信 バ ッ フ ァ ー の 最 大 サ イ ズ 。 こ の 値 よ り も /proc/sys/net/core/wmem_max が 優 先 さ れ る 。 こ れ は SO_SNDBUF を 用 い て ソ ケ ッ ト の 送 信 バ ッ フ ァ ー サ イ ズ 制 限 を 宣 言 す る 際 に は 用 い ら れ な い 。 デ フ ォ ル ト 値 は 以 下 の 式 で 計 算 さ れ る 。

max(65536, min(4MB, tcp_mem[1]*PAGE_SIZE/128))

(Linux 2.4 で は 、 デ フ ォ ル ト 値 は 128K バ イ ト で 、 メ モ リ ー の 少 な い シ ス テ ム で は 64K に ま で 減 ら さ れ る 。 )

tcp_workaround_signed_windows (ブ ー ル 値 ; デ フ ォ ル ト : 無 効 ; Linux 2.6.26 以 降
) 有 効 に す る と 、 ウ ィ ン ド ウ ス ケ ー リ ン グ オ プ シ ョ ン を 受 信 し な い の は 、 接 続 相 手 の TCP が 壊 れ て い る と 考 え 、 ウ ィ ン ド ウ を 符 号 付 き の 量 と み な す 。 無 効 に す る と 、 接 続 相 手 か ら ウ ィ ン ド ウ ス ケ ー リ ン グ オ プ シ ョ ン を 受 信 し な か っ た 場 合 で あ っ て も 、 接 続 相 手 の TCP が 壊 れ て い る と は み な さ な い 。 ソ ケ ッ ト オ プ シ ョ ン
TCP ソ ケ ッ ト の オ プ シ ョ ン は 、 オ プ シ ョ ン レ ベ ル 引 数 に IPPROTO_TCP を 指 定 し た setsockopt(2) で 設 定 で き 、 getsockopt(2) で 取 得 で き る 。 注 釈 が な い 限 り 、 optvalint へ の ポ イ ン タ ー で あ る 。 さ ら に 、 ほ と ん ど の IPPROTO_IP ソ ケ ッ ト オ プ シ ョ ン も TCP ソ ケ ッ ト に 対 し て 有 効 で あ る 。 詳 細 は ip(7) を 見 よ 。
TCP_CONGESTION
(Linux 2.6.13 以 降 ) こ の オ プ シ ョ ン の 引 き 数 は 文 字 列 で あ る 。 こ の オ プ シ ョ ン を 使 う と 、 呼 び 出 し 元 が ソ ケ ッ ト 単 位 に 使 用 す る TCP 輻 輳 制 御 ア ル ゴ リ ズ ム を 設 定 す る こ と が で き る 。 非 特 権 プ ロ セ ス が 使 用 で き る ア ル ゴ リ ズ ム は (上 述 の ) tcp_allowed_congestion_control で 設 定 さ れ た も の だ け に 制 限 さ れ る 。 特 権 プ ロ セ ス (CAP_NET_ADMIN) は 任 意 の 輻 輳 制 御 ア ル ゴ リ ズ ム を 選 択 す る こ と が で き る (上 記 の tcp_available_congestion_control の 説 明 を 参 照 )。
TCP_CORK
(Linux 2.2 以 降 ) セ ッ ト さ れ る と 、 partial フ レ ー ム を 送 信 し な い 。 こ の オ プ シ ョ ン が 解 除 さ れ る と 、 キ ュ ー イ ン グ さ れ た partial フ レ ー ム が 送 ら れ る 。 こ れ は sendfile(2) を 呼 ぶ 前 に ヘ ッ ダ ー を 前 置 し た り 、 ス ル ー プ ッ ト を 最 適 化 し た い 場 合 に 便 利 で あ る 。 現 在 の 実 装 で は 、 TCP_CORK で 出 力 を 抑 え る こ と が で き る 時 間 の 上 限 は 200 ミ リ 秒 で あ る 。 こ の 上 限 に 達 す る と 、 キ ュ ー イ ン グ さ れ た デ ー タ は 自 動 的 に 送 信 さ れ る 。 Linux 2.5.71 以 降 に お い て の み 、 こ の オ プ シ ョ ン を TCP_NODELAY と 同 時 に 用 い る こ と が で き る 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_DEFER_ACCEPT
(Linux 2.4 以 降 ) こ れ を 用 い る と 、 リ ス ナ は デ ー タ が ソ ケ ッ ト に 到 着 し た 時 の み 目 覚 め る よ う に な る 。 整 数 値 (秒 ) を と り 、 TCP が 接 続 を 完 了 し よ う と 試 み る 回 数 を 制 限 で き る 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_INFO
(Linux 2.4 以 降 ) こ の ソ ケ ッ ト の 情 報 を 収 集 す る の に 用 い る 。 カ ー ネ ル は /usr/include/linux/tcp.h フ ァ イ ル で 定 義 さ れ て い る struct tcp_info を 返 す 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_KEEPCNT
(Linux 2.4 以 降 ) 接 続 を 落 と す 前 に TCP が 試 み る keepalive プ ロ ー ブ の 最 大 回 数 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_KEEPIDLE
(Linux 2.4 以 降 ) こ の 時 間 (秒 単 位 ) を 越 え て 接 続 が ア イ ド ル 状 態 に 留 ま っ て い る と 、 こ の ソ ケ ッ ト に SO_KEEPALIVE ソ ケ ッ ト オ プ シ ョ ン が 設 定 さ れ て い る 場 合 、 TCP は keepalive プ ロ ー ブ を 送 り は じ め る 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_KEEPINTVL
(Linux 2.4 以 降 ) 各 keepalive プ ロ ー ブ の 間 隔 (秒 単 位 )。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_LINGER2
(Linux 2.4 以 降 )

orphan さ れ た FIN_WAIT2 状 態 の ソ ケ ッ ト の 寿 命 。 こ の オ プ シ ョ ン を 用 い る と 、 シ ス テ ム 全 体 に 適 用 さ れ る フ ァ イ ル /proc/sys/net/ipv4/tcp_fin_timeout の 値 を 、 こ の ソ ケ ッ ト に 対 し て の み 変 更 で き る 。 socket(7) レ ベ ル の オ プ シ ョ ン SO_LINGER と 混 同 し な い こ と 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。

TCP_MAXSEG 送 出 TCP パ ケ ッ ト の 最 大 セ グ メ ン ト サ イ ズ 。 Linux 2.2 以 前 と Linux 2.6.28 以 降 で は 、 こ の オ プ シ ョ ン を 接 続 確 立 の 前 に 設 定 す る と 、 初 期 パ ケ ッ ト で 他 端 に ア ナ ウ ン ス す る MSS の 値 も 変 化 す る 。 イ ン タ ー フ ェ ー ス の MTU よ り も 大 き な (あ る い は 大 き く な っ て し ま っ た ) 値 は 効 果 を 持 た な い 。 ま た TCP は 、 こ の 値 よ り も 最 小 ・ 最 大 の 制 限 の 方 を 優 先 す る 。
TCP_NODELAY
設 定 す る と Nagle ア ル ゴ リ ズ ム を 無 効 に す る 。 す な わ ち 、 デ ー タ 量 が 少 な い 場 合 で も 各 セ グ メ ン ト は 可 能 な 限 り 早 く 送 信 さ れ る 。 設 定 さ れ て い な い と 、 送 信 す る 分 だ け 溜 ま る ま で デ ー タ は バ ッ フ ァ ー さ れ 、 小 さ な パ ケ ッ ト を 頻 繁 に 送 ら ず に す み 、 ネ ッ ト ワ ー ク を 有 効 に 利 用 で き る 。 こ の オ プ シ ョ ン は TCP_CORK に よ り 上 書 き さ れ る 。 し か し な が ら 、 TCP_CORK が 設 定 さ れ て い る 場 合 で あ っ て も 、 こ の オ プ シ ョ ン を 設 定 す る と 、 送 信 待 ち の 出 力 を 明 示 的 に 掃 き 出 す (flush) こ と に な る 。
TCP_QUICKACK
(Linux 2.4.4 以 降 ) 設 定 さ れ て い る と quickack モ ー ド を 有 効 に し 、 ク リ ア さ れ る と 無 効 に す る 。 通 常 の TCP 動 作 で は ack は 必 要 に 応 じ て 遅 延 さ れ る の に 対 し 、 quickack モ ー ド で は ack は す ぐ に 送 信 さ れ る 。 こ の フ ラ グ は 永 続 的 な も の で は な く 、 quickack モ ー ド か ら /モ ー ド へ 切 り 替 え る た め の も の で あ る 。 こ れ 以 降 の TCP プ ロ ト コ ル の 動 作 に よ っ て は 、 内 部 の プ ロ ト コ ル 処 理 や 、 遅 延 ack タ イ ム ア ウ ト の 発 生 、 デ ー タ 転 送 な ど の 要 因 に よ っ て 、 再 び quickack か ら 出 た り 入 っ た り す る 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_SYNCNT
(Linux 2.4 以 降 ) 接 続 の 試 行 を 中 止 さ せ る 前 に TCP が 送 る SYN 再 送 数 を 設 定 す る 。 こ れ は 255 よ り 大 き く は で き な い 。 移 植 性 の 必 要 な プ ロ グ ラ ム で は こ の オ プ シ ョ ン を 用 い る べ き で は な い 。
TCP_USER_TIMEOUT
(Linux 2.6.37 以 降 ) こ の オ プ シ ョ ン は unsigned int 型 の 引 き 数 を 取 る 。 値 が 0 よ り 大 き い 場 合 、 そ の 値 は 、 ど の く ら い の 時 間 、 送 信 さ れ た デ ー タ が ACK を 受 信 し な い ま ま の 状 態 が 続 く と 、 TCP が そ の 接 続 を 強 制 的 に ク ロ ー ズ し 、 ア プ リ ケ ー シ ョ ン に ETIMEDOUT を 返 す か を 、 ミ リ 秒 単 位 で 指 定 す る 。 オ プ シ ョ ン の 値 が 0 の 場 合 、 TCP は シ ス テ ム の デ フ ォ ル ト 値 を 使 用 す る 。 ユ ー ザ ー タ イ ム ア ウ ト を 長 く す る と 、 通 信 の 両 端 で の 接 続 性 が な い 場 合 で も 長 い 時 間 TCP 接 続 が 維 持 さ れ る よ う に な る 。 ユ ー ザ ー タ イ ム ア ウ ト を 短 く す る と 、 ア プ リ ケ ー シ ョ ン は 必 要 で あ れ ば 「 早 く 失 敗 」 で き る よ う に な る 。 設 定 し な か っ た 場 合 は 、 通 常 の WAN 環 境 で は 現 在 の シ ス テ ム の デ フ ォ ル ト の 20 分 で 失 敗 す る こ と に な る 。 こ の オ プ シ ョ ン は TCP 接 続 が ど の 状 態 の 場 合 で も 設 定 す る こ と が で き る が 、 接 続 が 同 期 状 態 (ESTABLISHED, FIN−WAIT−1, FIN−WAIT−2, CLOSE−WAIT, CLOSING, LAST−ACK) の 場 合 の み 効 果 が あ る 。 ま た 、 TCP keepalive (SO_KEEPALIVE) オ プ シ ョ ン と と も に 使 用 さ れ た 場 合 、 TCP_USER_TIMEOUT は keepalive 失 敗 に よ る 接 続 ク ロ ー ズ を 判 定 す る た め の keepalive 値 を 上 書 き す る 。 こ の オ プ シ ョ ン は TCP が パ ケ ッ ト を 再 送 す る 際 や keepalive プ ロ ー ブ を 送 信 す る 際 に は 影 響 を 及 ぼ さ な い 。 他 の 多 く の オ プ シ ョ ン 同 様 、 リ ッ ス ン 中 の ソ ケ ッ ト で こ の オ プ シ ョ ン が セ ッ ト さ れ て い れ ば accept(2) が 返 す ソ ケ ッ ト に オ プ シ ョ ン が 継 承 さ れ る 。 ユ ー ザ ー タ イ ム ア ウ ト 機 能 の 詳 細 は RFC 793 と RFC 5482 ("TCP User Timeout Option") に 書 か れ て い る 。
TCP_WINDOW_CLAMP
(Linux 2.4 以 降 ) 広 報 す る ウ ィ ン ド ウ の サ イ ズ を こ の 値 に 固 定 す る 。 カ ー ネ ル に よ っ て 最 小 サ イ ズ は SOCK_MIN_RCVBUF/2 に 制 限 さ れ て い る 。 こ の オ プ シ ョ ン は 移 植 性 の 必 要 な コ ー ド で は 用 い る べ き で な い 。 ソ ケ ッ ト API
TCP は 帯 域 外 デ ー タ (out−of−band data) を 限 定 的 に サ ポ ー ト し て お り 、 (1 バ イ ト の ) 緊 急 デ ー タ と い う 形 で あ る 。 つ ま り Linux に お い て は 、 接 続 先 が (新 し い や り 方 の ) 帯 域 外 デ ー タ を 送 っ て き た 場 合 、 (古 い や り 方 の ) 緊 急 デ ー タ は 通 常 の デ ー タ と し て ス ト リ ー ム に 挿 入 さ れ る こ と に な る (こ れ は SO_OOBINLINE が セ ッ ト さ れ て い る 場 合 で も 同 様 で あ る )。 こ れ は BSD ベ ー ス の ス タ ッ ク と は 異 な る 。

Linux は 、 デ フ ォ ル ト で は urgent ポ イ ン タ ー フ ィ ー ル ド の 解 釈 に BSD 互 換 の 方 法 を 用 い る 。 こ れ は RFC 1122 に 反 し て い る が 、 他 の ス タ ッ ク と 同 時 に 動 作 さ せ る に は や む を 得 な い 。 こ れ は /proc/sys/net/ipv4/tcp_stdurg に よ っ て 変 更 で き る 。

recv(2)MSG_PEEK フ ラ グ を 使 う と 、 帯 域 外 デ ー タ を 覗 き 見 す る こ と が で き る 。

Linux 2.4 以 降 で は 、 recv(2) (や recvmsg(2)) の flags 引 き 数 に MSG_TRUNC を 使 う こ と が で き る 。 こ の フ ラ グ を 指 定 す る と 、 受 信 デ ー タ は 、 呼 び 出 し 元 か ら 渡 さ れ た バ ッ フ ァ ー に コ ピ ー さ れ て 返 さ れ る の で は な く 、 廃 棄 さ れ る よ う に な る 。 Linux 2.4.4 以 降 で は 、 MSG_TRUNC を 、 帯 域 外 デ ー タ を 受 信 す る た め の MSG_OOB と 組 み 合 わ せ て 使 っ た 場 合 に も 、 こ れ と 同 じ 効 果 を 持 つ よ う に な っ て い る 。

ioctl 以 下 の ioctl(2) 呼 び 出 し は value に 情 報 を 入 れ て 返 す 。 正 し い 書 式 は 以 下 の 通 り 。

int value;
error
= ioctl(tcp_socket, ioctl_type, &value);

ioctl_type は 以 下 の い ず れ か 一 つ で あ る :
SIOCINQ
受 信 バ ッ フ ァ ー の キ ュ ー に あ る 、 ま だ 読 ん で い な い デ ー タ の 量 を 返 す 。 ソ ケ ッ ト は LISTEN 状 態 に あ っ て は な ら ず 、 さ も な い と エ ラ ー (EINVAL) が 返 る 。 SIOCINQ<linux/sockios.h> で 定 義 さ れ て い る 。 代 わ り に 、 <sys/ioctl.h> で 定 義 さ れ て い る 、 同 義 語 の FIONREAD を 使 う こ と も で き る 。
SIOCATMARK
受 信 デ ー タ ス ト リ ー ム が 緊 急 マ ー ク の 位 置 で あ れ ば 、 真 を 返 す (つ ま り value が 0 以 外 )。

SO_OOBINLINE ソ ケ ッ ト オ プ シ ョ ン が 設 定 さ れ て い て 、 SIOCATMARK が 真 を 返 し た 場 合 、 次 の ソ ケ ッ ト か ら の 読 み 込 み で は 緊 急 デ ー タ が 返 さ れ る 。 SO_OOBINLINE ソ ケ ッ ト オ プ シ ョ ン が 設 定 さ れ て お ら ず 、 SIOCATMARK が 真 を 返 し た 場 合 、 次 の ソ ケ ッ ト か ら の 読 み 込 み で は 緊 急 デ ー タ に 続 く デ ー タ が 返 さ れ る (実 際 に 緊 急 デ ー タ を 読 み 込 む に は recv(MSG_OOB) と フ ラ グ を つ け る 必 要 が あ る )。 デ ー タ の 一 回 の 読 み 込 み で は 緊 急 マ ー ク を 跨 が っ て の 読 み 込 み は 行 わ れ な い 。 ア プ リ ケ ー シ ョ ン が 緊 急 デ ー タ の 存 在 を (exceptfds 引 き 数 を 使 っ て ) select(2) 経 由 ま た は SIGURG シ グ ナ ル の 配 送 を 通 じ て 知 ら さ れ た 場 合 、 SIOCATMARK の チ ェ ッ ク と 読 み 込 み (何 バ イ ト 読 み 込 み 要 求 を し て も よ い ) を SIOCATMARK が 偽 を 返 さ な く な る ま で 繰 り 返 し 行 う こ と で 、 緊 急 マ ー ク の 位 置 ま で 読 み 進 め る こ と が で き る 。

SIOCOUTQ ソ ケ ッ ト の 送 信 キ ュ ー に 残 っ て い る 未 送 信 デ ー タ の 量 を 返 す 。 ソ ケ ッ ト は LISTEN 状 態 に あ っ て は な ら な い 。 LISTEN 状 態 の 場 合 に は エ ラ ー (EINVAL) と な る 。 SIOCOUTQ<linux/sockios.h> で 定 義 さ れ て い る 。 代 わ り に 、 <sys/ioctl.h> で 定 義 さ れ て い る 、 同 義 語 の TIOCOUTQ を 使 う こ と も で き る 。 エ ラ ー 処 理 ネ ッ ト ワ ー ク エ ラ ー が 起 こ る と 、 TCP は パ ケ ッ ト の 再 送 を 試 み る 。 何 回 か や っ て も 成 功 し な け れ ば 、 こ の 接 続 に 対 し て ETIMEOUT エ ラ ー か 最 後 に 受 信 し た エ ラ ー が 返 さ れ る 。 ア プ リ ケ ー シ ョ ン に よ っ て は 、 も っ と 早 く エ ラ ー を 知 ら せ て ほ し い 場 合 が あ る 。 こ れ に は IPPROTO_IP レ ベ ル の IP_RECVERR ソ ケ ッ ト オ プ シ ョ ン を 用 い る と 良 い 。 こ の オ プ シ ョ ン が 有 効 に な っ て い る と 、 到 着 し た エ ラ ー は す べ て た だ ち に ユ ー ザ ー プ ロ グ ラ ム に 渡 さ れ る 。 こ の オ プ シ ョ ン は 慎 重 に 用 い る こ と — ル ー テ ィ ン グ の 変 更 な ど 、 通 常 あ り う る ネ ッ ト ワ ー ク 状 態 に 対 し て TCP を よ り 脆 弱 に し て し ま う 。

エ ラ ー

EAFNOTSUPPORT

sin_family に 渡 さ れ た ソ ケ ッ ト ア ド レ ス の タ イ プ が AF_INET で は な か っ た 。

EPIPE 接 続 先 が 予 期 し な か っ た か た ち で ソ ケ ッ ト を ク ロ ー ズ し た 。 ま た は シ ャ ッ ト ダ ウ ン さ れ た ソ ケ ッ ト に 読 み 込 み が 実 行 さ れ た 。

ETIMEDOUT 接 続 先 が 、 何 回 か デ ー タ を 再 送 し て も 反 応 し な い 。

ip(7) で 定 義 さ れ て い る エ ラ ー や 、 ジ ェ ネ リ ッ ク な ソ ケ ッ ト 層 に お け る エ ラ ー も TCP に 返 さ れ る こ と が あ る 。

バ ー ジ ョ ン

Explicit Congestion Notification、 zero−copy の sendfile(2)、 並 び 替 え の サ ポ ー ト 、 SACK 拡 張 (DSACK) な ど の サ ポ ー ト は 2.4 で 導 入 さ れ た 。 フ ォ ワ ー ド 確 認 (FACK)、 TIME_WAIT リ サ イ ク ル 、 接 続 ご と の keepalive に 対 す る ソ ケ ッ ト オ プ シ ョ ン は 2.3 で 導 入 さ れ た 。

バ グ

ま だ 説 明 さ れ て い な い エ ラ ー が あ る 。

IPv6 に 関 す る 記 述 が な い 。

関 連 項 目

accept(2), bind(2), connect(2), getsockopt(2), listen(2), recvmsg(2), sendfile(2), sendmsg(2), socket(2), ip(7), socket(7)

RFC 793: TCP の 仕 様 。
RFC 1122: TCP の 要 求 事 項 と Nagle ア ル ゴ リ ズ ム の 記 述 。
RFC 1323: TCP の タ イ ム ス タ ン プ ・ ウ ィ ン ド ウ ス ケ ー リ ン グ 各 オ プ シ ョ ン 。
RFC 1337: TIME_WAIT assassination hazard に 関 す る 説 明 。
RFC 3168: Explicit Congestion Notification に 関 す る 説 明 。
RFC 2581: TCP 輻 輳 制 御 ア ル ゴ リ ズ ム 。
RFC 2018 と RFC 2883: SACK と そ の 拡 張 。

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。