Нормы потерь пакетов для меди и оптики

Отличный вопрос! Давайте разберем нормы потерь пакетов для различных типов связи.

Нормы потерь пакетов (Packet Loss Rate — PLR):


1. Общепринятые стандарты:

По IEEE и отраслевым нормам:

Качество связиPacket Loss Rate (PLR)Применение
Отлично< 0.001% (< 1 × 10⁻⁵)Критичные приложения
Хорошо0.001% — 0.01%Нормальная работа
Приемлемо0.01% — 0.1%Допустимо для некритичных систем
Плохо0.1% — 1%Требуется диагностика
Критично> 1%Неприемлемо

2. Для Copper (Медь):

Стандарты Ethernet по меди:

2.1. 10BASE-T / 100BASE-TX / 1000BASE-T:

По стандартам IEEE 802.3:

ПараметрНормаКритическое значение
BER (Bit Error Rate)< 10⁻¹⁰> 10⁻⁸
Packet Loss Rate< 0.01%> 0.1%
Frame Check Sequence (FCS) Errors< 1 на 10⁶ кадров> 10 на 10⁶ кадров
Symbol Errors< 1 на 10⁹ символов> 1 на 10⁷ символов

2.2. Практические нормы для медного Ethernet:

Отлично:  < 0.001% потерь  (< 1 пакет на 100,000)
Хорошо:   0.001% - 0.01%   (1-10 пакетов на 100,000)
Допустимо: 0.01% - 0.1%    (10-100 пакетов на 100,000)
Плохо:     0.1% - 1%       (100-1000 пакетов на 100,000)
Критично:  > 1%            (> 1000 пакетов на 100,000)

2.3. Факторы влияющие на качество медной линии:

  • Длина кабеля:
    • 10/100BASE-TX: максимум 100 метров
    • 1000BASE-T: максимум 100 метров
    • При превышении — рост ошибок
  • Качество кабеля:
    • Cat5e минимум для 1000BASE-T
    • Cat6/6a рекомендуется
    • Экранирование (STP vs UTP)
  • EMI/RFI помехи:
    • Близость силовых кабелей
    • Электромагнитные наводки
    • Рекомендуется < -40 dB шумов
  • Импеданс:
    • Должен быть 100 Ом ± 15%
    • Несоответствие = отражения

3. Для Fiber (Оптика):

Стандарты оптического Ethernet:

3.1. 100BASE-FX / 1000BASE-SX / 1000BASE-LX:

По стандартам IEEE 802.3:

ПараметрНормаКритическое значение
BER (Bit Error Rate)< 10⁻¹²> 10⁻⁹
Packet Loss Rate< 0.0001%> 0.01%
Optical PowerВ пределах спецификацииЗа пределами спецификации
Signal-to-Noise Ratio (SNR)> 15 dB< 10 dB

3.2. Практические нормы для оптического Ethernet:

Отлично:   < 0.0001% потерь  (< 1 пакет на 1,000,000)
Хорошо:    0.0001% - 0.001%  (1-10 пакетов на 1,000,000)
Допустимо: 0.001% - 0.01%    (10-100 пакетов на 1,000,000)
Плохо:     0.01% - 0.1%      (100-1000 пакетов на 1,000,000)
Критично:  > 0.1%            (> 1000 пакетов на 1,000,000)

Оптика обычно имеет на порядок меньше ошибок чем медь!

3.3. Факторы влияющие на качество оптической линии:

  • Оптическая мощность (Optical Power):
    • TX Power: обычно -3 dBm до -10 dBm
    • RX Sensitivity: обычно -18 dBm до -23 dBm
    • Link Budget: разница между TX и RX min sensitivity
  • Потери в волокне:
    • Single-mode: ~0.3-0.4 dB/km @ 1310nm, ~0.2-0.3 dB/km @ 1550nm
    • Multi-mode: ~2-3 dB/km @ 850nm
  • Потери в коннекторах:
    • FC/PC: ~0.3 dB
    • SC/PC: ~0.3 dB
    • LC: ~0.2 dB
  • Дисперсия:
    • Chromatic dispersion (хроматическая)
    • Modal dispersion (модовая) — только MMF
    • Polarization mode dispersion (PMD)

4. Сравнение Медь vs Оптика:

ПараметрМедь (Copper)Оптика (Fiber)
Типичный BER10⁻¹⁰10⁻¹²
Типичный PLR0.01%0.0001%
ПомехоустойчивостьСредняя (EMI)Высокая (нет EMI)
Максимальная дальность100 м10-80 км
СтабильностьЗависит от окруженияОчень стабильна
Задержка (latency)~5 ns/m~5 ns/m (одинаково)
JitterВышеНиже

5. Отраслевые стандарты по применению:

