Новшества в Windows Server 2008: стек TCP/IP::Журнал СА 9.2008
www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Работа с Debian  

О Linux с любовью или Debian: через знание к любви

Конечно, одним лишь перечислением замечательных качеств любовь к Linux не возникнет. Для

 Читать далее...

Опрос  

Защита личных и клиентских данных: как мошенники используют ИИ и как защититься?

По данным RED Security, общее число кибератак на российские компании в 2024

 Читать далее...

Опрос  

Облачные инструменты для разработчиков

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Как с помощью облака сделать

 Читать далее...

Опрос  

Рынок мобильных приложений: что будет актуальным в 2025 году?

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Ваши прогнозы: чего ожидать от

 Читать далее...

Рынок труда  

Как успешно пройти все этапы собеседования на ИТ-должность?

По оценкам государства, дефицит ИТ-специалистов составляет от 740 тысяч до 1 миллиона

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 7592
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7850
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 5206
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3343
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 4137
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 4149
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6647
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3488
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3762
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7636
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 11002
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12725
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14510
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9447
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7414
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5696
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4899
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3753
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3434
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3666
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Новшества в Windows Server 2008: стек TCP/IP

Архив номеров / 2008 / Выпуск №9 (70) / Новшества в Windows Server 2008: стек TCP/IP

Рубрика: Администрирование /  Продукты и решения

Андрей Бирюков

Новшества в Windows Server 2008: стек TCP/IP

В новой версии ОС Windows Server 2008 стек TCP/IP был полностью переработан. Рассмотрим, какие новшества появились в нем.

Windows Server 2008 содержит множество различных нововведений. Такие давно используемые и хорошо всем знакомые вещи, как реализация стека TCP/IP в новой операционной системе, также претерпела весьма существенные изменения.

Основные изменения и структура

Приведу список основных изменений в новом сетевом стеке. Прежде всего это одновременная поддержка как IPv4, так и IPv6. Шестую версию IP сейчас поддерживают практически все выпускаемые операционные системы, так что поддержка в Windows 2008 была вполне ожидаема. Новая технология поддержки IPv4 и IPv6 называется Dual-IP.

Другим нововведением является поддержка так называемой Strong Host Model (усиленной модели хоста). Что это такое, лучше объяснить на примере. Когда на какой-либо узел приходит обычный unicast-пакет, сетевой интерфейс принимает его, если IP-адрес назначения совпадает с одним из адресов, который присвоен сетевым интерфейсам на данной машине. Такая обработка пакетов называется слабой моделью хоста (Weak Host Model). В случае усиленной модели будет обработан пакет только с IP-адресом, соответствующим адресу интерфейса, на который он пришел. Использование слабой модели может сделать не только конкретный узел, но и всю локальную сеть менее устойчивой к несанкционированным проникновениям, так как в случае, если на внешний интерфейс узла, выполняющего роль маршрутизатора, послать пакет с адресом из внутренней, то при неаккуратной конфигурации такой пакет вполне может достичь точки назначения. С использованием усиленной модели даже в случае неаккуратной настройки правил маршрутизации такого не случится. В текущих реализациях TCP/IP на Windows Server 2003 и Windows XP используется слабая модель. Более подробно с моделями узлов можно ознакомиться в статье [1].

Next Generation TCP/IP стек снижает нагрузку на драйвер Network Driver Interface Specification (NDIS) и сетевые адаптеры при обработке TCP и других видов трафика. Данный функционал весьма полезен при работе в сетях с высокой пропускной способностью. Также в новой версии стека появилась возможность обработки трафика на многопроцессорных машинах с распределением нагрузки. Для высокопроизводительных сетевых приложений, прежде всего различных видеотрансляций, многопроцессорная обработка также будет полезной.

Еще одним важным нововведением в стеке Next Generation является возможность автоматической настройки определенных компонентов стека (например, масштабируемость TCP receive window и других) без ручного внесения изменений в конфигурацию. Тут следует отметить, что в UNIX-системах подобные функции существуют уже давно и существенно упрощают жизнь системным администраторам. Так что реализация данного функционала в Next Generation Stack является несомненным шагом вперед.

Схематически новую архитектуру можно изобразить с помощью рисунка. Поясню работу стека последовательно, снизу вверх. За отправку и получение пакетов на интерфейс отвечает драйвер NDIS. Затем данные передаются драйверу tcpip.sys.

