🗊Сетевая подсистема Windows глазами разработчика. Алексей Пахунов alexeypa@microsoft.com

Категория: Новости
Нажмите для полного просмотра!
Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №1Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №2Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №3Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №4Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №5Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №6Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №7Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №8Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №9Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №10Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №11Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №12Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №13Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №14Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №15Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №16Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №17Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №18Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №19Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №20Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №21Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №22Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №23Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №24Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №25Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №26Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №27Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №28Сетевая подсистема Windows глазами разработчика.  Алексей Пахунов  alexeypa@microsoft.com, слайд №29

Содержание

Вы можете ознакомиться и скачать Сетевая подсистема Windows глазами разработчика. Алексей Пахунов alexeypa@microsoft.com. Презентация содержит 29 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Сетевая подсистема Windows глазами разработчика.
Алексей Пахунов
alexeypa@microsoft.com
Описание слайда:
Сетевая подсистема Windows глазами разработчика. Алексей Пахунов alexeypa@microsoft.com

Слайд 2





Обо мне.
Senior SDE в команде eXtreme Computing Group (XCG), Microsoft Research.
Специализация: низкоуровневое и системное программирование; разработка драйверов и компонентов ядра Windows.
3 года в команде Windows Kernel: Wow64 и поддержка AVX.
Мой блог: http://blog.not-a-kernel-guy.com.
Описание слайда:
Обо мне. Senior SDE в команде eXtreme Computing Group (XCG), Microsoft Research. Специализация: низкоуровневое и системное программирование; разработка драйверов и компонентов ядра Windows. 3 года в команде Windows Kernel: Wow64 и поддержка AVX. Мой блог: http://blog.not-a-kernel-guy.com.

Слайд 3





Содержание.
Архитектура стека TCP/IP.
Путь данных вверх и вниз.
Настройки и аппаратное ускорение.
Фильтры и мониторинг трафика.
Описание слайда:
Содержание. Архитектура стека TCP/IP. Путь данных вверх и вниз. Настройки и аппаратное ускорение. Фильтры и мониторинг трафика.

Слайд 4





Архитектура стека TCP/IP.
Описание слайда:
Архитектура стека TCP/IP.

Слайд 5





Архитектура стека TCP/IP.
Описание слайда:
Архитектура стека TCP/IP.

Слайд 6





Стек драйверов в NDIS 6.0.
Отдельный стек над каждым сетевым адаптером.
Многопортовые сетевые адаптеры могут запросить отдельный стек для каждого порта.
Сетевой адаптер может привязывается к нескольким протоколам.
Фильтры устанавливаются отдельно над каждым сетевым адаптером.
Описание слайда:
Стек драйверов в NDIS 6.0. Отдельный стек над каждым сетевым адаптером. Многопортовые сетевые адаптеры могут запросить отдельный стек для каждого порта. Сетевой адаптер может привязывается к нескольким протоколам. Фильтры устанавливаются отдельно над каждым сетевым адаптером.

Слайд 7





Промежуточные драйверы.
Промежуточный драйвер объединяет два стека в один.
Верхний стек видит виртуальный сетевой адаптер.
Нижний стек привязывается  к промежуточному драйверу как к протоколу.
Описание слайда:
Промежуточные драйверы. Промежуточный драйвер объединяет два стека в один. Верхний стек видит виртуальный сетевой адаптер. Нижний стек привязывается к промежуточному драйверу как к протоколу.

Слайд 8





Программные интерфейсы.
Winsock (send/recv, WSASend/WSARecv).
Winsock Kernel (WskSend/WskReceive).
IP Helper.
RPC (RpcXxx).
WNet (WNetXxx).
WinInet (InternetXxx).
WinHTTP (WinHttpXxx).
HTTP Server API (HttpXXX).
Описание слайда:
Программные интерфейсы. Winsock (send/recv, WSASend/WSARecv). Winsock Kernel (WskSend/WskReceive). IP Helper. RPC (RpcXxx). WNet (WNetXxx). WinInet (InternetXxx). WinHTTP (WinHttpXxx). HTTP Server API (HttpXXX).

Слайд 9





Путь данных вверх и вниз.
Описание слайда:
Путь данных вверх и вниз.

Слайд 10





Обработка принятых пакетов (IP).
Сетевой адаптер проверяет целостность пакета и генерирует прерывание.
Драйвер адаптера передает его выше по стеку.
IP проверяет целостность IP заголовка, восстанавливает пакет из фрагментов, перенаправляет пакет согласно таблице маршрутизации.
TCP/UDP проверяет целостность данных пакета, запрашивает повторную передачу и копирует данные в буфер приложения или драйвера:

	recv(connection, buffer, length, 0);
Описание слайда:
Обработка принятых пакетов (IP). Сетевой адаптер проверяет целостность пакета и генерирует прерывание. Драйвер адаптера передает его выше по стеку. IP проверяет целостность IP заголовка, восстанавливает пакет из фрагментов, перенаправляет пакет согласно таблице маршрутизации. TCP/UDP проверяет целостность данных пакета, запрашивает повторную передачу и копирует данные в буфер приложения или драйвера: recv(connection, buffer, length, 0);

Слайд 11





Передача данных (TCP).
Приложение указывает на данные для передачи: 

	send(connection, buffer, length, 0);
TCP формирует заголовки пакета (или нескольких пакетов).
IP формирует свои заголовки и разбивает пакеты на фрагменты, если необходимо.
Драйвер адаптера ставит пакеты в очередь, настраивает DMA и запускает передачу пакетов.
Сетевой адаптер генерирует прерывание по окончанию передачи.
Драйвер адаптера возвращает буферы их владельцу.
Описание слайда:
Передача данных (TCP). Приложение указывает на данные для передачи: send(connection, buffer, length, 0); TCP формирует заголовки пакета (или нескольких пакетов). IP формирует свои заголовки и разбивает пакеты на фрагменты, если необходимо. Драйвер адаптера ставит пакеты в очередь, настраивает DMA и запускает передачу пакетов. Сетевой адаптер генерирует прерывание по окончанию передачи. Драйвер адаптера возвращает буферы их владельцу.

Слайд 12





Как пакеты хранятся в памяти?
Каждый пакет описывается списком буферов (NET_BUFFER).
Буфер может располагаться в несмежных физических страницах.
Между уровнями передаются указатели.
Данные пакета копируются только один раз.
Описание слайда:
Как пакеты хранятся в памяти? Каждый пакет описывается списком буферов (NET_BUFFER). Буфер может располагаться в несмежных физических страницах. Между уровнями передаются указатели. Данные пакета копируются только один раз.

Слайд 13





Прямой доступ в память (DMA).
Сетевой адаптер поддерживает очереди буферов.
Несколько очередей для приёма и передачи.
Драйвер отвечает за выделение памяти, вставляет буферы в очередь и удаляет их оттуда.
Сетевой адаптер сохраняет принятые данные в подготовленные драйвером буфера.
Дескрипторы указывают сетевому адаптеру как нужно «склеивать» пакеты из нескольких буферов.
Описание слайда:
Прямой доступ в память (DMA). Сетевой адаптер поддерживает очереди буферов. Несколько очередей для приёма и передачи. Драйвер отвечает за выделение памяти, вставляет буферы в очередь и удаляет их оттуда. Сетевой адаптер сохраняет принятые данные в подготовленные драйвером буфера. Дескрипторы указывают сетевому адаптеру как нужно «склеивать» пакеты из нескольких буферов.

Слайд 14





