소켓은 프로세스와 커널 네트워크 스택 사이의 끝점이다
애플리케이션은 fd로 읽고 쓰지만 연결 상태와 버퍼는 커널 socket에 있다.
Process
file descriptor로 read, write, send, recv 호출
Socket API
주소 체계, type, protocol을 선택하는 경계
Kernel buffer
송수신 큐, 연결 상태, timeout 관리
TCP/UDP/IP
전송과 라우팅 프로토콜 처리
Network
패킷이 NIC와 외부망으로 나감
TCP stream
연결 지향 바이트 스트림 · listen/connected/close · HTTP, DB
UDP datagram
메시지 단위 전송 · 연결 상태 적음 · DNS, QUIC
Unix socket
같은 호스트 IPC · 파일 경로/권한 · reverse proxy