Архитектура драйвера новой версии стека TCP/IP, реализованного в файле tcpip.sys, состоит из следующих уровней:

  • Транспортный уровень – содержит реализации протоколов TCP и UDP, а также механизм для отсылки базовых IP-пакетов, которым не требуется наличие TCP или UDP-заголовков.
  • Сетевой уровень – содержит реализации протоколов IPv4 и IPv6 в виде уровня Dual IP layer (о данной технологии я уже писал выше).
  • Фреймовый уровень – содержит модули для фрейминга пакетов IPv4 и IPv6. Существуют модули для интерфейсов IEEE 802.3 (Ethernet), IEEE 802.11 и Point-to-Point Protocol (PPP). Помимо этого существуют модули и для логических интерфейсов, таких как Loopback Interface, а также интерфейсов туннелирования на основе IPv4, которые часто используются в технологиях поддержки переключения с IPv4 на IPv6.

После такой обработки полученные данные передаются Winsock Kernel и другим обработчикам уровня ядра. И, наконец, в верхней части архитектуры находятся приложения Windows Socket, которые извлекают непосредственные данные и передают их приложениям.

Новые API

Также, рассказывая о новых функциях сетевого стека, нельзя не упомянуть о новых возможностях для программистов. Прежде всего это появление новых API для безопасности и фильтрации пакетов. Новый набор компонентов для программирования получил название Windows Filtering Platform (WFP). WFP обеспечивает возможность фильтрации на всех уровнях стека протоколов TCP/IP. Также следует отметить, что WFP более тесно интегрирован в реализацию TCP/IP для Windows Server 2008. Это позволяет сторонним разработчикам быстрее и легче разрабатывать сетевые драйверы, службы и приложения для работы с TCP/IP трафиком. Более подробно с Windows Filtering Platform можно ознакомиться в статье [2].

В продолжении темы API хотелось бы упомянуть три основных программных интерфейса, используемых приложениями, сервисами и другими системными компонентами для доступа к новому стеку TCP/IP – это WSK (Winsock Kernel), используемый клиентскими приложениями, Windows Sockets, используемый приложениями и сервисами (программный интерфейс Windows Sockets использует драйвер AFD – Ancillary Function Driver для выполнения функций на уровне сокетов через TCP/IP) и TDI (Transport Driver Interface), используемый NetBIOS over TCP/IP (NetBT) и другими устаревшими клиентами. Для трансляции запросов между TDI и новым стеком TCP/IP используется интерфейс TDX. По замыслу разработчиков WSK должен со временем заменить TDI.

Архитектура Next Generation TCP/IP

Архитектура Next Generation TCP/IP

Новый стек TCP/IP поддерживает программный интерфейс Callout API, который является унифицированным способом для встраивания в стек и модификации данных на уровне пакетов. Программный интерфейс является частью WFP, обеспечивающей доступ к обработке пакетов на сетевом и транспортном уровнях. Новый стек также поддерживает отсылку и получение фреймов (frames), используя NDIS.

Завершая детальное описание нововведений, хочу привести краткий список функций, еще не упомянутых, однако заявленных разработчиком. Это улучшенная поддержка производительности и коррекция ошибок, поддержка аппаратных конфигураций и автонастройки, богатые функции расширяемости на уровне нового программного интерфейса, улучшенная поддержка рабочих станций мобильных пользователей, часто переключающихся из одной сети в другую, взаимодействие с Windows CE, Xbox и Windows Embedded, устойчивость к известным DoS и другим сетевым атакам.

Новые решения старых проблем

Теперь сравним архитектуру Next Generation TCP/IP Stack с предыдущими реализациями TCP/IP. Прежде всего вспомним некоторые особенности работы стека в предыдущей версии операционной системы и их недостатки. В пакетах обновлений (service packs) для Windows Server 2003 были включены дополнительные возможности: в TCP появилось уже упоминавшееся сегодня масштабирование окон (window scaling), определение нерабочих шлюзов (dead gateway detection) и другие тонкие настройки, которые были выполнены лучше и более надежно, по сравнению со стеком в Windows 2000. Справедливости ради следует также отметить, что реализация стека TCP/IP была практически полностью скопирована с ОС FreeBSD.

Однако в стеке не было поддержки IPv6. Поддержка стека была реализована простым добавлением второго драйвера транспортного уровня Tcpip6.sys для существующего драйвера Tcpip.sys для IPv4. Результатом этого явился двойной стек, в котором транспорт для IPv4 и IPv6 поддерживался двумя различными драйверами, и для включения IPv6 администраторы должны были установить компонент протокола IPv6 на своих машинах с Windows XP и Windows Server 2003. Очевидно, что такой подход имеет несколько недостатков. Например, функциональность разделенного фильтра пакета для каждого протокола IP приводит к тому, что сложно настраивать брандмауэр на машинах, на которых работают оба протокола. Также это усложняет жизнь разработчикам сетевых приложений, которые необходимы для поддержки как IPv4, так и IPv6. А это означает дублирование кода и менее эффективный канал для выполнения стека.