Прерывания в Windows.
Уровни прерываний (IRQL):
PASSIVE_LEVEL – обычный код; используются приоритеты потоков.
DISPATCH_LEVEL – планировщик потоков и подкачка страниц приостановлены.
DIRQLs – прерывания от менее приоритетных устройств заблокированы.
Прерывание обрабатывается в два этапа:
Обработчик прерывания должен выполнить минимум работы максимально быстро.
Отложенный обработчик (DPC) выполняет оставшуюся работу.
IRQL нельзя произвольно понижать.
Каждое из ядер может находится на своем уровне прерываний.
Описание слайда:
Прерывания в Windows. Уровни прерываний (IRQL): PASSIVE_LEVEL – обычный код; используются приоритеты потоков. DISPATCH_LEVEL – планировщик потоков и подкачка страниц приостановлены. DIRQLs – прерывания от менее приоритетных устройств заблокированы. Прерывание обрабатывается в два этапа: Обработчик прерывания должен выполнить минимум работы максимально быстро. Отложенный обработчик (DPC) выполняет оставшуюся работу. IRQL нельзя произвольно понижать. Каждое из ядер может находится на своем уровне прерываний.

Слайд 15





Прерывания в NDIS.
Основные прерывания: пакет принят и передан.
Обработка принятых пакетов проходит на DISPATCH_LEVEL.
Любой драйвер в стеке имеет право передать обработку в рабочий поток (PASSIVE_LEVEL).
Исходящие пакеты формируются на PASSIVE_LEVEL.
Любой драйвер в стеке имеет право повысить IRQL до DISPATCH_LEVEL.
Описание слайда:
Прерывания в NDIS. Основные прерывания: пакет принят и передан. Обработка принятых пакетов проходит на DISPATCH_LEVEL. Любой драйвер в стеке имеет право передать обработку в рабочий поток (PASSIVE_LEVEL). Исходящие пакеты формируются на PASSIVE_LEVEL. Любой драйвер в стеке имеет право повысить IRQL до DISPATCH_LEVEL.

Слайд 16





Уведомление приложений.
Все операции ввода-вывода асинхронны.
Синхронные send() и recv() эмулируются.
Уведомление об окончании операции доставляется одним из стандартных способов:
APC, установка события, IO completion port, threadpool, опрос OVERLAPPED.
Драйверы, работающие через Winsock Kernel, используют IRP (I/O Request Packet).
Описание слайда:
Уведомление приложений. Все операции ввода-вывода асинхронны. Синхронные send() и recv() эмулируются. Уведомление об окончании операции доставляется одним из стандартных способов: APC, установка события, IO completion port, threadpool, опрос OVERLAPPED. Драйверы, работающие через Winsock Kernel, используют IRP (I/O Request Packet).

Слайд 17





Настройки и аппаратное ускорение.
Описание слайда:
Настройки и аппаратное ускорение.

Слайд 18





Аппаратное ускорение.
MAC и VLAN фильтры на сетевом адаптере.
Регулирование частоты прерываний (Interrupt Moderation).
Выгрузка вычислений на сетевой адаптер:
Вычисление и проверка контрольных сумм (Checksum Offloading).
TCP сегментация (Large Send Offloading).
TCP Chimney Offloading.
Обработка принятых пакетов на нескольких процессорах (Receive-Side Scaling).
Поддержка виртуализации.
Описание слайда:
Аппаратное ускорение. MAC и VLAN фильтры на сетевом адаптере. Регулирование частоты прерываний (Interrupt Moderation). Выгрузка вычислений на сетевой адаптер: Вычисление и проверка контрольных сумм (Checksum Offloading). TCP сегментация (Large Send Offloading). TCP Chimney Offloading. Обработка принятых пакетов на нескольких процессорах (Receive-Side Scaling). Поддержка виртуализации.

Слайд 19





Настройка сетевого адаптера (1).
Вкладка «Advanced».
Описывается в .INF файле драйвера.
NDIS определяет стандартные параметры.
…но отображаемые названия параметров все равно берутся из .INF файла.
Описание слайда:
Настройка сетевого адаптера (1). Вкладка «Advanced». Описывается в .INF файле драйвера. NDIS определяет стандартные параметры. …но отображаемые названия параметров все равно берутся из .INF файла.

Слайд 20





Настройка сетевого адаптера (2).
Описание слайда:
Настройка сетевого адаптера (2).

Слайд 21





