정의 + TCP와 UDP의 차이점

인터넷 연결을 통해 데이터가 어떻게 교환되는지 그 기반을 이루는 연결 프로토콜인 TCP와 UDP는, IP(인터넷 프로토콜) 위에 구축된 중요한 기술입니다. IP에 대한 기본적인 이해가 있다면 TCP와 UDP가 어떻게 작동하는지 파악하는 데 도움이 됩니다.

TCP와 UDP는 데이터 전송이라는 공통의 목표를 가지고 있지만, 실제로는 매우 다른 방식으로 작동하며, 이러한 차이점 때문에 각각 다른 용도로 사용됩니다.

우리가 매일 인터넷을 사용할 때, TCP와 UDP는 눈에 띄지 않게 동작합니다. 이 두 프로토콜은 장치들이 웹과 연결된 장치들 간에 데이터를 주고받는 데 있어 매우 중요한 역할을 합니다.

TCP와 UDP는 모두 IP를 기반으로 하므로, 이 프로토콜들을 자세히 알아보기 전에 IP에 대한 이해를 높이는 것이 좋습니다. 마치 달리기를 배우기 전에 걷는 법을 익히는 것과 같습니다.

IP 주소란 무엇일까요?

IP, 즉 인터넷 프로토콜은 우리가 알고 있는 인터넷의 근간을 이루는 핵심 기술입니다. 모든 장치가 인터넷에 접속하려면 고유한 IP 주소가 필요하다는 점을 통해 IP의 중요성을 쉽게 알 수 있습니다.

IP 주소는 숫자와 점으로 구성되어 있습니다. IPv4 주소의 경우, 0부터 254 사이의 값을 가지는 4개의 숫자로 이루어져 있으며, 총 43억 개의 고유한 주소를 제공합니다. 하지만 인터넷의 급속한 성장으로 IPv4 주소는 곧 한계에 도달했습니다.

이러한 문제를 해결하기 위해 등장한 것이 IPv6 시스템입니다. IPv6 주소는 16진수를 사용하며, 각 주소는 128비트로 구성됩니다. IPv6는 340언데실리온(3.4 * 10^28)개에 달하는 거의 무한대에 가까운 고유 주소 범위를 제공합니다.

IPv4와 IPv6 주소의 예시는 다음과 같습니다.

IPv4 주소 예시: 10.238.126.215
IPv6 주소 예시: fe80:0db8:0412:2001:3c5e:0000:10a9

IPv6가 궁극적으로 IPv4를 대체하는 것이 목표이지만, 현재는 두 프로토콜이 함께 사용되고 있습니다.

IP 주소를 통해 인터넷 지원 장치를 찾고, 서로 통신하며, 정보를 교환할 수 있습니다. 데이터 공유, 비디오 스트리밍, 이메일 전송 등 우리가 온라인에서 하는 모든 작업은 IP 주소 없이는 불가능합니다. 이러한 모든 작업은 데이터로 변환됩니다.

IP는 데이터를 효과적으로 관리하기 위해 작은 덩어리, 즉 패킷으로 분할합니다. 각 패킷에는 전송해야 할 정보뿐만 아니라 목적지 장치의 IP 주소(헤더)도 포함되어 있습니다.

패킷은 장치에서 출발하여 게이트웨이로 향하고, 게이트웨이는 패킷의 목적지 IP 주소를 확인합니다. 게이트웨이는 특정 IP 주소 범위만 인식할 수 있습니다. 만약 게이트웨이가 자신의 도메인에서 목적지 주소를 찾지 못하면, 패킷은 다른 게이트웨이로 전달됩니다. 이 과정은 패킷이 최종 목적지 IP 주소를 찾을 때까지 반복됩니다.

데이터가 작은 패킷으로 분할된다는 것은 패킷이 반드시 순서대로 도착하거나 동일한 경로를 사용하지 않을 수 있다는 것을 의미합니다. 패킷은 일반적으로 매번 가장 빠른 경로를 찾습니다.

IP는 데이터 형식에 구애받지 않으므로 비디오, 이미지, 오디오, 이메일, 인스턴트 메시지, 게임 등 모든 유형의 데이터 전송에 이상적입니다.

TCP란 무엇일까요?

TCP(전송 제어 프로토콜)는 인터넷 프로토콜 제품군에서 중요한 역할을 하는 프로토콜입니다. TCP는 UDP보다 먼저 개발되었으며, 네트워크를 통해 프로그램과 장치가 정보를 교환할 수 있도록 지원합니다.

TCP는 종종 IP와 함께 사용되어 TCP/IP라고 불리지만, 이 둘은 같은 의미로 사용됩니다.

앞서 설명했듯이 데이터는 작은 패킷으로 분할되어 여러 경로를 통해 다른 장치로 전송됩니다. TCP는 이러한 패킷을 원래 형태로 다시 조립하기 위해 개발되었습니다.

TCP는 모든 패킷이 도착할 때까지 기다린 다음, 개수를 세고 체크섬을 사용하여 오류를 확인합니다. 패킷이 정상적으로 도착했는지 확인한 후, 누락된 패킷이 있다면 원래 컴퓨터에 재전송을 요청합니다. 모든 패킷이 수신되면 TCP는 이를 원래 데이터로 재조립하여 해당 애플리케이션(예: 이메일 클라이언트, 사진 뷰어, 비디오 플레이어)에 전달합니다.

