http3

5 개의 포스트

cloudflare

‘idle’이 유휴 상태가 아닐 때: 리눅스 커널 최적화가 QUIC 버그가 된 과정 (새 탭에서 열림)

CUBIC의 혼잡 윈도우(cwnd)가 심각한 손실 이후 최솟값에 고정되어 회복하지 못하는 QUIC 버그가 발견됐다. 손실이 2초 후 완전히 사라졌는데도 quiche의 CUBIC은 회복 상태와 혼잡 회피 상태를 RTT 주기로 반복하며 전송량을 늘리지 못했다. 원인은 Linux TCP CUBIC의 유휴 상태 최적화를 QUIC에 적용하는 과정에서 `bytes_in_flight == 0` 상황이 잘못 해석된 데서 비롯됐으며, 결국 매우 작은 수정으로 문제가 해결됐다. ## CUBIC과 혼잡 윈도우의 역할 - 혼잡 제어 알고리즘(CCA)은 송신자가 네트워크에 동시에 전송할 수 있는 데이터의 상한인 `cwnd`를 조절한다. - `cwnd`가 크면 한 번에 더 많은 데이터를 전송하고, 작으면 전송 속도가 제한된다. - 손실 기반 알고리즘인 CUBIC은 다음과 같은 전제를 따른다. - 패킷 손실이 없으면 네트워크 여유가 있다고 보고 전송률을 증가시킨다. - 패킷 손실이 발생하면 네트워크 용량을 초과했다고 판단해 전송률을 줄인다. - CUBIC은 Linux의 기본 TCP 혼잡 제어기이며, Cloudflare의 QUIC 구현인 quiche에서도 기본값으로 사용된다. ## 재현 조건과 이상 증상 - 문제는 초반에 심각한 패킷 손실이 발생한 뒤 회복하는 통합 테스트에서 발견됐다. - 테스트 조건: - localhost에서 실행되는 HTTP/3 클라이언트와 서버 - RTT 10ms - 10MB 파일 다운로드 - CUBIC 사용 - 연결 시작 후 2초 동안 무작위 30% 패킷 손실 - 이후 패킷 손실 제거 - 10초 타임아웃 - 정상이라면 손실 구간에서 `cwnd`가 감소한 뒤, 손실이 사라지면 다시 증가해 4~5초 안에 다운로드를 완료해야 한다. - 그러나 100회 반복 시 약 60~61%가 10초 안에 완료되지 못했다. ## 손실이 없는데도 회복하지 못한 CUBIC - 2초 이후 패킷 손실은 완전히 사라졌지만 `bytes_in_flight`와 `cwnd`는 계속 최솟값에 머물렀다. - CUBIC은 약 6.7초 동안 회복 상태와 혼잡 회피 상태를 999회 반복했다. - 상태 전환 주기는 약 14ms로, 연결의 RTT 10ms와 비슷했다. - `cwnd`는 2700바이트, 즉 최대 세그먼트 크기의 패킷 2개 수준에 고정됐다. - 다운로드 서버 입장에서는 클라이언트의 ACK가 도착할 때마다 전송 중인 바이트가 0이 되고, 다시 두 패킷을 보내는 과정이 반복됐다. - 이 ACK 기반의 전송 리듬이 CUBIC의 상태 전환을 매 RTT마다 잘못 촉발한 것으로 분석됐다. ## Reno 비교를 통한 CUBIC 특화 문제 확인 - 동일한 테스트를 Reno로 실행한 결과 100% 성공했다. - Reno는 손실이 끝난 뒤 정상적으로 `cwnd`를 증가시키고 다운로드를 완료했다. - 따라서 네트워크 시뮬레이션이나 QUIC 전반의 문제가 아니라 CUBIC 구현의 특정 로직에 문제가 있음을 확인했다. ## Linux TCP의 유휴 상태 최적화 - 문제의 출발점은 2017년 Linux 커널에 적용된 TCP CUBIC 최적화였다. - 기존 구현에서는 CUBIC의 시간 기준점인 `epoch`가 연결 시작 시점과 손실 발생 시점에만 갱신됐다. - 애플리케이션이 오랫동안 유휴 상태에 있다가 다시 전송하면 `현재 시각 - epoch_start` 값이 지나치게 커질 수 있었다. - 그 결과 CUBIC의 목표 전송률과 증가 기울기가 비정상적으로 커지고, `ca->cnt`가 지나치게 작아질 수 있었다. - Linux는 이를 완화하기 위해 `ca->cnt`에 최솟값 2를 적용했으며, 특히 `slow_start_after_idle`이 비활성화된 경우 유휴 후 위험한 cwnd 증가가 발생할 수 있었다. - 이 최적화는 TCP에서 애플리케이션이 전송을 제한한 구간을 혼잡으로 오인하지 않도록 하기 위한 것이었지만, QUIC 구현에 이식되는 과정에서 `bytes_in_flight == 0`인 상황이 예상과 다르게 작동했다. ## 문제의 본질 - CUBIC은 실제 패킷 손실이 없더라도 전송 중인 바이트가 0이 되는 순간을 유휴 또는 특수한 상태로 처리한다. - 하지만 이 테스트에서는 연결이 유휴한 것이 아니라, `cwnd`가 두 패킷으로 제한되어 ACK를 받은 뒤 잠시 `bytes_in_flight`가 0이 되는 상황이 반복됐다. - 결과적으로 CUBIC의 유휴 상태 처리와 회복 상태 전환이 ACK 클록과 결합되어 매 RTT마다 잘못된 상태 변화를 일으켰다. - 그 결과 혼잡 윈도우가 최소값에서 탈출하지 못하고, 손실이 사라진 뒤에도 전송 속도가 회복되지 않았다. ## 실용적인 시사점 - 혼잡 제어 테스트는 정상적인 성장 구간뿐 아니라, `cwnd`가 최솟값으로 떨어진 뒤 회복하는 시나리오도 반드시 포함해야 한다. - `bytes_in_flight == 0`은 실제 애플리케이션 유휴 상태와 ACK 직후의 일시적인 상태를 구분하지 않으면 오판의 원인이 될 수 있다. - TCP 최적화 코드를 QUIC에 이식할 때는 전송 모델과 ACK 처리 방식의 차이를 검증해야 한다. - 이 사례는 상태 전환 횟수와 RTT 상관관계를 관찰하는 qlog 기반 계측이 혼잡 제어 버그를 찾는 데 효과적임을 보여준다.

