용어와 정의
영문 또는 원어: Socket
한글명: 네트워크 소켓
네트워크 소켓은 응용 프로그램이 네트워크 입출력을 수행하는 프로그래밍 인터페이스와 통신 끝점입니다.
정확한 의미와 원리
주소 계열과 소켓 유형, 프로토콜에 따라 스트림과 데이터그램 등의 동작이 달라집니다. IP와 포트의 조합만으로 소켓의 모든 내부 상태를 설명할 수는 없습니다.
쉽게 이해하는 사용 예시
서버가 루프백에만 bind하면 같은 서버 안에서는 접속되어도 다른 장치에서는 접속하지 못할 수 있습니다. IPv4와 IPv6 중 어느 주소로 수신 중인지도 구별합니다.
종류와 관련 개념의 차이
스트림 소켓과 데이터그램 소켓은 처리 방식이 다릅니다. 로컬 IPC용 소켓도 존재하므로 소켓이라는 말이 언제나 인터넷 TCP 연결만을 뜻하지 않습니다.
적용 조건과 오해하기 쉬운 점
연결된 소켓 수를 실제 사용자 수와 같은 값으로 해석하지 않습니다. 한 사용자가 여러 연결을 만들거나 여러 요청이 하나의 연결을 공유할 수 있습니다.
관련 용어와 글
함께 이해할 기준 개념
함께 비교할 용어
- UDP 사용자 데이터그램 프로토콜
- ICMP 인터넷 제어 메시지 프로토콜
- ICMPv6 IPv6 인터넷 제어 메시지 프로토콜
- Transport port 전송 계층 포트 번호
- QUIC QUIC 전송 프로토콜
- MTU 최대 전송 단위
- PMTUD 경로 MTU 탐색
- MSS 최대 세그먼트 크기
- HTTP 하이퍼텍스트 전송 프로토콜
- Proxy 프록시
- Load balancing 부하 분산
- CDN 콘텐츠 전송 네트워크
- Keepalive 연결 유지 확인
- TCP three-way handshake TCP 3단계 연결 수립
- TCP retransmission TCP 재전송
- TCP receive window TCP 수신 윈도
- IP fragmentation IP 단편화
- HTTP/1.1 HTTP 버전 1.1
- HTTP/2 HTTP 버전 2
- HTTP/3 HTTP 버전 3