Getting Started With Unix Domain Sockets

図が挙動をイメージしやすく参考になった。

Computer同士はTCP/IPソケット、同一Computer内のプロセス同士はUnixドメインソケット。

ServerはListen + Acceptする。ClientはServerにConnectする。

接続確立した両者はお互いにread/writeできる。

Webサーバにおけるソケット周りの知識

サーバサイドの仕事をしているとソケットという概念に遭遇すると思います。 ソケットを理解すると

  • TCPセッションの流れ
  • ulimitでnofileを上げないとコネクション増加した時のToo many open filesが出るのはなぜか
  • なぜサーバの待ち受けポートは1つで、クライアントのポートは接続するたびに新しいポートが必要なのか
  • unix domain socketはなぜファイルパスを指定するのか
  • Circusはなぜgraceful restartが可能なのか といったことが分かるようになります。

macos - Get list of open files (descriptors) in OS X - Stack Overflow