Путь сетевых пакетов

Тема в разделе "WASM.NT.KERNEL", создана пользователем _Juicy, 13 янв 2012.

  1. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    На сетевую карту пришел пакет данных, для определенности допустим, что ICMP.
    Как узнать, кто из драйверов его получит, кто будет обрабатывать, кто пропустит дальше, кто дропнет? Интересует примерный алгоритм получения их списка.
    Обратно, windows отправила некий пакет. Как выяснить, кто инициализировал отсылку и кто в ней участвовал?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Насколько мне изестно такого логирования нет. Оно по-моему и не нужно.
     
  3. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    бежит по улице собака. как узнать что она думает и где будет через час?
     
  4. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Допустим, эта собака бежит там регулярно и есть возможность законфирмить ее пробежку, откатить собаку назад и даже порыться у нее в мозгах.
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Squash
    Курите сетевую подсистемы винды. Хотяб в Руссиновиче почитайте как оно и что там (глава "Поддержка сетей").
     
  6. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Руссинович выкурен. Там все весьма размыто... или ориентировано на тех, кто уже имеет истинное знание :)
     
  7. goga2007

    goga2007 New Member

    Публикаций:
    0
    есть сомнение, что его получит драйвер устройства ??? (то есть минипорт)
    сетевая_карта->минипорт->драйверы_протоколов(в порядке регистрации. ну напр tcp/ip)->ну и тсп порт, то есть приложение.
    может я не понял вопроса?
     
  8. goga2007

    goga2007 New Member

    Публикаций:
    0
    ndis.sys точно получит.
    получить их список ,думаю, можно перехватом процедур этого драйвера и записью в лог, куда дальше пошел пакет.
     
  9. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    goga2007

    Воот, вы правильно поняли, но меня интересуют тонкие подробности, если их кто знает.
    В каком виде и через какие процедуры его получит минипорт? И ведь ndis получит его раньше минипорта, правильно?
    В какой очередности его получат промежуточные драйверы? Все ли драйвера протоколов его получат? Куда он пойдет по тди?

    Да, и есть ли вероятность, что его получит еще кто-то в обход ndis?
     
  10. x64

    x64 New Member

    Публикаций:
    0
    Я думаю, на данном этапе тебе следует открыть документацию и прочитать вообще что такое NDIS, что такое минипорты, драйвера протоколов и т.д.
     
  11. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Ок, босс.
    Документация == wdk help, верно?

    To all: Еще советы будут? :)
     
  12. x64

    x64 New Member

    Публикаций:
    0
    Да, помимо этого я бы ещё посоветовал прочитать, что вообще такое NDIS, а то все как-то думают, что это ndis.sys и кроме протокольных драйверов там ничего нет, но NDIS это всё таки нечто большее, целая спецификация как-никак. Конечно, с точки зрения практики написания сетевых драйверов под Windows это всё может и не пригодиться, но для общего развития не помешает, я бы сказал.
     
  13. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Как раз таки писать мне пока ничего не надо, а
    ссылочками поделишься?
     
  14. goga2007

    goga2007 New Member

    Публикаций:
    0
    вот интересная страничка (на цифирьки можно не смотреть)
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff556916(v=VS.85).aspx
    а еще в иду загруженный ndis.sys. как еще нет? тогда скорее заггружаем и смотрим, как это делает он. особенно обращаем внимание на процедуру NdisMRegisterMiniportDriver.

    потому как лучше самого драйвера вам никто ничего не расскажет, а если расскажет, то будет недопонято, возникнут новые вопросы.

    пс: вы же не хотите копать траншеи. тогда копайте код.
     
  15. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Ясен пень, но для того и форумы, чтоб попользоваться и чужими сведениями, ежели они есть ;)
     
  16. shchetinin

    shchetinin Member

    Публикаций:
    0
    Squash
    Не как не определишь, только эвристиком, что является через одно место так как NDIS является дровом другого преднозначения ... более того , информацию об запросах на получения NDIS формирует самостоятельно и отдает выше стоящему драйверу ... еще куча левелов которые весят выше NDIS и вправе убивать стек(редирект на второй поток с копированием контекста отправки данных то и есть конекта потока не будет ) вообще вам не сюды это точно!. NDIS это протокол(адаптер)..

    Вообщем Winsock Kernel, TDI вам туды копать..
     
  17. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Туда и копаю, но мне нужен полный путь.