TCP와 UDP는 인터넷을 통해 데이터를 전송하는 데 사용되는 네트워크 프로토콜입니다. UDP는 더 빠르고 효율적이지만 TCP는 더 안전하고 안정적입니다. OpenVPN은 2개의 프로토콜 모두에서 작동하지만 UDP를 먼저 시도하고 작동하지 않으면 TCP를 사용하는 것이 좋습니다.
TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)는 인터넷을 통해 정보를 전송하는 데 사용되는 2가지 유형의 통신 프로토콜입니다.
VPN 소프트웨어에서 OpenVPN 프로토콜은 UDP 또는 TCP를 사용하여 기기와 VPN 서버 간에 데이터를 전송해야 합니다.
TCP: 웹 브라우징(HTTP, HTTPS), 이메일(SMTP, IMAP/POP), 다운로드 및 업로드(FTP), SSH(Secure Shell)를 통한 원격 컴퓨터 액세스 등 신뢰성이 필요한 웹 활동에 적합합니다.
UDP: 온라인 게임, 동영상 스트리밍, VoIP(Voice over IP), IoT(사물 인터넷) 기기(예: 데이터를 산발적으로 집으로 보내는 센서) 같이 속도가 중요한 경우 적합합니다.
Top10VPN을 신뢰할 수 있는 이유
Top10VPN은 독립적으로 2016년부터 VPN을 리뷰해 왔습니다. 모든 평점은 자체 테스트 결과에 의해 결정되며 타 업체의 재정적 영향을 받지 않습니다. Top10VPN과VPN 테스트 방식에 대해 자세히 알아보십시오.
TCP는 무엇인가요?
TCP는 컴퓨터와 웹 서버와 같이 2개의 기기 사이에 연결을 생성합니다. 해당 연결을 통해 데이터가 전송됩니다. 마치 2개의 기기가 서로 대화하여 정보가 올바르게 수신되었는지 확인하는 전화 통화와 같습니다.
TCP를 사용하는 경우:
모든 패킷 수신이 보장됩니다. 수신자가 패킷을 수신했다는 것에 대해 확인 신호를 보내지 않으면 발신자는 패킷을 재전송합니다.
발송된 순서와 동일한 순서로 수신자에게 도착하도록 패킷 순서가 지정됩니다.
수신자가 패킷을 수신할 준비가 되어 있지 않으면 패킷이 전송되지 않습니다.
TCP는 “연결 지향적” 프로토콜이며 해당 연결을 설정하기 위해 3방향 핸드셰이크를 사용합니다. 핸드셰이크는 다음 패킷 교환을 통해 작동합니다.
SYN (동기화) 패킷: 클라이언트는 SYN 패킷을 서버에 보내 연결을 시작합니다. 이 패킷에는 클라이언트의 초기 시퀀스 번호가 포함되어 있습니다.
SYN-ACK (동기화-승인) 패킷: SYN 패킷을 수신하면 서버는 SYN-ACK 패킷으로 응답합니다. 이 패킷은 서버 자체의 초기 시퀀스 번호를 포함하며 클라이언트의 SYN을 승합니다.
ACK (승인) 패킷: 마지막으로 클라이언트는 서버의 SYN-ACK를 확인하는 ACK 패킷을 서버에 보냅니다. 이 시점에서 연결이 설정되고 클라이언트와 서버가 데이터 교환을 시작할 수 있습니다.
TCP 연결을 설정하는 VPN 예시입니다:
TCP 연결을 설정하는 3방향 핸드셰이크의 Wireshark.
3방향 핸드셰이크는 클라이언트와 서버 모두 통신할 준비가 되어 있는지 확인하고 전송되는 데이터를 추적하는 데 사용되는 시퀀스 번호를 동기화합니다.
이 과정은 초기 연결 설정 중에 발생할 수 있는 연결 문제, 데이터 손실, 기타 문제를 방지하는 데 도움이 됩니다.
핸드셰이크가 완료되면 클라이언트와 서버는 신뢰할 수 있는 양방향 데이터 교환에 참여할 수 있게 됩니다.
UDP는 무엇인가요?
TCP와 달리 UDP는 연결이 없는 프로토콜입니다. 데이터가 전송되지만 제대로 수신되었는지 확인하는 피드백 메커니즘이 없습니다. UDP는 마치 우편으로 무언가를 보낼 때 우편함에 넣고 잊는 것과 비슷합니다.
UDP를 사용하는 경우:
데이터 패킷은 전송 중에 손실될 수 있으며 발신자는 이에 대해 알 수 없습니다.
부하량을 초과한 상태에서 수신자에게 전송된 패킷은 삭제(손실)되며 복구할 수 없습니다.
UDP에는 손실되거나 손상된 데이터를 위한 복구 메커니즘이 내장되어 있지 않지만 UDP를 사용하는 애플리케이션에는 자체 복구 메커니즘이 있을 수 있습니다.
UDP는 TCP에 비해 신뢰성이 떨어지지만 연결을 설정하고 유지할 필요가 없기 때문에 UDP가 TCP보다 빠르게 작동합니다. 화상 회의, 온라인 게임 등 대기 시간에 매우 민감한 애플리케이션 사용 시에 이상적입니다.
이 경우, 간헐적으로 누락된 패킷으로 인한 결함이 발생할 수 있지만 TCP가 패킷을 재전송하는 동안 발생하는 지연보다 나을 수 있습니다.
Wireshark를 사용하여 포트 60970과 포트 12718 간의 UDP 트래픽 확인
또한 UDP는 TCP에 비해 헤더 크기가 작아서 오버헤드가 낮고 전송 속도가 빠릅니다.
도메인 이름 시스템(DNS)은 UDP와 TCP를 모두 사용할 수 있으며 실제로도 사용합니다. 쿼리 패킷이 증가함에 따라 TCP를 점점 더 많이 사용하고 있는 추세이지만, UDP는 여전히 최대한 빠른 속도를 보장하는 기본 프로토콜입니다.
TCP vs UDP: 주요 차이점
TCP와 UDP는 둘 다 호스트 간 인터넷 통신을 용이하게 하는 네트워크 프로토콜이지만 데이터를 전송하는 방식은 상당히 다릅니다.TCP와 UDP의 주요 차이점 5가지는 다음과 같습니다:
1. UDP는 TCP보다 빠릅니다.
Top10VPN은 OpenVPN 프로토콜 사용 시 UDP와 TCP의 속도를 비교하기 위해 2024년 최고의 VPN인 ExpressVPN과 NordVPN을 테스트했습니다.
각 VPN 및 OpenVPN 유형에 대해 미국 본사에서 미국, 영국, 호주의 서버에 연결하고 다운로드 속도를 측정한 결과는 다음과 같습니다.
테스트 결과에서 볼 수 있듯이 UDP가 일반적으로 TCP보다 빠르며 서버와의 거리가 멀어질수록 그 차이가 더 커집니다.
TCP는 오류가 확인된 스트림으로 순서대로 데이터 패킷을 전달하기 때문입니다. 올바르지 않거나 누락된 데이터는 전송을 보내는 컴퓨터에 다시 요청해기 때문에 지연이 발생합니다.
반면, UDP 패킷의 헤더는 더 작기 때문에 각 연결당 부하(payload)가 더 많이 허용되어 데이터 처리량이 증가합니다.
결과적으로, 스트리밍이나 게임처럼 속도에 민감한 앱을 사용하는 경우 UDP가 더 나은 경우가 많습니다.
ExpressVPN 사용 시, UDP의 경우 미국에서 영국에 연결할 때 속도가 24% 더 빨라졌고, 호주에 연결할 때는 37% 더 빨라졌습니다.
NordVPN 사용 시에 이 차이는 더욱 뚜렷하게 나타났습니다. TCP의 경우 영국에 연결했을 때 다운로드 속도가 81%, 호주에 연결했을 때 94% 저하되었습니다.
하지만 같은 국가 내의 NordVPN 서버에 연결할 때는 TCP가 UDP보다 약간 더 빠르다는 것을 발견했습니다.
2. TCP는 UDP보다 데이터 소비량이 많습니다.
TCP는 각 데이터 패킷의 헤더에 더 많은 정보를 포함하기 때문에 UDP보다 더 많은 데이터를 사용합니다.
인터넷을 통해 전송되는 모든 데이터 패킷에는 헤더가 있는데, 이는 봉투에 주소를 쓰는 것과 같습니다. 여기에는 데이터를 올바른 위치로 가져오는 데 필요한 정보와 프로토콜에 필요한 추가 정보가 포함되어 있습니다.
UDP와 TCP 모두 데이터의 소스 및 착신 포트, 데이터 패킷 길이, 헤더의 체크섬을 표시하지만 TCP에는 올바른 전달을 보장하기 위한 추가 필드도 포함되어 있습니다:
순서 번호
승인 번호
TCP 플래그 (예: 동기화, 승인)
윈도 (수신 버퍼 크기)
긴급 포인터
선택적 TCP 옵션
이 때문에 TCP는 UDP보다 더 안정적이기는 하지만 효율성은 떨어집니다. UDP 헤더는 8바이트에 불과한 반면 TCP 헤더는 20바이트를 초과할 수 있습니다.
전문가 팁: 체크섬은 데이터를 전송하기 전과 받은 후에 데이터에 대해 두 번 수행되는 계산입니다. 수신 측에서 결과가 다르게 나오는 경우 전송 중에 데이터가 손상되었음을 의미합니다.
또한, TCP의 경우 발신자와 수신자 간에 더 많은 통신이 이루어집니다. 이는 수신자가 TCP를 사용하여 패킷을 수신할 때 각 패킷마다 ACK(승인)를 보내고 손실된 패킷은 재전송되기 때문입니다. 그 결과, TCP는 UDP보다 더 많은 데이터를 사용하게됩니다.
VPN 데이터 사용량 분석 결과, OpenVPN TCP를 사용하면 VPN을 사용하지 않았을 때 보다 19.96%의 데이터가 더 소비되었고, OpenVPN UDP를 사용하면 17.23%가 더 소비되었습니다.
기가바이트 단위로 요금을 지불하는 모바일 데이터 요금제를 사용 중이거나 데이터 한도가 고정되어 있는 경우 TCP를 사용하면 데이터가 더 빨리 소진될 수 있습니다.
3. TCP는 UDP보다 조금 더 안전합니다.
UDP와 TCP는 보안을 목적으로 설계되지 않았습니다. 인터넷을 통해 데이터 패킷을 보낼 뿐입니다.
일반적으로 다른 상위 프로토콜이나 애플리케이션이 보안을 담당합니다.
그럼에도 불구하고, TCP에서는 패킷의 순서가 지정되고 승인되기 때문에 UDP에 비해 TCP의 경우 해커가 악성 데이터를 심기 더 어렵습니다.
TCP는 패킷이 올바른 순서로 수신되고 누락/손상된 데이터가 재전송되도록 하기 때문입니다.
그러나, 실제로 두 프로토콜 모두 VPN과 함께 사용 시 심각한 보안 문제가 발생하지 않습니다. TCP와 UDP 모두 사용자의 안전한 온라인 활동을 위해 강력한 암호화와 개인정보 보호 기능을 지원합니다.
4. TCP는 UDP보다 더 신뢰할 수 있습니다.
여러 이유로 TCP를 UDP보다 더 신뢰할 수 있습니다. 그 이유 중 하나는 더 철저한 오류 확인 및 연결 설정을 위한 3방향 핸드셰이크 사용입니다.
또한, UDP와 달리 TCP는 전송 플로우를 컨트롤하는 메커니즘을 사용하기 때문에 패킷 삭제 가능성이 훨씬 적다는 것입니다.
TCP는 데이터 전송을 관리하기 위해 “슬라이딩 윈도우” 메커니즘을 사용합니다.
수신자는 들어오는 패킷을 수락하는 데 필요한 버퍼 공간의 사용 가능성을 전달합니다.
그런 다음 TCP는 발신자가 이 윈도우 크기까지만 데이터를 전송하도록 제한하고, 데이터를 더 전송하기 전에 수신자가 더 많은 공간이 있다는 신호를 보낼 때까지 기다려야 합니다.
TCP 플로우 컨트롤이 실행되는 모습을 보여주는 Wireshark 스크린샷.
이 플로우 컨트롤 과정을 통해 TCP는 수신자의 수신 가능 용량에 맞게 전송 속도를 조정하여 수신량이 초과하는 것을 방지할 수 있습니다.
하지만 각 패킷을 보내기 전에 이 피드백을 기다려야 하기 때문에 TCP는 연결을 설정하지 않는 UDP 프로토콜보다 약간 느리고 효율성이 떨어집니다.
반면, UDP는 플로우를 컨트롤하지 않고 발신자에게 가장 적합한 속도로 데이터를 전송합니다.
이로 인해 강력한 서버가 데이터를 공격적으로 연달아 보내면 수신자의 용량을 초과하여 데이터가 전송될 가능성이 있습니다.
그런 경우, 수신자는 플로우 컨트롤 신호를 기다리지 않고 처리 불가한 초과 UDP 패킷을 삭제합니다.
5. UDP와 달리, TCP는 멀티캐스트를 지원하지 않습니다.
TCP는 연결 지향적입니다. 즉, 클라이언트와 서버 간에 일대일 연결을 설정합니다. 이로 인해 브라우저와 웹 서버 사이의 안정적인 지점 간 통신을 하는데 많은 장점이 있습니다.
그러나 이 구조에는 일대다 통신 모델이 필요하기 때문에 화상 회의나 온라인 게임에 사용되는 네트워크 통신 유형인 멀티캐스트와 호환되지 않습니다.
반면, UDP는 수신자에 대해 파악할 필요가 없기 때문에 멀티캐스트와 호환됩니다.
안전성이나 신뢰성보다 속도를 중요시하는 UDP는 수신 확인을 기다리지 않고 데이터를 전송하기 때문에 멀티캐스트에 이상적입니다. 수신 용량을 초과하는 패킷이 삭제되더라도 전체 플로우에는 영향을 주지 않고 실시간 스트림에 사소한 결함이 발생할 뿐입니다.
TCP vs UDP: 어느 것이 더 좋은가요?
OpenVPN에서 UDP나 TCP 중 선택할 수 있는 경우, UDP를 먼저 사용해보시기 바랍니다. UDP는 TCP보다 빠르고 UDP VPN 터널 내에서 웹 검색과 같은 활동에는 여전히 TCP를 사용할 수 있습니다.
UDP가 방화벽에 의해 차단되거나 연결이 불안정한 경우에만 OpenVPN TCP를 사용하는 것을 추천합니다.
결국, VPN을 사용하는 이유에 따라 어떤 통신 프로토콜이 더 좋은지 달라집니다. 이 섹션에서 스트리밍, 일반 브라우징, 검열 우회, 일반 VPN 사용 시 UDP와 TCP 중 무엇이 더 나은지 설명하도록 하겠습니다.
스트리밍 및 게임
더 나은 옵션: UDP
게임 및 동영상 스트리밍에는 일반적으로 UDP 연결을 사용합니다. 그 이유는 스트림을 복구하려고 시도하면서 지연이 발생하는 것보다 스트림의 작은 부분을 건너뛰는 것이 더 낫기 때문입니다.
따라서, VPN을 사용하여 동영상을 스트리밍하거나 비디오 게임을 하는 경우 UDP를 선택하는 것을 추천합니다.
TCP에 비해 UDP를 사용할 때 고해상도 스트리밍을 더 안정적으로 할 수 있었습니다.
OpenVPN TCP를 사용하는 경우 VPN이 손실된 데이터 패킷을 불필요하게 복구하려고 시도할 수 있습니다. 손실된 패킷이 다시 전송될 때까지 기다렸다가 화면이 다시 업데이트되면 게임이나 실시간 스트리밍이 이미 건너 뛰어져 있을 수 있습니다.
방화벽 및 검열 우회
더 나은 옵션: TCP
검열을 피하거나 방화벽을 우회해야 한다면 OpenVPN에서 TCP를 선택하시기 바랍니다.
포트 4433에서 TCP를 사용하면 VPN 트래픽이 HTTPS로 암호화된 웹 트래픽과 동일하게 보입니다. TCP 포트 443을 차단하면 모든 이커머스 웹사이트가 종료되기 때문에 이 트래픽은 일반적으로 방화벽을 통해 허용됩니다.
일부 VPN은 암호화되지 않은 웹 트래픽에 사용되는 TCP 포트 80도 지원하며 문제 없이 방화벽을 통과합니다.
테스트에서 웹 검열 우회에 TCP가 더 안정적으로 작동했습니다.
학생들은 OpenVPN에서 TCP를 사용할 때는 캠퍼스 방화벽을 뚫을 수 있었지만 UDP를 사용하면 차단되었다고 보고했습니다.
TCP는 VPN이 공식적으로 차단된 국가에서도 작동할 수 있지만 심층 패킷 검사를 통해 VPN 트래픽이 계속 식별될 수 있다는 점에 유의해야 합니다. 사용하는 국가에서 VPN 사용이 합법적이지 않거나 안전하지 않은 경우 TCP만으로는 사용자를 보호할 수 없습니다.
항상 OpenVPN의 UDP를 먼저 시도해보시기 바랍니다. 속도가 더 빠르고, 필요한 경우에는 애플리케이션이 내부 터널에 TCP를 계속 적용하여 안정성을 보장할 수 있습니다.
OpenVPN 프로토콜을 기반으로 VPN 소프트웨어를 만드는 회사인 OpenVPN Inc.는 다음과 같이 말했습니다:
“OpenVPN 프로토콜 자체는 UDP 프로토콜만 사용하는 것보다 더 잘 작동합니다. 기본 연결 시 항상 UDP를 먼저 시도해보고, 실패할 경우 TCP를 시도하도록 미리 프로그래밍되어 있습니다.”
즉, 네트워크 문제로 인해 VPN에서 UDP이 잘 작동하지 않는 경우 OpenVPN은 TCP로 대체하여 이를 해결한다는 것입니다. TCP는 신뢰할 수 없는 네트워크 연결을 해결하도록 설계되었습니다.
이메일 및 웹 브라우징
더 나은 옵션: UDP
이메일 전송, 웹 브라우징 등의 활동 시에는 OpenVPN UDP를 사용하는 것이 좋습니다.
추가적인 안정성이 필요한 애플리케이션을 위해서 TCP 기반 VPN 터널을 사용해야 한다는 것은 흔한 오해입니다. 그럴 필요가 없으며 좋은 선택이 아닐 수 있습니다. 필요한 경우 내부 연결에 여전히 TCP가 사용될 수 있기 때문에 VPN 터널은 다른 레이어를 추가할 필요가 없습니다.
TCP 연결 주위에 TCP VPN 터널을 래핑하면 “TCP 붕괴” 위험이 있습니다. 이는 TCP의 두 계층이 모두 손실된 패킷을 보상하려고 시도할 때 발생합니다. 내부 및 외부 TCP 계층에 패킷 손실 시기를 결정하는 데 사용되는 독립적인 타이머가 있기 때문에 발생합니다.
VPN은 UDP와 TCP를 어떻게 사용하나요?
OpenVPN은 대부분의 안전한 VPN 서비스들이 사용하는 오픈 소스 VPN 프로토콜입니다. 대부분의 경우 사용자가 OpenVPN UDP와 OpenVPN TCP 중에서 선택할 수 있습니다. 이 섹션에서는 어떤 것을 선택하느냐에 따라 VPN 기능에 어떤 영향을 미치는지에 대해 설명하도록 하겠습니다.
NordVPN의 UDP 및 TCP 기능은 프로토콜 메뉴에서 찾을 수 있습니다.
먼저, VPN 없이 웹페이지를 탐색하고 있다고 상상해보세요. 기기와 웹 서버 간의 연결에 UDP보다 안정적인 TCP를 사용하고 있다고 가정할 경우, 작동 방식은 다음과 같습니다.
VPN 없이 인터넷을 통해 TCP 트래픽이 라우팅되는 방법.
VPN을 사용하기 시작하면 기기와 VPN 서버 사이의 OpenVPN 터널에 새로운 통신이 래핑됩니다. 해당 터널은 기기와 VPN 서버를 연결하며 이때 UDP나 TCP가 사용됩니다.