네트워크
TCP
다른 이름: Transmission Control Protocol
정의
Transmission Control Protocol. OSI 4계층(전송 계층) 연결 지향 프로토콜. 3-way 핸드셰이크로 연결 수립, 순서 보장, 재전송, 흐름 제어, 혼잡 제어 제공. HTTP, SSH, FTP 등 신뢰성 필요 애플리케이션 사용. UDP 대비 느리나 안정적
상세 설명
기술 스펙
- 연결 지향: 3-way 핸드셰이크 (SYN, SYN-ACK, ACK), 4-way 종료 (FIN, ACK)
- 포트: 16bit (0~65535), Well-known(0~1023), Registered(1024~49151), Dynamic(49152~65535)
- 시퀀스 번호: 32bit, 바이트 단위 순서 보장
- ACK 번호: 다음 받을 바이트 번호
- 윈도우 크기: 16bit (최대 65535 바이트, Window Scaling으로 확장)
- 체크섬: 16bit, 헤더+데이터 무결성 검증
- 재전송: Timeout(RTO), Fast Retransmit(3 duplicate ACK)
- 흐름 제어: Sliding Window, 수신 버퍼 크기로 전송 속도 조절
- 혼잡 제어: Slow Start, Congestion Avoidance, Fast Recovery (Reno, Cubic, BBR)
실무 활용
- HTTP/HTTPS: 웹 브라우징, REST API
- SSH: 원격 로그인, 파일 전송
- FTP, SMTP, IMAP: 파일 전송, 이메일
- Database: MySQL, PostgreSQL 연결
장점
- 신뢰성: 순서 보장, 재전송, 중복 제거
- 흐름 제어: 수신자 버퍼 오버플로우 방지
- 혼잡 제어: 네트워크 과부하 방지
- 연결 지향: 상태 유지, 양방향 통신
단점 및 제약
- 높은 오버헤드: 핸드셰이크, ACK, 재전송으로 지연 증가
- Head-of-Line Blocking: 패킷 손실 시 후속 패킷 대기
- Connection Setup: 3-way 핸드셰이크 지연 (1.5 RTT)
- 혼잡 제어 한계: 고속 네트워크(10Gbps+)에서 비효율
호환성
모든 OS, 브라우저, 애플리케이션 지원. 인터넷 프로토콜 표준
표준 정보
표준화 기구: IETF RFC 793 (1981), RFC 9293 (2022 업데이트)
출시 연도: 1981년