タグ

networkに関するf99aqのブックマーク (93)

  • カオステストでHTTP/2の問題を見つけ出す | POSTD

    (注:2017/04/20、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) 要約 HTTP/2 にはHTTP/1.xに比べて多数の改良点がありますが、 カオステスト を行ったところ、HTTP/2のパフォーマンスがHTTP/1より劣る状況があることが分かりました。 ネットワーク上にパケット損失がある場合、TCP層での輻輳制御によって、少数のTCPコネクションの中に多重化されているHTTP/2ストリームがスロットリングされます。さらに、TCPリトライのロジックにより、リトライが行われている間、1つのTCPコネクションに影響しているパケット損失が、いくつかのHTTP/2ストリームに同時に強い影響を与えます。言い換えれば、ヘッドオブラインブロッキングが事実上、ネットワーク階層の レイヤ7 から レイヤ4 へ移動したということです。 背景とサー

    カオステストでHTTP/2の問題を見つけ出す | POSTD
  • LinuxサーバでネットワークI/Oで刺さっている接続先を発見する - ゆううきメモ

    Linuxサーバの障害対応で社内で伝統的に使われているテクニック。I/Oで完全にブロックしているポイントを特定するノウハウ。 問題対応のため、怪しいプロセスをstraceしてみる read(2)やwrite(2)でブロックしていることを発見する read(2)やwrite(2)、connect(2)の引数にはファイルディスクリプタ番号がみえる プロセスIDとファイルディスクリプタ番号を使って、/proc//fd/ の中身をみると、ソケットI/Oで刺さっている場合はソケット番号を発見できる netstat からソケット番号でgrepして接続先を発見する [y_uuki@hogehoge ~]$ sudo strace -p 10471 Process 10471 attached - interrupt to quit read(58, <unfinished ...> Process 10

    LinuxサーバでネットワークI/Oで刺さっている接続先を発見する - ゆううきメモ
  • net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita

    Disclaimer 私はネットワークの勉強もちゃんとしたことないし、Linux のソース読むのもはじめてな素人です。 何かおかしなところなどあれば、遠慮なくコメント欄でまさかりをお願いいたします。 ソースコードの引用に関して 文中で Linux のコード/ドキュメントを引用している箇所がありますが、すべてタグ v4.11 のものです。また、日語のコメント・翻訳文は筆者が入れたものです。 TL; DR Linux のカーネルパラメータ net.ipv4.tcp_tw_recycle は、バージョン4.12から廃止されました。 今後はこの設定は行わないようにしましょう(というかできません)。 一方、net.ipv4.tcp_tw_reuse は安全であり、引き続き利用できます。 …というだけの話なのですが、自分用にメモがてら経緯・背景などを記録しておきます。 なんで気がついたか このパラ

    net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
  • Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話)

    TCP通信をするプログラムを書く際に「データの送信はまとめて1回で」行うべき、というのは鉄則と言っていい、と思います。その理由としては、パケット数を最小限に抑えることでオーバーヘッドを少なくするためだと一般に説明されますが、自分はもうひとつポイントがあると考えています。次のグラフを見てください。 グラフは、一定量のデータを転送するのにかかる時間と使用するブロックサイズ(1回のwrite(2)で書き込むサイズ)の関係を表したものです注1。 ホスト間のTCP通信を行っている場合は、TCPのバッファが有効に機能するので、ブロックサイズ(=パケット数の逆数)による速度の変化は、ほぼありません。一方、同一ホスト上で通信を行うと、ブロックサイズと反比例して所要時間が反比例の関係にあることがわかります。 原因は、同一ホスト上の通信では、送信プロセスがwrite(2)を呼ぶたびにコンテクストスイッチが発生

  • QUIC標準化動向 〜2017/7

    QUICの標準化動向を日語で解説。HTTP/2勉強会発表資料(2017/08/23) https://http2study.connpass.com/event/63998/

    QUIC標準化動向 〜2017/7
  • GoogleのQUICの論文が知見の塊だった - ASnoKaze blog

    20181107追記 QUICプロトコルについての概要は別途記事を書きました asnokaze.hatenablog.com 概要 ACM SIGCOMM 2017という通信系の学会に、Googleの人 総勢21人によって書かれた「The QUIC Transport Protocol: Design and Internet-Scale Deployment」という論文が提出され、学会ホームページより閲覧出来る。 この論文は、QUICの設計仕様と実際にGoogleのサービスにデプロイした結果について書かれている。 すでにGoogler SearchやYoutubeでQUICは有効になっており、一日あたり数十億の接続を処理し、Googleのegress trafficのうち30%がQUICになっており、インターネットのトラフィックの内7%がQUICだと推定されるという説明から論文は始まる。

    GoogleのQUICの論文が知見の塊だった - ASnoKaze blog
  • BitTorrentのファイル配信メカニズム - Emerge Technology

    Linuxのディストリビューションの配布などで配布サーバの回線速度などがボトルネックになり(図1)、円滑にファイルを配布することはコストがかかります。BitTorrent(図2)は配布者の負担を軽減して、素早くファイルを配信することを目的にBram Cohenによって開発されたP2Pソフトウェア(図3)です。 BitTorrentでは、トラッカーとよばれる全てのピアとピアのアップロード/ダウンロード能力、ファイルの取得状況を管理するサーバが存在します。一般的なP2PシステムではP2Pネットワーク内を検索してからファイルの取得という動作を行いますが、BitTorrentでファイルの検索という作業は行ないません。代わりにトラッカーにファイルを持っているピアを問い合わせます。ファイルを持っているピアの検索をクライアント・サーバで行うということで、従来の分類ではハイブリッド型P2Pシステムになりま

    BitTorrentのファイル配信メカニズム - Emerge Technology
  • GoogleのQUICプロトコル:TCPからUDPへWebを移行する | POSTD

    QUIC(Quick UDP Internet Connections)プロトコルは、TCPではなくUDPをベースとして開発された、全く新しいWeb向けのプロトコルです。 (冗談で) TCP/2 と呼ぶ人までいます。 私がQUICについて知ったのは数週間前のことです。 SysCast Podcastcurlとlibcurlについてのエピソード を聞いていた時でした。 QUICプロトコルの当に面白い点は、UDPへの移行というところだと思います。 現在、Webの伝送プロトコルは、信頼性を確保するため、TCP上に構築されています。このTCP接続を開始するためには、 3wayハンドシェイク が行われています。つまりこれは、接続を開始するたびにラウンドトリップ (ネットワークパケットの往復) が追加されるということであり、新たな接続先に対し大幅な遅延を生じさせているのです。 (出典: UDPを介

    GoogleのQUICプロトコル:TCPからUDPへWebを移行する | POSTD
  • レイテンシに負けないプロトコルとして登場したHTTP/2~奥一穂氏による「HTTPとサーバ技術の最新動向」(前編)。Developers Summit 2016

    私はWeb関連の基盤技術を20年くらいやっています。 最近の仕事としてはディー・エヌ・エーで「H2O」というWebサーバを開発していて、2016年2月に1.7.0をリリースしました。HTTP/2対応のWebサーバとしてはおそらく世界最速で洗練された実装だろうという評価をいただいています。 日はサーバ技術をそもそもどういう評価軸でわれわれが見ているのか、HTTP/2の特長。そしてサーバプッシュとはなにか、HTTPS化はどれだけサーバ負荷が上がるのかについてのわれわれの見解。Webサーバ内でのスクリプト実行がどう変わってきているのか、といった話をしていきます。 サーバ技術の評価軸 サーバ技術の評価軸をどう考えているかですが、大きく分けて4つの項目で考えています。 サーバ負荷 転送データ量 応答性 設定・運用コスト まず「サーバ負荷」です。小規模なWebサイトではサーバ負荷はそれほど問題にはな

    レイテンシに負けないプロトコルとして登場したHTTP/2~奥一穂氏による「HTTPとサーバ技術の最新動向」(前編)。Developers Summit 2016
  • HTTPレスポンスのgzip圧縮による日時リーク : Torの秘匿ネットワークの秘匿性を脅かす仕様・実装について | POSTD

    よって、このヘッダがgzip圧縮データに付いていれば、適当なWebサーバにgzip圧縮リクエストを出し、gzip圧縮レスポンスを待って、バイト数が0x1f 0x8bで始まっているかどうかということと、正確な圧縮日を確認できるのです。 一般的なWebサーバでは、これは非常に限定的なシナリオにおいてのみ有用です。なぜなら、サーバの地理的な位置はいずれにしても隠されず、これもまた隠されていないサーバIPアドレスが分かればすぐに特定されるからです。しかし、 秘匿サービス では、サーバの時間帯に関する情報は、サーバが稼働している可能性のある国を特定するのに非常に役立ちます。 gzipの仕様を見れば、ファイル更新時間のヘッダフィールドには、ローカル時刻ではなく、世界時を使用すべきことは明確です。しかし、多くのサイトが世界時の代わりにローカル時刻を送信しています。どうもMicrosoft Windows

    HTTPレスポンスのgzip圧縮による日時リーク : Torの秘匿ネットワークの秘匿性を脅かす仕様・実装について | POSTD
  • 「著作権侵害サイト遮断 政府が導入検討、海外経由に対応」に関して:Geekなぺーじ

    経済新聞に、以下のような記事が掲載されています。 著作権侵害サイト遮断 政府が導入検討、海外経由に対応 政府はインターネット上に氾濫する著作権侵害サイトへの接続を強制的に遮断できる仕組みを検討する。内閣官房の知的財産戦略部(部長・安倍晋三首相)に今夏にも有識者会議を新設。通信事業者や大学の専門家と連携して2016年3月にも決める。取り締まりが難しい海外サーバーを使った侵害サイトに対応できるようにする。 2010年頃の議論を振り返る 「取り締まりが難しい海外サーバーを使った侵害サイトに対応できるようにする」とありますが、恐らく、DNSブロッキングに関する議論も含まれていると推測しています。 日では、児童ポルノを対象としたDNSブロッキングが2011年から開始しています(参考)。民間の通信事業者が各自の自主的な判断でDNSブロッキングを行っているという体裁であるため、ここで議題となる

  • HTTPS 化する Web をどう考えるか - Block Rockin’ Codes

    Update 2015/5/8: 指摘頂いたタイポや誤訳などを更新しました。 2015/5/8: 構成を一部修正しました。 Intro 4/30 mozaiila のセキュリティブログに下記のようなエントリが投稿されました。 Deprecating Non-Secure HTTP | Mozilla Security Blog エントリはそこまで長くないので、ここに翻訳の全文を記載します。 そして、元エントリのライセンスである CC BY-SA 3.0 に則り、 エントリも同じく CC BY-SA 3.0 とします。 Deprecating Non-Secure HTTP 原文: Deprecating Non-Secure HTTP 今日は、 non-secure な HTTP から、徐々に廃止していくという方針についてアナウンスします。 HTTPS が Web を前進させる手段である

  • 相手がいないのに ESTABLISHED になってる TCP ポート - tmtms のメモ

    最近 ParallelServer というライブラリを作ったのですが、その最中に奇妙な状態になってる TCP ポートを見つけたので、メモっておきます。 Ruby では TCP サーバーは次のような感じで作ることができます。お手軽ですね。 require 'socket' Socket.tcp_server_loop(12345) do |socket, client_addr| socket.puts "Your IP address: #{client_addr.ip_address}" name = socket.gets socket.puts "Hello, #{name}" socket.close end これは 12345 ポートでクライアントからの接続を待ち、接続されたらクライアントのIPアドレスとクライアントからの入力をクライアントに送信して切断するだけの簡単なプログラム

    相手がいないのに ESTABLISHED になってる TCP ポート - tmtms のメモ
  • Linuxでネットワークの監視を行えるモニタリングコマンド20選 | 俺的備忘録 〜なんかいろいろ〜

    今回は、Linux上でネットワークトラフィックの監視を行えるモニタリングコマンドについて、数あるコマンドから20個を紹介する。 1.iftop 以前にこちらでも書いているiftopは、個別のソケットで受信・送信パケットをひと目で見る事が出来るコマンド。 通信ごとに個別のプロセスを表示させることは出来ないが、どのホストとの接続がどの程度の帯域を使用しているのかはひと目で分かるだろう。 以下のコマンドでインストールが出来る。 sudo apt-get install iftop # Debian/Ubuntuの場合 sudo yum install iftop # RHEL系の場合 2.bmon 『bmon』は、グラフでトラフィックの負荷を表示してくれるモニタリングコマンドだ。 どのNICのトラフィックを表示させるかを上下キー、モニタリングを行うパケットの種類を左右キーで選択する。 このコマン

  • SoftEther VPN のソースコードを GPLv2 オープンソース・ライセンスで公開 - SoftEther VPN プロジェクト

    2014 年 1 月 4 日 (土) SoftEther VPN プロジェクト 登 大遊 (筑波大学大学院システム情報工学研究科 博士後期課程) SoftEther VPN プロジェクトは、日、SoftEther VPN のソースコードをオープンソース・ソフトウェア (GPLv2 ライセンス) として公開いたしました。ソースコードは、.tar.gz 形式または.zip 形式でダウンロードできるほか、GitHub のリポジトリ上でも公開されています。ソースコードは WindowsLinuxMac OS X、FreeBSD および Solaris 上でビルドでき、再配布のためのインストーラも自動生成可能です。 ソースコードのダウンロード SoftEther VPN はオンプレミスまたはクラウドベースの VPN を構築するためのツールとして人気がある、製品レベルの VPN ソフトウェア・ス

  • スノーデン事件の裏で起きていたSSL秘密鍵を巡る戦い:Geekなぺーじ

    今月7日から9日にアリゾナ州で開催されたNANOG 59で、Ladar Levison氏がFBIにサービス全体のSSL秘密鍵を要求された話が公開されていました。 Ladar Levison氏が運営していた、Lavabitという電子メールサービスはスノーデン事件に関連して突如8月8日に閉鎖されています。 閉鎖時には詳細が書かれておらず、様々な憶測が語られていましたが、世界中から多数のネットワークエンジニアが集まるNANOGで、その一部始終が語られました。 この発表は、NANOG 59が開始される前の週に、裁判所が調査対象の氏名以外を機密解除したことによって実現しています。 インターネット上で提供されているサービス事業者にSSL秘密鍵を提出させ、かつ、その事実の公表が違法行為となるようにされてしまっている一方で、こういった内容を公的に語れるように裁判所で戦って、実際にそれを勝ち取るというのは凄

    f99aq
    f99aq 2013/10/19
    "Diffie-Hellman鍵交換を使っていなかったので、SSL秘密鍵を提出してしまうと過去の全ての暗号が解かれてしまうのですが、それを有効にしてあれば過去の通信に対する暗号を解くのが困難になっていただろうと主張しています
  • Googleの新プロトコルQUICを試す - ぼちぼち日記

    1.QUIC仕様の公開 以前、「Googleが仕掛ける新プロトコルQUICとは何か」のブログエントリーを書いたのが2月末の事でした。それから4か月経ち、今朝Googleが初めてQUICの公表(Chromium Blog: Experimenting with QUIC)を行いました。 IE11のSPDY/3対応が判明した直後でした。なんというタイミングでしょうか。 また、近いうち(来週?)には HTTP/2.0 の Implementation Draft が公開される予定です。8月上旬には、GoogleMicrosoft等が集まって初めての HTTP/2.0 の相互接続試験を行う予定です。ただ今HTTP関連のプロトコルが急激に進化する真っ最中です。目が離せません。 2. で、QUICとは何なのか? 先のChromium BlogのエントリーでQUICは、 「Quick UDP Inte

    Googleの新プロトコルQUICを試す - ぼちぼち日記
  • Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ

    Linux kernel 3.9 のマージウィンドウでは SO_REUSEPORT というソケットオプションがマージされました。 Merge branch 'soreuseport' · c617f39 · torvalds/linux · GitHub これは同一ポートに複数のリスナー(listen ソケット)が bind できるようになるというもので、Webサーバなど単一のポートに多くのコネクションが来るようなワークロードで、複数プロセスでうまく負荷分散ができるようになるそうです。 (これまでだと一人がaccept()してそれぞれの worker に渡すというようなモデルがありましたが、これでは accept() する部分がボトルネックになってしまいがちでした。) BSDでは元々 SO_REUSEPORT オプションはあったようですが、マルチキャスト通信で使うもののようです。Linux

    Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ
  • 【HTTP2.0最新動向】第1回:HTTP/2.0の策定、ついに始まる 

  • グーグル「Spanner」:世界中のサーヴァーをGPS利用で同期