- 전송 제어 프로토콜(TCP)
- TCP는 기능이 풍부하고, 연결형이며, 신뢰할 수 있는 TCP/IP 애플리케이션을 위한 전송 계층 프로토콜이다.
- TCP는 여러 소프트웨어 애플리케이션이 동시에 단일 IP 주소를 사용할 수 있도록 하는 전송 계층 주소지정 방법을 제공하며 한 쌍의 장비가 가상 연결을 수립하고 양방향으로 데이터를 전달할 수 있도록 한다.
- 전송은 승인받지 않은 패킷을 탐지하여 자동으로 재전송하는 특수한 슬라이딩 윈도우(sliding window) 시스템으로 관리된다.
- 그리고 TCP는 장비간의 흐름 관리, 기타 특수 상황을 처리하기 위한 추가 기능도 제공한다.
- 사용자 데이터그램 프로토콜(UDP)
- UDP는 매우 단순한 전송 프로토콜로 TCP와 유사한 전송 계층 주소지정 방법을 제공하지만, 다른 기능은 거의 제공하지 않는다.
- UDP는 애플리케이션이 IP에 접근할 수 있도록 하는 래퍼 프로토콜에 가깝다.
- UDP에서는 연결이 수립되지 않고, 전송도 신뢰할 수 없으며, 데이터가 손실될 수 있다.
TCP와 UDP 애플리케이션
- TCP 애플리케이션
- 대부분의 애플리케이션은 TCP가 제공하는 신뢰성과 여러 서비스를 필요로 하며, TCP로 인해 생기는 약간의 부하로 인한 성능 저하에 신경 쓰지 않는다.
- 하이퍼텍스트 전송 프로토콜(HTTP), 파일 전송 프로토콜(FTP), 단순 메일 전송 프로토콜(SMTP) 등이 있다.
- UDP 애플리케이션
- 데이터 일부가 손실되는 것이 그리 중요치 않은 애플리케이션(ex: 비디오나 멀티미디어 스트리밍)에 적합하다.
UDP와 TCP 비교 요약
특성/설명 | UDP | TCP |
일반 설명 | 단순하고, 빠르며, 애플리케이션이 네트워크 계층에 접근할 수 있도록 하는 인터페이스만 제공할 뿐 다른 것은 거의 하지 않음 | 애플리케이션이 네트워크 계층 문제를 걱정하지 않고 데이터를 안정적으로 송신할 수 있도록 하는, 풍부한 기능의 프로토콜 |
프로토콜 연결 수립 | 비연결형. 연결 수립이 없이 데이터를 송신함 | 연결형. 전송 전에 연결을 먼저 맺어야 한다. |
애플리케이션의 데이터 입력 인터페이스 | 메시지 기반임. 애플리케이션은 데이터를 별도의 패키지로 송신한다. | 스티림 기반임. 애플리케이션은 특정한 구조 없이 데이터를 송신한다. |
신뢰성과 승인 | 신뢰성이 없음. 승인이 없는 최선 노력 전송 방식 | 메시지 전송을 신뢰할 수 있음. 모든 데이터에 대한 승인이 있음 |
재전송 | 수행하지 않음. 애플리케이션은 손실 데이터를 탐지하고 필요할 경우 재전송해야 함 | 모든 데이터 전송을 관리하며, 손실된 데이터는 자동으로 재전송함 |
데이터 흐름 관리 기능 | 없음 | 슬라이딩 윈도우를 이용한 흐름 제어를 함. 윈도우 크기를 적절히 조정하고, 혼잡 회피 알고리즘을 사용함 |
부하 | 매우 낮음 | 낮지만 UDP 보다는 높음 |
전송 속도 | 매우 빠름 | 빠르지만 UDP 만큼은 아님 |
적합한 데이터 양 | 소형에서 중형 데이터(최대 수백 바이트) | 소형에서 초대형 데이터까지(최대 수 기가 바이트) |
프로토콜을 사용하는 애플리케이션의 유형 | 데이터의 완전성보다 전달 속도가 중요하고, 소량의 데이터를 송신하고, 멀티캐스트/브로트캐스트를 사용하는 애플리케이션 | 신뢰할 수 있는 방법으로 데이터를 송신해야 하는 대부분의 프로토콜과 애플리케이션. 대부분의 파일/메시지 전송 프로토콜을 포함함 |
유명 애플리케이션과 프로토콜 | 멀티미디어 애플리케이션, DNS, BOOTP, DHCP, TFTP, SNMP, RIP, NFS(초기버전) | FTP, Telnet, SMTP, DNS, HTTP, POP, NNTP, IMAP, BGP, IRC, NFS(나중버전) |
댓글 없음:
댓글 쓰기