Как драйверу распознать в каком режиме настроена сеть?

Тема в разделе "WASM.NETWORKS", создана пользователем neutronion, 30 апр 2011.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Сделал протокольный драйвер, работает нормально в схеме сетевой адаптер - модем adsl. Драйвер способен посылать сырые пакеты в сеть
    через модем. Модем настроен в режиме роутера, т.е. модем сам составляет пакеты PPPoE. Но если настроить модем в режиме моста, то уже драйвер
    адаптера должен составлять arp пакеты в которых вложен ppp. Таким образом мой протокольный драйвер должен вставлять пакеты ppp в arp
    протокол. Вопрос такой, как определить в каком режиме отправлять пакеты, простые arp->ip->tcp(если модем настроен в режиме роутера) или же arp->ppp->ip->tcp (если модем настроен в режиме моста)?
     
  2. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Ось какая?
     
  3. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Прочитать из реестра значение, которое было туда предварительно записано пользователем, чтобы указать, в каком режиме работать драйверу.

    А причем там arp?
     
  5. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Потому-что драйвер строит пакеты начиная с арп. Это гибко, но муторно.
     
  6. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    есть такой вариант:
    1) Инициировать процесс соединения по ppp протоколу. Если соединение неуспешно, значит мы находимся за роутером, тогда все упрощается.

    2) После того как не удался 1 вариант, переходим к плану Б. пингуем некий инет адрес простыми пакетами arp->ip->icmp, если все нормально, тогда мы за роутером.

    А это значит, что нужно создать тестовый драйвер, который будет создавать
    соединение с ppp сервером, посредством ppp протокола. На нем и можно будет потренироваться :)