물음표 살인마의 개발블로그

Back-End TIL/네트워크

UDP와 TCP의 차이

BEstyle 2023. 3. 14. 02:14

 

TCP와 UDP의 차이

TCP와 UDP는 모두 인터넷 프로토콜 중 전송 제어 프로토콜(Transport Control Protocol)입니다. 그러나 이 두 프로토콜은 중요한 차이점이 있습니다.

1. 연결 지향성

TCP는 연결 지향 프로토콜입니다. 즉, 두 컴퓨터 간 데이터 전송을 시작하기 전에 세션을 설정합니다. 이에 반해 UDP는 비연결성 프로토콜이므로 세션 설정 단계를 건너뜁니다.

이러한 연결 지향성은 TCP가 데이터를 보내기 전에 송수신 측 사이에 핸드셰이킹(Handshaking) 프로세스를 수행함으로써 세션을 설정하는 것입니다. 이는 데이터 전송 과정에서 연결을 확립하고 종료하는 과정을 포함합니다. UDP는 이러한 과정을 거치지 않기 때문에, 데이터 전송을 위해 적은 양의 오버헤드만 필요합니다.

2. 신뢰성

TCP는 데이터 전송에 있어서 신뢰성이 높은 프로토콜입니다. 이것은 데이터를 보내고 받는 과정에서 오류를 검출하고 복구하기 위해 다양한 기능을 제공합니다. UDP는 신뢰성이 낮은 프로토콜입니다. 데이터의 오류 검출 및 복구를 위한 기능이 없습니다.

TCP는 오류 검출을 위해 체크섬(Checksum)을 사용합니다. 데이터 패킷이 수신된 경우 체크섬 값을 비교하여 오류를 검출합니다. 또한, TCP는 재전송(Retransmission)과 흐름 제어(Flow Control) 기능을 제공합니다. 데이터 패킷이 오류로 인해 손실된 경우 재전송을 수행함으로써 데이터 신뢰성을 보장합니다. 또한, 흐름 제어 기능을 통해 송수신 측 간 데이터 전송 속도를 조절함으로써 네트워크 혼잡을 방지하고 데이터 전송의 안정성을 보장합니다.

UDP는 오류 검출을 위한 체크섬 기능만 제공합니다. 이는 오류 검출만을 위한 단순한 기능이며, 오류 발생 시 복구를 위한 기능이 없기 때문에 데이터 신뢰성이 낮습니다. 그러나 이러한 기능 부재로 인해 전송 속도가 매우 빠릅니다. 또한, UDP는 비연결성 프로토콜이기 때문에, 오버헤드가 적어 네트워크 대역폭을 적게 사용합니다.

3. 순서 보장

TCP는 데이터 패킷의 순서를 보장합니다. 데이터 패킷이 전송되는 순서대로 도착하도록 보장합니다. 이는 송신 측에서 전송한 순서대로 데이터 패킷을 수신 측에서 재조합하기 때문입니다. UDP는 데이터 패킷의 순서를 보장하지 않습니다. 따라서, 데이터 패킷이 수신되는 순서와 송신되는 순서가 다를 수 있습니다.

데이터 패킷의 순서 보장은 TCP가 신뢰성 있는 데이터 전송에 필요한 기능 중 하나입니다. 그러나 이러한 기능으로 인해 TCP는 UDP에 비해 전송 속도가 느립니다.

4. 전송 속도

UDP는 전송 속도가 빠릅니다. 이는 오류 검출 및 복구 기능을 포함하지 않기 때문입니다. UDP는 데이터 패킷을 전송하는 과정에서 데이터의 무결성을 검사하지 않습니다. 이러한 기능 부재로 인해 전송 속도가 매우 빠르고, 대역폭을 적게 사용합니다.

TCP는 전송 속도가 느립니다. 이는 데이터의 신뢰성 및 순서 보장을 위해 다양한 기능을 제공하기 때문입니다. 오류 검출 및 복구, 재전송, 흐름 제어 등의 기능이 전송 속도를 늦추게 됩니다.

5. 사용하는 프로그램

TCP는 웹 브라우저, 이메일 클라이언트, 파일 전송 등과 같은 대부분의 인터넷 애플리케이션에서 사용됩니다. TCP는 신뢰성 있는 데이터 전송이 중요한 애플리케이션에서 사용됩니다. 예를 들어, 파일 전송 과정에서 데이터의 무결성과 순서 보장이 필요합니다.

UDP는 게임, 영상 전송, 음성 통화 등과 같은 실시간 애플리케이션에서 사용됩니다. 이러한 애플리케이션에서는 데이터의 빠른 전송 속도가 중요합니다. 데이터의 신뢰성이나 순서 보장은 상대적으로 중요하지 않기 때문에, UDP가 적합합니다.

결론

결론적으로, TCP와 UDP는 각각의 특성에 따라 다양한 환경에서 사용됩니다. TCP는 데이터의 신뢰성과 순서 보장이 필요한 애플리케이션에서 사용되며, UDP는 빠른 전송 속도가 중요한 애플리케이션에서 사용됩니다. 이러한 차이점을 이해하고 적절한 프로토콜을 선택하여 사용함으로써 더욱 효율적인 네트워크 통신을 구축할 수 있습니다.