TCP, local=192.0.2.10:8080
Socket Endpoint
소켓은 프로세스와 커널 네트워크 스택을 잇는 끝점이다
애플리케이션은 파일 디스크립터처럼 소켓을 다루지만, 실제 주소/포트/버퍼/상태 관리는 커널 네트워크 스택이 맡는다.
프로세스는 fd 또는 handle로 소켓을 읽고 쓴다.
listening socket은 로컬 수신 지점을 열어 둔다.
connected socket은 양쪽 주소와 포트를 모두 가진다.
Application Process
read, write, send, recv 호출
File Descriptor
server_fd, client_fd처럼 정수 핸들로 참조
Socket API
언어는 달라도 핵심 흐름은 거의 같다
TCP, 192.0.2.10:8080 ↔ 198.51.100.24:52431
Kernel TCP/IP Stack
송수신 버퍼, 상태 머신, 재전송, 흐름 제어
IP + Port
네트워크에서 도착한 패킷을 올바른 소켓으로 demux
NIC / Network
프레임과 패킷은 아래 계층에서 이동