4계층에는 사실상 두 개의 프로토콜만 있습니다. TCP와 UDP입니다. 둘의 차이를 "TCP는 신뢰성, UDP는 속도"로 외우고 넘어가는 경우가 많은데, 시험에서는 그보다 한 단계 더 들어간 것을 묻습니다.
최종 확인: 2026년 9월 13일 · 참고: RFC 793(TCP), RFC 768(UDP), IANA 포트 번호 등록부
결론 먼저
- TCP는 연결을 먼저 만들고 데이터를 보냅니다. 순서를 맞추고, 빠진 것은 다시 보냅니다.
- UDP는 연결 없이 그냥 던집니다. 도착 여부도, 순서도 보장하지 않습니다.
- 둘의 차이는 헤더에 무엇이 들어 있느냐에서 나옵니다. TCP 헤더는 20바이트, UDP는 8바이트입니다.
- UDP가 나쁜 게 아닙니다. 늦게 도착한 데이터가 쓸모없는 경우에는 UDP가 정답입니다.
1. 한눈에 비교
| 구분 | TCP | UDP |
| 연결 | 연결 지향 — 3-way handshake | 비연결 — 바로 전송 |
| 신뢰성 | 확인 응답(ACK), 재전송 | 없음 |
| 순서 보장 | Sequence Number로 보장 | 보장 안 함 |
| 흐름 제어 | Window 크기로 조절 | 없음 |
| 혼잡 제어 | 있음 | 없음 |
| 헤더 크기 | 20바이트 (옵션 제외) | 8바이트 |
| 속도 | 상대적으로 느림 | 빠름 |
| 전송 단위 | Segment | Datagram |
2. TCP의 3-way handshake
TCP는 데이터를 보내기 전에 "준비됐나?"를 세 번 주고받아 확인합니다.
│ │
│──── ① SYN ─────────────────▶│ "연결하자"
│ │
│◀─── ② SYN + ACK ────────────│ "좋다, 나도 연결하자"
│ │
│──── ③ ACK ─────────────────▶│ "확인했다"
│ │
│◀════ 데이터 전송 시작 ═══════▶│
왜 두 번이 아니라 세 번일까요. 양쪽 모두 보내는 능력과 받는 능력을 서로 확인해야 하기 때문입니다. 두 번만 하면 서버는 자기 응답이 도착했는지 알 수 없습니다.
연결을 끊을 때는 네 번
② ACK ← "알겠다"
③ FIN ← "나도 다 보냈다"
④ ACK → "알겠다"
끊을 때 네 단계인 이유는, 한쪽이 다 보냈어도 반대쪽은 아직 보낼 게 남아 있을 수 있기 때문입니다. 그래서 방향별로 따로 닫습니다. 시험에 "연결은 3-way, 해제는 4-way"로 자주 나옵니다.
3. TCP가 신뢰성을 만드는 방법
- Sequence Number — 각 세그먼트에 번호를 붙여 순서가 뒤바뀌어 도착해도 재조립합니다.
- Acknowledgment Number — 받은 쪽이 "여기까지 잘 받았다"를 알려줍니다.
- 재전송 — 일정 시간 안에 ACK가 오지 않으면 다시 보냅니다.
- 흐름 제어(Flow Control) — 받는 쪽이 Window 크기로 "이만큼만 보내라"를 알립니다. 받는 쪽이 감당 못 하는 것을 막습니다.
- 혼잡 제어(Congestion Control) — 네트워크가 막히면 전송 속도를 스스로 줄입니다. 위의 흐름 제어와 다른 개념이라 구분해 묻는 문제가 나옵니다.
흐름 제어는 수신자를 보호하고, 혼잡 제어는 네트워크를 보호합니다. 이 한 줄로 구분하면 헷갈리지 않습니다.
4. 어디에 무엇을 쓰나
| 프로토콜 | 4계층 | 포트 | 왜 그 선택인가 |
| HTTP / HTTPS | TCP | 80 / 443 | 한 글자라도 빠지면 안 됨 |
| FTP | TCP | 20, 21 | 파일이 손상되면 안 됨 |
| SMTP | TCP | 25 | 메일이 유실되면 안 됨 |
| SSH / Telnet | TCP | 22 / 23 | 명령이 정확히 전달돼야 함 |
| DNS | 주로 UDP | 53 | 질의·응답이 짧음. 실패하면 다시 물으면 됨 |
| DHCP | UDP | 67, 68 | IP를 받기 전이라 연결을 못 맺음 |
| TFTP | UDP | 69 | 단순 전송 |
| SNMP | UDP | 161 | 상태 조회. 일부 유실돼도 무방 |
| VoIP / 스트리밍 | UDP | — | 늦게 온 음성은 이미 쓸모없음 |
DNS는 응답 크기가 512바이트를 넘거나 영역 전송(Zone Transfer)을 할 때는 TCP 53을 씁니다. "DNS는 UDP"라고만 외우면 이 예외를 묻는 문제에서 틀립니다.
5. 포트 번호 범위
| 범위 | 이름 | 설명 |
| 0 ~ 1023 | Well-known | 표준 서비스에 할당. HTTP 80, HTTPS 443 등 |
| 1024 ~ 49151 | Registered | 특정 소프트웨어에 등록된 번호 |
| 49152 ~ 65535 | Dynamic / Private | 클라이언트가 통신할 때 임시로 쓰는 번호 |
포트 번호는 16비트이므로 0 ~ 65535까지입니다. 왜 65535인지 묻는 문제가 나오면 2¹⁶ − 1을 떠올리면 됩니다.
6. 시험에서 자주 나오는 포인트
- 연결 3-way, 해제 4-way. 순서는 SYN → SYN+ACK → ACK.
- TCP 헤더 20바이트, UDP 헤더 8바이트.
- 흐름 제어와 혼잡 제어는 다른 것 — 수신자 보호 대 네트워크 보호.
- DNS는 기본 UDP 53, 예외적으로 TCP 53.
- 전송 단위 이름 — TCP는 Segment, UDP는 Datagram, 3계층은 Packet, 2계층은 Frame.
- 포트 번호는 16비트, 0~65535. Well-known은 1023까지.
외우는 법
TCP는 등기우편, UDP는 전단지로 기억하면 나머지가 따라옵니다.
- 등기우편은 받는 사람 확인을 받습니다 → ACK
- 못 받았다고 하면 다시 보냅니다 → 재전송
- 봉투에 순번을 적습니다 → Sequence Number
- 이 모든 절차가 봉투를 두껍게 만듭니다 → 헤더 20바이트
- 전단지는 그냥 뿌립니다. 몇 장 못 받아도 상관없고, 그래서 빠릅니다 → UDP 8바이트
정리 기준 — RFC 793·768과 CCNA 시험 범위를 기준으로 정리한 학습 자료입니다. 포트 번호는 IANA 등록부를 기준으로 했으며, 실제 서비스는 다른 포트로 운영될 수 있습니다.
참고 자료
- RFC 793 — Transmission Control Protocol
- RFC 768 — User Datagram Protocol
- IANA Service Name and Transport Protocol Port Number Registry
- Cisco Networking Academy, CCNA: Introduction to Networks — Transport Layer 단원
이어서 읽기
- 1편 — OSI 7계층 정리 및 외우는 법
- 6편 — IP 주소와 서브넷팅 계산법
다음 글에서는 컴퓨터를 켜고 인터넷이 되기까지 뒤에서 돌아가는 DHCP와 DNS를 정리하겠습니다.
'네트워크 기초' 카테고리의 다른 글
| DHCP와 DNS 정리 — 인터넷이 되기까지 뒤에서 벌어지는 일 (0) | 2026.09.17 |
|---|---|
| IP 클래스와 사설 IP 대역 정리 — 172.16~31이 헷갈리는 이유 (0) | 2026.09.16 |
| 시험에 나오는 포트 번호만 정리 (FTP·SSH·SMTP·DNS·HTTPS) (0) | 2026.09.15 |
| 네트워크관리사 2급 서브넷팅 문제 푸는 법 — 공식 없이 3단계로 (0) | 2026.09.14 |
| IP 주소와 서브넷팅 계산법 — 공식 없이 이해하기 (0) | 2026.09.14 |