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

Discussion in 'WASM.NT.KERNEL' started by _Juicy, Jan 13, 2012.

  1. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    На сетевую карту пришел пакет данных, для определенности допустим, что ICMP.
    Как узнать, кто из драйверов его получит, кто будет обрабатывать, кто пропустит дальше, кто дропнет? Интересует примерный алгоритм получения их списка.
    Обратно, windows отправила некий пакет. Как выяснить, кто инициализировал отсылку и кто в ней участвовал?
     
  2. Booster

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Насколько мне изестно такого логирования нет. Оно по-моему и не нужно.
     
  3. z0mailbox

    z0mailbox z0

    Blog Posts:
    0
    Joined:
    Feb 3, 2005
    Messages:
    635
    Location:
    Russia СПБ
    бежит по улице собака. как узнать что она думает и где будет через час?
     
  4. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Допустим, эта собака бежит там регулярно и есть возможность законфирмить ее пробежку, откатить собаку назад и даже порыться у нее в мозгах.
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Staff Member

    Blog Posts:
    2
    Joined:
    Jun 11, 2004
    Messages:
    3,568
    Location:
    Russia
    Squash
    Курите сетевую подсистемы винды. Хотяб в Руссиновиче почитайте как оно и что там (глава "Поддержка сетей").
     
  6. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Руссинович выкурен. Там все весьма размыто... или ориентировано на тех, кто уже имеет истинное знание :)
     
  7. goga2007

    goga2007 New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2007
    Messages:
    184
    есть сомнение, что его получит драйвер устройства ??? (то есть минипорт)
    сетевая_карта->минипорт->драйверы_протоколов(в порядке регистрации. ну напр tcp/ip)->ну и тсп порт, то есть приложение.
    может я не понял вопроса?
     
  8. goga2007

    goga2007 New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2007
    Messages:
    184
    ndis.sys точно получит.
    получить их список ,думаю, можно перехватом процедур этого драйвера и записью в лог, куда дальше пошел пакет.
     
  9. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    goga2007

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

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

    x64 New Member

    Blog Posts:
    0
    Joined:
    Jul 29, 2008
    Messages:
    1,370
    Location:
    Россия
    Я думаю, на данном этапе тебе следует открыть документацию и прочитать вообще что такое NDIS, что такое минипорты, драйвера протоколов и т.д.
     
  11. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Ок, босс.
    Документация == wdk help, верно?

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

    x64 New Member

    Blog Posts:
    0
    Joined:
    Jul 29, 2008
    Messages:
    1,370
    Location:
    Россия
    Да, помимо этого я бы ещё посоветовал прочитать, что вообще такое NDIS, а то все как-то думают, что это ndis.sys и кроме протокольных драйверов там ничего нет, но NDIS это всё таки нечто большее, целая спецификация как-никак. Конечно, с точки зрения практики написания сетевых драйверов под Windows это всё может и не пригодиться, но для общего развития не помешает, я бы сказал.
     
  13. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Как раз таки писать мне пока ничего не надо, а
    ссылочками поделишься?
     
  14. goga2007

    goga2007 New Member

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

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

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

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Ясен пень, но для того и форумы, чтоб попользоваться и чужими сведениями, ежели они есть ;)
     
  16. shchetinin

    shchetinin Member

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

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

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
    Туда и копаю, но мне нужен полный путь.