CS/[도서] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

[네트워크] 5-4. (1) 전송 계층 - TCP와 UDP

annovation 2025. 8. 11. 13:30

전송계층(Transport Layer)

 

 네트워크 계층에서 가장 중요한 프로토콜이 IP라면, 지금 살펴 볼 전송 계층에서 가장 중요한 프로토콜은 TCPUDP이다. 네트워크 계층(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

Dynamic Port

  • ex. 웹 브라우저(chrome)에는 동적 포트 내 임의의 포트 번호가 자동으로 할당된다.

🔎 정리

  • Well-Known Port와 Registered Port는 서버 프로그램에서 많이 사용됨
    • ex. MySQL 서버 연결 시 3306번 포트 사용

 

💡NAT, NAPT

 

이거 갑자기 왜 나오는거야


TCP, UDP

 

💡TCP, UDP

 

 전송 계층의 핵심 프로토콜인 TCP UDP는 모두 포트 번호를 통해 프로세스를 식별한다. 각각의 헤더에는 송신지 포트 번호 수신지 포트 번호가 포함되어 있어, 패킷이 어떤 애플리케이션으로 가야 하는지를 구체적으로 결정할 수 있다.

 

1. TCP 헤더

TCP Header

  • 송신지 포트(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이 더해진 값으로 설정된다.
  • 예시
    1. 호스트 A가 순서 번호 100인 세그먼트를 전송
    2. 호스트 B가 해당 세그먼트를 정상 수신 후 다음 받을 번호인 101을 확인 응답 번호로 설정
    3. 호스트 B가 ACK 플래그를 1로 설정하여 송신
  • 중요 : ACK 플래그가 1이어야 확인 응답 번호 값이 유효하다.

 

TCP 제어 비트(Flag bits)

  • 현재 세그먼트에 대한 부가 정보를 나타내는 정보로, 플래그 비트(Flag Bits)라고도 부른다.
  • TCP 헤더의 제어 비트(Control bits)는 8비트로 구성되며, 각 비트마다 다른 의미를 가짐
  • 기본적으로 TCP의 상태와 동작 제어에 사용
  • 종류
    • ACK : 세그먼트 승인(확인 응답 번호가 유효함을 의미)
    • SYN :  연결 수립을 요청할 때 사용
    • FIN : 연결 종료를 요청할 때 사용

 

✅ 특징

  • 패킷을 주고받기 전 연결 수립 과정을 거치고, 연결 수립 이후 패킷을 주고 받을 때 신뢰성 보장을 위해 상태 관리, 흐름 제어, 오류 제어, 혼잡 제어 등의 각종 기능을 제공한다.
  • 패킷 송수신이 모두 끝나면 연결을 종료한다.

 

2. UDP 헤더

UDP Header

  • 송신지 포트(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

https://hiflo.tistory.com/24

 

[네트워크] TCP / UDP 의 header 분석

TCP / UDP 란? 전송계층에서 사용하는 프로토콜입니다. 사용하는 목적은, 목적지 장비까지 전송한 패킷을 상위의 특정 응용 프로토콜에 전달하는 것입니다. TCP(Transmission Control Protocol) TCP는 수신한

hiflo.tistory.com