Проверяет понимание базовых сетевых терминов, необходимых для диагностики производительности и настройки сетевых приложений.
В сетевых технологиях важно различать задержку и пропускную способность. Latency — это время, необходимое для передачи одного бита от отправителя к получателю, обычно измеряется в миллисекундах. Throughput — это объем данных, передаваемых за единицу времени, например, мегабиты в секунду. Эти параметры часто путают, но они описывают разные аспекты сети.
MTU (Maximum Transmission Unit) определяет максимальный размер полезной нагрузки в одном пакете. Если пакет превышает MTU, он фрагментируется, что увеличивает накладные расходы и может снизить производительность. Keep-Alive — это механизм, который отправляет периодические сигналы для поддержания соединения, особенно полезен для TCP-соединений, чтобы предотвратить их закрытие из-за тайм-аута.
Эти термины критичны при настройке серверов, оптимизации сетевых приложений и диагностике проблем. Например, высокий latency может быть вызван географической удаленностью, а низкий throughput — узким каналом или ошибками в сети. MTU настраивается на сетевых интерфейсах, а Keep-Alive используется в HTTP-заголовках для уменьшения накладных расходов на установку новых соединений.
// Пример настройки Keep-Alive в Node.js
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Hello');
});
server.keepAliveTimeout = 5000; // 5 секунд
server.listen(3000);В HTTP/1.1 Keep-Alive включен по умолчанию, но в HTTP/2 он заменен мультиплексированием. Для TCP-соединений Keep-Alive настраивается через параметры ядра, например, в Linux: net.ipv4.tcp_keepalive_time.
Понимание этих терминов помогает проектировать эффективные сетевые системы, правильно настраивать серверы и быстро находить узкие места. Используйте их при анализе производительности и оптимизации сетевого стека.