011

01. TCP와 UDP

  • 전송 계층(Transport Layer) 에서 사용하는 프로토콜
  • 데이터를 보내기 위해 사용하는 프로토콜

Untitled



02.TCP

  • 연결형 서비스를 지원하는 프로토콜
  • 3-Way handshake 과정을 통해 연결 수립 4-Way handshake 과정을 통해 연결 해제
  • 높은 보안, 신뢰성
  • UDP보다 느린 속도

💡 연속성보다는 신뢰성 있는 전송이 중요할 때에 사용한다.

Untitled 1

02-1. TCP 서버의 특징

  • 서버 소켓은 ‘연결’을 담당
  • 서버와 클라이언트는 1:1로 연결
  • 스트림 전송으로 전송 데이터의 크기가 무제한
  • 패킷에 대한 응답을 해야하기 때문에 성능이 낮다. (시간 지연, CPU 소모)
  • Streaming 서비스에 불리하다. (손실된 경우 재전송 요청을 하기 때문.)
  • 전이중(full-duplex), 점대점(point to point) 방식

전이중(full-duplex) : 전송이 양방향으로 동시에 일어날 수 있음.
> 점대점(point-to-point) : 각 연결이 정확히 2개의 종단점을 가지고 있음.




03. UDP

  • UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)
  • 비연결형 프로토콜
  • TCP와 다르게 IP 데이터그램을 캡슐화 하지 않고 보내는 방법 연결 설정을 하지 않고 보내는 방법을 지원
  • UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
  • 신뢰성이 낮다.
  • 속도가 빠르다.

💡 연결을 설정하고 헤제하는 과정이 존재하지 않다. 신뢰성 보다는 연속성이 중요한 서비스에 자주 사용된다.

Untitled 2

03-1. UDP 서버 특징

  • 서버 소캣과 클라이언트 소캣의 구분이 존재하지 않는다. (connect 함수가 필요하지 않기 때문)
  • 소캣 대신 IP를 기반으로 데이터 전송
  • 서버와 클라이언트는 1:1, 1:N, N:M 등으로 연결 가능
  • 데이터그램(메세지) 단위로 전송 크기는 65535byte로 크기가 초과되면 잘라서 보낸다.
  • 흐름제어(flow control)이 존재하지 않아 패킷이 잘 전송되었는지, 오류가 없는지 확인 불가



04. TCP와 UDP 비교

Untitled 3


참고

https://velog.io/@hidaehyunlee/TCP-와-UDP-의-차이

https://mangkyu.tistory.com/15

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network#tcp와-udp의-비교

카테고리: ,

업데이트:

댓글남기기