toss

양자 컴퓨터가 등장하기 10년 전 우리가 양자 내성 암호를 도입한 이유 (새 탭에서 열림)

토스페이먼츠는 20년 된 레거시 시스템을 개편하며 수만 가맹점의 결제 안정성을 유지하는 동시에, 미래의 보안 위협에 대비한 기술적 도약을 시도했습니다. 특히 기존 암호화 체계를 무력화할 수 있는 양자 컴퓨팅의 위협에 선제적으로 대응하기 위해, 4년에 걸친 단계적 로드맵을 통해 양자 내성 암호(PQC)를 성공적으로 도입했습니다. 이는 단순히 기술적 업그레이드를 넘어 가맹점과의 복잡한 이해관계를 조정하며 이뤄낸 보안 인프라 현대화의 결실입니다. **레거시 보안 개편의 현실적 난관** * **가맹점 호환성 문제**: 브라우저와 달리 서버 간 통신(API)은 노후화된 인프라에서 실행되는 경우가 많아, 최신 보안 프로토콜 적용 시 수만 가맹점의 결제가 중단될 위험이 큼. * **기술적 소통의 장벽**: 보안 업그레이드에 필요한 복잡한 기술 용어는 전담 개발팀이 없는 영세 가맹점주들에게 큰 부담이 되며, 이는 전체 보안 수준을 높이는 데 병목 현상을 일으킴. * **보수적 운영 원칙의 충돌**: "망가지지 않았다면 건드리지 않는다"는 안정성 최우선의 원칙이 보안 고도화라는 변화의 의지와 충돌하는 지점이 발생함. **양자 컴퓨팅과 기존 암호 체계의 위협** * **전통적 암호 알고리즘의 한계**: 현재 널리 쓰이는 RSA, ECDSA는 소인수분해나 타원곡선 연산의 어려움에 기반하지만, 양자 컴퓨터는 이를 수 시간 내에 풀어낼 수 있음. * **Q-Day와 선점 공격(HNDL)**: 양자 컴퓨터가 암호를 해독하게 되는 'Q-Day'에 대비해야 함. 특히 지금 암호화된 데이터를 미리 수집해 두었다가 나중에 양자 컴퓨터로 복호화하는 'Harvest Now, Decrypt Later' 공격은 현재의 데이터 안전을 실질적으로 위협함. * **결제 데이터의 가치 유지**: 결제 정보는 시간이 지나도 가치가 유효하므로, 미래의 해킹 위협으로부터 보호하기 위해 지금 당장 강력한 암호 체계 도입이 필요함. **4단계 보안 프로토콜 고도화 과정** * **HTTP/3 도입 (2022)**: PG 업계 최초로 최신 웹 프로토콜을 도입하여 결제 속도를 개선하고, 최신 보안 규격인 TLS 1.3 사용을 강제할 수 있는 기반을 마련함. * **취약한 암호 스위트 제거 및 TLS 1.3 확산 (2022~2025)**: 보안성이 낮은 구형 암호화 방식들을 단계적으로 퇴출하고, 가맹점들의 환경을 최신 전송 계층 보안 프로토콜로 전환하도록 유도함. * **양자 내성 암호(PQC) 구현 (2026)**: 양자 컴퓨터의 공격에도 견딜 수 있는 차세대 암호 알고리즘을 최종적으로 적용하여 미래 지향적인 보안 체계를 완성함. 보안은 "현재 문제가 없다"고 해서 안주할 수 있는 영역이 아닙니다. 특히 결제 시스템처럼 민감한 정보를 다루는 서비스는 가맹점의 기술적 부채를 고려하면서도, 미래의 잠재적 위협인 양자 컴퓨팅 공격 등에 대비해 끊임없이 인프라를 현대화하는 선제적인 자세가 필요합니다.