이 모든 과정은 매우 빠르게 진행되며, 데이터가 전송된 것과 동일한 형태로 수신자의 컴퓨터에 도착하도록 합니다. TCP는 데이터가 완전히 도착하고 확인될 때까지 송신자와 수신자 간에 지속적으로 통신합니다. 이러한 지속적인 통신은 TCP에 상당한 부담을 줄 수 있습니다. 패킷 손실이나 손상이 발생하면 프로세스가 중단될 수 있기 때문입니다. 따라서 UDP 프로토콜이 등장하게 되었습니다.

TCP 요약:

  • 패킷이 누락되지 않았는지 확인
  • 누락된 패킷이 감지되면 재전송 요청
  • 패킷을 순서대로 전송하여 재조립 용이
  • 인터넷에서 가장 널리 사용되는 프로토콜
  • 모든 패킷의 도착을 확인해야 하므로 UDP보다 느림
  • 웹사이트, 이메일, FTP(파일 전송 프로토콜), P2P 파일 공유에 적합

UDP란 무엇일까요?

UDP(사용자 데이터그램 프로토콜)는 TCP의 대안으로 개발되어 기본적인 기능은 비슷하지만, 중요한 차이점이 있습니다. TCP가 패킷 데이터 검사에 매우 세심한 반면, UDP는 약간 더 허술한 방식을 취합니다.

두 명의 직원이 우편물 분류소에서 편지를 처리한다고 가정해 봅시다. TCP는 각 편지를 꼼꼼히 검사하고 모든 편지가 도착할 때까지 통신을 보류하는 반면, UDP는 편지의 무결성을 확인하지 않고 목적지로 전달합니다. 만약 편지가 누락되어도 재전송을 요구하지 않습니다.

따라서 UDP는 데이터 손실의 위험을 감수하는 대신 속도를 높이는 방식으로 작동합니다. 그렇다면 왜 데이터 손실을 감수해야 할까요? 기본적으로 일부 애플리케이션에서는 패킷 손실이 큰 문제가 되지 않기 때문입니다.

예를 들어, VoIP 클라이언트를 사용하는 경우 간헐적으로 프레임이 손실되거나 오디오가 약간 끊길 수 있습니다. 이러한 현상은 대부분 무시할 수 있으며 큰 문제가 되지 않습니다. 게임도 마찬가지입니다. 게임이 끊기거나 고무줄이 발생하는 경우가 있지만, 게임을 재개하면 됩니다. UDP는 전송 중 손실된 패킷을 삭제하기 때문에 게임을 재개하면 됩니다.

UDP 요약:

  • TCP보다 빠르고 적은 리소스를 사용
  • 패킷을 반드시 순서대로 보낼 필요 없음
  • 누락된 패킷을 삭제하여 연결 속도 향상
  • 발신자는 패킷이 삭제되었는지 확인할 방법 없음
  • 비디오 스트리밍, VoIP, 게임, 라이브 방송에 주로 사용

VPN 사용 시 TCP와 UDP

최근에는 WireGuard 프로토콜을 채택하거나 자체 프로토콜을 개발하는 VPN이 늘어나고 있지만, 여전히 많은 VPN 서비스가 OpenVPN 프로토콜을 사용하고 있습니다. OpenVPN은 여전히 안정적이고 빠르고 안전하기 때문입니다.

OpenVPN은 TCP와 UDP 모두에서 작동하며, 사용자가 두 프로토콜 중 하나를 선택할 수 있습니다. (데이터 무결성 대 속도) 이는 중요한 결정처럼 보일 수 있지만, 실제 문제는 다른 곳에 있습니다.

VPN을 사용하는 동안에는 TCP와 UDP 간 속도 차이를 크게 느끼지 못할 수도 있습니다. 하지만 연결이 방화벽을 우회해야 하는 경우에는 상황이 달라집니다. 이는 두 프로토콜이 서로 다른 포트에서 작동하며, 일부 방화벽은 특정 유형의 트래픽에 대한 기본 포트를 차단할 수 있기 때문입니다.

따라서 VPN 제공업체는 TCP와 UDP 중 하나를 선택할 수 있게 해 줍니다. 만약 한 프로토콜에서 연결이 되지 않는다면, 다른 프로토콜로 전환하여 문제를 해결할 수 있습니다. 또한 일부 VPN 서비스는 방화벽을 우회하기 위해 사용자 정의 포트를 선택할 수 있는 고급 설정을 제공하기도 합니다.

TCP와 UDP의 차이점

TCP UDP
인터넷에서 가장 널리 사용되는 프로토콜 게임, 비디오 스트리밍, VoIP, 라이브 방송에 사용
전송된 모든 데이터는 수신자에게 전달, 패킷 손실 보장 발신자는 패킷이 누락되었는지 알 수 없음
패킷은 순서대로 전송 패킷은 반드시 순서대로 전송되지 않음
더 많은 리소스가 필요하여 속도가 느림 더 적은 리소스로 더 빠른 속도

결론: TCP 대 UDP

결론적으로 TCP와 UDP는 데이터를 안전하게 목적지에 전송하는 데 사용되는 매우 유사한 프로토콜입니다.

TCP는 데이터 전송 중 다양한 검사를 수행하며, 패킷 손실을 방지하는 데 더 적극적입니다. 따라서 웹사이트, 이메일, 인스턴트 메시지, 사진, 파일 공유 등에 적합합니다.

UDP는 목적지를 확인하고 패킷의 무결성을 검사하지만, 손실된 패킷을 재전송하지 않고 삭제합니다. 이는 더 빠른 연결을 제공하지만, 데이터 손실 위험이 있습니다. UDP는 주로 게임, VoIP, 스트리밍 비디오, 라이브 콘텐츠 방송 등 패킷 손실이 최종 결과에 큰 영향을 미치지 않는 분야에 사용됩니다.