Cloudflare가 잡아낸 QUIC CUBIC 버그, ‘idle’ 한 줄 오판이 다운로드를 죽였다
Cloudflare의 QUIC 구현체 quiche에서 CUBIC 혼잡 제어가 최소 윈도우에 갇혀 회복하지 못하는 버그가 발견됐다. Linux 커널의 idle 최적화를 QUIC에 옮기는 과정에서 TCP와 QUIC의 이벤트 타이밍 차이를 놓쳤고, 결국 ACK 시점을 기준으로 idle 시간을 재도록 고쳐 100% 테스트 통과를 회복했다.
- 1
초기 2초 동안 30% 패킷 손실을 넣은 HTTP/3 다운로드 테스트가 약 60% 확률로 10초 타임아웃에 걸림
- 2
손실이 끝난 뒤에도 CUBIC의 cwnd가 2패킷, 2700바이트 바닥에 고정됨
- 3
원인은 bytes_in_flight == 0을 진짜 idle로 오해하면서 recovery start time을 RTT만큼 계속 미래로 밀어버린 것
- 4
수정은 마지막 송신 시각이 아니라 마지막 ACK 시각까지 고려해 실제 idle 구간을 재는 방식으로 이뤄짐
이 글은 ‘최적화 코드 하나’가 프로토콜 구현체를 옮겨 탈 때 얼마나 다른 의미가 되는지 보여주는 좋은 사례임. TCP 커널 콜백 기준으로 맞던 가정이 user space QUIC에서는 death spiral이 됐다는 점이 포인트.
관련 기사
삼성전자가 반도체 개발 조직에 오라클 자바를 공식 채택한 이유
삼성전자 DS 부문이 글로벌 반도체 개발 환경에 오라클 자바 SE 유니버설 서브스크립션을 공식 채택했다. 서로 다른 자바 배포판과 버전이 섞이면서 생길 수 있는 보안, 컴플라이언스, 라이선스 리스크를 줄이고 개발 환경을 표준화하려는 결정이다.
네이버클라우드, 트래픽 따라 알아서 줄고 느는 서버리스 데이터베이스 출시
네이버클라우드가 사용량에 따라 CPU, 메모리, 스토리지를 자동 조절하는 완전관리형 서버리스 데이터베이스 서비스를 내놨다. 기존 가상머신 기반 관리형 데이터베이스처럼 피크 트래픽에 맞춰 서버를 과하게 잡아두는 방식에서 벗어나, 사용량 기반 과금과 오토스케일링으로 비용 낭비를 줄이겠다는 방향이다.
네이버클라우드, 사용량 따라 늘고 줄어드는 서버리스 데이터베이스 출시
네이버클라우드가 완전관리형 서버리스 데이터베이스 서비스인 Cloud DB Serverless를 출시했다. VM 기반 관리형 데이터베이스의 고정 비용과 과잉 프로비저닝 문제를 줄이고, 트래픽에 따라 CPU·메모리·스토리지를 자동 조절하는 구조를 내세운다.
네이버클라우드, 사용량 따라 자동 확장되는 서버리스 데이터베이스 출시
네이버클라우드가 사용량에 따라 컴퓨팅 자원을 자동 조절하는 서버리스 기반 클라우드 데이터베이스를 출시했음. 기존 가상머신 기반 관리형 데이터베이스의 고정 비용과 운영 부담을 줄이고, 국내 데이터 규제 요구까지 맞추겠다는 전략임.
Referer 헤더는 이미 믿기 힘들어졌고, 그래서 UTM을 붙인다는 얘기
글쓴이는 다른 사이트로 보내는 링크에 `utm_source=Robin_Sloan_sent_me` 같은 쿼리 문자열을 붙이는 이유를 설명함. 예전처럼 Referer 헤더만 보면 유입 출처를 알 수 있다고 보기 어렵고, 특히 뉴스레터나 프라이버시 보호 환경에서는 많은 트래픽이 Direct 또는 Unknown으로 뭉개지기 때문임.
댓글
댓글
댓글을 불러오는 중...