сетевой фильтр на \device\tcp

Тема в разделе "WASM.NT.KERNEL", создана пользователем Rodin, 7 июн 2009.

  1. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    Допустим я стал фильтром на девайс \Device\Tcp. Как известно, протокол TCP упорядочивает пришедшие раздробленные пакеты, формирует единый пакет и отправляет его юзермодному получателю.

    Мой фильтр будет получать уже итоговый пакет или раздробленные фрагменты?
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Налицо полное непонимание что такое TCP и как оно работает. Никаких пакетов на этом уровне нет, есть только поток байт, которые как хочешь так и интерпретируй (зависит от вышестоящего протокола). Пакеты имеют место быть уровнем ниже - IP, но на \Device\Tcp ты к ним доступа не получишь (да оно тебе и не нужно скорее всего), здесь у тебя буду данные уже без IP-заголовка.
     
  3. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Rodin, в догонку к вышеотписаному - user mode app работает с потоками данных которые получает/принимает кусками. Термин: buffer. Размер этого блока зависит от параметров сокета и аргументов API. Т.е. может быть по 20 байт а может и 64К.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    x64
    да и без tcp заголовка.)

    в запрос TDI_SEND передается Mdl, описывающая данные. Очень похоже на вызов send() из сокетов.
    аналогично с TDI_RECEIVE
     
  5. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Если быть совсем точным, то здесь данные будут без заголовков всех уровней, начиная с транспортного.

    Да.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Это было топикстартеру:)