QUIC 프로토콜의 새로운 구현체 noq, 멀티패스 및 NAT 트래버설 지원!
QUIC 프로토콜 구현체 noq 발표, iroh v0.96부터 사용 중
QUIC Multipath 및 NAT Traversal 기능 구현, 다양한 네트워크 환경 지원
Quinn 프로젝트에서 하드 포크(Hard Fork)하여 독자적인 개발 경로 선택
QLog 지원 강화, QUIC 연결 디버깅 및 멀티패스 시각화 기능 제공
QUIC Multipath 구현의 기술적 세부 사항
noq는 QUIC Multipath 스펙을 완벽하게 구현하여, iroh에서 릴레이(Relay) 경로, 직접 IPv4, IPv6 경로를 QUIC 계층에서 관리한다. 이는 기존 Quinn에서 QUIC 레이어 아래에서 여러 경로를 관리하던 방식과 대비된다. 경로별 혼잡 제어(Congestion Control)를 통해 지연 시간을 개선하고, 다양한 네트워크 환경에서 안정적인 연결을 유지할 수 있도록 설계되었다.
NAT Traversal 기술의 혁신
noq는 QUIC NAT Traversal 초안에 대한 자체적인 해석을 구현하여, 프로덕션 환경에서 안정적으로 작동하는 솔루션을 제공한다. NAT Traversal은 다양한 NAT 동작으로 인해 구현이 어려운 기술이지만, noq는 iroh에서 수십만 대의 장치에 적용하여 안정성을 검증했다. QUIC 레벨에서 NAT 홀 펀칭(Hole Punching)을 처리함으로써 혼잡 제어(Congestion Control)의 효율성을 높이고 손실 감지를 개선했다.
QLog를 활용한 디버깅 및 모니터링
noq는 QLog를 확장하여 QUIC 연결에 대한 더 많은 정보를 기록하고, 멀티패스 환경에서의 패킷 흐름을 시각화하는 기능을 제공한다. QLog(QUIC Log)는 QUIC 연결의 상세 정보를 기록하는 표준으로, 디버깅 및 성능 분석에 유용하다. noq는 QLog의 확장성을 활용하여 멀티패스 관련 이벤트(Multipath Events)를 추가하고, 여러 경로를 넘나드는 패킷 흐름을 시각적으로 확인할 수 있는 뷰어 프로토타입을 개발했다.
Quinn 프로젝트와의 관계 및 하드 포크 결정
noq는 Quinn 프로젝트에서 하드 포크(Hard Fork)되어 개발되었다. iroh에서 QUIC Multipath, NAT Traversal 등 특정 기능에 대한 요구사항이 증가하면서, Quinn 프로젝트의 개발 속도와 iroh의 요구사항 간의 불일치가 발생했다. 이에 noq 팀은 Quinn 프로젝트에 기여하면서도, 독자적인 코드베이스(Codebase)를 통해 더 깊이 있는 기술적 변화를 시도하기로 결정했다. 이는 QUIC Multipath와 같은 특정 문제 해결에 집중하기 위한 전략적 선택이었다.