概要 サーバサイドの仕事をしているとソケットという概念に遭遇すると思います。 ソケットを理解すると TCPセッションの流れ ulimitでnofileを上げないとコネクション増加した時のToo many open filesが出るのはなぜか なぜサーバの待ち受けポートは1つで、クライアントのポートは接続するたびに新しいポートが必要なのか unix domain socketはなぜファイルパスを指定するのか Circusはなぜgraceful restartが可能なのか といったことが分かるようになります。 今回そういったソケット周りの知識を理解するためにまとめます。 ファイルディスクリプタ ソケットを扱う上で切り離せないのがファイルディスクリプタ(以下fd)です。 fdとはファイルやソケットなどを抽象化した仕組みです。 ファイルディスクリプタという名称ですが、ファイルに限らず標準入出力、ソ