cloudflare

에이전트 위크: 네트워크 성능 업데이트 (새 탭에서 열림)

Cloudflare는 전 세계 상위 1,000개 네트워크 중 60%에서 가장 빠른 성능을 기록하며, 기존 40%였던 점유율을 단기간에 대폭 끌어올리는 성과를 거두었습니다. 이러한 성장은 물리적인 네트워크 거점 확장뿐만 아니라 HTTP/3 도입과 같은 소프트웨어 최적화 및 효율적인 연결 처리 방식을 통해 달성되었습니다. Cloudflare는 모든 네트워크에서 1위를 차지하는 것을 목표로 기술 혁신을 지속하여 전 세계 사용자들에게 최상의 웹 경험을 제공하고 있습니다. ### 네트워크 성능 측정 및 비교 방식 * **데이터 소스:** APNIC의 데이터를 기반으로 인구수가 가장 많은 전 세계 상위 1,000개 네트워크를 대상으로 성능을 측정합니다. * **핵심 지표:** 사용자의 장치가 엔드포인트와 TCP 핸드쉐이크를 완료하는 데 걸리는 'TCP 연결 시간'을 주요 지표로 활용합니다. 이는 사용자 체감 속도와 가장 직계되는 지표입니다. * **Trimean 계산법:** 이상치로 인한 데이터 왜곡을 방지하기 위해 25, 50, 75 백분위수의 가중 평균인 Trimean 방식을 사용하여 실제 일반적인 사용자 경험을 정확히 파악합니다. * **실제 사용자 측정(RUM):** Cloudflare 오류 페이지 등에 포함된 백그라운드 테스트를 통해 Amazon CloudFront, Google, Fastly, Akamai 등 경쟁사와의 속도를 실제 브라우저 환경에서 직접 비교합니다. ### 성능 향상을 이끈 기술적 전략 * **물리적 거점(PoP) 확장:** 알제리(콘스탄틴), 인도네시아(말랑), 폴란드(브로츠와프) 등 전 세계 곳곳에 신규 위치를 추가하여 물리적 거리를 단축했습니다. 특히 폴란드 브로츠와프의 경우 평균 RTT가 19ms에서 12ms로 약 40% 개선되었습니다. * **소프트웨어 최적화:** 하드웨어 확장 외에도 HTTP/3 프로토콜 활용과 혼잡 제어 윈도우(Congestion Window) 관리 방식의 개선을 통해 코드 레벨에서 밀리초 단위의 지연 시간을 줄였습니다. * **리소스 효율화:** 연결 처리, SSL/TLS 종단(Termination), 트래픽 관리 및 코어 프록시 소프트웨어의 CPU 및 메모리 사용량을 최적화하여 전체 글로벌 네트워크의 처리 효율을 극대화했습니다. ### 2025년 하반기 성과 및 결과 * **압도적인 순위 상승:** 2025년 9월 대비 12월 기준으로 Cloudflare가 가장 빠른 국가가 40개 추가되었으며, 총 261개의 추가 네트워크(ASN)에서 성능 1위를 차지했습니다. * **미국 시장 성과:** 미국 내에서는 54개의 추가 네트워크에서 1위를 달성하며 가장 큰 폭의 성장을 기록했습니다. * **경쟁사와의 격차:** 12월 평균 데이터를 기준으로 Cloudflare는 경쟁 업체들보다 평균 6ms 더 빠른 연결 시간을 기록하며 안정적인 성능 우위를 증명했습니다. 성능의 작은 차이는 실제 사용자가 웹사이트나 애플리케이션에 접속할 때 느끼는 만족도와 직결됩니다. 현재 60%의 네트워크에서 1위를 기록하고 있는 Cloudflare는 근소한 차이로 2위를 기록 중인 지역들까지 포함하여, 전 세계 모든 네트워크에서 가장 빠른 프로바이더가 되기 위해 기술 투자를 지속할 것으로 보입니다.

