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 |