NetWork, TCP & UDP

osi7layer

Transport Layer, TCP vs UDP

  • 인터넷은 전송계층에 연결형/비연결형 프로토콜 두개의 주된 프로토콜을 갖는다.
  • 데이터의 전달을 담당한다.

비교

프로토콜 종류 TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송순서 전송 순서 보장 전송 순서가 바뀔 수 있음
수신 여부 확인 수신여부확인 확인하지않음
통신 방식 1:1통신 1:1 or 1:N or N:N
신뢰성 높다 낮다
속도 느리다 빠르다
사용 대부분 DNS, streaming서비스

TCP

:Transmission Control Protocol, 전송제어 프로토콜, 연결형 프로토콜

  • TCP서비스를 하기 위해서는 송/수신자측에 소켓이라고 부르는 종단점을 생성,연결되어있어야 한다.

tcp

tcp2

[TCP 특징]

  • 연결형 서비스 , 가상 회선 방식 제공
    • 송/수진지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다.
  • TCP는 일반적으로 IP와 함께 사용된다.
    • TCP : 패킷 추적 및 관리
    • IP : 데이터의 배달
  • 3-way handshaking으로 연결을 설정, 4-way handshaking으로 연결 해제
    • 송/수진지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립한다.
  • 패킷에 순서를 부여하여 재조립하고, 흐름/혼잡 제어 기능이 있다
  • 높은 신뢰성을 보장
    • TCP는 연속성보다 신뢰성있는 전송이 중요할때 사용하는 프로토콜
  • UDP보다 속도가 느리다
  • 전이중(Full-Duplex), 점대점(Point to Point)방식

흐름제어

  • 송,수신 process가 동일한 속도로 data를 생성,소비할 수 없기 때문에 각 방향마다 송신,수신 버퍼가 있다.
  • 확인응답을 수신하기 전까지 바이트를 버퍼에 계속 보관한다.
    • 확인응답 번호 : 쪼개진 데이터는 순서대로 번호를 갖는데, 수신하기를 원하는 다음 바이트의 번호
  • 송신 TCP는 송신 Process로부터 수신되는 data양을 조절하여
  • 수신 TCP는 송신 TCP로부터 전송되는 data양을 조절한다.
  • 수신측에서 data가 과도하게 수신되서 data의 손실을 방지하기 위함

오류제어

  • 신뢰성있는 서비스 제공하기 위해 구현
  • 회손된 패킷 감지 및 폐기
  • 손실,제거된 패킷 추적해서 재전송
  • 중복 수신 패킷 확인 폐기

혼잡제어

  • N/W망의 혼잡을 고렬한다
  • 송신측에서 전송되는 데이터 양은 수신측에서 조절 & 망의 혼잡 정도에 의해서도 결정

UDP

:User Datagram Protocol, 비연결형 프로토콜

  • 데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리하는 프로토콜

udp

[UDP 특징]

  • 비연결형, 데이터그램 방식 제공
  • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다
  • UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다
  • 신뢰성이 낮다
  • TCP보다 속도가 빠르다
  • 신뢰성보다는 연속성이 중요한 서비스에 사용된다

  • [ 유용한 분야 ]
    • 클라이언트-서버 상황에 유용하다
    • 종종 클라이언트는 서버로 짧은 요청을 보내고 짧은 응답을 기대한다
  • [ 요청/응답이 손실된다면 ]
    • 클라이언트는 time out되고 다시 시도한다
    • 코드가 간단하고 TCP처럼 초기 설정에서 요구되는 프로토콜보다 적은 메세지가 요구된다.
  • [ 사용되는 곳 ]
    • DNS : 도메인의 ip주소를 찾아주는 서버이며 DNS서버로 도메인을 포함한 UDP패킷을보낸다. 이 서버는 도메인의 IP주소를 포함한 UDP패킷으로 응답한다. 사전에 설정 필요X, 해제 필요X
    • 실시간 멀티미디어 / 실시간 트랜스포트 프로토콜(RTP : Real-time Transport Protocol): 오디오와 비디오 데이터 패킷 형식으로 전송한다.UDP패킷을 사용하기 때문에 전달,지연,손실 등에 대한 특별한 보장이없다 / 실시간 서비스 (streaming)

Reference