TCP / UDP
TCP (Transmission Control Protocol) 와 UDP (User Datagram Protocol) 는 전송 계층에서 사용하는 프로토콜이다. 데이터를 네트워크를 통해 전송할 때 사용된다.
TCP (Transmission Control Protocol)
특징
- 연결형 프로토콜
==> 데이터를 보내기 전, 송신자와 수신자 간 3 - way Handshake를 통해 연결 확립
- 신뢰성 보장
==> 데이터가 손실되거나 순서가 바뀌면 재전송 (ACK, Sequence Number 사용)
- 순서 보장
==> 패킷이 전송된 순서대로 도착하도록 패킷 정렬 기능 포함
- 오류 검출 및 복구
==> 전송 중 오류가 발생하면 자동으로 재전송하여 정확한 데이터 전달 보장
동작 과정
1. SYN (Synchronize) : 클라이언트 -> 서버 (연결 요청)
2. SYN - ACK (Synchronize -> Acknowledgment) : 서버 -> 클라이언트 (응답)
3. ACK (Acknowledge) : 클라이언트 -> 서버 (연결 확립) -> 연결이 완료되면 데이터를 송수신
사용 예시
- 웹 브라우징 (HTTP, HTTPS)
- 파일 전송 (FTP)
- 이메일 (SMTP, IMAP, POP#)
- 원격 접속 (SSH, Telnet)
UDP (User Datagram Protocol)
특징
- 비연결형 프로토콜
==> 송신자와 수신자가 연결을 확립하지 않고, 데이터를 전송함
- 빠른 속도
==> 연결 설정이 없고 오류 검출 후 재전송을 하지 않으므로 빠름
- 신뢰성이 낮음
==> 패킷이 손실될 수 있으며, 도착 순서가 보장되지 않음
- 오버헤드가 낮음
==> 데이터 전송 시 오류 제어 및 순서 보장 기능 없음, 간단한 구조
동작 방식
- 패킷 (데이터그램)을 전송하면 수신 여부 확인 없이 계속 전송
- 수신자가 데이터를 잃어버리면 송신자는 이를 알지 못함
사용 예시
- 실시간 스트리밍 (Youtube, TV)
- 온라인 게임 (빠른 응답 필요)
- VoIP (Skype, Zoom)
- DNS (도메인 네임 조회)
데이터의 정확성이 중요하면 TCP 사용 (웹사이트, 파일 전송, 이메일)
속도가 중요하고 약간의 데이터 손실이 허용 가능하면 UDP 사용 (스트리밍, 게임)
구분 | TCP | UDP |
연결 방식 | 연결형 (Conndection - Oriented) | 비연결형 (Connectionless) |
신뢰성 | 높음 (데이터 재전송, 순서 보장) | 낮음 (순서 보장 X, 재전송 X) |
속도 | 상대적으로 느림 | 빠름 |
오류 처리 | 자동 재전송 및 흐름 제어 | 없음 |
패킷 순서 | 순서 보장 | 순서 보장 X |
용도 | HTTP, FTP, 이메일 원격 접속 | 실시간 스트리밍, 게임, VoIP, DNS |
'ETC > etc' 카테고리의 다른 글
MSSQL 단축키 및 기본 명령어 (0) | 2024.11.20 |
---|---|
스토리지와 RAID (0) | 2024.11.07 |