タグ

golangとtcpに関するa2ikmのブックマーク (3)

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

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

    Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE
    a2ikm
    a2ikm 2018/05/03
    HTTP/2が早々に頭打ちになってるのはヘッダとかの処理の差?
  • google/netstack: IPv4 and IPv6 userland network stack

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    google/netstack: IPv4 and IPv6 userland network stack
  • gojiを使ってUNIXドメインソケットとかで起動したい - Qiita

    この前GoのWebアプリケーションフレームワークのgojiのソースコードを見ていてなるほど!と思ったので紹介します。 GoでtcpやUNIXドメインソケットやファイルディスクリプタをbindしたサーバーを立てたくなることはよくあります。そういう時は標準ライブラリのnet/httpのnet.Listerを作るところだけ分岐すれば後は共通的に扱えます。 なので適当にflagで指定して、tcpなら-tcpで、UNIXドメインソケットなら-sockでみたいな感じで指定するのが普通だと思いますが、gojiはちょっと違います。 gojiではtcpでもUNIXドメインソケットでも-bindでbind先を指定します。そのときの判定処理が以下のようになっています。 goji/bind.go at master · zenazn/goji func listenTo(bind string) (net.Lis

    gojiを使ってUNIXドメインソケットとかで起動したい - Qiita
  • 1