인터넷에서 안정적인 데이터 전송을 책임지는 전송 계층의 대표 프로토콜이 TCP(Transmission Control Protocol) 입니다.
여기서는 TCP와 비교되는 UDP, TCP 세그먼트 구조, 연결 수립(3-way handshake), 연결 종료(4-step close), 그리고 MSS/MTU·시퀀스·ACK 등을 간단명료하게 정리합니다
1. TCP vs UDP 한눈에
- TCP (연결형, 신뢰성 보장)
연결 수립 → 데이터 전송(재전송/흐름 제어/혼잡 제어) → 연결 종료
(응용: HTTP, SSH, SMTP 등) - UDP (비연결형, 빠름)
연결 수립 과정 없음. 레이턴시가 중요하고 약간의 손실을 허용하는 서비스에 적합 (예: 실시간 스트리밍, DNS 쿼리 등).
2. TCP 통신 단계 (개념)
- 연결 수립 (Three-way handshake): 양쪽이 초기 시퀀스 번호(ISN)를 교환하고 연결을 시작할 준비를 마침.
- 데이터 송수신: 세그먼트를 보내고, 수신확인은 ACK로 처리. 재전송/흐름·혼잡 제어 수행.
- 연결 종료: 각 쪽이 FIN을 보내고 ACK를 주고받아 연결을 정상 종료.
3. Three-way handshake (쓰리 웨이 핸드셰이크)


간단한 시퀀스 다이어그램으로 보겠습니다.
호스트 A 호스트 B
(ISN = x) (ISN = y)
A -> B : [SYN, seq=x] ---> (A: 연결 시작)
A <- B : [SYN+ACK, seq=y, ack=x+1] (B: 확인 + 자신의 SYN)
A -> B : [ACK, ack=y+1] ---> (A: 최종 확인)
=> 연결 수립 완료
- 1단계: A가 SYN(초기 시퀀스 번호 x) 보냄
- 2단계: B는 SYN+ACK(자기 ISN y, A의 seq에 대한 ack=x+1)으로 응답
- 3단계: A는 ACK(ack=y+1) 전송 → 양쪽 모두 연결 수립
핵심: SYN/ACK/ACK의 조합으로 서로 “연결 준비”와 “초기 시퀀스 번호”를 맞춥니다.
4. 연결 종료 (정상 종료 흐름)


TCP는 각 방향의 전송 종료를 개별적으로 처리합니다. 일반적인 흐름(4단계):
호스트 A 호스트 B
A -> B : [FIN, seq=fa] ---> (A: 더 보낼 데이터 없음. 종료 요청)
A <- B : [ACK, ack=fa+1] <--- (B: 확인)
A <- B : [FIN, seq=fb] <--- (B: 자신도 종료 요청)
A -> B : [ACK, ack=fb+1] ---> (A: 확인)
=> 연결 종료 (양방향 FIN/ACK 교환으로 닫힘)
- 액티브 클로즈: 종료를 시작한 쪽(먼저 FIN 보낸 쪽)
- 패시브 클로즈: 종료 수락하는 쪽
정리하면
TCP는 연결 지향으로, 연결 수립(3-way handshake) → 데이터 전송(시퀀스, ACK, 윈도우) → 연결 종료(FIN/ACK 절차) 과정을 거쳐 신뢰성을 보장합니다.
'컴퓨터 과학 > 네트워크' 카테고리의 다른 글
| TCP vs UDP 비교 (0) | 2025.10.04 |
|---|---|
| TCP 상태와 연결 과정 이해하기 (0) | 2025.10.04 |
| TCP의 핵심: 세그먼트와 통신 흐름 (0) | 2025.10.04 |
| IP의 한계와 ICMP의 역할: 비연결형 통신의 보완책 (0) | 2025.10.04 |
| 포트 포워딩(Port Forwarding): 외부에서 내부 네트워크에 접근하기 (0) | 2025.10.04 |