전송계층(Transport Layer)
네트워크 계층에서 가장 중요한 프로토콜이 IP라면, 지금 살펴 볼 전송 계층에서 가장 중요한 프로토콜은 TCP와 UDP이다. 네트워크 계층(IP)이 호스트(컴퓨터) 간 데이터 전달을 담당한다면, 전송계층은 그 위에서 호스트 내의 애플리케이션(프로세스) 간 데이터 전달을 담당한다.
💡핵심 역할
- 네트워크 계층의 IP 주소는 “어떤 컴퓨터로 갈지”를 결정
- 전송계층에서는 "그 컴퓨터 안에서 어떤 애플리케이션으로 갈지" 결정 → 이를 위해 포트 번호(Port Number) 사용
✅ 포트 번호 예시
- 웹 브라우저 → 포트 80(HTTP), 포트 443(HTTPS)
- 이메일 서버 → 포트 25(SMTP)
💡포트를 통한 프로세스 식별
네트워크 계층의 IP 주소와 MAC 주소는 패킷을 송수신하는 호스트를 특정할 수 있다. 이 패킷의 최종 송수신 대상은 호스트 자체가 아니라, 호스트가 실행하는 프로세스이다.
예를 들어,
- 하나의 호스트는 웹 브라우저, 게임, 채팅 프로그램 등 다양한 프로세스를 동시에 실행할 수 있고, 네트워크를 통해 주고받는 패킷은 최종적으로 이러한 개별 프로세스에 전달되어야 한다.
이때, 네트워크 상에서 호스트가 실행하는 프로세스는 포트 번호(Port Number)를 통해 식별가능 하다.
💡포트 번호(Port Number)
네트워크 패킷을 주고받는 프로세스에는 포트 번호가 할당된다. IP 주소와 포트 번호를 조합해 '특정 호스트가 실행하는 특정 프로세스'를 식별 가능하다. 즉, 전송계층에서 포트 번호는 애플리케이션(프로세스)을 구분하는 식별자 역할을 한다.
- 네트워크 통신에서 프로세스를 구분하는 식별자 역할
- IP 주소 + 포트 번호 조합 → 특정 호스트의 특정 프로세스를 식별
192.168.0.15:8000
- 192.168.0.15 → 호스트(IP) 식별
- 8000 → 해당 호스트의 애플리케이션(프로세스) 식별
💡포트 번호의 범위와 종류
포트 번호는 16비트로 표현할 수 있고, 총 개수는 2¹⁶으로 65,536개이다. 포트 번호는 0번부터 할당되므로 범위는 0번 ~ 65,535번이 된다. 포트 번호는 번호의 범위에 따라 3가지 종류로 나뉜다.
| 포트 종류 | 포트 번호 범위 | 설명 |
| 잘 알려진 포트(Well-Known Port) | 0 ~ 1023 | HTTP(80), HTTPS(443), SMTP(25) 등 주요 프로토콜에 할당 |
| 등록된 포트(Registered Port) | 1024 ~ 49151 | 소프트웨어 업체나 애플리케이션이 등록해서 사용 |
| 동적/사설 포트(Dynamic/Private Port) | 49152 ~ 65535 | - 운영체제가 자동으로 임시로 할당 - 클라이언트 측 동적 할당(매번 OS가 알아서 비어있는 번호를 골라줌) |
✅ Well-Known Port
| 포트 번호 | 프로토콜 |
| 20, 21 | FTP |
| 22 | SSH |
| 23 | TELNET |
| 53 | DNS |
| 67, 68 | DHCP |
| 80 | HTTP |
| 443 | HTTPS |
- 대중적으로 사용되는 애플리케이션에 사용되는 포트 번호
- 영문 그래도 Well-Known Port라고 불리는 경우가 많다.
✅ Registered Port
| 포트 번호 | 설명 |
| 1194 | OpenVPN |
| 1433 | Microsoft SQL Server |
| 3306 | MySQL |
| 6379 | Redis |
| 8080 | HTTP 대체 포트 |
- Well-Known Port에 비해 덜 범용적이지만, 흔하게 사용되는 애플리케이션 프로토콜에 할당하기 위한 포트 번호
✅ Dynamic Port

- ex. 웹 브라우저(chrome)에는 동적 포트 내 임의의 포트 번호가 자동으로 할당된다.
🔎 정리
- Well-Known Port와 Registered Port는 서버 프로그램에서 많이 사용됨
- ex. MySQL 서버 연결 시 3306번 포트 사용
💡NAT, NAPT
이거 갑자기 왜 나오는거야
TCP, UDP
💡TCP, UDP
전송 계층의 핵심 프로토콜인 TCP와 UDP는 모두 포트 번호를 통해 프로세스를 식별한다. 각각의 헤더에는 송신지 포트 번호와 수신지 포트 번호가 포함되어 있어, 패킷이 어떤 애플리케이션으로 가야 하는지를 구체적으로 결정할 수 있다.
1. TCP 헤더

