공부하자/알면 유용한정보

TCP와 UDP 차이

YoBot 2017. 7. 18. 23:28

TCP(Transmission Control Protocol)

연결형 서비스를 지원하는 전송계층 프로토콜

인터넷 환경에서 기본으로 사용한다.

호스트간 신뢰성 있는 데이터 전달과 흐름제어 및 혼잡제어 등을 제공하는 전송계층


특징

- 가상 회선 연결 방식, 연결형 서비스를 제공

- 높은 신뢰성(Sequence Number, Ack Number를 통한 신뢰성 보장)

- 연결의 설정(3-way handshaking)과 해제(4-way handshaking)

- 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지)

- 전이중(Full-Duplex), 점대점(Point to Point) 서비스


소켓 통신 과정

- 서버 : 소켓을 생성, 주소 할당, 연결 요청 기다림, 요청에 대한 응답

- 클라이언트 : 소켓을 생성, 주소 할당, 연결 요청


UDP(User Datagram Protocol)

비연결형 서비스를 지원하는 전송계층 프로토콜

사용자 데이터그램형 프로토콜

인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고,

보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜

보내는 쪽에서는 받는 쪽이 데이터를 받았는지 받지 않았는지 확인할 수 없고, 또 확인할 필요도 없도록 만들어진 프로토콜


특징

- 비연결형(port만 확인하여 소켓을 식별하고 송수신)

- 패킷 오버헤드가 적어 네트워크 부하 감소

- 비신뢰성

- 오류검출(헤더에 오류 검출 필드를 포함하여 무결성 검사)

- TCP의 handshaking 같은 연결 설정이 없다

- DNS, NFS, SNMP, RIP 등 사용


소켓 통신 과정

- 서버 : 소켓을 생성, 주소 할당, 데이터를 송수신

- 클라이언트 : 소켓 생성 후 데이터 수신


UDP는 TCP와 달리 데이터의 수신에 대한 책임을 지지 않는다.

이는 송신자는 정보를 보냈지만, 정보가 수신자에게 제때에 도착했는지 또는 정보 내용이 서로 뒤바뀌었는지에 관해서 송신자는 상관할 필요가 없다.

TCP보다 안정성 면에서는 떨어지지만, 속도는 훨씬 빠르다.


UDP와 TCP 비교 요약

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






'공부하자 > 알면 유용한정보' 카테고리의 다른 글

IP 주소 / MAC 주소 란  (0) 2017.07.20
우분투 sendmail 설치하기  (0) 2017.07.19
컴포넌트란  (0) 2017.05.19
노드제이에스(Node.js) 란?  (0) 2017.05.19
서버 환경 확인 방법  (0) 2017.05.19