タグ

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

タグの絞り込みを解除

tcpに関するyamashiro0110のブックマーク (15)

  • 第1回 TCPの輻輳制御とは何か | gihyo.jp

    連載の背景と目的 近年、LTEなどの高速なネットワークの展開とスマートフォンや様々なクラウドサービスの普及により、インターネットを流れるデータ量は急激に増大しています。今後も、新たなスマートデバイスやIoTサービスの普及、5Gサービスの商用展開などに従い、私たちの生活においてインターネットへの接続は不可欠なものとなっていくと考えられます。そのインターネットにおいて広く利用されているプロトコルがTCP/IPです。TCP/IPは1980年頃にその基形が完成して以来、インターネットの普及とともに広まり、発展を続けてきました。 連載では、TCP/IPの中でも初学者にとって難しいプロトコルであるTCPに着目します。TCPは通信の信頼性を担保するための様々な機能を備えています。特に、ネットワークの状況に応じて効率的にデータを転送するための輻輳制御アルゴリズムは、今日にいたるまで様々な手法が提案、

    第1回 TCPの輻輳制御とは何か | gihyo.jp
  • Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始

    Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 Googleは、同社が開発したTCPの輻輳制御アルゴリズム「TCP BBR」をGoogle Cloud Platformで利用可能にしたと発表しました。 インターネットにおける通信にはTCPを用いる場合とUDPを用いる場合に分かれますが、BBRはTCPにおける輻輳制御アルゴリズムを改善したもの。すでにGoogleはTCP BBRをYouTubeのネットワークで利用しており、従来のパケットロスをベースにした輻輳制御アルゴリズムであるCUBICを用いた場合と比較して、スループットが平均で4%、最大で14%以上改善したことを明らかにしています。 TCP BBRは現在の高速なネットワークに適した輻輳制御アルゴリズム TCP BBRのBBRは「Bottleneck Ba

    Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始
  • ぜんぶTIME_WAITのせいだ! - Qiita

    課題 突然キャンペーンとかの高トラフィックが来る!とか言われると色々困ることはあるものの、今のご時世クラウドだからスペック上げときゃなんとかなるでしょ。ってとりあえずCPUとかメモリあげて見たものの、キャンペーンが始まったら意外と早くブラウザからつながらない!!とか言われたりする。 CPUもメモリもそんなに負荷は特に高くもない。調べてみたらTIME_WAITが大量にあった。 とりあえず何とかしたい TIME_WAIT数をコマンドで確認 $ netstat -anp|grep TIME_WAIT __(snip)__ tcp 0 0 192.168.1.1:80 192.97.67.192:56305 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.63.64.145:65274 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.39

    ぜんぶTIME_WAITのせいだ! - Qiita
  • Linux(CentOS6)カーネルチューニングのメモ | ちゃんと覚えておけよ?

    今回行った /etc/sysctl.conf の設定内容は書きの通りです。 各パラメータの説明はコメントとして残しておきます。 # 共有メモリの最大サイズ。サーバーの搭載メモリ(1GB)に合わせて変更 kernel.shmmax = 1073741824# システム全体の共有メモリ・ページの最大数 kernel.shmall = 262144# システム全体のプロセス数の上限 kernel.threads-max = 1060863# システム全体のファイルディスクリプタの上限 fs.file-max = 5242880# RFC1323のTCPウィンドウ スケーリングを有効にする。 # 64K以上のTCP windowを使えるようになる。 # 巨大なファイルを転送する時に問題になった場合は無効にすると解決されることもある。 net.ipv4.tcp_window_scaling = 1#

  • listen()のbacklogが不足した際のTCP_DEFER_ACCEPTの動作について - blog.nomadscafe.jp

    TCP_DEFER_ACCEPTは、LinuxでサポートされているTCPのオプションで、サーバ側で使用した場合にはaccept(2)からのブロック解除をTCP接続が完了したタイミングではなく最初のデータが到着したタイミングで行ってくれるオプションです。 Webサーバ・アプリケーションサーバではリクエストが到着してからaccept(2)のブロックを解除するので、リクエストの到着をWebサーバ・アプリケーションサーバで待つ必要がなくなり、特にprefork型のサーバでは効率的にプロセスを使えるようになるという利点があります。PerlではStarletがこの機能を有効にしています ところが、某サービスでTCP_DEFER_ACCEPTが有効にも関わらず、accept後のreadでデータが読めず、最悪の場合、デフォルトのtimeoutである5分間プロセスがストールすることがありました。strace

  • Note - ソケットバッファのチューニング

    Overview ADSLや光回線などの充実によって,ここ数年でネットワークの回線速度もかなり進歩してきました.ですが,Linuxの バージョンによっては,一昔のネットワーク速度を基準としてパラメータの設定を行っているためにネットワーク帯域を フル活用できていない場合もあります(特に,1Gbpsを超えるような場合はその可能性が高い).そこで,今回はボトルネック の一つとなりやすいバッファサイズのチューニング方法について記述します. sysctl変数の設定 Linuxにおいてシステム全体のバッファサイズを変更する場合には,sysctlコマンドを使用します.設定する項目は, 下記の9種類です( Manpage of TCP参照). net.ipv4.tcp_window_scaling RFC 1323のTCPウィンドウスケーリングを有効にします.この機能を用いると,(接続先が対応していれば)

  • Man page of TCP

    Section: Linux Programmer's Manual (7) Updated: 2020-12-21 Index JM Home Page roff page 名前 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 の両方のバージ

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • 見落としがちなLinuxのWEBチューニング | Act as Professional

    WEBコンテンツ配信にLinuxを使うのは一般的になりましたが、CentOSやUbuntuをはじめ、大抵のディストリビューションが低スペックなマシンでも動くような初期設定になっています。 トラフィックの上限でもない CPUリソースの枯渇でもない HDDのIOが遅い問題でもない コンテンツが重くなる(接続できない) というケースで、見落としがちなLinuxのネットワーク周りのチューニングについてです。 iptables関連 iptablesを使用している場合、下記のパラメータを注意して下さい。 /proc/sys/net/ipv4/ip_conntrack_max ip_conntrackに記録できる最大値です。65536あたりが初期設定になっているかと思います。これだとパケットの取りこぼしがすぐに起きてしまいます。1コネクションあたり約350バイト消費するので、実装されているメモリに応じて

    見落としがちなLinuxのWEBチューニング | Act as Professional
  • TCP/IP で TIME_WAIT が残る時間を短くする

    TIME_WAIT 状態の TCP コネクションが多数残る netstat コマンドで TCP コネクションの状態を確認していると、"TIME_WAIT" という状態のコネクションがたくさん確認される場合があります。 "TIME_WAIT" 状態というのは TCP コネクションにおいて、こちら側から通信をした場合に "FIN_WAIT_1" (FIN ACK 受信) から、"FIN_WAIT_2" (ACK 受信) または "CLOSING" (FIN 受信, ACK 送信)を経て、コネクションを閉じられる状態となったことを示すもののようです。 そしてこの "TIME_WAIT" から、実際にそのコネクションが閉じられて "CLOSED" となるまでの間に待ち時間があり、これによって、短時間に通信が集中すると、その分だけ通信終了間際の "TIME_WAIT" 状態のコネクションが多数、ne

  • 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ソケットオプション - ゆううきブログ
  • TCP における確認応答と再送制御 -- Key:雑学事典

    TCP の透過性 最終更新2004-12-26T00:00:00+09:00 この記事のURI参照https://www.7key.jp/nw/tcpip/tcp/tcp2.html#transp TCPのトランスポート層としての役割として大切なのは通信の信頼性を確保することです。今回はコネクションの中で、その信頼性を確保するためのかなめとなる部分について説明を行います。このかなめとなる機能は大きく分けて確認応答と再送制御の二つから成り立ちます。確認応答は「データをここまで受け取りましたよ」とあいづちをうつ機能のことを言い、再送制御は相手にデータが届かなかったことを検知し、速やかに届かなかったデータを相手に再送する機能のことを言います。これらの機能により、ローカルのアプリケーション通しが通信しているのと変わらない環境をネットワーク経由でも実現することができるのです。こうしたコネクションの性

  • TCP/IP Time_Wait の時間について | old_3流プログラマのメモ書き

    netstat -an で現在のセッション情報が見えるわけですが、とある Windows サーバでかなり TIME_WAIT が発生してました。 netstat のステータスで LISTENING が待ちうけ中、ESTABLISHED が通信中(コネクション確立)ってのは知ってたんですが、TIME_WAIT ってのはよくわかってなかったので調べてみました。 ということで、まずTCPでのコネクションの確立と切断処理を@IT:連載 基礎から学ぶWindowsネットワーク 第16回 信頼性のある通信を実現するTCPプロトコル(3)で確認します。 ↑には分かりやすい状態遷移図があるので非常に参考になります。 これを見ると TIME_WAIT というのはコネクションのアクティブクローズ時(自身から切断要求時)に、コネクションしてたのと同じポートが再利用されないための待ち時間のようです。 この待ち時間

    TCP/IP Time_Wait の時間について | old_3流プログラマのメモ書き
  • TIME_WAITとBindExceptionの抑制 - Kazzz's diary

    普段は全く問題の無いSocket通信アプリケーションが、ACT(Application Center Test)による負荷テストで30RPS(30リクエスト/秒)を超える辺りからjava.net.BindExceptionを発し始めた。最初はよくあるマルチスレッドがらみの問題だと思ったので、そのつもりでデバッグしていたのだがどうも勝手が違う。というのも、試しにシングルスレッドで動作させてもテストのロードが高くなると同様に例外が発生するからだ。 なんでもう使っていないはずのポートでバインド例外が出るんだ? ... とここで気が付いたのがTIME_WAITになったソケットの問題だ。 TCP 接続をクローズすると、ソケット ペアが TIME-WAIT と呼ばれる状態になります。ソケット ペアがこの状態になると、不正確にルーティングされたセグメントや遅延したセグメントの配信に問題がないと判断するに

    TIME_WAITとBindExceptionの抑制 - Kazzz's diary
  • どさにっき

    2008年4月21日(月) ■ 無題 _ 今朝の電車でおっさんが読んでたスポーツ新聞からちょっと見えてた見出し。頭のおかしい人が新幹線で全裸になってタイーホ。春だなぁ。 _ 出社してからニュースサイトを巡回して、それが ファーストサーバの社長だったと知る。あぁ。 _ ち、ちがうよっ、春だから頭のおかしい人が湧いてきたんじゃないよっ。だってレンタルサーバ会社の社長だよ? 頭がおかしいなんてことはないよ。最近のデータセンターは電力問題とか熱問題とかいろいろ大変だからね、きっと陽気がよくなってあったかくなったから熱暴走を起こして、その冷却のために大事なところを放熱してただけなんだよっ。 _ てか、ファーストサーバっていつのまにか yahoo の系列になってたのか。昔はクボタ(もちろん農業機械のクボタのことだ)の子会社だったよね、たしか。 2008年4月28日(月) ■ 無題 _ メール屋を廃業し

  • 1