cloudflare

더 빠른 SASE 클라이언트 (새 탭에서 열림)

Cloudflare는 Zero Trust 보안 환경에서 발생하는 프록시 성능 저하 문제를 해결하기 위해 SASE 클라이언트의 프록시 모드 아키텍처를 완전히 재설계했습니다. 기존의 WireGuard 기반 Layer 3 터널링 대신 QUIC 프로토콜을 활용한 직접 Layer 4 프록싱 방식을 도입하여, 보안 수준을 유지하면서도 데이터 전송 속도를 2배로 높이고 지연 시간을 대폭 단축했습니다. 이번 업데이트를 통해 사용자들은 고해상도 영상 스트리밍이나 대용량 파일 전송 시에도 프록시 사용 전과 다름없는 쾌적한 인터넷 환경을 경험할 수 있게 되었습니다. ### 기존 아키텍처의 한계와 smoltcp의 병목 현상 * **Layer 4와 Layer 3의 충돌**: 초기 Cloudflare One 클라이언트는 호환성을 위해 SOCKS5/HTTP 프록시를 사용했으나, 기반 터널은 Layer 3(L3) 프로토콜인 WireGuard로 구축되어 L4 TCP 트래픽을 L3 패킷으로 변환해야 하는 기술적 난제가 있었습니다. * **사용자 공간 TCP 스택의 제약**: 커널 수준의 변환이 어려운 멀티 플랫폼 환경을 지원하기 위해 Rust 기반의 사용자 공간 TCP 구현체인 `smoltcp`를 사용했으나, 이는 임베디드 시스템에 최적화되어 있어 최신 TCP 기능을 지원하지 못했습니다. * **이중 변환 오버헤드**: 클라이언트에서 L4를 L3 패킷으로 쪼개고, Cloudflare 에지(Edge)에서 이를 다시 L4 스트림으로 복구하는 과정이 반복되면서 고속 광랜 환경에서도 성능 상한선이 발생하는 병목 현상이 나타났습니다. ### QUIC 및 MASQUE를 활용한 직접 L4 프록싱 * **아키텍처의 근본적 변화**: 프록시 모드에서 WireGuard 사용을 중단하고, QUIC의 확장 프로토콜인 MASQUE를 도입하여 트래픽을 Layer 4 수준에서 직접 처리하도록 변경했습니다. * **HTTP/3 CONNECT 메서드 활용**: RFC 9114 표준을 따르는 HTTP/3의 CONNECT 메서드를 사용하여 브라우저의 요청을 L3 패킷으로 분해하지 않고 QUIC 스트림에 직접 캡슐화합니다. * **기술적 이점**: `smoltcp` 레이어를 완전히 제거하여 패킷 처리 오버헤드를 없앴으며, QUIC 고유의 현대적인 혼잡 제어(Congestion Control) 및 흐름 제어 기능을 활용할 수 있게 되었습니다. * **최적화 가능성**: 클라이언트와 Cloudflare 에지 사이의 QUIC 파라미터를 세밀하게 조정하여 네트워크 환경에 최적화된 성능 구현이 가능해졌습니다. ### 새로운 프록시 모드의 주요 수혜 사례 * **타사 VPN과의 공존**: 특정 사내 자원 접속을 위해 레거시 VPN을 병행 사용해야 하는 환경에서, 성능 저하 없이 웹 트래픽에만 Zero Trust 보안을 계층적으로 적용할 수 있습니다. * **고대역폭 애플리케이션 분할**: 브라우저 트래픽만 Cloudflare Gateway로 라우팅하는 환경에서 고화질 콘텐츠 스트리밍이나 대규모 데이터셋 처리가 원활해집니다. * **개발자 및 파워 유저**: CLI 도구나 스크립트에서 SOCKS5 보조 리스너를 사용하는 개발자들이 원격 API 호출 및 데이터 전송 시 Cloudflare 글로벌 네트워크의 저지연 이점을 그대로 누릴 수 있습니다. ### 적용 방법 및 확인 사항 새로운 성능 개선 사항을 적용하려면 Cloudflare One 클라이언트 버전이 **2025.8.779.0 이상**(Windows, macOS, Linux)이어야 합니다. 관리자 대시보드의 장치 프로필 설정에서 서비스 모드를 'Local proxy mode'로, 터널 프로토콜을 'MASQUE'로 설정해야 합니다. 사용 중인 프로토콜은 터미널에서 `warp-cli settings | grep protocol` 명령어를 통해 직접 확인할 수 있습니다.

