Нормы потерь пакетов для меди и оптики
Отличный вопрос! Давайте разберем нормы потерь пакетов для различных типов связи.
Нормы потерь пакетов (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) |
|---|---|---|
| Типичный BER | 10⁻¹⁰ | 10⁻¹² |
| Типичный PLR | 0.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 Service | BER | Применение |
|---|---|---|
| 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 обязателен
Рекомендую добавить в ваш драйвер периодическую проверку счетчиков ошибок и вывод предупреждений при превышении порогов! 🎯
