trying to fix udp telegram

This commit is contained in:
2026-03-26 19:55:56 +07:00
parent 3eb2df3a34
commit b9364e3e19
4 changed files with 43 additions and 20 deletions
+18 -11
View File
@@ -97,29 +97,36 @@ pub struct NetworkConfig {
impl NetworkConfig {
pub fn new(system_mtu: usize) -> Self {
let transport_overhead = 28;
// 1. Оверхед и MTU (Борьба с фрагментацией)
let transport_overhead = 28; // IPv4 (20) + UDP (8)
let max_wire_frame = system_mtu.saturating_sub(transport_overhead);
let safe_payload = max_wire_frame.saturating_sub(10).saturating_sub(255);
let muxer_capacity = 64;
let tcp_stream_capacity = 4; // Жесткий лимит для загрузок
let udp_stream_capacity = 8;
// ВАЖНО: Убираем вычитание 255! Оставляем 64 байта под заголовки твоего протокола и крипто-теги.
// Это даст safe_payload около ~1408 байт, что идеально ложится в стандартный интернет-пакет.
let safe_payload = max_wire_frame.saturating_sub(64);
// 2. Каналы Muxer (Баланс между скоростью и задержкой)
let muxer_capacity = 512; // Глобальная очередь (выдержит много вкладок)
let tcp_stream_capacity = 16; // Хватит для скорости, но не даст пингу взлететь
let udp_stream_capacity = 64; // Простор для голосового трафика и игр
Self {
mtu: system_mtu,
max_wire_frame_size: max_wire_frame,
safe_payload_size: safe_payload,
// Заменяем громоздкие вычисления на стандартные 64KB чанки для системных сокетов
tcp_buffer_size: 16 * 1024,
udp_buffer_size: 16 * 1024,
// 3. Системные буферы ОС (Широкие "входные ворота")
tcp_buffer_size: 256 * 1024, // 256 KB
udp_buffer_size: 512 * 1024, // 512 KB
muxer_capacity,
tcp_stream_capacity,
udp_stream_capacity,
smoltcp_socket_buf: 64 * 1024,
tcp_max_pending: 16 * 1024,
tcp_chunk_size: 8 * 1024,
// 4. Настройки виртуального стека smoltcp (Движок)
smoltcp_socket_buf: 256 * 1024, // 256 KB - КРИТИЧНО для скорости загрузки!
tcp_max_pending: 32 * 1024, // 32 KB - Очередь на запись
tcp_chunk_size: 16 * 1024, // 16 KB - Куски, которыми мы читаем данные
}
}