Unix (domain) socket
- IPC socket 이라고도 한다.
- 같은 machine(host OS)에서 실행되고 있는 프로세스 간에 양방향 데이터 교환 시 사용한다.
- rounting 및 인증과 같은 과정을 생략할 수 있기 때문에, TCP socket 보다 가볍고 빠르다.
- TCP Socket은 packet 필터 수준에서만 제어할 수 있는 것과 달리
이는 file system 권한이 적용되어, user로 하여금 access를 제한하기 용이하다.
- TCP Socket의 endpoint가 IP 주소 + port인 것과 달리, file path를 주소로써 사용한다.
TCP socket
- Network socket, Internet socket 이라고도 한다.
- OSI 4(Transport) Layer에 해당되며, TCP(stream) 외에 UDP(datagram)도 존재한다.
(지금은 간단하게 TCP만 다루자.)
- network를 통해, 서로 다른 machine에서 실행되고 있는 프로세스 간 통신에 사용한다.
- 127.0.0.1과 같은 loopback interface를 사용함으로써,
같은 machine에서 실행되고 있는 프로세스 간 통신에서도 쓸 수 있긴 하다.
- server측 socket이 특정 port에서 listening하는 형태로 시작한다.
그리고 client socket으로부터 connection을 기다린다.
- 각 connection은 socket pair(local IP + port 및 remote IP + port)로 식별 가능하다.