[Network] TCP, UDP의 공통점, 차이점, 특징

chxxrin·2024년 5월 17일
0

Network

목록 보기
11/13

TCP와 UDP의 공통점

1. 포트 번호를 이용하여 주소를 지정한다.

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

2. 데이터 오류를 체크한다.

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

반면, TCP와 UDP는 헤더와 데이터에 대한 오류를 체크한다.

TCP와 UDP의 차이점

TCP (Transmission Control Protocol)

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

특징

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

UDP (User Datagram Protocol)

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

특징

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

면접질문 : TCP와 UDP의 특징은?

TCP는 신뢰성 있는 통신을 위해 사용하는 프로토콜로 높은 신뢰성을 보장하지만, UDP보다는 속도가 느립니다. 3way, 4way handshake로 서버와 클라이언트가 1:1로 통신을 하구요. 흐름제어와 혼잡제어가 이루어지게 됩니다.

UDP는 비연결형 프로토콜로, 손상된 데이터에 대해서 재전송하지 않습니다. 대신에 신뢰성이 낮지만, TCP보다 속도가 빨라서 스트리밍같은 서비스에 주로 사용됩니다. 1:1, 1:N, N:M으로 연결이 가능합니다.

[출처]

0개의 댓글

관련 채용 정보