Сеть TCP/IP в Windows Vista

Опубликовано: 24 Марта, 2023

Стек Windows TCP/IP был значительно расширен в Windows Server 2003 и Windows XP, а также в пакетах обновлений для этих платформ, включая выборочные подтверждения, масштабирование окна приема TCP, обнаружение мертвых шлюзов и другие настройки, которые сделали его работу лучше и больше. надежно, чем стек Windows 2000. Но под капотом стек Windows Server 2003 оставался практически тем же старым стеком, который был разработан в начале 90-х для платформы Windows NT. Другими словами, это был стек, изначально предназначенный для поддержки только IPv4. И когда Microsoft в середине 90-х увидела растущую потребность в поддержке IPv6, а также IPv4, поддержка IPv6 была просто добавлена путем добавления второго драйвера транспортного уровня Tcpip6.sys к существующему драйверу Tcpip.sys для IPv4. Это привело к «двойному стеку», в котором транспорт для IPv4 и IPv6 обрабатывался отдельными драйверами, а для включения IPv6 администраторам службы поддержки приходилось устанавливать компонент протокола IPv6 на свои машины с Windows XP и Windows Server 2003.

У подхода с двумя стеками были и другие недостатки. Например, он разделил функции фильтрации пакетов для каждого IP-протокола, что усложнило настройку брандмауэров на машинах, использующих оба протокола. Это также усложнило жизнь разработчикам сетевых приложений, которым необходимо было поддерживать как IPv4, так и IPv6. А это означало дублирование кода и менее эффективный конвейер обработки стека.

Были и другие проблемы и ограничения, связанные с работой сети TCP/IP в Windows Server 2003 и Windows XP. Например, обнаружение неработающих шлюзов было введено как способ обеспечения аварийного переключения при отказе основного шлюза (маршрутизатора) сети. У крупных предприятий часто есть резервный маршрутизатор, который может взять на себя управление в случае сбоя основного маршрутизатора, а обнаружение неисправного шлюза позволяет их сетям использовать такие резервные маршрутизаторы. Это работает следующим образом: вы указываете два шлюза на своих компьютерах вместо одного, добавляя второй шлюз с помощью вкладки «Параметры IP» на странице «Дополнительные свойства TCP/IP» вашего сетевого подключения. Ваш компьютер обычно использует первый указанный шлюз, но когда компьютер обнаруживает, что шлюз не отвечает, он автоматически переключается на следующий шлюз в списке. Это хорошо, но что, если второй шлюз является вашим резервным маршрутизатором, который обычно дешевле и медленнее, чем ваш основной маршрутизатор, а затем через некоторое время ваш основной маршрутизатор снова подключается к сети? К сожалению, обнаружение мертвых шлюзов в Windows Server 2003 не имеет встроенного резервного механизма, поэтому, даже если более быстрый основной маршрутизатор снова становится доступным, ваш компьютер продолжает использовать более медленный резервный маршрутизатор в качестве шлюза по умолчанию. Вам нужно либо вручную изменить шлюз по умолчанию на своих машинах, либо перезагрузить их, чтобы они снова использовали ваш основной маршрутизатор. Кроме того, в то время как обнаружение мертвых шлюзов работало (вроде как вы можете видеть из приведенного выше) в Windows Server 2003, оно могло обрабатывать только сбои в локальном шлюзе по умолчанию — сбои в удаленных шлюзах не могут быть обнаружены или перенаправлены этим средством. особенность.

Другая проблема заключается в том, что компьютеры Windows в настоящее время плохо справляются с изоляцией трафика между сетевыми интерфейсами. Обычно это проявляется в сценариях VPN, когда машина подключена как к Интернету, так и к частной корпоративной сети. Тот факт, что для разделения трафика, предназначенного для каждой из этих сетей, используется одна таблица маршрутизации, означает, что если пользователь имеет права локального администратора на машине, он может изменить таблицу маршрутизации таким образом, чтобы поставить под угрозу безопасность частной сети. в отношении Интернета.

Наконец, еще одна проблема, связанная с TCP/IP на существующих платформах Windows, заключается в их низкой производительности по каналам с высокой пропускной способностью, которые имеют большую задержку (задержка около 50 мс или выше). Это вызвано тем, как стек настраивает окно отправки TCP, используя медленный запуск и предотвращение перегрузки, два стандартных алгоритма TCP/IP, которые показывают свой возраст, поскольку они были разработаны до того, как гигабайтные сетевые скорости стали нормой. А сочетание высокой пропускной способности и большой задержки не является чем-то необычным в современной среде филиалов. Например, в сценарии DFS у вас может быть сервер в расположении концентратора, реплицирующий большие объемы данных по высокоскоростному каналу глобальной сети через несколько маршрутизаторов по пути, что приводит к достаточной задержке, так что произведение задержки и пропускной способности превосходит стандартные алгоритмы. для настройки окна отправки. В результате канал WAN недоиспользуется, а репликация занимает больше времени, чем должна, а иногда и больше, при использовании оптимальной конфигурации окна отправки.