5.1. Телеком операторы (ITU-T):

ITU-T G.821 — Error Performance:

Grade of ServiceBERПрименение
High Grade< 10⁻¹⁰Критичные данные
Medium Grade< 10⁻⁷Обычная передача данных
Ordinary Grade< 10⁻⁴Голосовая связь

5.2. Дата-центры:

Согласно TIA-942:

  • Tier 1-2: PLR < 0.1%
  • Tier 3: PLR < 0.01%
  • Tier 4: PLR < 0.001%

5.3. Промышленные сети (IEC 61784):

  • Class A (высокая доступность): PLR < 0.001%
  • Class B (средняя доступность): PLR < 0.01%
  • Class C (базовая доступность): PLR < 0.1%

6. Как измерять потери пакетов:

6.1. На уровне драйвера Linux:

# Просмотр статистики интерфейса
ethtool -S eth0 | grep -E "rx_errors|tx_errors|rx_dropped|tx_dropped"

# Или через ifconfig
ifconfig eth0 | grep -E "RX errors|TX errors"

# Или через ip
ip -s link show eth0

6.2. На уровне PHY (DP83869HM):

// Читаем счетчик RX ошибок
u16 rx_err_cnt = mdio_read_mmd(data, phy_addr, 0x1F, 0x0015);

// Для оптики - проверяем FIFO ошибки
u16 fx_int = mdio_read_mmd(data, phy_addr, 0x1F, 0xC19);
bool fifo_errors = !!(fx_int & 0x01E0);  // Bits 8,7,6,5,4

// Рассчитываем PLR
unsigned long total_packets = stats.rx_packets + stats.tx_packets;
unsigned long error_packets = stats.rx_errors + stats.tx_errors;
double plr = (double)error_packets / total_packets * 100.0;

if (plr < 0.001) {
    pr_info("Link quality: EXCELLENT (PLR=%.4f%%)\n", plr);
} else if (plr < 0.01) {
    pr_info("Link quality: GOOD (PLR=%.4f%%)\n", plr);
} else if (plr < 0.1) {
    pr_info("Link quality: ACCEPTABLE (PLR=%.4f%%)\n", plr);
} else {
    pr_warn("Link quality: POOR (PLR=%.2f%%) - CHECK CABLE!\n", plr);
}

6.3. Тестирование с iperf3:

# Отправка тестового трафика
iperf3 -c 192.168.1.100 -t 60 -i 1

# В выводе смотреть на:
# - Retransmits (повторные передачи)
# - Lost packets (потерянные пакеты)

7. Рекомендации для вашего проекта:

Для DP83869HM Media Converter:

Copper side (RTL8111 ↔ DP83869HM):

// Мониторинг каждые 10 секунд
if (time_after(jiffies, last_check + HZ * 10)) {
    u16 rx_err = mdio_read_mmd(data, phy_addr, 0x1F, 0x0015);
    
    if (rx_err > 10) {  // > 10 ошибок за 10 секунд
        pr_warn("PHY %d: High error rate on copper side: %d errors\n", 
                phy_addr, rx_err);
    }
    
    // Сброс счетчика после чтения (если нужно)
    last_check = jiffies;
}

Нормы для вашего случая:

  • Отлично: 0 ошибок за 10 секунд
  • Хорошо: 1-5 ошибок за 10 секунд
  • Приемлемо: 5-10 ошибок за 10 секунд
  • Плохо: > 10 ошибок за 10 секунд

Fiber side (DP83869HM ↔ SFP RJ45):

// Мониторинг FIFO ошибок
u16 fx_int = mdio_read_mmd(data, phy_addr, 0x1F, 0xC19);

if (fx_int & 0x0180) {  // TX FIFO Overflow/Underflow
    pr_warn("PHY %d: TX FIFO errors detected: 0x%04x\n", phy_addr, fx_int);
}

if (fx_int & 0x0030) {  // RX FIFO Overflow/Underflow
    pr_warn("PHY %d: RX FIFO errors detected: 0x%04x\n", phy_addr, fx_int);
}

Нормы для оптики:

  • Отлично: 0 FIFO ошибок
  • Допустимо: 1-2 FIFO ошибки за час (возможны при переключениях)
  • Плохо: > 5 FIFO ошибок за час

Выводы:

Медь: Норма < 0.01% потерь пакетов (< 10 на 100,000)
Оптика: Норма < 0.001% потерь пакетов (< 1 на 100,000)
Критичный порог: > 0.1% для меди, > 0.01% для оптики
Оптика на порядок лучше меди по качеству
Регулярный мониторинг счетчиков ошибок в PHY обязателен

Рекомендую добавить в ваш драйвер периодическую проверку счетчиков ошибок и вывод предупреждений при превышении порогов! 🎯