0.인터넷 프로토콜 4계층
1. 인터넷 통신 개요
인터넷에서 컴퓨터 간 통신은 클라이언트-서버 모델을 기반으로 이루어진다. 한 컴퓨터가 요청을 보내면 다른 컴퓨터가 응답을 보내는 방식이다.
2. IP(Internet Protocol)
IP는 인터넷에서 데이터를 전달하는 핵심 프로토콜이다. 데이터를 패킷(Packet) 단위로 쪼개어 목적지 IP 주소로 전송한다.
- IP패킷 안에 있는 정보는 출발지 IP, 도착지 IP, 전송데이터, 기타 등등... 이 있다!!!
패킷 전달 예시
그러나 IP만으로는 안정적인 데이터 전송이 어렵다. IP의 한계:
- 비연결성: 대상이 없거나 서비스 불능 상태여도 패킷 전송 ex)상대 컴퓨터가 꺼저 있어도 전송을 한다...하지만 받지 못하겠지
- 비신뢰성: 패킷이 손실되거나 순서가 뒤바뀔 가능성이 있다.
- 프로그램 구분 불가능: 같은 IP에서 여러 개의 애플리케이션이 실행될 경우 구별 불가
이 문제를 해결하기 위해 전송 계층 프로토콜인 TCP와 UDP가 존재한다.
3. TCP (Transmission Control Protocol)
TCP/IP 패킷 정보
- 연결 지향적: 통신 전 3-way handshake를 통해 연결을 설정
- 데이터 전달 보장: 패킷 손실 시 재전송, 수신 확인(ACK) 메커니즘
- 순서 보장: 패킷이 순서대로 도착하도록 조정
- 신뢰성이 높지만 속도가 느리다!!!
→ HTTP, 이메일, 파일 전송 등 신뢰성이 중요한 서비스에 사용됨
3-way handshake
4. UDP (User Datagram Protocol)
UDP는 비연결형 전송 프로토콜로, 데이터를 빠르게 전송하는 것이 목표이다.
UDP의 특징
- 연결 설정 없음: 3-way handshake 없이 바로 데이터 전송
- 데이터 전달 보장 X: 패킷이 손실될 수 있음
- 순서 보장 X: 패킷이 순서대로 도착한다는 보장이 없음
- 단순한 구조: IP 프로토콜 + PORT + 체크섬 정도만 추가된 형태
- 빠른 속도: TCP보다 지연이 적고 실시간 성능이 중요할 때 적합!!
UDP는 신뢰성을 희생하는 대신 빠른 속도와 낮은 지연시간을 제공하는 프로토콜이다.
UDP의 활용 사례
- 실시간 스트리밍 (음성·영상 통화, IPTV, 게임)
→ 약간의 데이터 손실이 있더라도 빠른 전송이 중요
- DNS (Domain Name System)
→ 빠른 요청-응답이 필요하며, 일부 데이터 손실이 발생해도 문제없음
- 사물인터넷 (IoT) 기기 통신
→ 가벼운 데이터 전송과 빠른 응답이 필요
5. TCP와 UDP 비교 요약
| |
TCP |
UDP |
| 연결 방식 |
연결 지향 (3-way handshake) |
비연결형 |
| 데이터 전달 보장 |
O (손실 시 재전송) |
X (손실 가능) |
| 순서 보장 |
O |
X |
| 속도 |
느림 (오버헤드 큼) |
빠름 (오버헤드 적음) |
| 신뢰성 |
높음 |
낮음 |
| 용도 |
웹, 이메일, 파일 전송 |
스트리밍, 게임, VoIP |
김영한-HTTPS 강의 정리