2014년 4월 22일 화요일

TCP와 UDP 개요와 비교

TCP/IP 전송 계층의 두 프로토콜 요구사항

  • 전송 제어 프로토콜(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(나중버전)

댓글 없음:

댓글 쓰기