ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
21 февраля
1571833 Топик полностью
OlegPowerC (Вчера, 21:35, просмотров: 19) ответил pavel2000 на Логика первого варианта пункта 1 хорошо работает на входящем трафике, причем и для трафика из других сегментов (трафика, прошедшего через роутер). Не требуется указывать IP-роутера, типа "простота конфигурации". В случае второго варианта нужна таблица маршрутизации, чтобы понять, куда слать ответ, если IP не принадлежит локальной подсети - он на ARP-запрос не ответит. Но логика первого варианта "без таблицы маршрутизации" сломается, если будет нужно установить
У меня так: Устройство получает IP маску и шлюз по DHCP ну или руками задаем. Далее так. Допустим мы его начали пинговать с ПК в одной подсети с ним, тогда при прилете ICMP запроса, мы сначала проверяем в одной ли подсети с ним, если да то ищем запись в ARP таблице и если она есть то шлем ответ, а если нет то не шлем, но добавляем в ARP таблицу запись с флагом что надо бы разрешить адрес ну и выходим. Затем другая задачка его разрешит. Ну и потом уже она будет обновляться 

входящими пакетами, а если их не будет она протухнет и удалится. А вот если мы поняли что этот IP в другой подсети, то ищем ARP запись шлюза и используем его мак но IP из запроса. Далее, если мы поставим точку останова, и потом продолжим то все работает дальше - ничего не надо сбрасывать. Так же тестирую на большом трафике. Цель - не супер производительность а простой понятный и надежный стек.