유플로우
UFlow는 단순성과 견고성에 초점을 맞춘 실시간 인터넷 데이터 전송을 위한 Rust 라이브러리 및 UDP 네트워킹 프로토콜입니다. 처음부터 설계되었지만 UFlow의 인터페이스와 기능은 유서 깊은 ENet 라이브러리에서 영감을 받았습니다.
특징
- 두 호스트 간의 패킷 지향 데이터 전송
- 인터넷 MTU(1500바이트)에 따른 자동 패킷 조각화 및 재조립
- 적절한 연결 관리를 위한 3방향 연결 핸드셰이크
- 최대 64개의 독립적으로 시퀀스된 패킷 스트림
- 4가지 직관적인 패킷 전송 모드: 시간 민감성 , 신뢰할 수 없음 , 지속성 및 신뢰성
- RFC 5348에 따라 구현된 TCP 친화적인 스트리밍 혼잡 제어
- 최소한의 패킷 오버헤드로 효율적인 프레임 인코딩 및 전송 프로토콜
- 전송된 모든 프레임에 대한 CRC 검증(다항식: 0x132c00699)
- 이상적인 네트워크 조건에서 100% 패킷 처리량 및 영향을 받지 않는 배달 순서
- 최대 중복 완화를 위한 완벽한 시퀀스 ID 관리
- 애플리케이션에서 구성 가능한 수신기 메모리 제한(메모리 할당 공격 방지)
- 임시 검증된 데이터 승인(손실률/대역폭 스푸핑 방지)
- DDoS 증폭에 대한 복원력(요청-응답 비율 ≒ 28:1)
- 실속 없는 동작을 보장하기 위해 세심하게 설계되고 장치 테스트를 거쳤습니다.
- 스레드리스, 비차단 구현
선적 서류 비치
문서는 docs.rs에서 찾을 수 있습니다.
건축학
백서에는 이전 버전이 설명되어 있지만 그 동안 라이브러리에 대한 많은 변경 사항이 있었습니다(이름 포함!). 현재 버전에는 다음과 같은 개선 사항이 있습니다.
- RFC 5348에 따라 구현된 TCP 친화적인 혼잡 제어
- 수신기 메모리 제한(패킷 재조립용)
- 센티넬 패킷이나 프레임 없음
- 즉시 전송할 수 없는 경우 패킷을 삭제하는 추가 패킷 전송 모드(시간 민감형)
- 채널 수에 대한 반복 없음
새로운 디자인은 곧 업데이트된 백서에 요약될 예정입니다.