User Tag List

Показано с 1 по 10 из 59

Тема: Эмуляция сети

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Код:
    эмулятор<-------+------->TAP1<-------+-------->router<-----+--->RealEthAdapter
    (IP-subnet1)    |                    |         is our      |      (IP-subnet2)
                    |                    |           PC        |
          WinAPI (CreateFile,     Windows IP stack        Windows IP stack
         WriteFile, ReadFile,                                 
           DeviceIoControl)
    Как видим, никакого NDIS.
    А РС, на котором будет работать эмулятор, сам будет роутить из сети где находится TAP1 в сеть реального адаптера, надо только галку поставить где надо. Или не ставить, если выход во внешнюю сеть не нужен - тогда взаимодействующий IP-софт (telnet, к примеру) просто запускаем на своем же РС - там же где и эмулятор, натравив его на TAP1.
    При этом TAP1 не обслуживается двумя стеками. "IP-стек кода на Z80" транслируется на выходе эмулятора в вызовы WinAPI, которые просто являются симметричной ответной частью для IP-стека Винды (имитирую ответные-парные "отправки и прием пакета" в/из эмулятор).
    Правда в последнем варианте канальный уровень "подсети1" и "второй адаптер подсети1" (тот который в эмуляторе) полностью придется обеспечивать эмулятором. Т.е. если в ранней моей схеме в реальный (пускай и TAP) адаптер Винды просто через NDIS передавался пакет (массив) подготовленный Z80-IP-стеком эмулятора, и инкапсуляция этих данных в Ethernet-кадр выполнялась этим адаптером, а передача далее (на второй TAP) производилась бриджем, то в последнем случае и "рисовать исходящий из эмулятора Ethernet-фрейм" и парсить "входящий Ethernet-фрейм" на предмет выделения "на мой MAC пришло или не на мой (да еще в зависимости от promiscuous mode), или это вообще широковещательный пакет" надо будет уже в коде эмулятора.

    Все это оттого, что пока никто не сделал под виндой для Ethernet аналог пакета com0com (2 виртуальных адаптера, соединенных кросовером). Если бы это было, можно было бы существенно облегчить себе жизнь. Я думал в этом качестве можно будет использовать схему "TAP-бридж-TAP" (как я это делал бы на реальном оборудовании), но к сожалению бридж в Винде сделан как-то по ублюдочному.
    Последний раз редактировалось Error404; 15.02.2011 в 12:40.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Гейтование в FTN-сети
    от CityAceE в разделе Форум
    Ответов: 12
    Последнее: 31.12.2006, 08:19
  2. Soccer managers по сети!
    от Addison в разделе Игры
    Ответов: 4
    Последнее: 26.03.2006, 17:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •