TCP와 UDP의 공통점과 차이점을 설명해보세요.

권성현·2023년 2월 27일
0

면접 준비

목록 보기
13/30
post-custom-banner

TCP와 UDP의 공통점

  • 포트 번호를 이용하여 주소를 지정한다.
  • 두 애플리케이션이 통신하기 위해 반드시 포트 번호를 결정해야 한다.

데이터 오류를 체크한다.

  • IP가 제공하는 오류 체크 기능은 프로토콜 동작을 위해 반드시 필요한 부분에만 국한된다. 즉 IP헤더에 대한 오류는 체크하지만 데이터에 대한 오류는 체크하지 않는다.
    반면, TCP와 UDP는 헤더와 데이터에 대한 오류를 체크한다.

TCP와 UDP의 차이점

TCP (Transmission Control Protocol)

  • 연결형 (connnection-oriented) 프로토콜이며, 연결이 성공해야 통신이 가능하다.
  • 데이터 경계를 구분하지 않는다. 바이트 스트림(byte-stream) 서비스
  • 신뢰성 있는 데이터를 전송한다. 데이터의 순서 유지를 위해 각 바이트마다 번호를 부여한다. 데이터를 재전송한다.
  • 1 대 1 통신(unicast)
  • 전송속도가 느리다.
  • 패킷관리가 필요없다.

특징

  • 가상 회선 연결 방식, 연결형 서비스를 제공
  • 높은 신뢰성(Sequence Number, Ack Number를 통한 신뢰성 보장)
  • 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
  • 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지)
  • 전이중(Full-Duplex), 점대점(Point to Point) 서비스

UDP (User Datagram Protocol)

  • 비연결형 (connectionless) 프로토콜이며, 연결 없이 통신이 가능하다.
  • 데이터 경계를 구분한다. 데이터그램(datagram) 서비스
  • 비신뢰적인 데이터를 전송한다. 데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다.
  • 1 대 1 통신(unicast), 1 대 다 통신(broadcast), 다 대 다 통신(multicast)
  • 전송속도가 빠르다.
  • 패킷관리가 필요하다.

특징

  • 비연결형(port만 확인하여 소켓을 식별하고 송수신)
  • 패킷 오버헤드가 적어 네트워크 부하 감소
  • 비신뢰성
  • 오류검출(헤더에 오류 검출 필드를 포함하여 무결성 검사)
  • TCP의 handshaking 같은 연결 설정이 없다
  • DNS, NFS, SNMP, RIP 등 사용

3줄 요약

TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용되는 프로토콜이며, UDP는 TCP보다 빠르고 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지는 않는다.
그렇기 때문에 UDP는 신뢰성보다는 연속성이 중요한 실시간 스트리밍과 같은 서비스에 자주 사용된다.

profile
개발일지
post-custom-banner

0개의 댓글