┌─────────────────────┐
│ 4. 응용 계층 │ ← OSI 5, 6, 7계층
│ (Application) │
├─────────────────────┤
│ 3. 전송 계층 │ ← OSI 4계층
│ (Transport) │
├─────────────────────┤
│ 2. 인터넷 계층 │ ← OSI 3계층
│ (Internet) │
├─────────────────────┤
│ 1. 네트워크 액세스 │ ← OSI 1, 2계층
│ (Network Access) │
└─────────────────────┘
OSI 5, 6, 7계층 통합
역할:
- 응용 프로그램 간 통신
- 사용자 인터페이스
프로토콜:
- HTTP/HTTPS (웹)
- FTP (파일)
- SMTP/POP3 (이메일)
- DNS (도메인)
- SSH (원격 접속)
- Telnet
데이터 단위: 메시지
OSI 4계층과 동일
역할:
- 프로세스 간 통신
- 신뢰성 보장 (TCP)
- 빠른 전송 (UDP)
프로토콜:
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
데이터 단위: 세그먼트 (TCP), 데이터그램 (UDP)
OSI 3계층과 동일
역할:
- IP 주소 지정
- 패킷 라우팅
- 경로 결정
프로토콜:
- IP (Internet Protocol)
- ICMP (Internet Control Message Protocol)
- IGMP (Internet Group Management Protocol)
- ARP (Address Resolution Protocol)
데이터 단위: 패킷
OSI 1, 2계층 통합
역할:
- 물리적 전송
- MAC 주소 지정
- 프레임 전송
프로토콜:
- Ethernet
- WiFi (IEEE 802.11)
- PPP
데이터 단위: 프레임
✔ 연결 지향 (Connection-Oriented)
✔ 신뢰성 보장
✔ 순서 보장
✔ 흐름 제어
✔ 혼잡 제어
✘ 느린 속도
0 16 31
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Data |R|C|E|U|A|P|R|S|F| |
|Offset|S|W|C|R|C|S|S|Y|I| Window |
| |V|R|E|G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
주요 필드:
- Sequence Number: 순서 번호
- Acknowledgment Number: 확인 응답 번호
- Flags: SYN, ACK, FIN 등 제어 플래그
- Window: 흐름 제어 (수신 버퍼 크기)
- Checksum: 오류 검출
수신자의 처리 속도를 고려하여 전송 속도 조절
Window Size:
- 수신자가 받을 수 있는 데이터 크기
- ACK에 포함하여 전달
예:
송신자: 1000 바이트 전송
수신자: Window = 500 → 500바이트만 전송
수신자: 처리 완료 → Window = 1000
송신자: 1000 바이트 전송
네트워크 혼잡을 방지하기 위한 전송 속도 조절
알고리즘:
1. Slow Start:
- 처음엔 천천히 시작
- 지수적으로 증가
2. Congestion Avoidance:
- 임계값 도달 후 선형 증가
3. Fast Retransmit:
- 중복 ACK 3개 수신 시 즉시 재전송
4. Fast Recovery:
- 혼잡 발생 시 절반으로 감소
✔ 웹 브라우징 (HTTP/HTTPS)
✔ 이메일 (SMTP, POP3, IMAP)
✔ 파일 전송 (FTP)
✔ 원격 접속 (SSH, Telnet)
✔ 데이터베이스 연결
→ 신뢰성이 중요한 경우
✔ 비연결 (Connectionless)
✔ 빠른 속도
✔ 작은 오버헤드
✘ 신뢰성 보장 안 함
✘ 순서 보장 안 함
✘ 흐름 제어 없음
0 16 31
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
주요 필드:
- Source Port: 출발지 포트
- Destination Port: 목적지 포트
- Length: 전체 길이
- Checksum: 오류 검출 (선택사항)
크기: 8바이트 (TCP 20바이트의 40%)
✔ 실시간 스트리밍 (동영상, 음악)
✔ 온라인 게임
✔ DNS (도메인 조회)
✔ DHCP (IP 할당)
✔ VoIP (인터넷 전화)
✔ IoT 센서 데이터
→ 속도가 중요하고 일부 손실 허용 가능
TCP:
- 연결 지향, 신뢰성 보장
- 3-Way Handshake로 연결
- 순서 보장, 재전송
- 느리지만 안전
- 웹, 이메일, 파일 전송
UDP:
- 비연결, 빠른 속도
- 신뢰성 보장 안 함
- 순서 보장 안 함
- 빠르지만 손실 가능
- 스트리밍, 게임, DNS
TCP (Transmission Control Protocol):
연결 방식:
- 3-Way Handshake로 연결 수립
- 4-Way Handshake로 연결 종료
- 연결 지향
신뢰성:
- 순서 번호로 순서 보장
- ACK로 수신 확인
- 타임아웃 시 재전송
- Checksum으로 오류 검출
제어:
- 흐름 제어 (Window Size)
- 혼잡 제어 (Slow Start 등)
단점:
- 헤더 크기 큼 (20바이트)
- 연결 수립 시간
- 느린 속도
UDP (User Datagram Protocol):
연결 방식:
- 비연결
- 사전 연결 없이 전송
특징:
- 헤더 작음 (8바이트)
- 빠른 전송
- 낮은 지연시간
단점:
- 신뢰성 보장 안 함
- 순서 보장 안 함
- 손실 가능
선택 기준:
- 신뢰성 중요 → TCP
- 속도 중요 + 일부 손실 허용 → UDP
- 실시간성 중요 → UDP