[네트워킹] TCP와 UDP

Chloe Choi·2021년 1월 26일
0

네트워킹

목록 보기
1/11

이제 네트워킹도 조금씩 정리해보려고합니다!

둘 다 전송계층에서 데이터를 보내기 위해 사용하는 프로토콜이다

전송계층
: 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 데이터 전달을 담당한다.

각각을 자세히 설명하기 보다는 둘을 비교하는데 초점을 맞춰 설명을 진행하겠습니다~

TCP

Transmission Control Protocol
: 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
(IP: 데이터의 배달을 처리 / TCP: 패킷을 추적 및 관리)

TCP 특징

  • 연결형 서비스
    3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking 과정을 통해 연결을 해제 (다음 글에서 핸드셰이킹에 대해 자세히 다룰 예정입니다)

    연결형 서비스 a.k.a. 가상 회선 방식
    : 패킷을 전부 같은 경로를 통해 전송하는 방식으로 가상 번호를 기반으로 가상 회선을 구현. 즉, 논리적으로 경로를 설정하는 방식

  • Stream oriented
    IP datagram으로 전송 시 큰 데이터가 여러개의 segment로 나누어지긴 하지만 이를 다시 재조립하기 때문에 stream처럼 보인다! (UDP는 하지 않는 segmentation 과정 덕분에 가능)
  • 흐름 제어 및 혼잡 제어를 제공
    흐름 제어: 수신자의 오버플로우를 방지하기 위해 데이터처리 속도를 조절
    혼잡 제어: 네트워크 내 패킷 수 조절
  • 높은 신뢰성을 보장
    #ACK #타임아웃 #재전송
    세그먼트에 시퀀스를 부여해 세그먼트가 정상적으로(else-> get lost, are damaged, duplicated or received out of their correct order) 전달되었는지 확인함
  • 연결을 맺고 끊는 해제하는 과정 때문에 UDP 보다 속도가 느림
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식
    전송이 양방향으로 동시에 일어날 수 있고 각 연결의 종단점은 2개. 따라서 일 대 다, 다 대 다 통신이 불가능

즉, TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜이다 !

UDP

User Datagram Protocol
: 데이터를 데이터그램 단위로 처리하는 프로토콜

데이터그램
: 독립적인 관계를 지니는 패킷

UDP 특징

  • 비연결형 서비스
    즉, 연결을 위해 할당되는 노리적인 경로가 없음 == 연결 수립을 위한 신호 절차X
  • Message oriented
  • UDP 헤더의 Checksum 필드를 통해 최소한의 오류만 검출
  • 낮은 신뢰성
  • TCP보다 빠른 속도 (패킷에 순서를 부여해 재조립하는 과정, 혼잡/흐름 제어가 없기 때문)

즉, UDP는 신뢰성보다는 연속성이 중요한 서비스에 적합하다 !

profile
똑딱똑딱

0개의 댓글