네트워크관리사 2급 필기 05 — TCP·UDP·주요 프로토콜·포트번호
네트워크관리사 2급 필기 05 — TCP·UDP·주요 프로토콜·포트번호
출제기준: 1과목(TCP/IP) 핵심 — 04편에서 IP로 "어느 장비로" 갈지 정했다면,
이번엔 4계층(전송)에서 "어떤 방식으로, 어떤 서비스(포트)로" 보낼지를 다룹니다.
포트번호와 TCP/UDP 구분은 외우면 바로 점수가 되는 영역입니다.
기출 키워드 검색 기준으로 "Well-Known Port" 문제는 91회차 중 18회차에 등장했습니다.
TCP vs UDP ⭐⭐⭐
| 구분 | TCP | UDP |
| 연결 방식 | 연결지향 (먼저 연결 확인 후 송수신) | 비연결성 (세션 수립 없이 바로 전송) |
| 핵심 가치 | 신뢰성 | 속도·실시간성 |
| 재전송/ACK | ACK로 수신 확인, 못 받으면 재전송 | 수신 여부 확인 안 함, 재전송 없음 |
| 흐름·혼잡 제어 | 있음 (슬라이딩 윈도우, 혼잡 제어) | 없음 |
| 헤더 크기 | 최소 20바이트 | 8바이트 고정 |
| 대표 서비스 | 이메일, 파일 다운로드, 웹 | 인터넷 방송, 실시간 영상, DNS 질의, SNMP |
헤더 비교 — 시험에 단골로 나오는 부분
| TCP 헤더 | UDP 헤더 (4개뿐) |
|---|---|
| TCP 헤더 | UDP 헤더 (4개뿐) |
| Source/Dest Port, Sequence Number, Acknowledgement Number, Head Length, 플래그(URG·ACK·PSH·RST·SYN·FIN), Window Size, Checksum, Urgent Pointer | Source Port, Dest Port, Length, Checksum |
⚠️ 실제 기출 함정 ① — "UDP 헤더에 포함되지 않는 것은?" (2019년 8월·11월 등 반복 출제)
보기에 확인 응답 번호(Acknowledgment Number) 또는 Window가 정답으로 나옵니다. 둘 다 TCP 전용입니다.
UDP는 "수신 확인"도 "흐름 제어"도 안 하니 헤더에 그 필드가 있을 이유가 없다고 생각하면 됩니다.
91회차 중 17회차에서 관련 문제가 확인됩니다.
⚠️ 실제 기출 함정 ② — "TCP와 UDP의 차이로 옳지 않은 것은?" (2018·2019·2020년 출제)
"UDP는 데이터 전송 전에 반드시 송수신 간의 세션이 먼저 수립되어야 한다"가 틀린 설명입니다. 세션 수립은 TCP의 특징입니다. 나머지 보기("TCP는 수신측 확인 필요", "UDP는 패킷 유실 우려 있음" 등)는 모두 맞는 설명이라 이 한 줄만 걸러내면 됩니다.
TCP 동작 원리 ⭐⭐⭐
연결 설정 — 3-Way Handshake
클라이언트 서버
──── SYN (seq=x) ────────────▶ (서버: LISTEN → SYN_RECEIVED)
◀─── SYN + ACK (seq=y, ack=x+1) ──
──── ACK (ack=y+1) ──────────▶ (양쪽: ESTABLISHED, 데이터 송수신 가능)
연결 종료 — 4-Way Handshake
FIN → ACK → FIN → ACK (마지막 능동 종료 측은 TIME_WAIT에서 잠시 대기 후 CLOSED)
상태 전이 — 이름 ↔ 의미 매칭 ★
| 상태 | 의미 |
| LISTEN | 서버가 포트를 열고 연결 요청을 기다리는 상태 |
| SYN-SENT | 클라이언트가 SYN을 보낸 상태 |
| SYN-RCVD | 서버가 SYN을 받고 SYN+ACK를 보낸 상태 |
| ESTABLISHED | 연결 완료, 데이터 송수신 가능 |
| TIME-WAIT | 연결 종료 후에도 늦게 도착하는 세그먼트를 기다리느라 일정 시간 포트를 열어 두는 상태 |
✅ 암기 흐름: LISTEN(문 열고 대기) → SYN_SENT(노크) → SYN_RCVD(노크 확인) → ESTABLISHED(통화 중) → TIME_WAIT(끊고 나서 여운)
⚠️ 실제 기출(2024년 2월·2025년 2월 연속 출제, 문장 그대로 반복):
"TCP 3Way-HandShaking 과정 중 클라이언트가 보낸 연결 요청 패킷을 수신한 서버는 LISTEN 상태에서 무슨 상태로 변경되는가?" → SYN_RECEIVED.
또 "3-way handshake의 첫 번째 단계, 세션 성립 요청 패킷에 설정되는 flag는?" → SYN (2023년 출제).
흐름 제어와 혼잡 제어
| 구분 | 방식 | 핵심 |
|---|---|---|
| 구분 | 방식 | 핵심 |
| 흐름 제어 | 슬라이딩 윈도우 | 수신자가 감당할 수 있는 만큼(Window Size)만 ACK 없이 연속 전송. 03편에서 본 그 개념이 TCP 헤더의 Window 필드로 구현됨 |
| 혼잡 제어 | Slow Start → Congestion Avoidance | 처음엔 1부터 시작해 지수적(2배)으로 증가, 임계값(ssthresh)부터는 선형으로 증가, 손실 발생 시 감소 |
⚠️ 실제 기출(2024년 2월): "TCP 프로토콜에서 사용하는 흐름제어 방식은?"
→ Sliding Window. (Go-Back-N, 선택적 재전송, Idle-RQ는 모두 ARQ 오류 제어 방식 — 03편 내용과 연결)
2025년 8월에는 IP 프로토콜 설명 문제에서 "흐름제어로는 주로 슬라이딩 윈도우 방식이 쓰인다"가 오답으로 나왔습니다.
슬라이딩 윈도우, 오류 제어, 신뢰성 있는 통신은 IP가 아니라 TCP의 기능입니다.
포트번호 ⭐⭐⭐
이것만은 외우기 (Well-Known Port)
| 포트 | 서비스 | 전송 | 한 줄 요약 |
| 20 / 21 | FTP | TCP | 20=데이터, 21=제어 |
| 22 | SSH | TCP | Telnet의 암호화 대체, SFTP·SCP도 22 |
| 23 | Telnet | TCP | 평문 전송이라 보안 취약 |
| 25 | SMTP | TCP | 메일 보내기 |
| 53 | DNS | TCP+UDP | 일반 질의는 UDP, 영역 전송 등은 TCP |
| 67 / 68 | DHCP | UDP | 67=서버, 68=클라이언트 |
| 69 | TFTP | UDP | 인증 없는 단순 파일 전송 |
| 80 | HTTP | TCP | 웹 |
| 110 | POP3 | TCP | 메일 내려받기(서버 원본 삭제) |
| 123 | NTP | UDP | 시간 동기화 |
| 143 | IMAP4 | TCP | 메일 내려받기(서버 원본 유지) |
| 161 / 162 | SNMP | UDP | 161=Agent 질의, 162=Trap 수신 |
| 179 | BGP | TCP | 라우팅 프로토콜 |
| 443 | HTTPS | TCP | HTTP + TLS(SSL) 암호화 |
✅ 암기 팁
SSH=22 / Telnet=23 → 숫자가 붙어 있고 "보안=22, 비보안=23"
SMTP=25(보내기) / POP3=110(받기) / IMAP=143(받기+서버유지)
UDP 서비스: DNS(TCP도 사용)·DHCP·TFTP·NTP·SNMP — 나머지(FTP·SSH·Telnet·SMTP·HTTP·POP3·IMAP)는 TCP
⚠️ 실제 기출 함정 ① — SSH를 69번으로 바꿔치기 (2019년 8월, 2020년 5월에 보기까지 똑같이 출제)
"인터넷의 잘 알려진 포트로 옳지 않은 것은? Telnet–23 / SMTP–25 / POP3–110 / SSH–69" → 정답 SSH–69.
SSH는 22번, 69번은 TFTP입니다. 같은 문제가 회차를 건너 그대로 다시 나오는 대표적인 사례입니다.
⚠️ 실제 기출 함정 ② — HTTP를 180번으로 (2019년 2월): "HTTP : 180번"이 오답. 숫자 하나만 슬쩍 바꾸는 유형입니다.
⚠️ 실제 기출 함정 ③ — TCP·UDP를 모두 쓰는 프로토콜은? (2019년 8월): FTP / SMTP / DNS / SNMP 중 정답은 DNS. FTP·SMTP는 TCP만, SNMP는 UDP만 씁니다.
교재도 "TCP의 SMTP와 UDP의 SNMP가 헷갈리기 쉬워 선택지에 자주 함께 등장한다"고 직접 경고합니다.
주요 프로토콜 한눈에 보기 ⭐⭐
네트워크 계층 보조 프로토콜
| 프로토콜 | 역할 | 포인트 |
| ICMP | 네트워크 상태·오류 보고 | ping(Echo Request/Reply), traceroute가 ICMP 기반. Type 3=도달불가, Type 11=시간초과(TTL 0) |
| ARP | IP → MAC 주소 변환 | 모를 땐 브로드캐스트로 묻고 해당 장비가 유니캐스트로 응답. ARP Spoofing(중간자 공격)의 원리 |
| RARP | MAC → IP 주소 변환 | DHCP로 대체되어 사실상 미사용 |
| IGMP | 멀티캐스트 그룹 관리 | Class D(224~239) 주소와 세트 |
응용 계층 프로토콜
| 프로토콜 | 핵심 개념 |
| DHCP | IP 자동 할당. Discover → Offer → Request → Ack (DORA, 클라이언트→서버 순서로 브로드캐스트부터 시작), 임대(Lease) 기간 존재 |
| DNS | 도메인 이름 → IP 주소 변환, 확인 명령은 nslookup, 레코드 A(IPv4)/AAAA(IPv6)/CNAME(별칭)/MX(메일) |
| FTP | 제어 21 / 데이터 20. Active=서버가 클라이언트로 데이터 연결, Passive=클라이언트가 서버 쪽으로 연결(방화벽 뒤 클라이언트는 Passive) |
| SNMP | NMS(Manager)가 Agent의 장비 상태를 수집·감시, UDP 161, Trap은 162 |
| SMTP/POP3/IMAP | SMTP=발송, POP3·IMAP=수신. "SMTP는 밀고, POP3/IMAP은 당긴다" |
| Telnet/SSH | Telnet(23)은 평문, SSH(22)는 암호화 — 서버·장비 관리는 SSH가 기본 |
⚠️ 실제 기출(2023년 8월, 2024년 11월 반복): "SNMP 프로토콜의 기능으로 올바른 것은?"
→ 네트워크 장비의 관리 및 감시 기능.
보기의 "호스트 간 연결성 점검과 혼잡 제어"는 연결성 점검=ICMP, 혼잡 제어=TCP의 역할이라 SNMP가 아닙니다.
기출 Q&A
Q. UDP 헤더에 포함되지 않는 항목은? (확인 응답 번호 / 소스 포트 / 체크섬 / 목적지 포트)
A. 확인 응답 번호(Acknowledgment Number) — UDP는 수신 여부를 확인하지 않으므로 이 필드가 없습니다.
Q. UDP 패킷 헤더에 속하지 않는 것은? (Source Port / Destination Port / Window / Checksum)
A. Window — 흐름 제어용 필드로 TCP 헤더에만 있습니다.
Q. TCP와 UDP의 차이로 옳지 않은 것은?
A. "UDP는 데이터 전송 전 반드시 세션이 수립되어야 한다" — 세션 수립은 TCP의 특징입니다.
Q. 인터넷의 잘 알려진 포트로 옳지 않은 것은? (Telnet–23 / SMTP–25 / POP3–110 / SSH–69)
A. SSH–69 — SSH는 22번, 69번은 TFTP입니다.
Q. TCP 3-Way Handshaking에서 연결 요청 패킷을 수신한 서버는 LISTEN 상태에서 어떤 상태로 바뀌는가?
A. SYN_RECEIVED
Q. 3-way handshake 첫 번째 단계(세션 성립 요청 패킷)에 설정되는 flag는?
A. SYN
Q. TCP 프로토콜에서 사용하는 흐름제어 방식은? (Go-Back-N / 선택적 재전송 / Sliding Window / Idle-RQ)
A. Sliding Window
Q. FTP·SMTP·DNS·SNMP 중 TCP와 UDP를 모두 사용하는 프로토콜은?
A. DNS — 일반 질의는 UDP, 응답이 크거나 영역 전송 시에는 TCP를 씁니다.
💡 실무에서는?
방화벽 정책을 짜다 보면 이 포트표가 곧 업무입니다.
외부에 열어 주는 포트를 최소화하는 게 기본이라 Telnet(23)은 막고 SSH(22)만 허용하는 식으로 하드닝하는데, 그나마 22번도 인터넷 전체에 열어 두기보다 접속 IP를 제한하고 키 인증을 쓰는 게 정석입니다.
SNMP는 NMS가 장비를 감시하려고 UDP 161을 쓰기 때문에 감시 서버 IP만 허용하고, v1/v2c의 기본 커뮤니티 문자열(public/private)을 그대로 두면 안 됩니다.
FTP는 Active 모드가 방화벽에서 자주 막혀서 "접속은 되는데 목록이 안 뜬다"는 문의가 의외로 많은데, 대부분 Passive 모드로 바꾸고 데이터 포트 대역을 열어 주면 해결됩니다.
장애 분석 때 ping은 되는데 서비스가 안 되면 ICMP(3계층)는 정상이고 TCP 포트(4계층)가 막힌 것이라는 걸 바로 구분할 수 있는 것도 이 개념 덕분입니다.
핵심 정리
✅ TCP = 연결지향·신뢰성·ACK·흐름/혼잡제어 / UDP = 비연결·속도·헤더 8바이트
✅ UDP 헤더 = 소스포트·목적지포트·Length·Checksum (Ack번호·Window 없음!)
✅ 3-Way: SYN → SYN+ACK → ACK / 서버 상태: LISTEN → SYN_RECEIVED → ESTABLISHED
✅ TCP 플래그 6개: URG, ACK, PSH, RST(=Reset), SYN, FIN
✅ TCP 흐름제어 = 슬라이딩 윈도우 / 혼잡제어 = Slow Start(지수)→혼잡회피(선형)
✅ 포트: FTP 20/21, SSH 22, Telnet 23, SMTP 25, DNS 53, DHCP 67/68, TFTP 69, HTTP 80, POP3 110, NTP 123, IMAP 143, SNMP 161/162, HTTPS 443
✅ UDP 서비스: DNS(TCP도 사용)·DHCP·TFTP·NTP·SNMP
⚠️ SSH=22(69 아님!) / HTTP=80(180 아님!) / NTP=UDP / SNMP=UDP 161(SMTP 25와 혼동 주의)
✅ ICMP=ping·traceroute / ARP=IP→MAC(브로드캐스트 질의) / DHCP=DORA
다음 편에서는 IPv6와 보안 프로토콜을 다룹니다.
이번 편에서 본 Telnet vs SSH, HTTP vs HTTPS의 "평문 vs 암호화" 구도가 보안 프로토콜 파트의 출발점이 됩니다.
궁금한 점은 댓글로 남겨주세요!