タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

tuningとTCPに関するizariuo440のブックマーク (4)

  • LinuxでTCP_DEFER_ACCEPTが有効でもaccept後readできない理由

    listen()のbacklogが不足した際のTCP_DEFER_ACCEPTの動作について - blog.nomadscafe.jpという記事の中で、listen backlog があふれた後に accept(2) すると、その後の read(2) が EAGAIN を返したり、接続が不安定になるという事象が説明されていました。気になったので調べてみたことをまとめます。 結論から言うとこれはLinuxの仕様です。manのtcp(7)を見ると、 TCP_DEFER_ACCEPT (since Linux 2.4) Allow a listener to be awakened only when data arrives on the socket. Takes an integer value (seconds), this can bound the maximum number of

  • TCP 3-way handshakeのレイテンシ軽減のためのTCP_DEFER_ACCEPTソケットオプション - ゆううきブログ

    2013/10/22 追記した. Starletのコード読んでてlistening socketにTCP_DEFER_ACCEPTとかいうオプション渡してたので、これ何だって思って調べた. TCPに特に詳しいわけではないので理解に誤りがあるかもしれない. package Starlet::Server; ... # set defer accept if ($^O eq 'linux') { setsockopt($self->{listen_sock}, IPPROTO_TCP, 9, 1) # 9がTCP_DEFER_ACCEPTを表す and $self->{_using_defer_accept} = 1; } ... TCP_DEFER_ACCEPTはLinux 2.4から導入されている. Linux 2.6.32から挙動が若干変わっているらしい. (linux の TCP_DE

    TCP 3-way handshakeのレイテンシ軽減のためのTCP_DEFER_ACCEPTソケットオプション - ゆううきブログ
  • Linux socket accepシステムコールとTCP_DEFER_ACCEPT

    このドキュメントの内容は、以下の通りです。 Accept Filterとは 3-way handshake TCP_DEFER_ACCEPTとは リスニングソケットの場合 必ずしもデータが到達するわけではない TCP_DEFER_ACCEPT を使用する コーディングレベルでの利用例 Accept Filterとは Accept Filterとは、カーネル内でネットワークのリクエストをバッファリングすることにより、OSとアプリケーションのスイッチングを減らしたり、アプリケーションがデータ待ちで止まってしまうことを避けたりすることができます。 http://kaworu.jpn.org/freebsd/Accept_Filter Linuxには、Accept FilterでいうAccept httpがありませんが、accept data という意味で TCP_DEFER_ACCEPT が利用

  • TCP Slow Start と MSS, initcwnd などのメモ

    現実的な値と根拠など Slow Start などの例に良く出てくる数字の論拠と、個々の単位がどこで決まってくるかを主に取り扱う。というメモ。苦手科目だ。_:(´ཀ`」 ∠): Max Segment Size (MSS) の決定 この MSS がウインドウサイズ(一度に転送するデータサイズ)の単位として扱われる。(後述) TCP コネクションが 3-way handshake によって確立される際、ノード間で下記のような MSS に関するやり取りが発生する。 各ノードは Maximum Transmission Unit (MTU) から TCPヘッダ20バイト、IPヘッダ20バイトの計40バイトを引いた値を MSS として提示する 各ノードの希望 MSS のうち低い方を、そのコネクションにおける MSS とする たとえばイーサネットでは最大1,500バイト(オクテット)がIP通信に利用で

    TCP Slow Start と MSS, initcwnd などのメモ
  • 1