[네트워크] TCP / UDP

Gavin Ariel Lee·2021년 7월 29일
0

TCP(Transmission Controll Protocol)

TCP (전송 제어 프로토콜)

전송계층의 연결형 서비스를 제공하는 프로토콜
일반적으로 TCP/IP 함께 사용(IP 데이터의 배달 처리, TCP 패킷 추적 및 관리)

  • 클라이언트가 연결 요청을 하고 서버가 수락하면 통신 선로가 고정
    -> 모든 데이터가 고정된 통신 선로를 통해 순차적으로 전달
  • 신뢰성 있는 데이터 전송
  1. TCP는 패킷을 성공적으로 전송하면 ACK 신호를 날린다
    제 시간에 도착하지 않을 시 TimeOut 발생 손실 패킷 재전송
    (데이터를 송신할 때마다 확인 응답을 주고 받는다)
  2. 데이터 전송 순서 보장 - 각 바이트마다 번호를 부여
  • 데이터의 경계를 구분하지 않는다(byte stream 서비스)
  • 연결형 서비스로 가상 회선 방식 제공
  • 흐름 / 혼잡 제어 O
  • UDP보다 전송 속도가 느리다

UDP(User Datagram Protocol)

UDP (사용자 데이터그램 프로토콜)

전송계층의 비연결형 서비스를 제공하는 프로토콜(데이터를 주고 받을 때 연결/해제 절차를 거치지 않는다)

  • 비연결형 서비스로 데이터그램(독립적인 관계를 지니는 패킷) 방식 제공
  • TCP보다 전송 속도가 빠르다
  • 흐름 / 혼잡 제어 X
  • 데이터 신뢰성 없음
    중간에 패킷이 유실되거나 변조되어도 재전송 X
    먼저 보낸 패킷이 나중에 보낸 패킷보다 늦게 도착할 수 있다
  • 데이터의 경계를 구분
  • IP 주소와 포트번호의 결합인 소켓 주소를 이용
  • 패킷 오버헤드가 적어 네트워크 부하가 감소

TCPUDP
연결방식연결형 서비스비연결형 서비스
패킷 교환 방식가상 회선 방식데이터그램 방식
전송 순서전송 순서 보장전송 순서 바뀔 수 있음
수신 여부 확인OX
통신 방식1:1 통신만 가능1:1 / 1:N / N:N 가능
신뢰성높음낮음
속도느림빠름


TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용되며 UDP는 신뢰성보다 연속성이 중요한 서비스(Streaming)에 사용된다.


  • 흐름 제어(Flow Controll)
    데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
    신자가 윈도우크기(Window Size) 값을 통해 수신량을 정할 수 있다
  • 혼잡 제어(Contgestion Controll)
    네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지
    (정보 소통량이 과다하면 패킷을 조금만 전송)
profile
As you wish

0개의 댓글