[네트워크] TCP와 UDP

Jung Wish·2020년 10월 9일
0

네트워크

목록 보기
3/7
post-thumbnail

TCP와 UDP

🐰 TCP/UDP란?

  • TCP/IP 네트워크 모델에서 Transfer계층(Layer 4)에 해당하는 프로토콜입니다.

TCP(Transmission Control Protocol)

  • TCP는 에러 복구, 흐름 제어, 윈도우 제어, 애플리케이션 식별 등 전달할(혹은 전달한) 데이터에 대해 신뢰성(Reliablity)이 높은(or 에러가 적은) 순차적(In-order delivery)데이터 전송을 하기 위한 처리를 합니다.

    • 에러 복구(Error Detection & Recovery) : 송신처에서 일정시간(RTT) 내에 확인응답이 오지 않으면 에러로 인식하고, 다시 마지막에 보낸 시퀀스 번호 기준으로 Data를 다시 보냄으로써 에러를 복구합니다.

    • 흐름 제어(Flow Control) : 해당 수신처가 받을 수 있는 최대 바이트 수(reveive window)를 전송해 허용 범위 안에서 데이터를 주고받을 수 있도록 제어합니다. 👉🏻 수신처 버퍼가 오버플로우(Overflow) 되지 않도록 관리

    • 혼잡 제어(Congestion control) : 네트워크 정체를 방지하기 위해 receive window와 별도로 congestion window를 사용하는데 이는 네트워크에 유입되는 데이터양을 제한하기 위해서 사용합니다. 흐름 제어와 달리 송신자가 단독으로 구현합니다.

    • 애플리케이션 식별(Connection oriented) : TCP 연결 식별자로 수신처 포트를 식별해 해당 애플리케이션에 데이터를 전달합니다.

  • 연결지향으로(Conntection Oriented) 통신하기 전에 두 개의 엔드포인트(local, remote)에 연결을 먼저 맺고 통신을 시작합니다.
  • 양방향 통신(Bidirectional byte stream)으로 바이트 스트림(byte stream)을 사용해 데이터를 연속적인 바이트로 보고, 세그먼트 단위의 패킷으로 전송합니다. 해당 세그먼트는 시퀀스 번호로 식별합니다.
  • 전 이중(Full duplex) 방식, 점 대 점방식(Point-to-Point)으로 으로 두 호스트 모두 송신자와 수신자가 될 수 있습니다.
  • HTTP, FTP, SMTP, TELNET 등에서 사용됩니다.

UDP(User Datagram Protocol)

  • UDP는 이와는 다르게, TCP의 최대 단점인 대기 시간이 없고, 장점인 신뢰성 보장이 없는 모델입니다.
  • 비연결형(Connection-less) 프로토콜으로 연결을 설정하고 해제하는 과정이 없습니다.
  • UDP는 신뢰성을 보장하지 않으며, 데이터가 순서대로 도착하지 않을 수 있습니다.
  • UDP는 흐름제어, 오류제어 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않습니다. 그렇기 때문에 UDP 헤더에는 시퀀스 번호, 확인응답 번호, 윈도우 사이즈, 제어비트도 없습니다. => 에러 검출은 Checksum 비트만 이용합니다.
  • 패킷의 단위가 데이터그램(Datagram) 으로 경계가 분명 하여 수신자는 송신자가 보낸 그대로의 크기로 받게 됩니다.
  • TCP는 window size가 증가하더라도, 신뢰성 보장을 위한 일정 대기시간이 필요하기 때문에 이러한 과정이 없는 UDP는 TCP보다 고속입니다.
  • 서버와 클라이언트는 유니캐스트(1:1), 브로드캐스트(1:N), 멀티캐스트(1:M)가 가능합니다. (N은 전체, M은 일부)
  • UDP는 고속성이나 실시간 송수신이 필요한 애플리케이션(VoIP, 동영상 스트리밍 배포, DNS)브로드캐스트(Broadcast)가 필요한 애플리케이션(DHCP)에서 사용됩니다.

    ✨👆🏻 TCP의 경우 모든 수신처와 연결성을 보장받고, 통신을 시작하기 때문에 브로드캐스트와 같이 모든 수신처와 연결을 보장받아야하는 작업에는 부적합합니다.

🐰🐰 TCP와 UDP

TCP
(Transmission Control Protocol)
UDP
(User Datagram Protocol)
신뢰성보장없음
속도상대적으로 느림고속
연결 확인 과정있음(Connection-oriented)없음(Connection-less)
패킷의 단위세그먼트(Segment)데이터그램(Datagram)
헤더의 구조복잡함단순함
통신의 단위유니캐스트, 점대점방식(point-to-point)멀티캐스트, 브로드캐스트
장점큰 규모의 양방향 데이터 전송을 보장한다.
데이터가 순서대로 전송된다.
고속으로 다수에게 데이터전송이 가능하다.
단점대기시간이 있다.데이터 전송의 신뢰성과 순서를 보장하지 않는다.
EXAMPLEHTTP, FTP, SMTP, TELNETDNS, DHCP, VoIP, 비디오 스트리밍 서비스

개인적으로 공부한 내용을 바탕으로 정리한 것으로 잘못된 정보가 있을 수 있습니다! 혹시 잘못된 정보가 있으면 정정 부탁드립니다!🙇🏻‍♀️

Reference

profile
Frontend Developer, 올라운더가 되고싶은 잡부 개발자, ISTP, 겉촉속바 인간, 블로그 주제 찾아다니는 사람

0개의 댓글