タグ

networkに関するhirose504のブックマーク (69)

  • Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE

    サーバ間で分散処理を行う際の相互通信におけるボトルネックを解消するため,smux(Socket multiplexer)を開発している. サーバ間の相互通信におけるボトルネックとその解決策 一対のサーバ間で多数のリクエストとレスポンスが送受信され,信頼性の高い通信としてTCPを利用する場合,コネクション確立のオーバーヘッドを排除するために接続の再利用が行われる.しかしながら,クライアントは送信に対する受信を待つ必要があるため,レスポンスまでに幾許かの処理時間を要する状況では送信のキューがたまってしまう.そこで複数の接続を利用することでこれを解消する方法が取られるが,追加の接続はリソース使用に関するオーバーヘッドを発生させてしまう.なにより各接続におけるレスポンス待ち時間は依然として解決しておらず,接続の利用面から見て非効率である.そこで,単一の接続において,仮想的に並行送受信を行う方法が提

    Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE
  • カオステストで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
  • ポートノッキングで10秒間だけsshdを公開する設定 - hnwの日記

    先日Twitterに次のような書き込みをしたところ思ったより反応が良かったので、詳細の設定を紹介します。 UDP53番、TCP443番、UDP123番とポートノッキングをするとTCP443番に10秒だけsshdが現れる、という中二病全開の設定をした。皆様にもお勧めしたい。— hnw (@hnw) 2017年3月26日 といっても特殊なことをしたわけではなく、knockdでポートノッキングの設定を行い、iptablesと組み合わせて実現しました。 ポートノッキングとは ポートノッキングというのは、決められたポートを決められた順番で叩くことでファイアーウォールに穴を空けられるような仕組みのことです。ポートノッキングを使えば、TCPの7000番、8000番、9000番の3ポートにパケットを送りつけると22番ポート (SSH) へのアクセスが許可される、といった設定ができます。 ポートノッキングの

    ポートノッキングで10秒間だけsshdを公開する設定 - hnwの日記
    hirose504
    hirose504 2017/03/29
    カッコイイ
  • Linuxネットワークドライバの開発 - Handwriting

    この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ

    Linuxネットワークドライバの開発 - Handwriting
  • 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
  • 参考訳:Docker ネットワーク設計哲学 - Qiita

    Docker 社の Blog にネットワーク機能や新しい Compose 1.6 に関する投稿がありました。翻訳しましたので、以下参考程度にどうぞ。 対象となるのは、2016年2月にリリースされた Docker Engine 1.10 Docker Swarm 1.1 Docker Compose 1.6 です。 Docker Networking Design Philosophy | Docker Blog https://blog.docker.com/2016/03/docker-networking-design-philosophy/ Docker 1.7 で実験的にネットワーキングが導入されてから Docker 1.9 の初期リリースに至るまで、コミュニティから素晴らしい反響がありました! 何よりもまず、議論、評価、プルリクエスト、山積みの課題、これら全てにかかわる皆さんに感

    参考訳:Docker ネットワーク設計哲学 - Qiita
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
  • SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記

    tl;dr 書いていたら思わず長文の大作になってしまいましたので、プロトコルオタ以外の方は文章の多さに退屈されるかと思います。GoogleマップサービスでSPDYの問題が発覚し、GoogleLinuxカーネルに修正を加えて対応したというお話です。将来 Linux + nginx + SPDY を使いリバースプロキシでサービス運用を検討されている方は参考になるかもしれません。 1. はじめに、 プロトコルに執着する年寄りエンジニア老害が叫ばれて久しい。 年甲斐もなく自分好みのパケットを追っかけるおやじエンジニアの姿を見て眉をひそめる若者も多いと聞く。 そんな批判に目もくれず、今日も一つ、プロトコルオタのネタをブログで公開したいと思いますw 今回はちょうど1年ほど前に書いたブログ記事 「GmailがハマったSPDYの落とし穴」の続編です。といっても今度の舞台は、Googleマップ。ネタ元も

    SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記
  • ヤフーネットワーク10年

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは、ヤフーでネットワーク設計に携わって早10年の松谷と申します。 今回はヤフーネットワーク10年と題し、ヤフーの重要配信インフラの一部であるネットワークについて、過去の課題と共にご紹介していきたいと思います。 2000年 この頃のヤフーでは検索やオークションといったサービスのウェブサーバーへ、大量のアクセスが集中し高負荷になる事が多々ありました。当時、ほとんどのサービスが皆さんご存じのDNS Round Robin(以下DNSRR)で運用していました。DNSRRは非常にシンプルで優れた機能ですが、サーバー障害時にはAレコードを手動で抜く作業が必要です。またDNSの512byte問題でAレコードを束ねるのが限界にな

    ヤフーネットワーク10年
  • さよなら、僕が知っていたイーサネット

    20年ほど前にイーサネットを学び始めた頃、イーサネットの2つの大きな特徴を教わりました。1つは、イーサネットでは複数のノードがケーブルを共有しているため、信号の衝突(コリジョン)が発生すること。もう1つはネットワーク構造には決してループとなる部分があってはならない、ということです。 しかしこの2つの特徴は、イーサネットの進化とともに消え去ろうとしています。イーサネットは僕の知っている昔の姿から大きく変わろうとしているのです。 コリジョンはなくなった イーサネットの大きな特徴の1つが、CSMA/CD(キャリアセンスマルチプルアクセス/コリジョンデテクト)です。ネットワークに複数の機器が接続されている場合、同時に通信を開始するとネットワーク上で信号が衝突するコリジョンが発生、コリジョンの発生が検出された場合には、それぞれの機器はランダムな時間だけ待って再送する、という仕組みです。 これによりイ

    さよなら、僕が知っていたイーサネット
    hirose504
    hirose504 2011/05/31
    最近ではイーサネットでループ構造を許容する技術が相次いで登場しています。Trill(TRansparent Interconnection of Lots of Links)やOpenFlowなどです。
  • 独裁政権の裏をかくハッカーたちの頭脳戦

    先週、エジプト政府が国内のインターネット網を遮断してから数時間後、意外な連中が状況打開に乗り出した。世界の「ハッカー」たちだ。 すべての始まりは、アメリカ起業家シャービン・ピシェバーがネットが遮断直後にツイッターに書き込んだメッセージ。エジプトにある普通のノートパソコンをインターネットルーターに転換するソフトウェアを現地に送りたい、そのために力を貸してほしいというものだ。このソフトを使って、パソコンからパソコンへメッセージを順次送っていく形の通信網「メッシュネットワーク」を作ろうというのだ。 世界の技術者たちはこのメッセージを次々に広め、「オープン・メッシュ・プロジェクト」への協力を申し出た。ルーター機能を生かせば近くの人との通信は可能になる。もしネットワーク内の1台がダメになっても、別のパソコンを通じたルートを探してメッセージを伝達できる。「携帯型の臨時ネットワークは作れる」とピシェバ

    独裁政権の裏をかくハッカーたちの頭脳戦
  • 自宅サーバのインフラ設計書を公開します - @int128

    自宅サーバのインフラ設計書を公開します。 Design paper of the home server(抜粋) 昨夜にTwitterで公開したら予想外に反響があったので、ちゃんとエントリに残すことにしました。クラックされるおそれがあるので、細かい部分は公開できないことをご了承ください。 内容はこんな感じ。 要件概要 機器仕様 ネットワーク設計 ソフトウェアスタック設計 共通基盤設計 サーバ詳細設計 上記にバックアップ設計や運用管理まわり*1を加えれば、インフラの設計書はだいたいこんな感じではないかと思います。 インフラの要件定義は難しい 一方で、インフラの要件定義は十分に標準化が進んでおらず、会社やチームによって文化がかなり違います。特に受託開発(SI)の場合は、お客様の中にインフラに詳しい人がいなくて調整に苦労することも多いと思います。費用と可用性のトレードオフの部分はなかなか伝わりづ

    自宅サーバのインフラ設計書を公開します - @int128
  • ニコニココメントサーバーにおけるメモリ使用量増大問題の調査と対策 - ドワンゴ 研究開発ブログ

    はじめに コメントサーバーは、ニコニコ関連サービスのコメントを司るサーバーである。稿は、ニコニコ広場で起こったコメントサーバーメモリ使用量増大問題について、我々コメントサーバー担当が行った調査と対策のまとめである。 今回のメモリ増大問題の解決にあたり、「仮説を立てる + 計測する→修正する→確認する」というパターンを繰り返した。このパターンは、ソフトウェアの様々な問題を調査するのに適用できる、基パターンである。 コメントサーバー概要 コメントサーバーについて簡単に概説する。 コメントサーバーはニコニコ関連サービスのコメントを管理するサーバーである。基的な機能は、新しいコメントの保存、およびコメントの出力である。ニコニコサービスのユーザーがコメントサーバーに直接触れることはなく、ニコニコのプレイヤーがコメントサーバーと直接やりとりを行う。ニコニコ動画の例でいうと、コメントサーバーを使用

  • Amazon EC2も監視できるオープンソースのモニタリングツール「Opsview Community 3.9」公開 | OSDN Magazine

    Opseviewは英Opseraが出資するオープンソースプロジェクト。物理マシンおよび仮想マシン、そしてそれらが混在するハイブリッドなIT環境を監視できるモニタリングソフトを提供する。「Nagios Core」「Nagvis」「Net-SNMP」「PRDtool」などのオープンソースソフトウェアを統合したもので、完全な分散/マルチテナントアーキテクチャをもち、ビジネスプロセスへの影響を把握できる。ライセンスはGPL v2。 最新版では、RESTインターフェイスを持つ最新の設定APIを提供する。REST API経由で設定変更やデータのインポート/エクスポートが可能で、モニタリングプロセスをさらに自動化できるという。また、パフォーマンスを監視するビューポイントも強化した。 「Amazon Elastic Cloud(EC2)」「Amazon Simple Storage Services(S3

    Amazon EC2も監視できるオープンソースのモニタリングツール「Opsview Community 3.9」公開 | OSDN Magazine
  • 小悪魔女子大生のサーバエンジニア日記

    ECC版SSL証明書インストール体験記その4 02.08.13 / 未分類 / Author: aico / Comments: (0) では、いよいよ発行されたECC証明書をインストールしましょう! 実はECC版SSL証明書は現在、ブラウザ・OSによっては対応していないものも多いので、 対応していないものはRSAの証明書を読むように、ECCとRSAのハイブリッド構成をすることが出来ます。 そしてなんと、ECCの証明書を申請するとRSAの証明書も一緒にもらうことが出来ます(ベリサインさん太っ腹!) なので今回はECCとRSAのハイブリッド構成を組みつつ証明書のインストールを行います! まずはベリサインのサイトで中間証明書を確認しましょう。 発行されたCRT、中間証明書、秘密鍵は必ず対になっている必要があります。 対になっていないとエラーになってしまいます。。 小悪魔ブログは最初、中間証明書

  • http://to./が開けるしくみ - しょんぼり技術メモ

    ※2010/04/14 11:55追記 ブコメでのご指摘の通り、「なぜ開けるか」に対する答えは、「"to"のトップレベルドメイン(TLD)にAレコードが設定されているから」というシンプルなものです。 "to"はトンガのTLDで、古くからTLDを売って外貨を稼いでいます。恐らく、今回の"to."URL短縮サービスもその一環ではないかと考えられています。(beroさん コメントでの情報提供ありがとうございました) ※さらに補足:もう少し正しい説明 を追加しました。 Twitterでちょっと話題に上っていたので。 http://to./というURL短縮サービスがあります。一見開けなさそうなこの不思議なURL、実は正しく開けます。 その仕組みについて簡単に説明したいと思います。 ブラウザで"http://to./"にアクセスすると、ブラウザはOSに"to."のIPアドレスを尋ねます。 そのリクエス

    http://to./が開けるしくみ - しょんぼり技術メモ
  • 拙著「Linuxネットワークプログラミング」:Geekなぺーじ

    Linuxネットワークプログラミング」というを書きました。 LinuxでCを利用してネットワークプログラミングを行うための解説書で、私にとって初の書籍執筆です。 昨年2月にソフトバンククリエイティブさんから書籍執筆のオファーを頂き、開始から約一年後の発売となります。 今回、C言語によるLinuxのネットワークプログラミング解説書籍を執筆する機会を頂けたのですが、書籍の大きな方向性として以下の点が挙げられます。 可能な限り、ソースコード全文を掲載する。断片的なソースコードだと手元で即座に試しにくい メインはIPv4を意識しながら書く ただし、getaddrinfo()を前提とし、IPv6が存在することを前提に書く IPv6移行がメインの書籍ではない。インターネットの世界がIPv4/IPv6デュアルスタックで運用されることになるという前提でネットワークプログラミング解説書を書いているだけ

  • 海底ケーブルの地図:アルファルファモザイク

    576 名前: 目打ち(大阪府) 投稿日:2010/01/17(日) 01:54:26.14 ID:uWcwvKU5 海底ケーブルの地図ね 日張り巡らされすぎ。 308 水先案名無い人 :2010/01/17(日) 10:31:39 ID:9qD5/MoE0 >>294 アメリカ土~アラスカって海底這わしてるんだな。カナダ経由だと思ってた ニューヨーク-マイアミは、理由が分からん 310 水先案名無い人 :2010/01/17(日) 10:41:02 ID:tDKugtGq0 >>308 単に陸を通すより安いからじゃね? 312 水先案名無い人 :2010/01/17(日) 10:45:44 ID:aEtZ6XDf0 >>310 自国のインフラを他国経由にする危険性に配慮してと言うのが大きな理由だと思う 321 水先案名無い人 :2010/01/17(日) 1

  • 低価格サービスを実現する、さくらインターネットの「自前」戦略 

  • ネットワークプログラムのI/O戦略 - sdyuki-devel

    図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

    ネットワークプログラムのI/O戦略 - sdyuki-devel