TCP란?
TCP(Transmission Control Protocol, 전송 제어 프로토콜)는 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜이다. TCP/IP 프로토콜이라고 불리기도 한다. 연속성보다 신뢰성있는 전송이 중요할 때 사용하는 프로토콜로 메신저에서 친구랑 채팅을 하거나, 이메일을 보내거나, 온라인 동영상을 볼 때 TCP 프로토콜을 사용한다. 또한 데이터가 순차적으로 전송되므로 데이터 혼잡과 흐름 제어에 도움이 되며 오류를 쉽게 발견, 수정할 수 있다.
TCP는 연결 기반으로 데이터를 전송하는 동안 수신자와 발신자 사이에 연결을 설정하고 유지한다. 데이터가 온전하게 도착하도록 보장하기 때문에 높은 신뢰성으로 가장 널리 사용되는 프로토콜이다.
연결을 성공해야 통신이 가능하고 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제한다.
TCP의 장점
- 운영체제와 독립적으로 작동하므로 시스템과 디바이스 간 상호운용성이 향상된다.
- 데이터 전송시 오류를 검사하여 전송된 데이터가 목적지에 온전히 도달할 수 있도록 보장한다.
- 수신자의 용량에 따라 데이터를 전송하는 속도를 최적화하고 변경한다.
- 데이터가 목적지에 도달했는지 확인 후 전송 실패의 경우 재전송을 시도한다.
TCP의 단점
- 상당히 많은 대역폭을 사용하며, UDP보다 속도가 느리다.
- 전송 중 소량의 데이터라도 손실되면 다른 정보를 로드하지 못할 수 있다.
- 페이지에서 이미지나 동영상과 같은 한 요소가 로드되지 않으면 나머지 페이지 데이터 로드 안될 수 있음
- 근거리 통신망이나 개인 영역 네트워크에서 제대로 작동하지 않을 수 있다.
TCP의 동작방식
- TCP는 각 데이터 패킷에 고유 식별자와 시퀀스번호를 할당한다.
=> 수신자는 어떤 패킷이 수신되었고 다음에 어떤 패킷이 도착하는지 식별할 수 있다. - 데이터 패킷이 수신되고 올바른 순서로 도착하면 수신자는 발신자에게 수신 확인을 보낸다.
- 이때 발신자는 다른 패킷을 보낼 수 있다.
- 패킷이 분실되거나 잘못된 순서로 전송된 경우, 수신자는 동일한 데이터 패킷을 다시 보내야 함을 알리는 침묵 상태를 유지한다.
UDP란?
UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)의 약자 쉽게말해 데이터를 데이터그램 단위로 처리하는 프로토콜로 해석할 수 있다. TCP에 비해 안정성은 떨어지지만 더 빠르고 간단하다. 고로 UDP는 신뢰성보다 연속성이 중요한 서비스에서 활용된다. 스트리밍이나 게임과 같이 빠른 속도가 중요한 경우 자주 사용된다.
UDP는 비연결 방식으로 사전 연결을 설정하지 않는다. 그 과정에서 데이터가 손실될 가능성이 있다. 그러나 훨씬 빠른 속도를 얻을 수 있다. 오류 수정 기능이 거의 없으며 패킷 손실에 대해서도 신경 쓰지 않는다.
UDP의 장점
- 더 작은 패킷을 더 적은 오버헤드로 전송하여 엔드투엔드 지연을 줄인다.
- 일부 패킷이 누락되더라도 데이터를 전송하므로 패킷 손실로 인해 전체 전송이 중단되지 않는다.
- 브로드캐스트(일대다) 및 멀티캐스트(다대다) 기능을 통해 하나의 UDP 전송을 여러 수신자에게 한 번에 전송할 수 있다.
- TCP보다 빠르고, 효율적이다.
패킷(Packet)이란?
인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해 데이터를 여러 개의 조각들로 나누어 전송한다. 이때, 이 조각을 패킷이라고 한다.
UDP의 단점
- 데이터 패킷이 목적지에 성공적으로 도달했는지 여부를 확인하지 않는다.
- 전송이 온전하게 도착한다고 보장할 수 없다. 일부 패킷이 손실되었을 수 있지만 발신자 측에서 이를 확인할 수 있는 방법이 없다.
- 라우터가 데이터 패킷의 우선순위를 정해야 하는 경우, TCP 패킷을 먼저 전송할 확률이 높다.
- 특정 순서로 데이터를 전송하지 않으므로 패킷은 어떤 순서로든 도착할 수 있다.
UDP의 동작방식
UDP는 고유 식별자나 시퀀스 번호 없이도 TCP와 동일한 작업을 수행하는 방식으로 작동한다. 스트림으로 데이터를 전송하며 데이터가 손상되지 않고 도착했는지를 확인하기 위한 체크섬만 존재한다.
TCP vs UDP 비교
TCP | UDP | |
신뢰성 | 높음 | 낮음 |
속도 | 낮음 | 높음 |
전송 방법 | 순서대로 | 스트레이트로 |
오류 감지 및 수정 | 있음 | 없음 |
혼잡도 제어 | 있음 | 없음 |
전송 인정 | 있음 | 체크섬만 |
https://mangkyu.tistory.com/15
https://nordvpn.com/ko/blog/tcp-udp-comparison/
'Network > Network' 카테고리의 다른 글
HTTP 프로토콜이란? (0) | 2023.04.10 |
---|---|
[Network] localhost란? (0) | 2023.03.20 |