TCP란?

 

  • TCP는 3-way-handshake를 통해 송신자와 수신자간의 소켓을 연결하고 통신하는 프로토콜입니다. 데이터를 주고 받을 때 데이터의 순서를 포함시키고, 타이머를 설정함으로써 데이터의 무결성을 확보할 수 있습니다.
  • IP를 통해 전송하는 데이터를 오류없이 보내기위해 TCP를 사용하며, 각 패킷의 순서를 저장해서 분실/중복 등 패킷을 추적 관리합니다.
  • 인터넷 상에서 데이터를 세그먼트 단위의 메세지 형태를 보내기 위해 IP와 함께 사용하는 프로토콜입니다.
  • 높은 신뢰성을 보장하고 UDP보다 속도가 느립니다. 연속성보다 신뢰성 있는 데이터 전송이 필요할 때 사용합니다.
  • 연결형 서비스로 가상 회선 방식을 제공합니다.
  • 3-way-handshake로 연결하고, 4-way-handshake로 연결을 해제합니다.
  • 흐름제어(송신자와 수신자의 데이터 전송속도를 맞춤), 혼잡제어(네트워크 내에 라우터의 패킷 수가 넘치게 증가하지 않도록 방지)를 합니다.

 

UDP

  • 송수신자간의 연결 설정없이 데이터를 주고받는 방식으로, 데이터가 손실되어도 재전송하지 않아 무결성을 보장하지 않습니다. 하지만 연결 설정, 흐름제어, 혼잡제어를 하지않음으로 TCP보다 속도가 빠릅니다. (TCP의 느린 속도를 보완해주는 포로토콜)
  • 데이터를 데이타그램으로 처리합니다. 비연결 서비스입니다.
  • UDP헤더의 checksum을 통해 오류검출만 해줍니다.
  • 신뢰성보다는 연속성이 중요한 스트리밍서비스에서 주로 사용합니다.

 

 

TCP와 UDP의 공통점 및 차이점

  • 공통점
    • 데이터 오류를 검사하는 checksum을 통해 오류검출을 합니다.
    • port를 이용해 패킷을 전달합니다.
    • 전송 계층에서 사용합니다.
  • 차이점
    • TCP는 신뢰성을 보장하지만, UDP(재전송 x, 순서유지 x)는 신뢰성을 보장하지 않습니다.
    • TCP는 3-way-handshake를 통한 연결 프로토콜 이지만, UDP는 비연결 프로토콜 입니다.
    • TCP는 일대일 통신이지만, UDP는 일대일, 일대다, 다대일 통신입니다.

 

 

'Network' 카테고리의 다른 글

[Network] 쿠키와 세션  (0) 2021.10.21
[Network] HTTP Method  (0) 2021.10.21
[Network] HTTP와 HTTPS  (0) 2021.10.21
[Network] 3-way-handshake와 4-way-hanshake  (0) 2021.10.17
[Network] OSI 7계층 & TCP/IP 4계층  (0) 2021.10.14

+ Recent posts