У нас возникла странная ошибка в нашей сети, настройка:

IP Camera -> Radio LAN repeater -> Local switch -> PC

IP-камера передает потоковое видео через RTSP / UDP, и мы можем управлять им с клиента на ПК или через браузер. Все отлично работает, когда настройки:

IP Camera -> LAN cable -> Local switch -> PC

Но мы видим ошибки, когда радиосвязь находится в цепи. Команды (отправляемые в виде HTTP POST на камеру) иногда пропускаются, и видеопоток заметно прерывистее.

Вот что любопытно: мы не видим каких-либо пакетов с ошибками, мы видим только сообщения HTTP POST, отклоненные камерой, как искаженные.

Линия радиосвязи состоит из двух блоков, которые фактически прозрачны для сети, почти так же, как если бы там был кабель локальной сети (или они так утверждают), и у нас есть два разных типа от разных производителей, демонстрирующих сходное поведение.

У нас есть Wireshark с ответвлением на локальном коммутаторе (зеркальный порт), и если мы поместим коммутатор с ответвлением wireshark на конец камеры, который также не увидит плохих пакетов. Эта установка выглядит следующим образом:

IP Camera -> Switch -> Radio LAN repeater -> Local switch -> PC
               ^                                 ^
               |                                 |
             WS TAP                            WS TAP

Таким образом, мы не видим плохих пакетов на обоих концах (касание), так как коммутатор указывает, что сигнал должен быть регенерирован / повторен коммутатором, чтобы исключить первую пару уровней.

Если это помогает, переключатели Netgear ProSAFE PlusSwitch.

Я немного растерялся относительно того, что проверять / пробовать дальше, это похоже на то, что кто-то здесь мог видеть раньше.

1 ответ1

0

Что ж, это похоже на ошибку в коде веб-сервера, из-за которой он не обрабатывал фрагментированные запросы - еще один PITFA записал это на доску тем надоедливым рабам Elbonian кода.

Слишком много хакеров ушло на то, чтобы опубликовать здесь решение, которое было бы полезно и интересно любому, кто не использует этот конкретный Elbonian SDK, но суть его заключалась в том, чтобы буферизовать весь запрос перед передачей его в код обработчика ошибок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .