전송 계층 개요 요약
1. 전송 계층의 역할
- 위로는 응용 계층의 프로세스(프로그램)를 식별하고,
- 아래로는 네트워크 계층의 IP 프로토콜 한계를 보완.
2. IP 프로토콜의 한계
-
신뢰할 수 없는 통신:
- 패킷이 손실되거나 순서가 바뀌어도 이를 확인하거나 복구하지 않음.
- Best-Effort 방식: 최선을 다하지만 성공을 보장하지는 않음.
-
비연결형 통신:
- 송수신 호스트 간 사전 연결 없이 패킷을 전송.
- 연결 설정 및 확인 과정 없음.
3. 전송 계층의 두 가지 주요 프로토콜
-
TCP (Transmission Control Protocol):
- 신뢰성 있는 연결형 통신 제공.
- 주요 특징:
- 연결 수립 및 해제 (3-way handshake).
- 오류 제어: 패킷 손실 시 재전송.
- 흐름 제어: 송신 속도를 수신 속도에 맞춤.
- 혼잡 제어: 네트워크 혼잡 시 전송 속도 조절.
-
UDP (User Datagram Protocol):
- 비신뢰성 있는 비연결형 통신 제공.
- 주요 특징:
- 간단한 구조로 빠른 데이터 전송.
- 오류 제어나 흐름 제어 등의 기능 없음.
- 활용 사례:
- 빠른 응답이 중요한 애플리케이션 (VoIP, 게임 등).
4. 포트 번호의 개념
- 포트 번호: 네트워크 상에서 특정 프로그램(프로세스)을 식별하는 번호.
- 16비트 표현: 0 ~ 65,535번까지 할당 가능.
- 포트 번호의 유형:
- Well-Known Port (0 ~ 1023):
- 유명한 프로토콜에 예약된 포트 번호.
- 예: HTTP(80), HTTPS(443), FTP(20, 21), DNS(53).
- Registered Port (1024 ~ 49151):
- 특정 애플리케이션에 등록된 포트 번호.
- 예: MySQL(3306), Redis(6379), OpenVPN(1194).
- Dynamic/Private Port (49152 ~ 65535):
- 임시로 할당되는 포트 번호.
- 주로 클라이언트 프로그램(브라우저 등)이 사용.
5. IP와 포트의 조합
- IP 주소 + 포트 번호:
- 특정 호스트와 해당 호스트의 특정 프로그램을 식별 가능.
- 예:
192.168.1.10:80
(HTTP 서버의 포트).
6. NAT (Network Address Translation)와 포트
-
NAT의 문제:
- 사설 IP와 공인 IP를 1:1로 매핑하면 공인 IP 주소가 부족해짐.
-
NAPT (포트 기반 NAT):
- 하나의 공인 IP 주소로 여러 사설 IP 주소를 관리.
- 사설 IP 주소 + 포트 번호를 공인 IP 주소 + 포트 번호로 변환.
- 장점:
- 공인 IP 주소 부족 문제 해결.
- 효율적인 IP 주소 사용.
7. 정리
- 전송 계층은 TCP와 UDP라는 두 가지 프로토콜로 IP의 한계를 극복.
- 포트 번호를 통해 응용 프로그램을 식별.
- 포트 기반 NAT로 IP 주소 부족 문제를 해결.
다음 강의에서 TCP와 UDP의 세부적인 기능 및 비교를 다룰 예정입니다. 감사합니다! 😊