- 송신지 포트(16비트) : 데이터를 보내는 쪽의 포트 번호
- 수신지 포트(16비트) : 데이터를 받는 쪽의 포트 번호
- 순서 번호(Sequence Number) : 데이터 조각의 순서를 나타냄 (순서 보장)
- 확인 응답 번호(Acknowledgment Number ): 수신 측이 다음에 받아야 할 데이터의 순서 번호
- 제어 비트(Control Flags) : CWR, ECE, URG, ACK, PSH, RST, SYN, FIN 등
- 윈도우(Window Size) : 수신 측이 수용 가능한 데이터 양
- 체크섬(Checksum) : 데이터 오류 검출
- 옵션(Options) : 추가 제어 정보
✅ 순서 번호 & 확인 응답 번호
순서 번호 필드와 확인 응답 번호 필드는 함께 사용되므로 같이 기억을 해두는 것이 좋다.
1️⃣ 순서 번호(Sequence Number) 필드
- TCP 패킷(TCP 세그먼트)의 올바른 송수신 순서를 보장하기 위해 세그먼트 첫 바이트에 매겨진 번호
- 현재 주고받는 TCP 세그먼트가 송수신하고자 하는 데이터의 몇 번째 바이트에 해당하는지 알 수 있다.
2️⃣ 확인 응답 번호(Acknowledgment Number) 필드
- 상대 호스트가 보낸 세그먼트에 대한 응답으로, 다음에 수신하길 기대하는 순서 번호
- 일반적으로 올바르게 수신한 순서 번호에 1이 더해진 값으로 설정된다.
- 예시
- 호스트 A가 순서 번호 100인 세그먼트를 전송
- 호스트 B가 해당 세그먼트를 정상 수신 후 다음 받을 번호인 101을 확인 응답 번호로 설정
- 호스트 B가 ACK 플래그를 1로 설정하여 송신
- 중요 : ACK 플래그가 1이어야 확인 응답 번호 값이 유효하다.
✅ TCP 제어 비트(Flag bits)
- 현재 세그먼트에 대한 부가 정보를 나타내는 정보로, 플래그 비트(Flag Bits)라고도 부른다.
- TCP 헤더의 제어 비트(Control bits)는 8비트로 구성되며, 각 비트마다 다른 의미를 가짐
- 기본적으로 TCP의 상태와 동작 제어에 사용
- 종류
- ACK : 세그먼트 승인(확인 응답 번호가 유효함을 의미)
- SYN : 연결 수립을 요청할 때 사용
- FIN : 연결 종료를 요청할 때 사용
✅ 특징
- 패킷을 주고받기 전 연결 수립 과정을 거치고, 연결 수립 이후 패킷을 주고 받을 때 신뢰성 보장을 위해 상태 관리, 흐름 제어, 오류 제어, 혼잡 제어 등의 각종 기능을 제공한다.
- 패킷 송수신이 모두 끝나면 연결을 종료한다.
2. UDP 헤더

- 송신지 포트(16비트)
- 수신지 포트(16비트)
- 길이(Length) : UDP 헤더 + 데이터 전체 길이
- 체크섬(Checksum)
✅ 특징
- 연결의 수립이나 종료 단계를 거치지 않고, 신뢰성을 높이기 위한 기능들도 제공하지 않는다.
🔎 차이점
| 항목 | TCP | UDP |
| 연결 방식 | 연결형 (Connection-oriented) | 비연결형 (Connectionless) |
| 신뢰성 | 보장 (전송 순서, 오류 제어, 재전송) | 보장하지 않음 |
| 속도 | 상대적으로 느림 | 빠름 |
| 용도 | 파일 전송, 웹, 이메일 등 | 스트리밍, VoIP, 게임 등 |
| 상태 관리 | 상태 정보 유지 | 상태 정보 유지 안함 |
출처
https://www.hanbit.co.kr/store/books/look.php?p_code=B3079890360
이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접
기술 면접과 실무에 필요한 CS 지식, 한 권으로 끝내자!
www.hanbit.co.kr
이미지 출처
1) TCP/UDP Header
[네트워크] TCP / UDP 의 header 분석
TCP / UDP 란? 전송계층에서 사용하는 프로토콜입니다. 사용하는 목적은, 목적지 장비까지 전송한 패킷을 상위의 특정 응용 프로토콜에 전달하는 것입니다. TCP(Transmission Control Protocol) TCP는 수신한
hiflo.tistory.com
'CS > [도서] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 카테고리의 다른 글
| [네트워크] 5-5. (2) HTTP 메서드와 상태 코드 (3) | 2025.08.18 |
|---|---|
| [네트워크] 5-5. (1) 응용 계층 - HTTP의 기초 (4) | 2025.08.13 |
| [네트워크] 5-3. (1) 네트워크 계층 - IP (3) | 2025.08.07 |
| [운영체제] 3-6. (2) 파일 시스템 (File System) (0) | 2025.08.05 |
| [운영체제] 3-6. (1) 파일 시스템 (File System) (3) | 2025.08.04 |