Еще одним недостатком прежней реализации стека является механизм определения нерабочих шлюзов (dead gateway detection), который был введен как способ поддержания работоспособности, когда основной шлюз (gateway) или маршрутизатор (router) вышел из строя. В больших компаниях часто есть резервный маршрутизатор, который может работать в случае выхода из строя основного маршрутизатора, а определение нерабочих шлюзов позволяет использовать такие резервные шлюзы. Проблема реализации данного механизма в Windows Server 2003 заключалась в том, что не было возможности отката, другими словами, когда основной шлюз восстанавливал свою работоспособность, система продолжала отправлять пакеты на резервный шлюз до следующей перезагрузки. Так как зачастую резервный маршрутизатор обладает меньшей производительностью, а многие серверы не перезагружаются месяцами, отсутствие возможности возвращения на основной шлюз несколько неприятно. Также данный механизм в Windows Server 2003 может определять аварии только на локальном шлюзе по умолчанию, аварии на удаленных шлюзах определить нельзя.

Также в стеке TCP/IP в Windows Server 2003 иногда происходит медленная обработка пакетов в каналах с высокой пропускной способностью. Это вызвано тем, что стек настраивает TCP с помощью медленного старта (slow start) и устранения перегрузок (congestion avoidance) – два стандартных алгоритма TCP/IP, которые были спроектированы еще до того, как гигабайтные сети стали нормой. Например, при использовании DFS (Distributed File System) вы можете иметь сервер вместо концентратора, который может копировать большое количество данных, проходящих по высокоскоростной WAN через множество маршрутизаторов. Результатом является то, что WAN-соединение перегружается, и копирование занимает больше времени, чем должно, иногда намного больше.

Завершая перечисление недостатков старого стека, хотелось бы упомянуть о проблемах с безопасностью. Дело в том, что одна таблица маршрутов (routing table) используется для разделения трафика для каждой из сетей, к которым подключен сервер, в том числе и VPN-соединения, что в свою очередь означает, что если у пользователя есть права локального администратора на машине, то он имеет возможность для изменения таблицы маршрутов таким образом, чтобы создать угрозу безопасности локальной сети, разрешив доступ из Интернета.

Теперь рассмотрим, каким образом приведенные выше недостатки были устранены в новой версии стека.

Проблема взаимодействия IPv4 и IPv6 решена с помощью уже упоминавшейся выше технологии Dual IP layer, которая существенно упрощает взаимодействие этих двух протоколов.

В Windows Server 2008 полностью решена проблема гарантированной изоляции трафика VPN-соединением сессий входа, таблиц маршрута и сетевых интерфейсов в логическую конструкцию под названием подсистема выбора маршрута (routing compartment). Такое деление означает, что, например, соединение от ноутбука к Интернету и корпоративной сети с помощью VPN полностью изолированы одно от другого, что существенно увеличивает защищенность корпоративной сети.

Для решения проблемы отката в механизме определения нерабочих шлюзов (dead gateway detection) используется похожий набор методов, которые IPv6 использует для определения недоступных соседей в сетях IPv4, что в основном включает мониторинг сессий TCP и обмен пакетами ARP. Когда система обнаруживает такую ситуацию, стек переключается на следующий шлюз по умолчанию из списка, но стек продолжает мониторинг предыдущего шлюза, и если тот возобновляет работу, то система переключается обратно на этот основной шлюз. Это позволяет обеспечить оптимальную связь с удаленными офисами, гарантируя, что резервные шлюзы будут использоваться, только пока не работает основной шлюз.

В новом стеке проблема низкой производительности в сетях с высокой пропускной способностью решена с помощью нового алгоритма вместо алгоритмов, использовавшихся на других платформах. Этот новый подход называется Compound TCP (CTCP), и он может значительно повысить производительность при использовании в различных сетях.

Надеюсь, что информация о новшествах в стеке протокола TCP/IP будет вам полезна при работе с Windows Server 2008.

  1. http://technet.microsoft.com/en-us/magazine/cc137807.aspxописание Weak And Strong Host Models.
  2. http://www.microsoft.com/whdc/device/network/WFP.mspxописание Windows Filtering Platform.
  3. http://technet.microsoft.com/ru-ru/library/bb878108(en-us).aspx – статья на TechNet, посвященная Next Generation TCP/IP.
  4. http://www.netdocs.ru/articles/TCP-IP-Networking-Windows-Vista.htmlсеть TCP/IP в Windows Vista.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru