ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : Network : TCP and UDP
    Computer Science/Network 2021. 4. 20. 11:49
    728x90

     

     

     

    TCP (Transmission Control Protocol)

     

    1. 정의

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

     

    2.

    일반적으로 TCP와 IP를 함께 사용한다.

    이 때, IP가 '데이터의 배달'을 처리한다면, TCP는 '패킷의 추적 및 관리' 역할을 한다.

     

    3. TCP의 패킷 전송 과정의 예시

     

    4. 특징

    • 연결형 서비스
    • client : server = 1 : 1
    • stream 전송으로, 전송 데이터의 크기가 무제한이다.
    • 가상 회선 방식 : 송신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 설정하는 것
    • 3-way handshaking을 통해 연결 설정
    • 4-way handshaking을 통해 연결 해제
    • 흐름 제어
    • 혼잡 제어
    • 높은 신뢰성 보장
    • UDP보다 느리다
    • 전이중(Full-Duplex), 점대점(Point-to-Point) 방식
    • 스트리밍 서비스에 불리하다.

     

    5.

    TCP는 높은 신뢰성을 보장하기 위해 다양한 기능을 제공하고, 때문에 UDP보다 속도가 느리고, 이 때 CPU를 사용하기 때문에 CPU 성능이 통신 속도에 영향을 미친다.

     

     

    6. 3-way handshaking

    • 장치들 간 논리적인 접속을 성립하기 위해 사용하는 방식이다.
    • 본 데이터를 전송하기 전에, 먼저 정확한 전송을 보장하기 위해 상대방과의 사전 세션을 수립하는 과정을 말한다.

     

    • 과정
      • client -> server : TCP SYN
      • server -> client : TCP SYN ACK
      • client -> server : TCP ACK

     

     

     

     

    7. 4-way handshaking

    • 세션을 종료하기 위해 수행되는 절차이다.

     

    • 과정
      • client -> server : TCP FIN
      • server -> client : TCP FIN ACK and TIME_WAIT
      • server -> client : TCP FIN
      • client -> server : TCP FIN ACK

     

     

     

     

    8. 흐름 제어 (Flow Control)

    • 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여, 수신자의 버퍼 오버플로우를 방지한다.

     

     

    9. 혼잡 제어 (Congestion Control)

    • 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 한다.
    • 만약, 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡을 막는다.

     

     

     


     

     

     

    UDP (User Datagram Protocol)

     

    1. 정의

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

     

    2.

    데이터그램 : 독립적인 관계를 가지는 패킷

     

    3. UDP의 패킷 전송 과정의 예시

     

    4. 특징

    • 비연결 서비스
    • client : server = N : 1 가능
    • 데이터그램 단위로 전송되고, 크기는 65535byte로 제한된다.
    • 정보를 주고 받을 때, TCP와 같은 별도의 신호절차를 거치지 않는다.
    • UDP의 header의 CheckSum 필드를 통해 최소한의 오류만 검증한다.
    • 낮은 신뢰성
    • TCP보다 빠르다.
    • 신뢰성보다는 연속성이 중요한 서비스에 적합하다. (예 : 실시간 스트리밍 방송)

     

    5.

    UDP는 '연결'의 개념이 없기 때문에, 서버 소켓과 클라이언트 소켓의 구분이 없다.

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

     

     

     

     


     

     

     

     

    TCP와 UDP 비교

     

     

    • 가장 큰 차이점은, '신뢰적 전송의 유무'이다.
    • TCP는 연결형 서비스로, 3-way handshaking 과정을 통해 연결을 설정한다. 때문에, 높은 신뢰성을 보장하지만, 속도가 비교적 느리다.
    • UDP는 비연결형 서비스로,  3-way handshaking을 하지 않는다. 때문에 신뢰성이 떨어지는 대신 속도가 빠르다.
    • TCP는 신뢰성이 중요한 파일 교환 등에 사용되고, UDP는 실시간성이 중요한 스트리밍 등에 사용된다.
    •  

     

     

     

    728x90

    'Computer Science > Network' 카테고리의 다른 글

    CS : Network : HTTP 통신 vs Socket 통신  (0) 2021.04.20
    CS : Network : OSI 7 Layer  (0) 2021.04.20
    CS : Network : HTTP 1.1 and 2.0  (0) 2021.04.11
    CS : Network : 보안  (0) 2021.04.11
    Question : Network  (0) 2021.04.06

    댓글

kxmjhwn@gmail.com