はやいTCPサーバの書き方 - nyaxtのPC作業ログ で id:nyaxt さんが書いてらっしゃるように、 epoll や kqueue を使う TCP_NODELAY, TCP_DEFER_ACCEPT *1 等を活用する TCP パケットを意識する I/O システムコールの回数を最小にする sendfile といったあたりは、確実にやるべきことだと思います。一方で、TCP 関連以外のオーバーヘッドが実は結構あって、 接続のタイムアウト処理 ログの出力 メモリの確保や解放をやらない あたりにも気を配る必要がある、と思います。 接続のタイムアウト処理については、以前 Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件 に書いたように、ビットアレイのリングバッファを使うのがベストだと思います。 ログの出力について、複数行を1回のシステムコールにまとめてもいいかど
cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ
connect(2) のエラー TCP において connect(2) 呼出し時に発生する可能性のあるエラーは以下の通りです。 タイムアウト RST 受信 EHOSTUNREACH また ENETUNREACH シグナル受信 その他 まず、connect(2) 時の正常な流れをしっかり覚えておいてください。 (connect(2) を呼んで) SYN を送る SYN+ACK が返ってくる (ここで connect(2) から戻る) ACK を送る タイムアウト もし仮に、SYN を送ったものの、相手側から SYN+ACK が返ってこない場合は、 (ローカルの TCP スタックが) しつこく SYN を再送します。何度 SYN を送っても SYN+ACK が返ってこない場合はあきらめてタイムアウトします。 「SYN+ACK が返ってこない」というのは、例えば以下のようなケースが考えられます。
SACK TCP/輻輳制御から分家. Selective ACK/選択的応答確認 SACK Reno の高速リカバリが失敗したり,NewReno の高速リカバリがややまどろっこしいのは,TCP が累積確認応答(cumulative acknowledgments)をベースにしたスライディングウィンドウプロトコルだからである. Reno では重複 ACK でわかるのは,最初のパケットロスだけである.ウィンドウ内に複数のパケットロスが起きた場合,最初のパケットロスに対する再送を行っても,次のパケットロス箇所がわかるのは,その再送に対する ACK が戻った後になるので,1 RTT に一つのパケットロスしか知ることができない. そこで選択的に確認応答を可能にする SACK が提案され,使われ始めている(少なくとも Linux や Solaris ではデフォルトで有効). SACK RFC:2018
TCP/Tahoe、TCP/Reno、TCP/Vegas、TCP/SACKの4つの特徴がわかる日本語サイトを教えてください。 できたら比較してるサイトなら最良。
This document is a translation of `Why TCP Over TCP Is A Bad Idea', which was written by Olaf Titz. この文書は、Olaf Titz氏による `Why TCP Over TCP Is A Bad Idea'の翻訳です。 IPトンネリングアプリケーションにしばしば用いられるアイデア は、IPパケットを(モデムラインのような)ストリーム転送に適した フォーマットにカプセル化する、PPPのようなプロトコルをTCPベー スの接続上で実行することです。これは、すでにいくつかの推奨 (Linux HOWTOや、私自身のウェブサイトや、もちろん他にもいく つか)がある、PPP over SSHの実行により、容易なソリューション となるでしょう。それは、データグラムベースの圧縮が効率的な 制約で困難となる一方
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く