ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP와 UDP
    네트워크 2020. 2. 4. 17:58

    TCP와 UDP

    • 네트워크 계층 중 전송 계층에서 사용하는 프로토콜
    • 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터 전달을 담당
    • TCP는 연결 지향형 프로토콜, UDP는 비연결 지향형 전송 프로토콜

     

    TCP (Transmission Control Protocol)

    • 전송을 제어하는 프로토콜 (규약)
    • 인터넷 상에서 데이터를 메세지의 형태(세그먼트 단위)로 보내기 위해 IP와 함께 사용하는 프로토콜
    • 주로 TCP와 IP를 함께 사용하는 데, IP가 데이터 배달을 처리한다면 TCP는 *패킷을 추적 및 관리

     

    <특징>
    • 출발지 포트/IP 주소와 도착지 포트/IP 주소 간의 통신 연결 수립
    • 전이중(양방향), 점대점(정확히 2개의 종단점) 방식
    • 가상 회선 방식을 제공
      • 발신지와 수신지를 연결해 패킷을 전송하기 위한 논리적인 경로를 배정
      • 3-way handshaking 과정을 통해 연결을 설정 (클라이언트가 서버에 연결을 요청 - 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립하는 과정)
      • 4-way handshaking을 통해 연결을 해제 (클라이언트가 서버에 연결해제를 요청)
    • 흐름제어
      • 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절해 수신자의 버퍼 오버플로우를 방지
      • 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 막음
    • 혼합제어
      • 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지
      • 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막음
    • 높은 신뢰성을 보장
    • 흐름제어와 혼합제어 기능때문에 UDP보다 속도가 느리다

     

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

     

     

     

    UDP (User Datagram Protocol)

    • 사용자 데이터그램 프로토콜 (규약)
    • 데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리하는 프로토콜
    • 연결을 위해 할당되는 논리적인 경로가 없고, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 된다.

     

    <특징>
    • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
      • 연결을 설정하고, 해제하는 과정이 없어 서버 소켓과 클라이언트 소켓의 구분이 없다.
      • 소켓 대신 IP 기반으로 데이터 전송
    • 패킷에 순서를 부여해 재조립하거나 흐름제어 또는 혼합 제어와 같은 기능도 처리하지 않아 TCP보다 속도가 빠르다.
    • UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
    • 신뢰성이 낮다.

     

    → UDP는 신뢰성보다 연속성이 중요할 때 (ex. 스트리밍 서비스) 사용하는 프로토콜

     

    TCP와 UDP 비교


    *패킷 : 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 합니다.


    <참고 문서>

    • UDP와 TCP는 각각 별도의 포트 주소 공간을 관리하므로 같은 포트 번호를 사용해도 무방하다. 즉, 두 프로토콜에서 동일한 포트 번호를 할당해도 서로 다른 포트로 간주한다.
    • 또한 같은 모듈(UDP or TCP) 내에서도 클라이언트 프로그램에서 동시에 여러 커넥션을 확립한 경우에는 서로 다른 포트 번호를 동적으로 할당한다. (동적할당에 사용되는 포트번호는 49,152~65,535이다.)

    이게 무슨 말인지 모르지만 참고래!

Designed by Tistory.