Настройка TCP/IP.
Доступные через реестр параметры TCP/IP описаны в TechNet и множестве других источников.
HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters:
Адреса.
Размер окна TCP.
Маршрутизация.
Лимиты.
...
Описание слайда:
Настройка TCP/IP. Доступные через реестр параметры TCP/IP описаны в TechNet и множестве других источников. HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters: Адреса. Размер окна TCP. Маршрутизация. Лимиты. ...

Слайд 22





Фильтры и слежение за трафиком.
Описание слайда:
Фильтры и слежение за трафиком.

Слайд 23





NDIS фильтры.
Делятся на следящие и модифицирующие фильтры.
Перехватывают и пакеты, и управляющие OID запросы.
Иными словами – полностью контролируют нижнюю часть стека.
Загружаются для всех адаптеров данного типа.
Перехватываемые функции конфигурируются для отдельно для каждого адаптера.
Описание слайда:
NDIS фильтры. Делятся на следящие и модифицирующие фильтры. Перехватывают и пакеты, и управляющие OID запросы. Иными словами – полностью контролируют нижнюю часть стека. Загружаются для всех адаптеров данного типа. Перехватываемые функции конфигурируются для отдельно для каждого адаптера.

Слайд 24





Расширение отладчика !ndiskd.
Расширение !ndiskd:
Входит в состав Windows Debugging Tools.
Дружественно к неподготовленному пользователю.
Показывает детальную информацию об адаптерах, фильтрах и протоколах.
Требует подключения ядерного отладчика.
Достаточно локального подключения.
Описание слайда:
Расширение отладчика !ndiskd. Расширение !ndiskd: Входит в состав Windows Debugging Tools. Дружественно к неподготовленному пользователю. Показывает детальную информацию об адаптерах, фильтрах и протоколах. Требует подключения ядерного отладчика. Достаточно локального подключения.

Слайд 25





Это проще, чем кажеться...
Приостановите BitLocker.
“bcdedit /debug on”.
После перезагрузки: “windbg.exe -kl”.
Убедитесь в корректности “.sympath”.
“!ndiskd.help”.
Описание слайда:
Это проще, чем кажеться... Приостановите BitLocker. “bcdedit /debug on”. После перезагрузки: “windbg.exe -kl”. Убедитесь в корректности “.sympath”. “!ndiskd.help”.

Слайд 26





Архитектура WFP.
Описание слайда:
Архитектура WFP.

Слайд 27





Основные элементы WFP.
Shims:
Стек TCP/IP определяет несколько ключевых точек, где происходит фильтрация трафика.
Filters:
Ко входящему и исходящему трафику применяется набор правил, задающий действия, применяемые к данным.
Layers:
Фильтры групприрутся по уровням и подуровням.
Каждый уровень определяет свой набор полей для фильтрации.
Порядок применения фильтров однозначно определён.
Callouts:
Фильтр может принять решение о глубокой инспекции пакета.
Описание слайда:
Основные элементы WFP. Shims: Стек TCP/IP определяет несколько ключевых точек, где происходит фильтрация трафика. Filters: Ко входящему и исходящему трафику применяется набор правил, задающий действия, применяемые к данным. Layers: Фильтры групприрутся по уровням и подуровням. Каждый уровень определяет свой набор полей для фильтрации. Порядок применения фильтров однозначно определён. Callouts: Фильтр может принять решение о глубокой инспекции пакета.

Слайд 28





Архитектура IPsec.
Описание слайда:
Архитектура IPsec.

Слайд 29





Мониторинг WFP.
Aудит:
Конфигурация WFP.
Отброшенные/пропущенные пакеты, соединения, операции с сокетами.
Обмен ключами и отброшенные пакеты в IPsec.
Конфигурация WFP доступна через Win32 API.
Описание слайда:
Мониторинг WFP. Aудит: Конфигурация WFP. Отброшенные/пропущенные пакеты, соединения, операции с сокетами. Обмен ключами и отброшенные пакеты в IPsec. Конфигурация WFP доступна через Win32 API.



Похожие презентации
Mypresentation.ru
Загрузить презентацию