Rust로 구현된 QUIC, Multipath 및 NAT Traversal 지원!
n0 팀은 QUIC 프로토콜의 자체 구현체인 noq를 발표, iroh 프로젝트에 적용
Multipath 및 NAT Traversal 기능을 통해 다양한 네트워크 환경 지원
Quinn 프로젝트에서 포크(Fork)한 배경과 협업 의지를 강조
QLog 지원 강화 및 WeakConnectionHandle 추가 등 개발 편의성 증대
QUIC Multipath 구현의 기술적 세부 사항
noq는 QUIC Multipath 스펙을 완벽하게 구현하여 다중 경로(Multipath)를 지원한다. 기존 iroh에서는 QUIC 레이어 아래에서 여러 경로를 관리했지만, noq에서는 QUIC 레이어에서 직접 경로를 인식하고 관리한다. 이는 경로별 혼잡 제어(Congestion Control)를 가능하게 하여 지연 시간을 개선하고, 다양한 네트워크 환경에서 안정적인 연결을 유지하도록 돕는다. 특히, 릴레이 경로(Relay Path)를 QUIC 경로로 처리하여 유연성을 높였다.
NAT Traversal 구현 및 특징
noq는 QUIC NAT Traversal 초안에 대한 자체적인 구현을 제공하며, 이는 프로덕션 환경에서 안정적으로 작동하도록 설계되었다. NAT Traversal은 다양한 NAT 환경에서 연결을 설정하는 데 어려움이 있지만, noq는 이를 QUIC 레벨에서 처리하여 혼잡 제어(Congestion Control)의 효율성을 높였다. 이는 손실 감지(Loss Detection)를 개선하고, 보다 안정적인 연결을 가능하게 한다. iroh는 이미 수십만 대의 장치에서 noq의 NAT Traversal 기능을 사용하고 있다.
QLog 및 WeakConnectionHandle을 통한 개발 편의성 증대
noq는 QUIC 연결에 대한 상세한 정보를 기록하는 QLog 지원을 강화하여 디버깅을 용이하게 한다. 또한, WeakConnectionHandle을 도입하여 연결 관리의 유연성을 높였다. WeakConnectionHandle은 연결을 유지하지 않으면서도, 필요에 따라 완전한 연결로 업그레이드할 수 있는 기능을 제공한다. 이는 iroh 내부에서 사용되었으며, 연결 관리자(Connection Manager)와 같은 다양한 사용 사례에 활용될 수 있다.
Quinn 프로젝트와의 협업 및 미래 전망
noq는 Quinn 프로젝트에서 포크되었지만, n0 팀은 Quinn 팀과의 협업을 지속할 의지를 밝혔다. 이는 서로의 관심사가 일치하는 부분에서 협력하여 QUIC 생태계 발전에 기여하려는 의도로 풀이된다. n0 팀은 noq를 장기적인 기반으로 보고 있으며, NAT Traversal 개선 및 Multipath를 활용한 성능 최적화 등 지속적인 개발을 계획하고 있다. QUIC 구현, P2P 전송, 다양한 네트워크 환경을 위한 애플리케이션 개발에 관심 있는 개발자들과의 소통을 기대하고 있다.