Добрый день.Есть провайдер iptv, который выдаёт мультикастом udp траффик.
Сейчас он декодируется патченным udp2http proxy. При этом на телевизоре переключение iptv каналов идёт "не быстро", как я понял это связано именно с буферизацией http трафика.
По этому (и просто интересно поковырять), я хочу реализовать прозрачное декодирование пролетающего udp траффика.
Один из варинатов - написать модуль для iptables.
Прочитал статью "Target-модуль для iptables своими руками.", вроде всё понятно, но меня смутила часть
"Все функции, связанные с TCP/IP-стеком, должны обеспечивать минимально возможные задержки – скорость их работы влияет на производительность всей сетевой подсистемы в целом".
В связи с этим возник вопрос - как правильно реализовывать "это"
Варианты:
1) Прописать логику декодирования в модуль (ну почти 1-1 как в статье). В моём случае это расшифровка закрытым ключом, и, по идее, она не должна внести сильные задержки, не требует общих ресурсов при параллельной обработке пакетов, и т.д.
2) Сделать "проброс" пакетов в userland, где осуществить декодирование, и возврат обратно. В этом случае, в целом процесс принял-раскодировал-послал, по идее, работать будет медленнее, однако не будет влиять на работу системы (сети) в целом, и текущий вариант с udp2http показывает, что userland справляется с задачей на ура (это всё крутится на роутере с openwrt).
Кроме того он позволить расширить функционал нормальным дебагом, обновлением ключа шифрования ну и что там ещё захочется.