Help us understand the problem. What is going on with this article?

ソケット通信とは何か?

More than 3 years have passed since last update.

ソケットはどこの話か?

  • OSI参照モデル
    • アプリケーション層: HTTP/telnet/DNS
    • セッション層: Socket => ここ
    • トランスポート層: TCP/UDP
    • ネットワーク層: IP
    • 物理層: Ethernet, HUB

ソケットにも種類がある

INETドメインソケット(TCPソケット)

  • ネットワーク上でマシンを越えてのプロセス間通信

UNIXドメインソケット

  • 同じマシン上で動いているプロセス間で通信を行うためのソケット
  • 自マシンのみ

UNIXドメインソケットは何がいいのか?

  • INETドメインソケットよりもはるかに早い

UNIXドメインソケットの種類

  • ファイルシステムパス(pathname)
    • 一般的な手法。bind(2)でファイルシステム上のパスを結びつける
    • ファイルを使用しているためパーミッションを調整する
    • サーバプロセスが終了する時はunlink(2)で名前を削除し、それが参照しているファイルも削除する
  • netstat -al --protocol=unixで判断する
  • /var/lib/mysql/mysql.sockのようなものがUNIXドメインソケット
masarufuruya
フリーランスエンジニアです。今はRails+Vue.jsの案件がメイン→React Native100日チャレンジの様子をTwitterで配信中 お仕事の相談はTwitterのDMまでお気軽にご連絡ください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away