22 May 2020

TCP UDP 비교

TCP


인터넷에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜


  • 연결형 서비스로 가상 회선 방식을 제공한다

    • 가상 회선 방식이란 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻

  • 3-way handshaking으로 연결설정 4way handshaking을 통해 해제한다.

    • 3-way handshaking과정은 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기위해 세션을 수립하는 과정을 말한다.

  • 흐름제어 및 혼잡제어

  • 높은 신뢰성 보장

    • 연결형 서비스로서 데이터의 순서제어,흐름제어나 혼잡제어가 가능하다.

  • UDP보다 속도가 느리다(UDP는 비연결형이기 때문에)

  • 전이중(FULL-Duplex),점대점(Point to Point) 방식

    • 전이중이란 전송이 양방향으로 동시에 일어날 수 있음을 의미한다.

    • 점대점이란 각 연결이 정확히 2개의 종단점을 가지고 있음을 의미한다.


순서 제어 기능

send(1000byte)를 여러번 호출하고 send()호출 한번에 패킷하나가 생성되어 전달된다고 가정해보자

이 경우 네트워크 경로상의 문제로 먼저 전송한 데이터가 나중에 전달 될 수 있다.

하지만 TCP(transport Layer)에서 순서가 바뀐 패킷을 원래대로 조립하여 프로그래머가 다루는 데이터

의 형태로 만들어서 응용계층(Application Layer)으로 올려준다.



TCP서버의 특징

  • 서버와 클라이언트는 1:1로 연결된다

  • 스트리밍서비스에 불리하다(손실된 경우 재전송을 요청하기 때문에)

  • 패킷 : 데이터를 여러개의 조각들로 나누어 전송하는데 이 조각을 패킷이라한다.


UDP


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

>데이터그램이란 독립적인 관계를 지니는 패킷이란 뜻이다.

TCP와는 달리 비연결형 프로토콜로 연결은위해 할당되는 논리적 경로가 없으며 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 된다


특징

  • 비연결형 서비스로 데이터그램 방식을 제공한다

  • 정보를 주고받을때 신호절차를 거치지 않는다

  • UDP헤더의 checkSum필드를 통해 최소한의 오류만 검출한다

  • 신뢰성이 낮다

  • TCP보다 속도가 빠르다

    • 패킷에 순서를 부여하여 재조립을 하거나 흐름제어 또는 혼잡제어 기능도 처리하지 않기 때문에 TCP보다 네트워크 부하가 적다는 장점이 있으나 신뢰성 있는 데이터 전송을 보장하지 못한다. -> 연속성이 중요한 서비스에 좋다(실시간 서비스 등);

UDP서버의 특징

  • UDP에는 연결자체가 없어 서버소켓과 클라이언트 소켓의 구분이 없다.

  • 소켓 대신 IP를 기반으로 데이터를 전송한다

  • 서버와 클라이언트가 1:1, 1:N, N:M등으로 연결될 수 있다.

  • 데이터그램단위로 전송되며 크기는 65535byte로, 크기를 초과하면 잘라서 보낸다

    • 최대크기가 65535byte인 이유는 UDP 헤더의 패킷 크기를 나타내는 부분이 16비트라서 나타낼 수 있는 최대 크기가 65535이기 때문이다.

  • 흐름제어가 없기때문에 패킷이 정상적으로 전송됬는지 알 수 없다

    • 흐름제어란 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는것 이다.

    • 혼잡제어는 네트워크내의 패킷 수가 넘치게 증가 하지 않도록 방지하는 것이다. 만약 정보량이 과다하게 오면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막습니다.


Tags:
0 comments