TurboRetry: Mitigating Large-Scale QUIC Handshake Floods with Off-the-Shelf DPU Offloading
이 논문은 리트라이(Retry) 메커니즘을 호스트와 DPU 간에 분할함으로써 대규모 QUIC 핸드셰이크 플러드(handshake flood)를 완화하고, 기존의 호스트 측 구현 대비 10~20배의 처리량 향상을 달성하는 DPU 오프로드 솔루션인 TurboRetry를 제시한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
인터넷을 수십억 명의 사람들이 대화를 나누거나, 쇼핑을 하거나, 영상을 보기 위해 끊임없이 서로 다른 건물로 들어가려고 시도하는 거대하고 북적이는 도시라고 상상해 보세요. 건물 안으로 들어가려면 문을 두드리고 자신이 그곳에 속해 있다는 것을 증명해야 합니다. 컴퓨터 네트워크의 세계에서 이 "노크"를 **핸드셰이크(handshake)**라고 부릅니다. 이것은 당신의 장치와 서버가 인사를 나누고, 대화를 잠글 비밀 키를 교환하며, 어떻게 대화할지 합의하는 빠르고 예의 바른 교환 과정입니다. 현대적인 버전의 핸드셰이크인 QUIC는 매우 빠르고 안전하게 설계되어, 당신이 거의 즉시 대화를 시작할 수 있게 해줍니다.
하지만 실제 도시와 마찬가지로, 이 디지털 메트로폴리스스에도 문제가 있습니다: 바로 **악한 행위자들(bad actors)**입니다. 수천 명의 사람들이 마치 서로 다른 고객인 것처럼 가장하여 동시에 정문으로 돌진하는 상황을 상상해 보세요. 그들은 물건을 사러 온 것이 아닙니다. 그저 계속해서 "똑, 똑, 똑" 하고 문을 두드리기 위해 온 것입니다. 이것이 바로 DDoS 공격(분산 서비스 거부 공격)입니다. 서버는 각 노크를 검증하고 비밀 키를 확인하기 위해 많은 수학 연산을 수행해야 하므로, 이러한 가짜 요청의 홍수는 서버의 두뇌(CPU)를 고갈시켜 실제 고객들을 들여보내지 못하게 만들 수 있습니다. 서버의 내장 보안 요원인 **리트라이 메커니즘(Retry mechanism)**은 요청자가 진짜인지 확인하기 전에 먼저 증명을 요구함으로써 이를 막으려 노력합니다. 하지만 몰려드는 무리가 거대해지면 이 보안 요원조차도 압도당하고 맙니다.
여기서 **터보리트라이(TurboRetry)**의 이야기가 시작됩니다. 이 논문의 연구자들은 간단한 질문을 던졌습니다. "만약 서버의 메인 두뇌가 모든 힘든 일을 다 하지 않는다면 어떨까? 보안 요사에게 초강력 로봇 조수를 붙여준다면 어떨까?" 그들은 DPU(데이터 처리 장치)라는 특수 하드웨어로 이 검사 작업을 옮기는 TurboRetry라는 시스템을 구축했습니다. DPU를 지치지 않고 초당 수백만 번의 검사를 처리할 수 있는, 네트워크 케이블에 내장된 작고 전용인 로봇 두뇌라고 생각하면 됩니다. 논문은 이 로봇이 신분증을 확인하는 지루하고 반복적인 업무를 맡음으로써, 메인 서버가 신선한 상태를 유지하여 거대한 무리가 침입하려고 할 때도 실제 사람들을 들여보낼 수 있음을 보여줍니다.
문제점: 지쳐버린 문지기
디지털 세상에서 QUIC를 사용하여 웹사이트에 접속할 때, 서버는 당신이 주장하는 사람이 맞는지 확인하기 위해 매우 비용이 많이 드는 수학 연산을 수행해야 합니다. 만약 해커가 한꺼번에 수백만 개의 가짜 연결 요청을 보낸다면, 서버는 각각의 요청에 대해 수학 연산을 수행하려고 시도합니다. 이는 클럽의 문지기가 한 번에 백만 명의 신분증을 확인하려는 것과 같습니다. 결국 문지기는 탈진하게 되고, 실제 손님들은 들어올 수 없게 됩니다.
QUIC 프로토콜은 이미 **리트라이(Retry)**라는 방어책을 가지고 있습니다. 서버는 무거운 수학 연산을 즉시 수행하는 대신, "잠깐만요, 여기 특별한 티켓(토큰)이 있습니다. 이 티켓을 가져가서 다시 가져오면, 그때 들여보내 드리겠습니다"라고 말합니다. 이는 서버가 돌아오지 않을 사람들에게 에너지를 낭비하는 것을 방지합니다. 그러나 연구자들은 이 티켓 시스템이 있더라도 서버가 이 티켓을 생성하고 확인하는 데 여전히 많은 일을 해야 한다는 것을 발견했습니다. 공격이 거대해지면, 서버의 메인 프로세서(CPU)는 티켓을 확인하는 것만으로도 과부하가 걸려 전체 시스템이 느려지게 됩니다.
해결책: TurboRetry와 로봇 조수
TurboRetry의 팀은 이 티켓을 확인하는 작업이 사실 매우 반복적이며 서버의 메인 두뇌가 직접 할 필요가 없다는 점을 깨달았습니다. 그들은 이 작업을 DPU(데이터 처리 장치)로 오프로드(offload)하기로 결정했습니다. DPU는 메인 서버를 방해하지 않고 네트워크 트래픽을 처리하도록 특별히 설계된, 내부에 작은 컴퓨터를 가진 스마트 네트워크 카드와 같습니다.
TurboRetry는 업무를 두 부분으로 나눕니다:
- 로봇 (DPU): DPU는 "상태가 없는(stateless)" 작업들을 맡습니다. 즉, DPU는 티켓을 확인하고, 새로운 티켓을 생성하며, 티켓이 변조되지 않았는지 확인합니다. DPU는 이를 믿을 수 없을 정도로 빠르게 수행하기 위해 내장된 특수 하드웨어를 사용합니다. 만약 티켓이 가짜이거나 요청이 공격의 일부라면, 로봇은 이를 단순히 차단(drop)합니다. 나쁜 트래픽은 메인 서버에 도달조차 하지 못합니다.
- 매니저 (호스트 CPU): 메인 서버는 로봇이 "이것은 진짜 같다!"라고 말할 때만 개입합니다. 그러면 서버는 실제 연결을 설정하고 대화를 관리하는 최종적이고 복잡한 작업을 수행합니다.
로봇과 매니저가 서로 같은 내용을 공유할 수 있도록, 그들은 **유니버설 티켓 포맷(universal ticket format)**을 발명했습니다. 이것은 로봇과 매니저가 서로 다른 곳에 있더라도 모두 읽고 이해할 수 있는 특별한 신분증 카드와 같습니다. 이를 통해 무거운 작업이 로봇에 의해 수행되는 동안에도 연결 설정이 안전하게 유지되고 모든 규칙을 준수하도록 보장합니다.
결과: 초고속과 제로 지연
연구진은 BlueField-3 DPU를 사용하는 실제 하드웨어 환경에서 TurboRetry를 테스트했습니다. 결과는 인상적이었습니다.
- 무리를 처리하는 능력: 소프트웨어만으로 실행되는 표준 서버는 초당 약 209,000개의 가짜 요청을 처리한 후부터 과부하가 걸리기 시작한 반면, TurboRetry는 단 하나의 실제 요청도 놓치지 않고 초당 최대 300만 개의 패킷을 처리할 수 있었습니다. 이는 처리량(throughput) 면에서 10배에서 20배 향상된 수치입니다.
- 속도: 가장 좋은 점은 이것이 연결을 느리게 만들지 않았다는 것입니다. 실제 사용자들에게 연결 설정 지연 시간(latency)은 약 0.2밀리초 정도만 증가했는데, 이는 인간이 전혀 눈치챌 수 없는 눈 깜빡임보다 짧은 시간입니다.
- 안전망: 이 시스템은 또한 "페일 오픈(fail-open)" 방식으로 설계되었습니다. 만약 로봇 조수(DPU)가 다운되거나 고장 나더라도, 시스템은 자동으로 메인 서버의 보안 요기로 전환됩니다. 서비스가 중단되는 것이 아니라, 조금 느려질 뿐이지만 계속 작동합니다. 이는 하드웨어가 실패하더라도 인터넷이 암흑에 빠지지 않도록 보장합니다.
이것이 중요한 이유
이 논문은 지루하고 반복적인 보안 검사를 전용 로봇 조수에게 옮김으로써, 거대한 가짜 트래픽의 홍수로부터 우리의 디지털 도시를 보호할 수 있음을 입증합니다. 우리는 보안과 속도 사이에서 하나를 선택할 필요가 없다는 것을 보여줍니다. TurboRetry를 통해 서버는 거대한 공격에 맞서 굳건히 서 있으면서도 실제 사용자들을 즉시 들여보낼 수 있습니다. 이는 새로운 하드웨어를 사용하여 오래된 문제를 해결하는 영리한 방법이며, 나쁜 사람들이 밀고 들어오려 할 때도 인터넷이 모두를 위해 열려 있고 빠르게 유지되도록 보장합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.