TCP/IP в Windows Vista

Для решения этих проблем в сетевой стек TCP/IP в Windows Vista и готовящемся к выпуску Longhorn Server вносятся значительные изменения. Эти изменения охарактеризованы Microsoft как «стек TCP/IP следующего поколения», который призван перенести сетевые технологии Windows в следующее десятилетие и далее. Давайте посмотрим, как новые функции TCP/IP в Vista решают проблемы, которые мы определили выше.

Во-первых, для предприятий, планирующих в ближайшее время обновить свои сети до IPv6, Vista упрощает задачу — поддержка IPv6 установлена и включена по умолчанию (хотя предприятия, не желающие использовать IPv6, смогут ее отключить). Мало того, весь стек TCP/IP в Vista был полностью переписан, так что теперь это «двухуровневая» архитектура, а не двухстековая. Другими словами, стек имеет один драйвер транспортного уровня, а не два отдельных (Tcpip.sys и Tcpip6.sys), как в более ранних версиях, один для IPv4 и один для IPv6. Это изменение обеспечивает более эффективный стек, который лучше обрабатывает пакеты, а также упрощает для разработчиков написание приложений для Vista, поддерживающих как IPv4, так и IPv6. Дополнительным преимуществом реархитектуры стека является то, что Microsoft имеет встроенные ловушки в стеке, так что разработчики могут писать приложения, которые могут подключаться к тому, как обрабатывается пакет практически в любом месте стека. Vista также полностью интегрирует возможности фильтрации пакетов (брандмауэра) для IPv4 и IPv6, что упрощает реализацию политик IPSec и правил брандмауэра, обрабатывающих оба вида трафика одновременно. Есть и другие архитектурные изменения в стеке в Vista, включая Winsock Kernel (WSK), который планируется заменить старый уровень интерфейса транспортного драйвера (TDI), хотя по причинам обратной совместимости TDI по-прежнему поддерживается в Vista. Но эти более глубокие архитектурные изменения в основном представляют интерес для разработчиков сетевых приложений, а не для сетевых администраторов.

Затем Vista решает проблему обеспечения изоляции VPN-трафика, связывая сеансы входа в систему, таблицы маршрутизации и сетевые интерфейсы вместе в логическую конструкцию, называемую отсеком маршрутизации. Это разделение означает, например, что подключения ноутбука к Интернету и к корпоративной сети через VPN полностью изолированы друг от друга, что хорошо для безопасности корпоративных сетей. Vista также включает еще одно усовершенствование в том, как компьютеры обрабатывают одноадресный трафик, направленный на локальные сетевые интерфейсы на машине. В настоящее время, когда пакет в сегменте локальной сети имеет адрес назначения, совпадающий с IP-адресом одного из сетевых интерфейсов вашей машины, все сетевые интерфейсы вашей машины подхватывают его и пытаются обработать. Очевидно, что это влияет только на многосетевые машины с двумя или более сетевыми картами. Этот подход обеспечивает хорошее сетевое подключение для машины, но означает, что происходит ненужная обработка, а также делает ваш компьютер восприимчивым к определенному типу сетевых атак, нацеленных на многосетевые машины. Однако в Vista только сетевой интерфейс, адрес которого совпадает с адресом получателя, получает пакет из сети и обрабатывает его. Однако основным результатом всех этих изменений является более безопасное сетевое подключение в Vista, чем в предыдущих платформах Windows.

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

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

Наконец, Vista поддерживает ряд последних RFC, обеспечивающих большую надежность и производительность в беспроводных сетях, которые быстро становятся предпочтительной технологией для компаний, желающих сэкономить на затратах на проводку. Эти усовершенствования помогают решать проблемы, которые обычно препятствуют работе беспроводных сетей, а также проводных, такие как электромагнитные помехи, нестационарные клиенты, затухание сигнала с расстоянием и т. д. Эти препятствия, как правило, заставляют трафик TCP/IP отбрасывать пакеты в беспроводных средах, вызывая тайм-ауты и повторные передачи, которые могут снизить пропускную способность. Изменения в Vista направлены на решение подобных проблем, и в результате машины с Vista должны иметь значительно более высокую производительность в беспроводных средах по сравнению с предыдущими версиями Windows.

Вывод

Глядя на проблемы и ограничения сетей TCP/IP на существующей платформе Windows, усовершенствования Vista в этой области добавляют еще одну вескую причину, по которой обновление настольных компьютеров XP до Vista может быть желаемой целью для крупных предприятий, которым требуется оптимальная пропускная способность на каналах глобальной сети, улучшенная безопасность для VPN-подключений удаленных клиентов и повышенная производительность беспроводных сетей.