cloudflare

이란의 인터넷 차단에 대해 우리가 (새 탭에서 열림)

2025년 말 이란 내 경제적 불만과 정권 교체 요구로 촉발된 대규모 시위에 대응하여 이란 정부가 전국적인 인터넷 차단 조치를 단행했습니다. Cloudflare Radar 데이터 분석 결과, 2026년 1월 8일부터 이란의 인터넷 트래픽은 사실상 전무한 상태로 떨어졌으며 이는 과거 2019년과 2022년의 사례와 유사한 국가 차원의 의도적인 차단으로 확인됩니다. 현재 이란은 전 세계 인터넷으로부터 거의 완전히 고립된 상태이며, 이러한 기술적 단절은 시위 확산을 막기 위한 정부의 강력한 통제 수단으로 활용되고 있습니다. **1월 8일 발생한 급격한 연결 단절** - 1월 8일 11:50(UTC)경, 이란 네트워크에서 공고되는 IPv6 주소 공간이 98.5% 급감하며 글로벌 인터넷에서 해당 주소로 접근할 수 있는 경로가 사라졌습니다. - 이로 인해 인간이 생성하는 트래픽 중 IPv6가 차지하는 비중이 12%에서 2%로 떨어졌으며, 100분 뒤에는 사실상 0%에 수렴했습니다. - 같은 날 16:30~17:00(UTC) 사이, MCCI(AS197207), IranCell(AS44244), TCI(AS58224) 등 이란 주요 통신사들의 트래픽이 90% 이상 빠지기 시작해 18:45(UTC)에는 국가 전체 트래픽이 0에 도달했습니다. **일시적인 연결 복구와 제한된 접근** - 차단 다음 날인 1월 9일, 테헤란 대학교(AS29068)와 샤리프 공과대학교(AS12660) 등 일부 주요 교육 기관의 네트워크 연결이 몇 시간 동안 일시적으로 복구되었다가 다시 중단되었습니다. - Cloudflare의 공용 DNS resolver(1.1.1.1)에 대한 요청 트래픽이 잠시 급증하는 현상이 관찰되었으나, 곧 이전 최고치의 0.01% 미만 수준으로 다시 떨어졌습니다. **전면 차단에 앞선 기술적 검열 징후** - 전면적인 인터넷 셧다운이 발생하기 수일 전인 12월 31일부터 주요 네트워크에서 HTTP/3 및 QUIC 프로토콜의 사용 비중이 40%에서 5% 미만으로 급격히 감소했습니다. - 이는 정부가 전면 차단을 시행하기 전, 고도화된 레이어 기반의 필터링과 화이트리스트 시스템을 적용하여 특정 통신 방식을 먼저 차단했음을 시사합니다. **지속되는 셧다운 상황** - 1월 10일 이후 현재까지 이란의 인터넷 트래픽은 회복될 기미를 보이지 않고 있으며, 전 세계와 연결된 통로가 대부분 막혀 있는 상태입니다. 이란 내부의 실시간 연결 상태와 네트워크별 지표는 Cloudflare Radar의 트래픽 및 라우팅 페이지를 통해 지속적으로 모니터링할 수 있습니다.