Внедрение, управление и поддержка сетевой инфраструктуры MS Windows Server 2003

Работа в сети с использованием TCP/IP

Разбить на страницы
Показывать лекцию целиком

Вся система Windows Server 2003 разработана с учетом взаимодействия через TCP/IP. Многие функции, которые описываются в этой лекции, не видны пользователю после должного конфигурирования TCP/IP, но вы не сможете полностью освоить администрирование сети Windows Server 2003, пока не ознакомитесь с сетевыми процессами, которые выполняются скрытым образом. В данной лекции дается обзор многих таких процессов, включая следующие темы.

  • Использование TCP/IP в рамках сетевой модели Windows Server 2003
  • Протоколы TCP/IP и уровни их функционирования
  • Использование утилит TCP/IP Windows Server 2003
  • Понимание этих тем упрощает разрешение проблем TCP/IP в случае их возникновения.

    Обзор TCP/IP

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

    Чтобы справиться с этой перегрузкой, многие сетевые администраторы прибегли к стандартизации на основе какого-либо одного набора протоколов, чтобы им было проще управлять сетевым трафиком. По целому ряду причин наиболее очевидным комплектом протоколов является TCP/IP. В частности, это следующие причины.

  • Совместимость. Большинство известных сетевых операционных систем в настоящее время могут использовать TCP/IP как собственный протокол. Остальные операционные системы явно уступают в их поддержке отраслевых стандартов.
  • Масштабируемость. TCP/IP разрабатывали для использования в том, что стало теперь крупнейшей интерсетью, то есть в интернете. TCP/IP содержит протоколы, отвечающие почти любой задаче обмена информацией при различных уровнях скорости, объемах служебной информации и надежности.
  • Разнородность (гетерогенность). Комплект TCP/IP может поддерживать практически любое оборудование или платформу операционных систем, которые используются в настоящее время. Его модульная архитектура позволяет поддерживать новые платформы без переделки базовых протоколов.
  • Адресуемость. Каждой машине в сети TCP/IP присваивается уникальный идентификатор, что делает ее адресуемой на любой другой машине в сети.
  • Доступность. Протоколы TCP/IP предлагаются как открытые стандарты, которые могут использовать все, и они разрабатываются на основе "открытого форума", когда приветствуется вклад от любых заинтересованных сторон.
  • Рост популярности Windows в наши дни, в частности, объясняется использованием TCP/IP. Его предшественник, NETBEUI (собственный исходный протокол Windows NT), оказался недостаточным как протокол уровня предприятия, поскольку у него нет сетевого уровня, и поэтому он не поддерживает маршрутизацию между сегментами сети.

    Использование TCP/IP в разработках Microsoft

    Разработка протоколов TCP/IP для использования в сети ARPANET (которую позже переименовали в Internet) началась в 1970-х гг., но некоторые нововведения, которые сделали TCP/IP применимым для использования в частных сетях уровня предприятия, были осознаны много позже. Показательным случаем стало применение TCP/IP компанией Microsoft для ее собственной глобальной корпоративной интерсети.

    В начале 1990-х гг., когда группа по информационным технологиям (Information Technology Group) компании Microsoft обсуждала различные протоколы, которые могли бы заменить "архаичные" протоколы XNS, TCP/IP был первым кандидатом с самого начала, но он содержал определенные серьезные препятствия для широкомасштабного развертывания по всему миру. Главными препятствиями были администрирование и конфигурирование IP-адресации, разрешения сетевых имен и использования широковещательных сообщений для поиска других компьютеров.

    Даже в сети небольшого или среднего масштаба задача назначения IP-адресов является достаточно обременительной; но в крупной интерсети, охватывающей более 50 стран, это требует серьезных административных затрат. Требуется не только тщательно планировать назначения сетевых адресов и вести аккуратные записи в какой-либо центральной точке, но также справляться с задачей реального конфигурирования тысяч узлов. Вы смогли бы отправить обученный персонал в каждый удаленный офис? Обучить сотрудников, которые уже работают там? Разработать документацию, которая (как предполагается) позволит конечным пользователям сконфигурировать свои собственные рабочие станции?

    Еще одной серьезной проблемой является разрешение имен при таком масштабе. Чтобы использовать TCP/IP с операционными системами Microsoft до Windows 2000, вам приходилось иметь средства сопоставления имен Net-BIOS с IP-адресами. В локальном сегменте сети это осуществлялось с помощью широковещательных сообщений (что само по себе могло создавать проблемы сетевого трафика). Для соединения с машинами в других сетях на каждой рабочей станции требовались записи файла LMHOSTS, где указывались имена NetBIOS и соответствующие IP-адреса. Задача поддержки этих файлов на таком большом числе компьютеров требует еще больших затрат, чем назначение IP-адресов.

    Для сотрудников Microsoft было ясно, что трудности, с которыми они сталкиваются, будут возникать в определенной степени при любой реализации TCP/IP в крупной корпоративной сети. Результатом усилий Microsoft совместно с другими разработчиками сетей и производителями программных продуктов стали модули DHCP и WINS, которые предоставляли сетевым пользователям соответственно службы конфигурирования IP-адресов и разрешения имен. Используя эти службы, вы могли в огромной степени снизить административную нагрузку, возникающую в большой сети TCP/IP и избавить своих пользователей от необходимости знать что-либо о протоколах и IP-адресах.

    Комплект TCP/IP сильно изменился с появлением Windows 2000 и последующим выпуском Windows Server 2003. В него вошло много новых средств и улучшений по сравнению с предыдущими реализациями. TCP/IP Windows Server 2003 был стандартизован. Он больше не основывается на NetBIOS для разрешения имен. Вместо этого основным механизмом разрешения имен является система доменных имен DNS (Domain Name System).

    Термин TCP/IP не охватывает весь этот комплект. На самом деле это набор из более чем дюжины протоколов, а TCP и IP – это только два из них. Стандарты, на которых основываются эти протоколы, публикуются группой IETF (Internet Engineering Task Force) в форме документов RFC (requests for comments). Если вас интересуют документы RFC, начните с сайта IETF, www.ietf.org, откуда вы можете переходить на другие сайты, содержащие документы RFC. На большинстве сайтов эти документы хранятся в каталоге верхнего уровня под названием RFC. Это в основном ASCII-файлы, и некоторые документы содержат рисунки, доступные в формате PostScript.

    Улучшения в TCP/IP Windows Server 2003

    Как и почти для всего в компьютерном мире, в TCP/IP постоянно вносятся изменения и улучшения, отвечающие постоянно растущим деловым потребностям. В этом разделе описываются некоторые из новых технологий TCP/IP, включенные в Windows Server 2003 (многие из них появились впервые в Windows 2000, но представлены здесь как "новые" для тех, кто переходит к Windows Server 2003 из Windows NT).

    IGMP Version 3

    Протокол IGMP (Internet Group Management Protocol) Version 3 позволяет определять членство в группах для групповых сообщений. Хосты могут указывать, что они заинтересованы в получении трафика групповых сообщений из определенных источников. Это средство препятствует тому, чтобы поддерживающие групповую доставку маршрутизаторы не передавали групповой трафик в подсеть, где нет хостов, которым требуется получать групповой трафик.

    Альтернативная конфигурация

    Альтернативные конфигурации TCP/IP – это новая возможность для семейства Windows (Windows Server 2003 и Windows XP). Альтернативная конфигурация означает, что компьютер может иметь альтернативную конфигурацию TCP/IP – вручную сконфигурированный IP-адрес, который может использоваться в отсутствие сервера DHCP. Без альтернативной конфигурации TCP/IP использует по умолчанию средство автоматической IP-адресации Automatic Private IP Addressing (APIPA), чтобы назначить уникальный IP-адрес в диапазоне от 169.254.0.1 до 169.254.255.254 с маской подсети 255.255.0.0.

    Возможность иметь альтернативную настройку – это преимущество типа "два средства по цене одного" для пользователей компьютеров, которые подсоединяются более чем к одной сети, в одной из которых или в обеих нет сервера DHCP. Например, мобильные пользователи часто подсоединяются к офисной сети, а также используют свои компьютеры в своих домашних сетях. Многие мобильные пользователи ездят в филиалы своих компаний или к клиентам, где им нужно подключаться к местным сетям. В одном из мест для лэптопа этого пользователя используется конфигурация TCP/IP, предусматривающая использование DHCP. В другом месте, если нет сервера DHCP, лэптоп автоматически использует альтернативную конфигурацию, выполняя доступ к устройствам домашней сети и к интернету. Такой пользователь имеет доступ к обеим сетям без необходимости изменения настроек TCP/IP вручную и последующей перезагрузки.

    Хотя ваш компьютер Windows Server 2003 вряд ли является лэптопом, вам как администратору может потребоваться настройка компьютера Windows XP какого-либо пользователя для альтернативной конфигурации. Выполните для этого следующие шаги.

  • Откройте диалоговое окно Properties для объекта Local Area Connection (Соединение локальной сети).
  • Во вкладке General (Общие) выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • Выберите вариант Obtain an IP address automatically (Получать IP-адрес автоматически), что вызовет появление вкладки Alternate Configuration (Альтернативная конфигурация) в этом диалоговом окне.
  • Перейдите во вкладку Alternate Configuration (рис 1.1).
  • Выберите вариант User Configured (Задается пользователем) и введите требуемую информацию.
  • (рис 1.1) Задайте заранее альтернативный IP/адрес, чтобы упростить подсоединение ко второй локальной сети

    Отключение "NetBIOS over TCP/IP"

    Windows 2000 позволяет вам отключать службу NetBT (NetBIOS over TCP/IP) для любого отдельного сетевого соединения. Это полезно для компьютеров с двумя сетевыми подключениями, взаимодействующих с компьютерами, у которых отключена NetBT (например, прокси-серверы или защитные хосты в среде с брандмауэрами, где поддержка NetBT нежелательна).

    Например, серверам с двумя сетевыми подключениями, которые подсоединены как к внутренней сети, так и к интернету, не требуется NetBT со стороны интернета. Возможность отключения NetBT для соединения с Internet означает, что компьютер может продолжать работать как сервер WINS или клиент во внутренней сети. Это повышает как уровень производительности, так и уровень безопасности.

    По умолчанию Windows Server 2003 задает состояние NetBT как "использовать DHCP, иначе включить NetBT". Чтобы увидеть или изменить эту настройку, выполните следующие шаги.

  • Откройте диалоговое окно Properties для соответствующего соединения (обычно это требуется сделать для соединения с интернетом).
  • Выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • Щелкните на кнопке Advanced (Дополнительно), чтобы открыть диалоговое окно Advanced TCP/IP Settings.
  • Перейдите во вкладку WINS, чтобы увидеть текущую настройку NetBIOS (рис 1.2).
  • При необходимости внесите изменения.
  • (рис 1.2) Вручную отключите (Disable) или включите (Enable) NetBIOS over TCP/IP (NetBT)

    Автоматическое определение метрики маршрутизации

    Если у вас несколько интерфейсов, то по умолчанию TCP/IP теперь автоматически рассчитывает метрику маршрутизации, исходя из скорости интерфейса. Метрика интерфейса определяется как значение колонки Metric для таблицы маршрутизации. Это обеспечивает использование самого быстрого интерфейса для направления трафика к шлюзу по умолчанию.

    Автоматическое конфигурирование частных адресов

    Automatic Private IP Addressing (APIPA) – это средство, которое позволяет вам автоматизировать конфигурирование IP-адресов для сетей, имеющих одну подсеть и не содержащих сервера DHCP. По умолчанию Windows Server 2003 активизирует APIPA. Это средство действует следующим образом. Компьютер пытается обратиться к какому-либо серверу DHCP в сети, чтобы получать конфигурацию для каждого сетевого соединения автоматически. Затем происходят следующие действия.

  • Если какой-либо сервер DHCP найден и аренда конфигурации проходит успешно, то происходит конфигурирование TCP/IP.
  • Если сервер DHCP не найден, то интерфейс компьютера проверяется на наличие альтернативной конфигурации. Если она найдена, то ее настройки используются, чтобы сконфигурировать TCP/IP для этого интерфейса. (См. выше раздел "Альтернативная конфигурация".)
  • Если для данного интерфейса нет альтернативной конфигурации, то для автоматического конфигурирования TCP/IP используется APIPA. Это означает, что Windows задает адрес из зарезервированного диапазона IP-адресов (от 169.254.0.1 до 169.254.255.254). Для маски подсети задается значение 255.255.0.0. (Формально этот адрес считается временным, пока не найден сервер DHCP, и действительно, система продолжает искать его.)
  • Вы можете отключить APIPA на компьютере путем редактирования реестра:

  • Перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
  • Создайте новый элемент типа REG_DWORD с именем IPAutoconfigurationEnabled. (Этот элемент данных не существует, если вы не добавили его, поскольку Windows автоматически включает APIPA.)
  • Введите значение 0, чтобы отключить APIPA.
  • Чтобы снова включить это средство, измените значение на 1.
  • Этот раздел имеет довольно сложную структуру. Вы должны помнить, что он содержит настройки, которые применяются ко всему компьютеру. Однако в нем имеется подраздел с именем Interfaces, имеющий отдельные подразделы для каждого отдельного интерфейса TCP/IP на данном компьютере.

    Если в каком-либо из подразделов Имя_интерфейса имеется элемент IPAutoconfigurationEnabled, то именно это значение используется для данного интерфейса (а не значение одноименного элемента в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ). Поэтому важно проверить значения во всех этих подразделах, чтобы начали действовать именно те изменения, которые вы вносите.

    Поддержка новых стандартов TCP/IP

    Новые документы RFC для TCP/IP появляются все время, и в этом разделе рассматриваются некоторые новые RFC, которые поддерживаются в Windows Server 2003. Вы можете получать информацию по RFC на веб-сайте RFC Editor по адресу www.rfc-editor.org. Этот сайт поддерживается членами ISI (Information Services Institute), которые публикуют упорядоченный список всех RFC.

    Поддержка больших окон TCP/IP

    Размер окна связан с максимальным количеством пакетов, которые могут быть отправлены без ожидания подтверждения. Без поддержки больших окон максимальный размер окна обычно фиксирован и равен 64 Кб. Это неэффективно, если между отдельными отправителями и получателями передаются большие объемы данных. При использовании поддержки больших окон вы можете динамически задавать размер окна, используя опции конфигурирования TCP, что повышает пропускную способность сети.

    Примечание. Большие окна TCP определены в документе RFC 1323, "TCP Extensions for High Performance".

    Поддержка выборочных подтверждений

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

    Без этого средства подтверждения являются накопительными. TCP подтверждает получение только тех сегментов, которые согласуются с предыдущими подтвержденными сегментами. Сегменты, которые получены не по порядку, не подтверждаются явным образом. TCP требует, чтобы сегменты подтверждались в течение достаточно короткого промежутка времени, иначе недостающий сегмент и все следующие за ним сегменты передаются заново. Это означает, что сегменты могут быть успешно получены, и все-таки будут переданы снова.

    Использование выборочных подтверждений означает, что только те данные, которые не были получены, требуют повторной передачи, что повышает эффективность использования пропускной способности сети

    Примечание. Выборочные подтверждения определены в документе RFC 2018, "TCP Selective Acknowledgement Options".

    Поддержка улучшений в оценке времени на передачу и подтверждение приема

    TCP использует значение времени на передачу и подтверждение приема (RTT – round-trip time) для оценки времени, которое требуется для взаимного обмена данными между отправителем и получателем. Windows Server 2003 поддерживает использование нового средства TCP RTT Measurement, которое улучшает способ оценки этого времени. Это, в свою очередь, помогает настраивать таймеры повторной передачи, что повышает скорость и производительность TCP.

    Этот новый способ особенно полезен для более длинных каналов, например, каналов глобальной сети (WAN) с большим числом сегментов либо беспроводных или спутниковых каналов связи.

    Примечание. Определение этого метода дается в документе RFC 1323 "TCP Extensions for High Performance".

    Поддержка обнаружения маршрутизаторов с помощью ICMP

    Средство обнаружения маршрутизаторов с помощью ICMP (Internet Control Message Protocol) использует управляющие сообщения ICMP для обнаружения шлюза по умолчанию в каком-либо сегменте сети, если шлюз по умолчанию не был сконфигурирован вручную и не был назначен через DHCP. Используются два сообщения ICMP:

  • Запрос поиска маршрутизаторов, отправляемый хостом для обнаружения маршрутизаторов в сети.
  • Объявление маршрутизатора, которое отправляется каким-либо маршрутизатором. Это сообщение отправляется в ответ на запрос поиска маршрутизаторов, и оно отправляется периодически, чтобы извещать хосты в сети, что имеется данный маршрутизатор.
  • По умолчанию Windows Server 2003 отключает обнаружение маршрутизаторов с помощью ICMP для хостов, если хост не получил опцию Perform Router Discovery (Выполнять обнаружение маршрутизаторов) от сервера DHCP. Для Windows Server 2003 с запущенной службой RAS вы можете включить поддержку обнаружения маршрутизаторов с помощью ICMP следующим образом.

  • Откройте оснастку Routing and Remote Access из меню Administrative Tools.
  • В дереве консоли раскройте Server, затем раскройте IP Routing и выберите General.
  • В правой панели щелкните правой кнопкой на соответствующем сетевом адаптере (NIC) и выберите в контекстном меню пункт Properties.
  • Во вкладке General установите флажок Enable Router Discovery Advertisements (Включить объявления для обнаружения маршрутизатора).
  • В поле Advertisement Lifetime (minutes) [Время действия объявления (в минутах)] задайте время, по прошествии которого с момента последнего объявления маршрутизатора этот маршрутизатор считается отключенным.
  • В поле Level of preference (Уровень предпочтения) задайте уровень для данного маршрутизатора, при котором он считается шлюзом по умолчанию для хостов.
  • В поле Minimum time (minutes) [Минимальное время (в минутах)] задайте минимальный промежуток времени, после которого маршрутизатор периодически отправляет объявления ICMP.
  • В поле Maximum time (minutes) задайте максимальный промежуток времени, после которого маршрутизатор периодически отправляет объявления ICMP.
  • Примечание. Реально маршрутизатор периодически отправляет объявления ICMP в некоторый случайный момент времени между минимальным и максимальным промежутком. Примечание. Обнаружение маршрутизаторов с помощью объявлений ICMP описано в документе RFC 1256, "ICMP Router Discovery Messages".

    Поддержка IP Version 6

    Одной из основных причин использования IPv6 является резкий рост числа зарегистрированных IP-адресов. Принципы, лежащие в основе IPv6, аналогичны существующей схеме IP-адресации (IPv4), но вместо 32-битной адресации используется 128-битная адресация. Это существенно увеличивает количество доступных для использования IP-адресов. Для 128-битной адресации в IPv6 используются восемь наборов шестнадцатеричных цифр, разделенных символом "двоеточие" (:). Таким образом, адрес IPv6 может иметь следующий вид.

    4321:0:1:2:3:4:567:89ab

    В IPv6 определен также новый тип ресурсной записи, AAAA, для работы с новым 128-битным форматом адресации. Кроме того, создается ip6.int – новое пространство имен для обратного поиска (сопоставления имен IP-адресам).

    На данный момент в США разгорелась полемика, нужен ли реально IPv6, и основным доводом против его ввода является то, что на самом деле количество устройств, которым требуются открытые (допустимые для интернета) IP-адреса, меньше, чем утверждают сторонники IPv6. Сторонники IPv4 указывают на функции внутренних частных IP-адресов (такие как DHCP) как средство, которое позволит обойтись существующим количеством доступных открытых адресов. Специалисты из Европы и Азии больше склоняются к переходу на IPv6, чем администраторы в США. Они указывают, что в интернете скоро будет миллиард пользователей, и каждый пользователь может иметь больше одного устройства, выполняющего доступ в интернет. На данный момент, как они считают, мы явно ощущаем нехватку IP-адресов.

    Одним из интересных разрабатываемых приложений IPv6, особенно в Азии, является его использование для одноранговых сетей, включающих некомпьютерные устройства. Для связи с вашими бытовыми приборами, системами безопасности и другими устройствами через ваш компьютер (дома или в офисе) каждое устройство получает адрес IPv6. (Я представляю себе свою микроволновую печь, на дисплее которой показаны часы, отсчет времени, когда подогревается мой кофе, и ее адрес IPv6.)

    Пока не началось широкое распространение IPv6, я не хочу уделять много места описанию всех деталей запуска IPv6 в вашей сети (вы должны задать маршрутизаторы, DNS и сетевые адаптеры). Но если вам все же нужен IPv6 на вашем компьютере Windows Server 2003 (например, чтобы включать домашнюю микроволновую печь перед вашим уходом с работы), то вы должны добавить IPv6 к вашему сетевому адаптеру (NIC) путем добавления протокола Microsoft TCP/IP version 6 из диалогового окна Select Network Protocol.

    Улучшения в TCP/IP

    Если вы переходите к Windows Server 2003 из Windows NT, то вам необходимо знать об улучшениях (дополнениях) TCP/IP, которые появились с выпуском Windows 2000 (и, конечно, представлены в Windows Server 2003). Соответствующий обзор приводится в таблице 1.1.

    Улучшения в TCP/IP
    Средство Описание
    Internet Printing Protocol Позволяет вам направлять задания печати непосредственно по URL-адресу и управлять печатающими устройствами через интранет или интернет.
    Quality of Service (QoS) Поддерживает стандарты, связанные с качеством обслуживания (QoS), такие как Resource Reservation Protocol (RSVP), Differentiated Quality of Service и 801.1p, чтобы получать более высокие уровни качества обслуживания. QoS интерпретируется как некое "соглашение" между двумя и более машинами, которое гарантирует определенный ожидаемый уровень пропускной способности, управления трафиком и т.д. Однако это средство забирает довольно много ресурсов.
    Telephony Application Programming Inteface (TAPI) 3 Улучшенная поддержка средств телефонии.
    IP Security (IPSec) Технология шифрования для IP. Часто используется в виртуальных частных сетях (VPN). Более подробные сведения по вопросам безопасности см. в лекции 8.
    Layer Two Tunneling Protocol (L2TP) Расширение возможностей для защищенных виртуальных частных сетей.
    NDIS 5 Новая сетевая архитектура, которая поддерживает множество дополнений, таких как групповые сообщения, резервирование доли пропускной способности, управление электропитанием и т.д.
    Automatic Client Configuration (Автоматическое конфигурирование клиента) Способность клиента DHCP конфигурировать самого себя для работы в сети, когда нет связи с сервером DHCP.
    Поддержка высокоскоростных сетей Поддержка высокоскоростных сетей (определенных в RFC 1323) в увеличении производительности и масштабируемости. Сюда включается поддержка Selective Acknowledgements (SACK), IEEE 1394, беспроводных сетей, IP over ATM (RFC 1577) и многих других средств.
    Internet Group Management Protocol version 2 (IGMPv2) Позволяет компьютерам использовать технологии на основе групповых сообщений, такие как службы потокового медиа.
    Protocol Stack Tuning (Настройка стека протоколов) Windows автоматически регулирует настройки протоколов, такие как увеличение размера окна TCP по умолчанию для повышения производительности сети.
    Plug and Play Networking Автоматическое обнаружение сетевого оборудования, такого как сетевые адаптеры и адаптеры PCMCIA, без ручного вмешательства.
    Улучшения в DHCP Новые средства для DHCP, включая интеграцию с DNS, улучшение средств мониторинга и отчетов об использовании, обнаружение поддельных серверов DHCP и многое другое.

    TCP/IP и сетевая модель Windows Server 2003

    Сетевая архитектура Windows Server 2003 особенно подходит для использования различными наборами протоколов. Имея интерфейс Transport Device Interface (TDI) вверху транспортного уровня модели OSI и интерфейс Network Device Interface Specification (NDIS) внизу сетевого уровня, основные транспортные протоколы большей частью изолированы от остальной части сетевого стека.

    Любые допустимые протоколы, которые могут обращаться к этим двум интерфейсам, могут использоваться для отправки данных через сеть. Конечно, различные протоколы могут одновременно функционировать в Windows Server 2003, требуя компромисса между взаимодействием платформ и производительностью сетевого трафика.

    Поверх TDI находятся интерфейсы пользовательского режима (их называют также интерфейсами прикладного программирования, или API ). К этим интерфейсам обращаются приложения, когда им требуются сетевые службы. Во главе этих интерфейсов находятся интерфейс NetBIOS, который по-прежнему поддерживается системой Windows Server 2003 для файловых служб, и Windows Sockets (Winsock), который является стандартным интерфейсом для многих утилит TCP/IP и Internet в целях обратной совместимости с клиентами предыдущих версий Windows. Поддерживаются также следующие API.

  • Удаленные вызовы процедур (RPC – Remote Procedure Calls)
  • Блоки серверных сообщений (SMB – Server Message Blocks)
  • Именованные каналы (Named Pipes)
  • Почтовые слоты (Mail Slots)
  • Эти API не обязательно связаны с определенным набором протоколов. Например, в первоначальном выпуске системы Windows NT можно было передавать данные только из ее интерфейсов API в протокол NetBEUI и затем драйверу NDIS. В этой упрощенной системе не было функций TCP/IP, но она предоставляла определенные сетевые услуги.

    TDI предоставляет распределенный интерфейс, который позволяет направлять сетевые запросы от различных API тому протоколу, который требуется для доступа к нужному ресурсу. Например, NetBIOS-запросы файлов можно направлять протоколам TCP/IP при доступе к диску Windows в сети или протоколу NWLink, когда приложению требуется файл, находящийся на сервере NetWare. Несколько приложений, работающих в Windows Server 2003, могут обрабатывать несколько сетевых запросов одновременно, а это означает, что вызовы различных функций могут передаваться через TDI в стек протоколов TCP/IP либо в стек NWLink или одновременно в оба стека.

    Все стеки протоколов, действующие на компьютере Windows Server 2003, передают свои запросы сетевых услуг в одно место – интерфейс NDIS. NDIS – это стандарт, используемый для создания драйвера устройства, который обеспечивает доступ к сетевому оборудованию. Сетевую архитектуру Windows Server 2003 можно рассматривать как последовательность "суживающих" процедур. Приложения вверху этой модели генерируют запросы, которые могут использовать любой из нескольких API. Затем эти API передают запросы меньшему числу протоколов (обычно одному или двум). Различные виды запросов могут смешиваться в отдельных стеках протоколов; в интерфейсе NDIS они смешиваются в один поток и компонуются в виде дискретных пакетов, которые передаются через сетевой адаптер и затем самому сетевому носителю.

    Тем самым протоколы TCP/IP в первую очередь используются для перемещения запросов от TDI к интерфейсу NDIS, упаковывая их в дискретные блоки, которые называются дейтаграммами, что позволяет эффективно передавать эти запросы в их место назначения. Этот процесс, конечно, выполняется в обратном порядке, когда данные поступают на рабочую станцию. Можно считать, что упаковка состоит из трех основных функций.

  • Адресация. Для отправки данных другому компьютеру в сети должны существовать средства, с помощью которых может быть уникально идентифицирована точка назначения. TCP/IP предоставляет свою собственную систему идентификации в форме IP-адреса для каждой машины в сети.
  • Маршрутизация. Протокол канального уровня (Data Link), такой как Ethernet, не занимается конечной доставкой сетевых пакетов, а только их пересылкой следующей машине в сети. TCP/IP предоставляет средства, с помощью которых сетевой трафик эффективно и надежно маршрутизируется через несколько сетевых сегментов в место назначения.
  • Мультиплексирование. Поскольку такая операционная система, как Windows Server 2003, может выполнять несколько программ одновременно, сетевые запросы мультиплексируются через кабель (то есть пакеты из различных источников и с различными точками назначения смешиваются в потоке сетевых данных). Поэтому, чтобы запросы могли быть переданы соответствующему прикладному процессу на целевом компьютере, должен быть идентифицирован каждый пакет. TCP/IP выполняет эту задачу, назначая каждому процессу номер порта, который в сочетании с IP-адресом уникально идентифицирует в сети конкретный процесс, которому должен быть доставлен пакет. Комбинация IP-адреса и номера порта называется сокетом.
  • Стек протоколов TCP/IP

    Протоколы TCP/IP, реализованные в Windows Server 2003, можно разбить на четыре функциональных уровня, примерно соответствующих уровням эталонной модели OSI.

  • Прикладной (Application)
  • Транспортный (Transport)
  • Сетевой (Network; известный также как уровень интернет)
  • Сетевого доступа (Network Access)
  • Как и в эталонной модели OSI, функции различных протоколов TCP/IP разбиваются на четыре уровня, которые делают процесс инкапсуляции (упаковки) данных более структурированным. По мере того, как сообщение проходит из пользовательского интерфейса вверху сетевого стека к реальному сетевому носителю (обычно это кабель) вниз, данные, обработанные протоколом верхнего уровня, повторно инкапсулируются протоколами, действующими на каждом следующем уровне. В результате получается составной пакет, который передается целевому компьютеру, где весь процесс повторяется в обратном порядке по мере прохождения сообщения вверх по этим уровням.

    Изучение уровней, на которых действует этот комплект протоколов, позволяет понять, каким образом они реализованы для использования в сетях Windows Server 2003. В следующих разделах дается обзор уровней TCP/IP.

    Уровень сетевого доступа (Network Access)

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

    Каждый тип сети – Ethernet или какой-либо еще – имеет свой собственный способ идентификации компьютеров в сети. В большинстве современных типов сетей эта идентификация осуществляется с помощью адреса устройства, который кодируется в каждом сетевом адаптере его изготовителем. Этот MAC-адрес (Media Access Control address) используется в крайнем фрейме каждого сетевого пакета для идентификации компьютера, которому он должен быть передан.

    Поэтому для дейтаграммы IP, которая должна быть отправлена через сеть, должен существовать способ, позволяющий определить, какой MAC-адрес соответствует заданному IP-адресу. Это задача протоколов уровня сетевого доступа, из которых наиболее известен протокол разрешения адресов ARP (Address Resolution Protocol).

    ARP

    ARP действует между сетевым и канальным уровнями сетей Ethernet. Он не может действовать, пока не получит IP-адрес компьютера, которому отправлена дейтаграмма. Дейтаграмма не может быть передана через сеть, пока ARP не снабдит канальный уровень адресом целевого устройства.

    Когда ARP получает дейтаграмму от сетевого уровня, он считывает IP-адрес точки назначения из заголовка IP и затем формирует пакет разрешения запроса адреса (ARP-пакет), который распространяется путем широковещательной передачи во всей локальной сети. Запрос разрешения адреса содержит IP-адрес целевого компьютера (если он находится в том же сегменте сети) или IP-адрес шлюза по умолчанию для соответствующей рабочей станции (в противном случае).

    Каждый компьютер в данном сегменте сети обрабатывает пакет ARP и записывает содержащийся в нем IP-адрес. Если компьютер обнаруживает в пакете ARP свой собственный IP-адрес, то он отвечает отправителю, указывая адрес устройства, соответствующий его сетевому адаптеру. ARP передает этот адрес протоколу канального уровня, который использует его при разбиении пакета на фреймы и затем передает его через сеть.

    ARP также поддерживает кэш IP-адресов и соответствующие адреса устройств, чтобы снизить количество избыточных широковещательных сообщений, передаваемых через сеть. Кэш стирается при каждом выключении или перезагрузке компьютера, что препятствует неверной передаче, которая может быть вызвана изменениями в сетевом оборудовании.

    Примечание. Широковещательные сообщения ARP ограничиваются локальным сетевым сегментом. Протокол канального уровня отвечает только за передачу фрейма следующему компьютеру в линии. Во многих случаях это может быть шлюз в другой сетевой сегмент, а не компьютер, IP-адрес которого указан как точка назначения данного сообщения.

    ARP – это лишь один из многих протоколов уровня сетевого доступа, предназначенных для поддержки чрезвычайно обширного и разнообразного множества платформ, которые могут использовать TCP/IP.

    Сетевой уровень (Network Layer)

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

  • Упаковка трафика более высоких уровней в дейтаграммы, которые являются базовыми единицами передачи TCP/IP.
  • Реализация системы адресации TCP/IP.
  • Маршрутизация дейтаграмм между сетями.
  • Фрагментация и дефрагментация дейтаграмм в соответствии с ограничениями типов сетей между исходной и конечной точками.
  • Передача данных между транспортным уровнем и уровнем сетевого доступа (в обоих направлениях).
  • IP – это протокол без установления соединения (connectionless) и поддержки средств надежности. Слова "без установления соединения" означают, что он передает пакеты без проверки того, что целевой компьютер работает и готов к приему данных. Отсутствие средств надежности означает, что не существует внутренних механизмов, которые обеспечивают обнаружение и коррекцию ошибок. Эти очевидные недостатки на самом деле не представляют какой-либо проблемы, поскольку IP можно всегда использовать в сочетании с другими протоколами, которые могут обеспечивать эти функции. Основой протокола IP является обеспечение только обычных функций, которые требуются для всех видов передачи данных, чтобы можно было выбрать подходящий транспортный протокол, отвечающий конкретным требованиям передаваемых данных.

    Маршрутизация IP

    IP также отвечает за маршрутизацию дейтаграмм в смежные сегменты сети. Каждый компьютер, работающий с TCP/IP в интерсети, имеет доступ к одному или нескольким шлюзам, которые он использует для передачи данных компьютерам других сетей. Шлюз в терминологии TCP/IP – это устройство, которое передает пакеты между двумя и более сетями. Этот термин не обязательно подразумевает существование трансляции протоколов (в отличие от обычной сетевой терминологии). Систему с TCP/IP, которая используется как шлюз между источником и целью передачи, называют также промежуточной системой (источник и цель называют конечными системами ).

    Трафик TCP/IP в промежуточной системе доходит до сетевого уровня, но не выше. Протоколу IP известно только о компьютерах в его локальном сетевом сегменте и о смежных сегментах, доступ к которым осуществляется через локальные шлюзы. Когда протокол IP получает пакет, предназначенный для компьютера в другом сегменте, он отправляет его локальным шлюзам, чтобы они продолжили передачу этого пакета. Этот конкретный шлюз выбирается по следующим причинам.

  • Он обеспечивает непосредственный доступ к сети, в которой находится целевой компьютер.
  • Он зарегистрирован в таблице маршрутизации данного компьютера как наиболее подходящий маршрут к целевой сети.
  • Это шлюз по умолчанию данного компьютера.
  • Заголовок IP

    Как и любой сетевой протокол, IP помещает свой собственный заголовок в каждый пакет, который он получает от вышележащих уровней, инкапсулируя его для передачи и вставляя информацию, которая требуется для выполнения всех функций протокола. Заголовок IP содержит 20 или 24 байта в зависимости от включения определенных возможностей. Байты в терминологии TCP/IP называются октетами, и заголовок разбивается на 5 или 6 32-битных слов. После включения заголовка пакет называют дейтаграммой, и он передается вниз на уровень сетевого доступа (Network Layer). Дейтаграмма инкапсулируется снова канальным уровнем (Data Link), прежде чем начинается ее передача через сеть.

    Заголовок IP состоит из шести полей.

  • Первое слово
  • Версия (Version, 4 бита). Указывает версию заголовка IP.
  • Длина заголовка (Internet Header Length, 4 бита). Общая длина заголовка IP (количество 32-битных слов), указывая тем самым, имеется ли необязательное шестое слово.
  • Тип обслуживания (Type of Service [TOS], 8 битов). Указывает нужный приоритет сетевого обслуживания для данной дейтаграммы.
  • Общая длина (Total Length, 16 битов). Указывает общую длину дейтаграммы в октетах (байтах); может использоваться, чтобы определять, нужна ли фрагментация дейтаграммы для выполнения передачи.
  • Второе слово
  • Идентификация (Identification, 16 битов). Если дейтаграмма фрагментируется или дефрагментируется, то данное поле указывает дейтаграмму, которой принадлежит определенный фрагмент.
  • Флаги (Flags, 3 бита). Указывает, может ли данная дейтаграмма быть фрагментированной и получены ли все фрагменты, образующие исходную дейтаграмму.
  • Смещение фрагментации (Fragmentation Offset, 13 битов). Используется для сборки фрагментов в нужном порядке; это поле указывает начальную точку (измеряется 64-битными блоками) данного фрагмента дейтаграммы.
  • Третье слово
  • Время действия (Time to Live, 8 битов). Указывает, как долго (в секундах) данная дейтаграмма может оставаться активной в интерсети. Это позволяет удалять дейтаграммы, которые невозможно доставить, после заданного периода времени. Каждая система, которая обрабатывает дейтаграмму, уменьшает это значение как минимум на секунду.
  • Протокол (Protocol, 8 битов). Указывает протокол на транспортном уровне целевого компьютера, которому должна быть доставлена дейтаграмма.
  • Контрольная сумма заголовка (Header Checksum, 16 битов). Используется для проверки того, что заголовок IP (но не данные) переданы правильно. Эта контрольная сумма проверяется каждой промежуточной системой и пересчитывается, прежде чем выполнить отправку в следующий узел.
  • Четвертое слово
  • Исходный адрес (Source Address, 32 бита). IP-адрес передающего компьютера.
  • Пятое слово
  • Целевой порт (Destination Address, 32 бита). IP-адрес конечной системы, которой отправлена дейтаграмма.
  • Шестое слово (необязательное)
  • Параметры (Options, переменной длины). Задает параметры для обслуживания маршрутизации, безопасности и временных меток в передачах IP. Это поле тоже не является обязательным, но должно поддерживаться всеми реализациями IP.
  • Заполнитель (Padding, переменной длины). Нули, используемые для заполнения остатка шестого слова до 32 битов.
  • Хотя протокол IP наиболее активно используется протоколами TCP/IP, сам IP не может справляться с некоторыми ситуациями, встречающимися во время передачи дейтаграмм. В этих случаях требуется "вспомогательный" протокол, выполняющий дополнительные функции управления передачей.

    ICMP (Internet Control Message Protocol). ICMP действует на сетевом уровне. Он используется для выполнения ряда диагностических и административных функций, которые помогают в передаче пакетов IP. Например, утилита ping использует пакеты ICMP для проверки существования определенных IP-адресов в данной сети.

    Аналогичные пакеты ICMP используются также для предоставления компьютеру-отправителю отчетов о состоянии передачи, например:

  • сообщения, что целевой адрес дейтаграмм недоступен, указывая далее, какой элемент целевой доставки недоступен, – сеть, хост, протокол или порт;
  • сообщения ICMP типа Source Quench ("Замедление источника"), указывающие, что промежуточная или конечная система переполнена поступающими пакетами. Это позволяет отправившему сообщение узлу инициировать процедуры управления потоком, снижающие скорость передачи, пока не исчезнут сообщения этого типа;
  • отчеты о том, что пакеты были исключены промежуточной или конечной системой из-за повреждения заголовка пакета;
  • предупреждения, что дейтаграммы должны быть фрагментированы, чтобы они могли успешно дойти до целевого узла.
  • Сообщения ICMP типа Redirect (Перенаправление) являются рекомендациями по маршрутизации, информирующими узел-отправитель об условиях вне смежных сегментов сети. Если передающий компьютер находится в сегменте, где имеется более одного применимого шлюза, то эти пакеты позволяют отправителю выбирать шлюз, который обеспечивает более эффективный маршрут к целевому узлу.

    Эти функции не следует путать с функциями действительно ориентированной на соединения службы и средств обнаружения ошибок. ICMP помогает в доставке дейтаграмм IP на целевой компьютер, но не гарантирует надежности обслуживания.

    Транспортный уровень (Transport Layer)

    Как и в эталонной модели OSI, транспортный уровень TCP/IP находится поверх сетевого уровня. Транспортные протоколы инкапсулируются внутри дейтаграмм IP для передачи через сеть и предоставляют различные уровни обслуживания в зависимости от требований соответствующего приложения. Два основных протокола, которые действуют на транспортном уровне, это TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Они подробно описываются в следующих двух разделах. TCP/IP применяется в тех случаях, когда требуется более надежное обслуживание, и UDP – в тех случаях, когда гарантированная доставка не является критически важным требованием. В поле Protocol заголовка IP указывается, какой транспортный протокол передается в дейтаграмме, чтобы принимающая рабочая станция знала, как обрабатывать данный пакет.

    TCP (Transport Control Protocol)

    TCP – это основной ориентированный на соединения надежный протокол, используемый в передаче данных TCP/IP. Приложения используют его в ситуациях, требующих передачи данных, которые можно проверить на полную точность, например, при ftp-пересылке файлов. В отличие от IP передача данных TCP никогда не начинается, пока не будет выполнено трехстороннее квитирование (three-way handshake) с целевым компьютером. В результате создается виртуальное соединение между двумя компьютерами, то есть заранее созданное "соглашение" между этими двумя машинами для обмена пакетами. После установления соединения все дейтаграммы, передаваемые в течение данного сеанса, считаются сегментами этой передачи. Весь набор дейтаграмм, передаваемых в течение всего сеанса, называется последовательностью.

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

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

    Заголовок TCP

    Заголовок TCP достаточно сложен ввиду большого числа функций, хотя он имеет тот же размер, что и заголовок IP. Заголовок TCP передается внутри заголовка IP и читается только конечной системой, получившей пакет. Поскольку целевая система должна подтвердить получение отправленных данных, TCP является двунаправленным протоколом. Один и тот же заголовок используется для отправки пакетов данных в одном направлении и передачи подтверждений в обратном направлении. Заголовок TCP форматируется следующим образом.

  • Первое слово
  • Исходный порт (Source Port, 16 битов). Указывает номер порта прикладного процесса на исходном компьютере, отправившего данные.
  • Целевой порт (Destination Port, 16 битов). Указывает номер порта прикладного процесса на целевом компьютере, который получит данные.
  • Второе слово
  • Порядковый номер (Sequence Number, 32 бита). Гарантирует, что сегменты будут обработаны в должном порядке на целевом компьютере за счет указания номера первого октета данных сегмента во всей последовательности.
  • Третье слово
  • Порядковый номер подтверждения (Acknowledgement Number, 32 бита). Указывает порядковый номер для следующего сегмента, который будет получен целевым компьютером; является признаком того, что все предыдущие сегменты были правильно получены и подтверждены.
  • Четвертое слово
  • Смещение данных (Data Offset, 4 бита). Задает длину заголовка TCP (количество 32-битных слов), указывая тем самым начало поля данных и наличие шестого слова, если оно присутствует в заголовке.
  • Зарезервированное поле (Reserved, 6 битов). В настоящее время не используется; это значение должно быть равно нулю.
  • Управляющие биты (Control Bits, 6 битов). Двоичные флаги, которые можно устанавливать, чтобы указывать функцию или назначение сегмента:
  • URG: Имеют смысл данные поля Urgent Pointer
  • ACK: Имеют смысл данные поля Acknowledgement Number
  • PSH: Функция Push
  • RST: Повторно установить соединение
  • SYN: Синхронизировать номера в последовательности
  • FIN: Нет больше данных от отправителя
  • Окно (Window, 16 битов). Обеспечивает управление потоком, указывая количество октетов (начиная с номера, указанного в поле Acknowledgement Number), которые должны быть получены целевым компьютером от исходного компьютера.
  • Пятое слово
  • Контрольная сумма (Checksum, 16 битов). Обеспечивает коррекцию ошибок путем проверки заголовка TCP и полей данных, а также псевдозаголовка, содержащего адрес исходного компьютера, адрес целевого компьютера и название протокола из заголовка IP, а также суммарную длину пакета TCP. Псевдозаголовок позволяет транспортному уровню повторно проверить то, что дейтаграммы отправлялись соответствующему целевому компьютеру.
  • Указатель срочных данных (Urgent Pointer, 16 битов ). Если установлен управляющий бит URG, то в этом поле указывается местоположение срочных данных (относительно значения Sequence Number данного сегмента).
  • Шестое слово (необязательное)
  • Параметры (Options, переменной длины ). Необязательное поле, которое используется для указания максимальной длины сегмента, разрешенной компьютером-отправителем во время квитирования TCP (когда установлен управляющий бит SYN).
  • Заполнитель (Padding, переменной длины). Нули, используемые для заполнения остатка шестого слова до 32 битов.
  • Анатомия сеанса TCP

    Чтобы начать сеанс TCP, одна система-отправитель передает пакет, в котором установлен управляющий бит синхронизации (SYN) и содержится выбранный случайным образом порядковый номер. Система-получатель отвечает отправителю пакетом, в котором установлен управляющий бит ACK и указан ее собственный начальный порядковый номер, и затем возвращает бит синхронизации. Каждая из двух систем поддерживает свою собственную систему нумерации байтов в последовательности, зная также порядковые номера второй системы.

    Нумерация начинается с первого пакета и непрерывно наращивается обеими системами в течение всего соединения TCP. Когда передающий компьютер начинает передачу реальных данных, он указывает в каждом пакете порядковый номер первого байта, содержащего в этом пакете поля данных. Если пакеты поступают к получателю в неверном порядке, то система-получатель использует эти порядковые номера для перестановки пакетов в нужном порядке.

    Во время передачи данных передающая система вычисляет контрольную сумму каждого пакета и помещает результат в соответствующее поле заголовка TCP. Компьютер-получатель пересчитывает контрольную сумму для каждого полученного пакета и сравнивает результат со значением поля контрольной суммы. Если значения совпадают, пакет верифицируется как переданный без ошибок. Закончив отправку данных, передающий компьютер отправляет пакет с установленным битом FIN, прекращая соединение и заканчивая последовательность.

    Протокол UDP (User Datagram Protocol)

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

    UDP обычно не используется для передачи больших двоичных файлов данных, когда один неверный бит означает потерю файла. UDP чаще используется для передачи короткого запроса другому компьютеру. Если отправитель не получает никакого ответа, то запрос можно передать еще раз с использованием меньшего суммарного объема трафика, чем при установлении соединения TCP.

    Примечание. Некоторые приложения начали использовать UDP для потоковой передачи аудио и видео через Internet, поскольку объем управляющей информации здесь намного меньше, а также потому, что поток аудио или видео намного проще восстановить при случайной потере одного из пакетов, чем для большинства двоичных файлов.

    Заголовок UDP намного проще и короче, чем заголовок TCP. Он содержит следующую информацию.

  • Первое слово
  • Исходный порт (Source Port, 16 битов). Указывает номер порта прикладного процесса, инициировавшего UDP-передачу (необязательный параметр; заполняется нулями, если опущен).
  • Целевой порт (Destination Port, 16 битов). Указывает номер порта прикладного процесса на целевом компьютере, которому направлена UDP-передача.
  • Второе слово
  • Длина (Length, 16 битов). Указывает общую длину пакета UDP в октетах, включая данные, но исключая заголовок IP и любые фреймы канального уровня.
  • Контрольная сумма (Checksum, 16 битов). Указывает результат расчета контрольной суммы для заголовка UDP и данных плюс псевдозаголовок, содержащий поля IP Source Address, Destination Address и Protocol.
  • Прикладной уровень (Application Layer)

    В комплект TCP/IP включено много различных протоколов, которые действуют поверх интерфейса Transport Device Interface (TDI). Некоторые из них, такие как ftp и Telnet, сами являются как приложениями, так и протоколами, и включаются во многие реализации комплекта TCP/IP для предоставления пользователям любой платформы базовых служб пересылки файлов и эмуляции терминалов со стандартизованным интерфейсом.

    Общедоступные уровни. Другие протоколы прикладного уровня используются для предоставления определенных услуг TCP/IP программам. Например, протокол SMTP (Simple Mail Transfer Protocol) используется многими программами для отправки электронной почты через сети TCP/IP. Другие протоколы, такие как DNS (Domain Name System), предоставляют более "обобщенные" услуги. DNS используется многими приложениями для разрешения (преобразования) хост-имен интернета в IP-адреса.

    Скрытые уровни. Хотя приводившиеся до сих пор примеры достаточно хорошо известны, некоторые прикладные протоколы действуют почти невидимо для пользователя. Например, протокол RIP (Routing Information Protocol) рассылает другим компьютерам в сети информацию, которая помогает им принимать более обоснованные решения по маршрутизации.

    Как действует прикладной уровень. Прикладные протоколы логически ближе всего к пользовательскому интерфейсу, и они часто используются непосредственно с процессом, который генерирует запросы сетевых ресурсов. При обработке такого запроса он передается вниз по уровням сетевого стека и инкапсулируется с помощью различных протоколов, которые описаны в предыдущих разделах.

    Так, если вы подсоединяетесь к серверу ftp в интернете, чтобы загрузить с него файл, этот сервер ftp в удаленном сайте выполняет доступ к данному файлу и создает пакет, добавляя к нему заголовок прикладного протокола FTP. Весь пакет затем передается вниз транспортному уровню, где он становится полем данных в пакете TCP. На сетевом уровне пакет делится на блоки нужного размера для передачи через сеть. К каждому из них добавляется заголовок IP, после чего эти пакеты можно назвать набором дейтаграмм.

    За исключением небольших изменений в заголовках IP во время передачи этих дейтаграмм они не открываются, пока не поступят в место назначения. Пока они находятся в сети, самый внешний уровень пакетов данных, фрейм канального уровня, может изменяться несколько раз во время перемещения пакетов от сервера ftp к вашей рабочей станции. Дейтаграммы могут поступить на ваш компьютер в оболочке пакетов Ethernet, и они могут даже уйти в таком виде с сервера ftp, а "по дороге" между исходной и конечной системами может быть 20 или больше шлюзов, где работает огромное количество различных протоколов канального уровня.

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

    Все описанные в предыдущих разделах протоколы TCP/IP действуют совместно для передачи данных через сеть. По умолчанию Windows Server 2003 устанавливает их как часть стека сетевого обмена данными. В Windows Server 2003 часто ссылаются на TCP/IP как на один протокол, хотя на самом деле применяется целое семейство протоколов.

    Установка и конфигурирование TCP/IP

    TCP/IP стал предпочтительным протоколом со времен Windows NT 4, и он устанавливается во время установки самой операционной системы. Однако в Windows Server 2003 TCP/IP является необходимым условием вашего входа, использования Active Directory (AD), DNS (Domain Name System) и многого другого. Стек TCP/IP в Windows Server 2003 содержит поддержку всех протоколов, описанных в предыдущих разделах, а также большой набор служб и утилит, которые позволяют вам использовать TCP/IP, управлять им и устранять проблемы TCP/IP. Windows Server 2003 поставляется вместе с многими службами TCP/IP, которые помогают администрировать большое число пользователей TCP/IP в сети.

    Кроме того, TCP/IP можно устанавливать и после установки операционной системы, для чего нужно щелкнуть на кнопке Add на странице Local Area Connections Properties. Если вы использовали для взаимодействия с другими Windows-компьютерами вашей локальной сети другие протоколы, такие как NetBEUI, то я настоятельно рекомендую удалить их после того, как вы сконфигурируете все ваши машины для использования TCP/IP. Практика показывает, что число используемых протоколов должно быть сведено к минимуму.

    После установки TCP/IP (в процессе установки операционной системы или с помощью страницы Local Area Connections Properties) вы должны задать информацию, необходимую для идентификации вашей машины и ее подготовки к взаимодействию с остальными машинами сети TCP/IP. В Windows Server 2003 включается DHCP (Dynamic Host Configuration Protocol), позволяющий использовать какой-либо компьютер Windows Server 2003 для автоматического предоставления вашим компьютерам всех настроек конфигурации TCP/IP, которые им требуются. Использование сервера DHCP, который описывается в лекции 2, означает, что вы можете не знакомиться с настройками конфигурации, которые описываются в следующих разделах. Но чтобы вы полностью знали возможности TCP/IP, я опишу настройки, необходимые для эффективного обмена данных с помощью TCP/IP, а также использование этих настроек компьютерами для взаимодействия с сетью.

    Настройки, необходимые для использования TCP/IP в Windows Server 2003, конфигурируются на странице Internet Protocol (TCP/IP) Properties каждого сетевого устройства:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию
  • Предпочтительные и альтернативные серверы DNS
  • IP/адрес

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

    Примечание. В сети TCP/IP термин "хост" не обязательно является синонимом компьютера. Хост – это сетевой интерфейс, и на одном компьютере может быть несколько сетевых интерфейсов. В таком случае каждый хост должен иметь свой собственный IP-адрес.

    IP-адреса содержат 32 бита и представляются в виде четырех разделенных точками десятичных значений от 0 до 255 (по 8 бит каждое). Например, IP-адрес 192.168.1.146 эквивалентен следующему двоичному представлению

    11000000.10101000.00000001.10010010

    Если ваша сеть не подсоединена к интернету, то сетевые адреса могут назначаться отдельным хостам сетевыми администраторами. Это могут быть любые допустимые комбинации чисел, и каждый назначенный адрес должен быть уникальным для данной сети. Такая сеть называется незарегистрированной, поскольку она организована только в пределах вашего предприятия.

    Но если ваша сеть подсоединена к интернету, то вы должны иметь одну или несколько машин с зарегистрированными IP-адресами. Чтобы избежать дублирования адресов, вы должны регистрировать хосты интернета с помощью какой-либо уполномоченной организации интернет. В частной сети могут быть зарегистрированные адреса у всех хостов или может поддерживаться незарегистрированная сеть для внутренних пользователей и регистрироваться те машины, которые доступны непосредственно из интернета, например, серверы World Wide Web и ftp. В таком случае пользователи с незарегистрированными IP-адресами обычно выполняют доступ в интернет через брандмауэр или прокси-сервер, который препятствует несанкционированному доступу к локальной сети из внешних машин

    Конфигурируя компьютер для использования TCP/IP, вы должны использовать для этого запланированную группу адресов или использовать сервер DHCP Windows Server 2003, который назначает адреса автоматически из заданного вами пула адресов.

    Внимание. Ни в коем случае нельзя выбрать произвольный IP-адрес, чтобы просто посмотреть, как он действует. Конфликты IP-адресов – это наиболее распространенная проблема в сетях TCP/IP, и ее труднее всего устранить. Помните, что IP-адрес, который вы просто "заимствуете", может принадлежать другому компьютеру, и стек IP-адресов отключается в случае появления дубликатов.

    Маска подсети

    Маска подсети – это, может быть, наиболее сложный для понимания параметр конфигурирования TCP/IP. Люди видят значения, назначенные маске подсети, например, 255.255.255.0, и путают их с реальными IP-адресами.

    На самом деле маска подсети основывается на очень простом принципе. В предыдущем разделе говорилось, что IP-адрес идентифицирует как сеть, так и конкретный хост в этой сети. Единственное назначение маски подсети – это обозначить, какая часть IP-адреса идентифицирует сеть, в которой находится данный хост, и какая часть идентифицирует сам хост.

    Это проще понять, если рассматривать маску подсети в двоичном виде. Все IP-адреса – это 32-битные двоичные значения. Они записываются в десятичной форме только из соображений удобства. Маска подсети 255.255.255.0 выглядит следующим образом в двоичном виде:

    11111111.11111111.11111111.00000000

    Это означает для IP-адреса, связанного с этой маской, что все цифры со значением 1 идентифицируют сеть, а все нули идентифицируют хост в этой сети (единицы маскируют идентификатор сети). Таким образом, если IP-адрес машины – 123.45.67.89, то 123.45.67 идентифицирует сеть, и 89 идентифицирует хост.

    Типы IP/адресов

    Если вы поняли, для чего используется маска подсети, то дальше логично спросить, почему для идентификации различных сетей требуется различное количество цифр. Ответ на этот вопрос, как и на большинство вопросов по TCP/IP, нужно искать в интернете. Протоколы TCP/IP разрабатывались для структуры, которая теперь называется интернет. Хотя никто не ожидал столь стремительного роста интернета, эту структуру разрабатывали как сеть с высокой степенью масштабируемости, для которой требуется минимум централизованного администрирования.

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

    Для регистрации отдельных сетей было создано три различных класса сетей, определяющихся количеством хостов, подсоединенных к интернету. В таблице 1.2 приводятся эти классы вместе с их маской подсети, максимальным количеством возможных сетей для каждого класса и количеством уникальных адресов хостов в одной сети, доступных для каждого класса.

    Примечание. Имеется два дополнительных класса – D и E. Адреса класса D обычно используются для групповых сообщений, адреса класса E зарезервированы для экспериментального использования.

    На практическом уровне это означает, что если вы хотите зарегистрировать свою сеть для ее подсоединения к интернету, то можете получить, например, адрес класса C от какого-либо уполномоченного органа интернет. Он назначит вам сетевой адрес, который вы будете использовать для первых трех октетов своих IP-адресов, например, 199.45.67. После этого вы можете назначать произвольным образом 254 возможных значения четвертого октета без дублирования. Маска подсети на всех ваших машинах – 255.255.255.0, что означает использование только последнего октета для идентификации хоста.

    Если в вашей сети больше 254 узлов, то вам потребуется получить еще один адрес класса C. Если у вас достаточно большая сеть, то вы можете получить адрес класса B, что позволит поддерживать до 65534 хостов. После этого вы сможете сами назначать адреса из последних двух октетов и использовать маску подсети 255.255.0.0.

    Характеристики классов адресов
    Класс адреса Маска подсети по умолчанию Количество сетей Количество хостов
    A 255.0.0.0 126 16777214
    B 255.255.0.0 16384 65534
    C 255.255.255.0 2097152 254

    Понятие подсети

    Маскирование подсети иногда сложнее, чем приведенные выше примеры. Разделение между сетью и хостом в IP-адресе не всегда происходит строго по октетам.

    Подсеть – это просто логическое разбиение, налагаемое на сетевой адрес в организационных целях. Например, в большой корпорации, имеющей зарегистрированный сетевой адрес класса B, маловероятно, чтобы ее узлам присваивались адреса путем последовательной нумерации от 0.0 до 255.255.

    Более практичный сценарий – это разбиение сети на подсети, которое обычно основывается на схеме кабельных соединений между помещениями. При создании подсетей, соответствующих сетям, из которых состоит предприятие, задачу создания и поддержки IP-адресов можно разделить между администраторами, ответственными за каждую сеть.

    Поэтому при таком сценарии адрес сети класса - определяет значения первых двух октетов в IP-адресе, а подсеть определяет значение третьего октета, позволяя использовать четвертый октет для идентификации хостов. Этой ситуации соответствует маска подсети 255.255.255.0, поскольку первые три октета определяют адрес сети, и при этом не имеет значения, зарегистрирован он или не зарегистрирован.

    Предположим, однако, что у вас имеется адрес класса C и вы находитесь в той же ситуации. Первые три октета ваших IP-адресов определяются зарегистрированным адресом сети, но вы хотите создать подсети, поскольку ваши рабочие станции находятся в различных сегментах сети. Вы тоже можете сделать это, если представите себе маску подсети в двоичном виде. Вместо использования маски подсети класса C по умолчанию вы можете выделить несколько битов четвертого октета тоже для адреса сети, например:

    11111111.11111111.11111111.11110000

    Если преобразовать этот адрес в десятичную форму, то мы получим маску подсети 255.255.255.240. Это позволяет определить до 14 адресов сетей (но не 16, поскольку з начения 0000 и 1111 не допускаются), содержащих до 14 хостов каждая. Вы можете изменять маску, чтобы иметь большее количество сетей или большее количество хостов. Чтобы назначать адреса сетей и хостов с помощью этого метода, имеет смысл записывать подходящие значения в двоичной форме и затем преобразовывать их в десятичную форму во избежание ошибок. Поскольку немногие из нас могут считать в двоичной системе, большинству для выполнения этой задачи требуется калькулятор.

    В большинстве случаев значение маски подсети для вашей рабочей станции предоставляется вам вместе с IP-адресом – вручную или сервером DHCP, особенно при сложной организации подсетей. Напомним, однако, что разбиение на подсети – это локальная задача, то есть занятие для администратора. Приложения TCP/IP работают с IP-адресами одинаковым образом – независимо от битов, которые используются для идентификации сети.

    Шлюз по умолчанию

    Шлюз по умолчанию на странице Internet Protocol (TCP/IP) Properties – это адрес шлюза в вашем локальном сегменте сети, который обеспечивает доступ к остальной части интерсети. Шлюзом может быть компьютер, коммутатор (switch) или маршрутизатор, соединяющий два или более сегментов вашей сети. Вы можете иметь более одного шлюза в своем локальном сегменте, но когда один из ваших компьютеров пытается установить соединение с компьютером в другой сети (например, в интернете), он использует по умолчанию именно тот шлюз, который задан как шлюз по умолчанию.

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

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

    Расширенная IP/адресация

    Компьютер может иметь более одного сетевого интерфейса, каждый из которых должен иметь свои собственные настройки конфигурации TCP/IP. Страница Internet Protocol (TCP/IP) Properties окна Local Area Connection Properties содержит список выбора, где можно выбрать один из сетевых адаптеров, установленных на вашей машине, чтобы вы могли задать различные настройки для каждого из них.

    Для компьютеров с системой из семейства Windows Server 2003 вы можете назначить более одного IP-адреса для одного сетевого адаптера. Если щелкнуть на кнопке Advanced на странице Internet Protocol (TCP/IP) Properties, то появится диалоговое окно Advanced TCP/IP Settings. Во вкладке IP Settings вы можете ввести дополнительные IP-адреса для каждого установленного сетевого адаптера.

    Наиболее распространенный сценарий, при котором одному адаптеру на компьютере Windows Server 2003 назначают несколько адресов, это машина, используемая как сервер в интернете. Вы можете, например, запустить сервер World Wide Web (WWW), использующий IIS на машине Windows Server 2003, непосредственно подсоединенной к интернету, и держать на нем веб-сайты для различных заказчиков, снабдив каждый сайт его собственным IP-адресом. Пользователи интернета могут выполнять доступ к различным сайтам, которые связаны с каждым из этих IP-адресов, не зная, что все эти сайты находятся на одной машине.

    Вкладка IP Settings диалогового окна Advanced TCP/IP Settings позволяет также задавать адреса дополнительных шлюзов для каждого адаптера. Но в отличие от дополнительных IP-адресов, которые остаются активными одновременно, дополнительные шлюзы используются (в заданном порядке) только в том случае, когда шлюз по умолчанию недоступен.

    Предпочтительные и альтернативные серверы DNS

    Если вы переходите к Windows Server 2003 из Windows NT, то увидите, что DNS используется намного больше, чем это было раньше. Вы, возможно, привыкли, что DNS в основном используется для разрешения внешних имен, а для взаимодействия с другими компьютерами в вашей сети используются NetBIOS и WINS, но не DNS.

    Разрешение имен выполняется в Windows Server 2003 исключительно с помощью DNS (фактически это началось с Windows 2000). Каждый раз, когда вы запрашиваете контакт с другим компьютеров в вашей сети или в интернете, именно служба DNS обеспечивает необходимое преобразование имени в IP-адрес.

    В результате зависимости Windows Server 2003 от DNS вы должны сконфигурировать все компьютеры своей сети для использования предпочтительного сервера DNS. Рекомендуется также задать альтернативный сервер DNS, но это не обязательно. Вы можете ввести IP-адреса предпочтительного и вторичного серверов DNS вручную или разрешить серверу DHCP передавать эту информацию клиентам. Лекция 3 содержит более подробное описание DNS в Windows Server 2003.

    Понятие о регистрации и разрешении имен

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

    В операционных системах Microsoft до Windows 2000 сетевой обмен всегда основывался на именах NetBIOS. Система Windows Server 2003 продолжает поддерживать имена NetBIOS для совместимости, но она разработана для использования в первую очередь хост-имен, а не имен NetBIOS. В любом случае требуется метод, позволяющий устанавливать соответствие между этими именами и IP-адресами.

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

    Если у вас действует сеть Windows Server 2003 с клиентами более ранних версий Windows (до Windows 2000), то вам нужно иметь как минимум два различных механизма разрешения имен. Хост-имена и имена NetBIOS всегда обрабатываются отдельно в этом отношении, даже если на компьютере эти имена совпадают. Если в вашей сети нет клиентов более ранних версий Windows или приложений на основе NetBIOS, то вы можете не поддерживать имена NetBIOS.

  • Имеющиеся механизмы для хост-имен – это файл HOSTS и служба доменных имен (DNS).
  • Имеющиеся механизмы для имен NetBIOS – это широковещательные сообщения в сети (Network Broadcasts), средства WINS и файл LMHOSTS.
  • Все Windows-компьютеры применяют по крайней мере один из этих механизмов во время любого обмена данных TCP/IP, где используются имена, а не IP-адреса. Понимание того, как они действуют, поможет вам максимально повысить эффективность вашей сети, свести к минимуму сетевой трафик и справляться с проблемами передачи данных. Для более полного ознакомления с такими понятиями, как хост-имена, доменная иерархия, DNS и т.д. обратитесь к лекции 3.

    Использование файла HOSTS

    Самый простой способ разрешения хост-имен – это ведение таблицы этих имен и соответствующих им IP-адресов. Этой задаче отвечает файл HOSTS – ASCII-файл, который хранится на локальном жестком диске и в котором слева содержатся IP-адреса и справа хост-имена. Если пользователь передает в какое-либо приложение хост-имя, это приложение ищет его в файле HOSTS. Если это имя найдено, то эквивалентный ему IP-адрес используется для создания сетевого соединения. Если имя не найдено, то соединение не может быть установлено.

    Хотя в это трудно поверить, но в свое время услуги разрешения имен для всего интернета предоставлялись с помощью одной таблицы HOSTS, содержащей тысячи записей, которые должны были регулярно скачиваться пользователями интернета для обновления их файла. Проблемы использования этого метода очевидны. Вставку имен и адресов в файл для их регистрации можно выполнять только вручную. Пользователи или администраторы должны по отдельности изменять или обновлять файл HOSTS на каждом сетевом компьютере, чтобы включить имя и адрес каждого хоста, к которому нужно обращаться по имени. Кроме того, число записей растет, файл быстро увеличивается в размерах, что начинает влиять на скорость разрешения имен. Вообразите, что вам приходится управлять файлом HOSTS с сотнями или тысячами записей для отображения имен в IP-адреса. Каждое изменение этого файла потребовало бы обновления на всех компьютерах сети, то есть пересылки файла HOSTS каждому из них.

    Использование системы доменных имен (DNS)

    Система доменных имен (DNS – Domain Name System) – это наиболее распространенный метод разрешения хост-имен интернет, поскольку он позволяет пользователям подсоединяться к любому сайту в Internet по имени. Это может показаться невероятно трудным, особенно в свете роста интернета за последние несколько лет, но DNS использует доменную структуру хост-имен интернет и, конечно, является основной причиной ее использования.

    Система доменных имен состоит из тысяч серверов DNS, распределенных по всей сети интернет. Если вы регистрируете какое-либо доменное имя, то должны обязательно указать основной (primary) и резервный (backup) сервер DNS. Их называют доверяемыми (authoritative) серверами для вашего домена. Сервер DNS – это демон UNIX или служба Windows, отвечающая за поддержку и публикацию базы данных хост-имен и адресов в ее собственном домене.

    Серверы DNS какого-либо домена не обязательно должны находиться в его собственной сети, и действительно, многие провайдеры услуг интернета (ISP) поддерживают службы веб-хостинга, в которых они предоставляют использование их серверов DNS за плату. Здесь важно то, что уполномоченный орган интернет или другая организация, зарегистрировавшая имя этого домена, имеет запись для серверов DNS, ответственных за хосты этого домена.

    Поскольку администраторы отдельных сетей отвечают за назначение хост-имен в своих доменах, они также должны обеспечивать поддержку записей DNS для этих имен. Удивительно, но регистрация хост-имен домена на его серверах DNS – это такая же ручная операция, как и для файла HOSTS. Например, если вы добавляете новый сервер ftp к своей сети, то должны вручную добавить или изменить ресурсную запись DNS, указав имя и адрес новой машины.

    Однако в Windows Server 2003 была принята новая технология – динамическая регистрация компьютеров вместо утомительного ручного обновления ресурсных записей. Клиенты могут сделать так, чтобы их ресурсные A-записи (адресные записи для хостов) и PTR-записи (указатели для обратного поиска) регистрировались автоматически сервером DNS. Кроме того, DNS Windows Server 2003 может быть интегрирована с Active Directory (AD), что повышает уровень безопасности, улучшает репликацию базы данных DNS, администрирование и многое другое. DNS и связанные с ней темы подробно описываются в лекции 3.

    Имена NetBIOS

    Хотя NetBIOS больше не является обязательным компонентом в сети Windows Server 2003, она важна для обратной совместимости с предыдущими системами Windows, такими как Windows 9x и Windows NT, где для обмена данных используется NetBIOS, а также с приложениями, которые используют NetBIOS.

    NetBIOS – это программный интерфейс, который использовался на протяжении многих лет для предоставления возможностей сетевого обмена приложениям. Некоторые возможности исходной архитектуры Windows NT, встроенные в Windows Server 2003, полностью основывались на системе именования NetBIOS для именования других компьютеров в сети.

    Имя NetBIOS содержит до 16 символов, последний из которых регистрируется в Windows для идентификации конкретных функций определенных компьютеров, например, контроллеров домена или браузеров. Если включена служба NetBIOS, то каждому компьютеру операционной системой присваивается имя NetBIOS. Это имя может совпадать или не совпадать с именем входа пользователя или хост-именем компьютера. Вы используете имена NetBIOS, когда вводите UNC-имя пути, указывающее какой-либо узел сети Windows.

    NetBIOS уже не является обязательным компонентом, если у вас нет клиентов более ранних версий Windows или зависящих от NetBIOS приложений, но это все еще составная часть сетевых средств Windows. Службы Workstation и Server, которые запускаются на всех компьютерах Windows Server 2003/2000, используют как NetBIOS, так и непосредственный хостинг (direct hosting) для предоставления базовых услуг разделяемого доступа к файлам, которые запрашиваются какой-либо операционной системой. Непосредственный хостинг – это протокол, который использует для разрешения имен DNS, а не NetBIOS. По умолчанию задана конфигурация, в которой включены как NetBIOS, так и непосредственный хостинг, которые используются одновременно при разрешении имен для новых соединений с другими машинами.

    Поскольку NetBIOS запускается поверх интерфейса Transport Device Interface (TDI), она может теоретически использовать любые совместимые протоколы для своих нужд низкоуровневого взаимодействия. Первоначально операционные системы, предшествовавшие Windows 2000, использовали для трафика NetBIOS интерфейс NetBEUI (NetBIOS Extended Use Interface). Однако NetBEUI не является маршрутизируемым, поэтому, когда в качестве альтернативы был предложен TCP/IP, была начата разработка открытого стандарта (опубликованного в дальнейшем в виде документа RFC), чтобы определить способ, посредством которого можно было бы предоставлять услуги NetBIOS, используя протоколы TCP/IP. Этот стандарт получил название NetBIOS over TCP/IP, или NetBT.

    Стандарт NetBT определяет два вида служб – службы сеансов и дейтаграмм. Службы сеансов используют TCP для обеспечения полностью надежной ориентированной на соединения службы передачи сообщений, а службы дейтаграмм используют протокол UDP, который требует небольшого объема служебной информации и имеет не очень высокую надежность.

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

    Поскольку имена NetBIOS преобразуются в IP-адреса до передачи данных, то вы можете использовать их вместо хост-имен во внутренних сетях. Например, чтобы подсоединиться к веб-серверу интранет, пользователь может задать NetBIOS-имя этого сервера вместо обычного хост-имени. Аналогичным образом, вы можете использовать хост-имя в UNC-пути вместо NetBIOS-имени.

    Типы узлов

    Имеется несколько различных методов, посредством которых компьютеры могут регистрировать и разрешать свои имена NetBIOS в сети Windows Server 2003/2000. Эти методы варьируются по своим возможностям и эффективности. Для поиска машины с определенным NetBIOS-именем компьютер может использовать сетевые широковещательные сообщения, может обращаться к серверу имен NetBIOS (NBNS) в своей сети (например, к серверу WINS) или использовать таблицу поиска в локально хранящемся файле LMHOSTS.

    В стандарте NetBT определены несколько типов узлов, которые указывают, какие методы и в каком порядке должен использовать компьютер. Типы узлов присваиваются клиентам сервером DHCP или определяются параметрами TCP/IP, заданными в конфигурации клиента. В стандарте NetBT определяются следующие типы узлов.

  • B-узел. Клиент использует широковещательные сообщения в сети как для регистрации, так и для разрешения имен.
  • P-узел. Клиент направляет отдельное сообщение для регистрации или разрешения имени серверу имен NetBIOS.
  • M-узел. Клиент использует широковещательные сообщения для регистрации имен; для разрешения имен клиент использует сначала широковещательные сообщения, и если это не дает результата, то он направляет запросы серверу имен NetBIOS.
  • H-узел. Клиент направляет отдельное сообщение регистрации или разрешения имени серверу имен NetBIOS (NBNS); если NBNS недоступен, то клиент использует широковещательные сообщения, пока не будет восстановлено соединение с NBNS.
  • Сначала операционные системы, предшествовавшие Windows 2000, использовали для регистрации и разрешения имен расширенную службу B-узла. Служба считалась расширенной, так как при невозможности разрешения имени с помощью широковещательных сообщений в качестве альтернативы использовался файл LMHOSTS данного компьютера. Это позволяло пользователям обращаться к компьютерам в других сегментах сети, если эти компьютеры были вручную внесены в файл LMHOSTS.

    В Windows Server 2003 по-прежнему включена служба WINS как сервер имен NetBIOS, в базе данных которого хранятся имена NetBIOS и IP-адреса для всей интерсети, что позволяет предоставлять эту информацию пользователям всего предприятия. Компьютеры с более ранними версиями Windows описываются как расширенные H-узлы. Эти компьютеры сначала пытаются разрешать имена NetBIOS с помощью WINS, обращаясь к широковещательным сообщениям, если WINS не дает результата или недоступна, и затем обращаются к файлу LMHOSTS, если не удается получить разрешение имени с помощью широковещательных сообщений.

    Регистрация имен NetBIOS

    Стандарт NetBT требует, что когда машина с более ранней версией Windows выполняет вход в сеть, ее NetBIOS-имя должно быть зарегистрировано, чтобы никакой другой компьютер не мог использовать дублированное имя и чтобы был правильно задан IP-адрес. Если вы переводите рабочую станцию в другую подсеть и вручную изменяете ее IP-адрес, то процесс регистрации обеспечивает, что другие компьютеры и серверы WINS будут знать об этом изменении.

    Метод регистрации имени, используемый рабочей станцией, зависит от ее типа узла. Для регистрации имен B-узлов и M-узлов используются широковещательные сообщения, в то время как H-узлы и P-узлы направляют запросы регистрации непосредственно серверу WINS. Эти два метода описываются в следующих разделах. Один из этих двух методов используется любым компьютером с более ранней версией Windows, который подсоединяется к сети.

    Регистрация имен с помощью широковещательных сообщений

    B-узлы и M-узлы, использующие широковещательные сообщения для регистрации имен NetBIOS, не выполняют регистрацию в том смысле, как это делают узлы других типов. Это имя не вводится в какую-либо таблицу и не сохраняется на других компьютерах сети. Вместо этого данный компьютер использует широковещательные сообщения, чтобы "объявить" свое имя NetBIOS и проверить, не используется ли уже это имя каким-либо другим компьютером.

    Процесс регистрации начинается при входе данного компьютера в сеть. Он распространяет с помощью протокола UDP набор широковещательных сообщений NAME REGISTRATION REQUEST (запрос регистрации имени), содержащих его предлагаемое имя NetBIOS и его IP-адрес. Если это имя уже используется какой-либо другой машиной в данной сети, то эта машина передает отдельное сообщение NEGATIVE NAME REGISTRATION RESPONSE (отрицательный ответ на запрос регистрации имени) по IP-адресу запрашивающего компьютера. Тем самым происходит отказ запроса регистрации. Запрашивающий компьютер должен выбрать другое имя и выполнить новую попытку регистрации.

    Если компьютер не получает никакого ответа на повторяющиеся попытки рассылки пакетов NAME REGISTRATION REQUEST в течение заданного периода времени, то он передает сообщение NAME OVERWRITE DEMAND (требование перезаписи имени), объявляя, что он успешно зарегистрировал свое имя. Этот компьютер теперь должен отвечать на любые запросы, направляемые другими компьютерами по данному NetBIOS-имени.

    Как и все широковещательные сообщения, эти сообщения регистрации имени ограничены локальным сегментом сети. Это означает, что компьютеры в других сетевых сегментах могут использовать то же NetBIOS-имя. Это представляет очевидную проблему. Только тщательная работа администраторов сети может воспрепятствовать конфликтам имен и неверной адресации пакетов. Эта опасность, а также излишний сетевой трафик, вызываемый отправкой широковещательных сообщений, являются причинами для создания сервера WINS как средства регистрации имен.

    Регистрация имен с помощью WINS

    Клиентский компьютер WINS начинает процедуру регистрации имени с генерации того же пакета NAME REGISTRATION REQUEST, что и при широковещательной передаче. Но на этот раз пакет отправляется как отдельное сообщение непосредственно серверу WINS, указанному во вкладке WINS Configuration диалогового окна TCP/IP Properties. Если никакой другой компьютер не использует это имя, то сервер WINS возвращает отправителю POSITIVE NAME REGISTRATION RESPONSE (положительный ответ на запрос регистрации имени) и записывает данное имя NetBIOS и IP-адрес в свою базу данных.

    Если сервер WINS обнаруживает, что данное имя NetBIOS уже зарегистрировано другим компьютером, то сервер WINS отправляет этому компьютеру сообщение NAME QUERY REQUEST (запрос имени), чтобы он "защитил" свое зарегистрированное имя. Если этот обладатель имени не отвечает или отправляет ответ NEGATIVE NAME QUERY RESPONSE (отрицательный ответ на запрос имени), то сервер WINS регистрирует это имя для нового компьютера и отправляет ему сообщение POSITIVE NAME REGISTRATION RESPONSE. Если запрашиваемый обладатель имени отправляет ответ POSITIVE NAME QUERY RESPONSE (положительный ответ на запрос имени), это означает, что он успешно "защитил" свое имя. В этом случае сервер WINS отправляет новому компьютеру сообщение NEGATIVE NAME REGISTRATION RESPONSE, информируя, что ему отказано в попытке регистрации.

    Когда сервер WINS успешно регистрирует определенное имя NetBIOS, он назначает дату истечения срока регистрации в форме значения TTL (time-to-live). Каждый раз, когда компьютер выполняет вход в сеть, это значение обновляется. Пока не истечет этот период времени, любая попытка зарегистрировать данное NetBIOS-имя будет отклоняться. Но если за этот период времени не будет выполнено ни одного входа, то данное NetBIOS-имя будет освобождено и может быть назначено снова сервером WINS без запроса какого-либо компьютера. Если данное имя остается неиспользованным в течение указанного периода времени, то объявляется как вышедшее из употребления и стирается из базы данных WINS.

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

    Разрешение имен NetBIOS

    Если включена система NetBIOS, то на всех компьютерах Windows поддерживается кэш имен NetBIOS, разрешение которых они уже выполняли. Когда компьютеру требуется разрешение NetBIOS-имени, то сначала происходит обращение к кэшу. Если это имя не найдено в кэше, то далее используется метод, определяемый типом узла данного компьютера.

  • Клиент, не использующий WINS, отправляет широковещательные сообщения для разрешения имени, и в случае неудачного результата обращается к локальному файлу LMHOSTS.
  • Клиент WINS может использовать для разрешения имен NetBIOS любой из имеющихся методов. Сначала он использует кэш имен NetBIOS, затем обращается к серверу WINS. Если сервер WINS не дает результата, то происходит рассылка широковещательных сообщений, и в случае неудачного результата происходит обращение к файлу LMHOSTS.
  • В следующих разделах дается описание возможных методов разрешения имен NetBIOS в том порядке, как они использовались бы на компьютере, поддерживающем WINS.

    Кэш имен NetBIOS. Во время каждого сетевого сеанса клиентский компьютер сохраняет в кэше памяти все имена NetBIOS, для которых было успешно выполнено разрешение, чтобы их можно было использовать повторно. Поскольку кэш хранится в памяти, его использование является самым быстрым и эффективным способом разрешения имен. Это первый ресурс, к которому обращаются узлы всех типов, когда им требуется разрешение какого-либо имени. Вы можете увидеть текущее содержимое кэша имен NetBIOS вашего компьютера, набрав nbtstat -c в командной строке.

    Разрешение имен WINS. WINS – это средство на уровне сети предприятия для регистрации и разрешения имен NetBIOS. Это единственный механизм, доступный сети Windows Server 2003/2000, который автоматически поддерживает базу данных NetBIOS-имен сети и соответствующих им IP-адресов. В отличие от широковещательных сообщений служба WINS использует только отдельные сетевые сообщения, что позволяет ей работать независимо от границ между сегментами сети. Использование отдельных сообщений WINS позволяет существенно сократить объем сетевого трафика, который возникает за счет операций разрешения имен NetBIOS.

    WINS поставляется вместе с Windows Server 2003, и она функционирует как служба. В ваш комплект администрирования включена оснастка WINS, которая позволяет вам управлять всеми серверами WINS в сети вашего предприятия из одной центральной точки. Для повышения скорости (а также отказоустойчивости) вы можете запускать в сети предприятия несколько серверов WINS. Базы данных WINS могут автоматически реплицироваться через заранее заданные периоды времени или в указанные моменты дня. Вы можете запланировать репликацию WINS через каналы глобальной сети (WAN) на периоды низкого уровня трафика, создавая тем самым унифицированную базу данных для распределенной по всему миру сети.

    WINS также позволяет своим клиентам выполнять навигацию среди машин других сегментов сети, не запрашивая услуг главных браузеров в этих сетях. Это позволяет пользователям взаимодействовать с другими машинами в удаленных сайтах, не занимая канал глобальной сети трафиком браузера.

    Если клиенту WINS требуется разрешение имен NetBIOS, то он отправляет отдельное сообщение NAME QUERY REQUEST первому серверу WINS, указанному на странице WINS Address диалогового окна TCP/IP Properties. Затем сервер WINS отвечает сообщением POSITIVE NAME QUERY RESPONSE, содержащим запрашиваемое имя и соответствующий IP-адрес, или сообщением NEGATIVE NAME QUERY RESPONSE, указывающим, что в базе данных нет записи с этим именем.

    Если имеется некоторая задержка с ответом на запрос, сервер WINS отправляет клиенту пакеты WACK (WAIT FOR ACKNOWLEDGEMENT RESPONSE – ожидать подтверждающего ответа), чтобы клиент не перешел к использованию следующего метода разрешения имен.

    Если сервер WINS не может выполнить разрешение имени, отправив отрицательный ответ или не отправив никакого ответа, то клиент обращается к вторичному (резервному) серверу WINS и повторяет весь процесс. Если это не может сделать и вторичный сервер, то компьютер, который является H-узлом, переходит к использованию широковещательных сообщений для разрешения имени. Но если серверы WINS не могут ответить на любые запросы разрешения имен, то клиент продолжает попытки контакта с этими серверами, чтобы вернуться к разрешению имен WINS, как только появится такая возможность.

    Разрешение имен с помощью широковещательных сообщений

    Если разрешение имен NetBIOS происходит с помощью широковещательных сообщений, то все зарегистрированные компьютеры должны отвечать на запросы, в которых указаны их имена. Компьютер, который применяет широковещательные сообщения для разрешения имен, генерирует тот же пакет NAME QUERY REQUEST, что и клиент WINS, за исключением того, что запрос направляется в виде широковещательных сообщений всем компьютерам данной локальной подсети. Каждый компьютер, получивший этот пакет, должен проверить имя, для которого запрашивается IP-адрес.

    Если пакет содержит нераспознаваемое имя, то он "молча" удаляется. Но если компьютер опознал свое собственное имя в этом запросе, то он должен ответить отправителю пакетом POSITIVE NAME QUERY RESPONSE, содержащим его IP-адрес. Этот пакет отправляется как отдельное (не широковещательное) сообщение.

    Метод разрешения имени с помощью широковещательных сообщений используется всеми старыми системами Windows, которые не являются клиентами WINS (после попытки получить имя из кэша имен). Если имя, которое должно быть разрешено, принадлежит компьютеру в другом сегменте сети, то широковещательные сообщения не могут попасть в этот сегмент, и этот метод даст неудачный результат (по истечении периода тайм-аута для широковещательных сообщений).

    Файл LMHOSTS

    Если не удается разрешить имя NetBIOS с помощью широковещательных сообщений, то следующая альтернатива – это файл LMHOSTS на локальном жестком диске. Клиенты, не поддерживающие WINS, делают это автоматически. Чтобы клиент WINS мог использовать файл LMHOSTS (после того, как поиск с помощью WINS и широковещательных сообщений не дал результата), вы должны установить флажок Enable LMHOSTS Lookup (Разрешить поиск в LMHOSTS) на странице WINS Address диалогового окна TCP/IP Properties.

    Примечание. Использование файла LMHOSTS не включено в стандарт NetBT как часть определений типов узлов. Поэтому клиентов, которые используют LMHOSTS, называют системами расширенного B-узла или H-узла.

    Файл LMHOSTS аналогичен файлу HOSTS (который используется для разрешения хост-имен) за исключением того, что он содержит список имен NetBIOS. Он находится в той же папке, что и HOSTS ( %SystemRoot%\System32\drivers\...), и Windows предоставляет файл-образец с именем Lmhosts.sam, который вы можете использовать как модель для своего собственного файла (это текстовый файл, который вы можете просматривать с помощью Notepad [Блокнот]).

    Для компьютера, который не являются клиентом WINS, файл LMHOSTS – это единственное средство разрешения имен, доступное компьютерам в других сегментах сети. Чтобы регистрировать имена NetBIOS, нужно вручную отредактировать файл LMHOSTS и добавить запись для каждого компьютера, с которым вы будете взаимодействовать. Каждая запись должна содержать IP-адрес компьютера, после которого в той же строке (через пробел) должно следовать соответствующее NetBIOS-имя.

    В отличие от файла HOSTS файл LMHOSTS может содержать дополнительные средства, которые помогают в процессе разрешения имен.

  • #PRE. Если тег #PRE добавляется к какой-либо записи в файле LMHOSTS, то эта запись заранее загружается в кэш имен NetBIOS при каждой загрузке данного компьютера. Добавление в файл LMHOSTS компьютеров, к которым чаще всего выполняется доступ, ускоряет разрешение имен даже для клиентов WINS. Тег #PRE следует добавлять в конец записи с одним или несколькими пробелами, отделяющими его от имени NetBIOS.
  • #DOM:имя_домена. Тег #DOM используется, чтобы связать запись файла LMHOSTS с доменом Windows NT, который указывается переменной имя_домена. В результате компьютер, указанный в этой записи, будет получать список для навигации среди компьютеров домена от главного контроллера (PDC) указанного домена. Это позволяет компьютерам, не использующим WINS, выполнять навигацию среди компьютеров домена, которые находятся в других сегментах сети. Тег #DOM вместе со своим параметром помещается в конец записи после пробела.
  • #INCLUDE путь. Тег #INCLUDE позволяет вам получать доступ к файлу LMHOSTS, находящемуся в другом месте. Обычно это средство используется для доступа к файлу на каком-либо сетевом диске, где он может одновременно использоваться другими клиентами. Это означает, что вы можете редактировать один централизованный файл LMHOSTS вместо обновления по отдельности копий на рабочих станциях. Этот тег, после которого следует полный UNC-путь к файлу, должен быть помещен в отдельную строку файла LMHOSTS, как это показано ниже:
    #INCLUDE \\сервер1\разделяемый_ресурс\...\lmhosts
    Примечание. Проследите, чтобы NetBIOS-имя, используемое в UNC-пути, можно было разрешить с помощью тега #PRE, если эта машина находится в другом сегменте сети.
  • #BEGIN_ALTERNATE/#END_ALTERNATE. Эти теги используются, чтобы обеспечить отказоустойчивость для тега #INCLUDE. Если поместить несколько тегов #INCLUDE между тегами #BEGIN_ALTERNATE и #END_ALTERNATE, как это показано ниже, то теги #INCLUDE будут обрабатываться по порядку, пока не будет выполнен успешный доступ к соответствующему файлу LMHOSTS. После успешного чтения этого файла все следующие теги #INCLUDE игнорируются и происходит переход к следующей строке после тега #END_ALTERNATE.
    #BEGIN_ALTERNATE#INCLUDE \\сервер 1\разделяемый_ресурс\...\lmhosts#INCLUDE\\
    сервер 2\разделяемый_ресурс\...\lmhosts#END_ALTERNATE
  • \Oxhh. Этот тег используется для задания специальных символов в именах NetBIOS по их шестнадцатеричным значениям. Если приложению требуется специальный символ в 16-й позиции имени NetBIOS, то вы можете задать его, заключив это имя в кавычки и применив \Oxhh в соответствующей позиции (с заменой hh шестнадцатеричным значением этого символа). \Oxhh заменяет только какой-либо один символ в имени NetBIOS. Вы должны включить нужное число пробелов, чтобы в имени было 16 символов, например:
    139.41.129.18 "application \ox14"
  • Когда следует прекратить использование NetBIOS

    Microsoft рекомендует переходить к более "чистой" реализации TCP/IP в сетевых окружениях Windows. Теперь уже не обязательно использовать NetBIOS over TCP/IP для разрешения имен, поскольку эти функции взяла на себя DNS. Кроме того, NetBIOS поддерживается только для совместимости с унаследованными системами и приложениями.

    DNS просто лучше – это более масштабируемое и надежное решение для разрешения имен. Она выдержала испытание временем, и интернет является наилучшим примером ее успеха. Чтобы детальнее ознакомиться с DNS и ее влиянием на среду Windows, обратитесь к лекции 3.

    Как вы, вероятно, уже поняли, чем быстрее вы прекратите использовать NetBIOS, тем лучше станет ваша среда Windows. Первый шаг – это модернизировать клиентов прежних версий Windows, перейдя к текущей версии Windows.

    К сожалению, модернизация не позволит полностью выполнить вашу задачу. Вам придется также проверить, работают ли у вас приложения, которые зависят от NetBIOS. Если у вас есть такие приложения и они все еще нужны вам, обратитесь к поставщику, чтобы узнать, нет ли у него модернизированной версии, которая не использует NetBIOS (для начала проверьте свою версию Microsoft Office). После того как вы отключите NetBIOS, любые приложения, которые основываются на этой службе, перестанут правильно работать или не будут работать совсем. И последний шаг – это фактическое отключение NetBIOS на всех машинах Windows Server 2003/XP/2000. Для этого выполните следующие шаги.

  • В меню Start\Settings выберите Network Connections.
  • Щелкните правой кнопкой на значке Local Area Connection и выберите пункт Properties.
  • Выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • В диалоговом окне Properties щелкните на кнопке Advanced, чтобы появилось диалоговое окно Advanced TCP/IP Settings.
  • Перейдите во вкладку WINS и выберите вариант Disable NetBIOS over TCP/IP (Отключить NetBIOS поверх TCP/IP).
  • Два раза щелкните на кнопках OK и затем щелкните на кнопке Close.
  • Инструментальные средства TCP/IP

    В реализацию протоколов TCP/IP для Windows Server 2003/2000 входит набор инструментальных средств и утилит, которые помогают осуществлять мониторинг и устранять проблемы работы TCP/IP.

    Ping

    Ping – это наиболее простая и наиболее известная утилита TCP/IP. Вы можете использовать ее, чтобы определить, работает ли стек TCP/IP на вашем компьютере, можно ли установить контакт с другим компьютером в сети и может ли сервер DNS выполнить разрешение хост-имени в IP-адрес.

    Ping действует путем отправки пакетов Echo Request получателю, указанному в командной строке, используя протокол ICMP (Internet Control Message Protocol). Компьютер-получатель возвращает пакет Echo Response для каждого полученного запроса, и ping выводит на экран размер каждого отправленного пакета (в байтах), время прохождения до получателя и обратно (в миллисекундах) и срок действия пакета (TTL).

    Ping имеет следующий синтаксис.

    ping [-t] [-a] [-n Количество] [-l Размер] [-f] [-i TTL] [-v TOS] 
    [-r Количество] [-s Число] [{-j Список-хостов\-k Список-хостов}] 
    [-w Тайм-аут] [Имя_получателя]

    где

    -t указывает ping, что нужно продолжать отправку сообщений Echo Request получателю, пока вы не остановите этот процесс. Чтобы прервать процесс и вывести статистику, нажмите Ctrl-Break. Чтобы прервать процесс и выйти из ping, нажмите Ctrl-C.

    -a указывает обратный поиск имени по IP-адресу получателя.

    -n Количество указывает количество сообщений Echo Request, которое должно быть отправлено утилитой ping (по умолчанию 4).

    -l Размер – это длина (в байтах) поля Data (Данные) в отправляемых сообщениях Echo Request. По умолчанию 32. Максимальный Размер – 65527.

    -f – отправка сообщений Echo Request с установленным в 1 флагом Don't Fragment в заголовке IP. Это означает, что сообщение Echo Request не может фрагментироваться маршрутизаторами, которые находятся на пути к получателю. Используйте этот параметр, когда нужно устранить проблемы PMTU (Path Maximum Transmission Unit).

    -i TTL указывает значение поля TTL (срок действия пакета) в заголовке IP для отправляемых сообщений Echo Request. Это значение равно по умолчанию значению TTL для хоста. Для хостов Windows Server 2003 оно обычно равно 128. (Максимальное значение TTL – 255.)

    -v TOS указывает значение поля TOS (тип обслуживания) в заголовке IP для отправляемых сообщений Echo Request. По умолчанию равно 0. (Значение TOS задается как десятичное число от 0 до 255.)

    -r Количество указывает, что в заголовке IP используется опция Record Route (Записать маршрут) для записи пути, который требуется сообщению Echo Request и соответствующему сообщению Echo Reply. Для каждого сегмента этого пути используется своя запись из опции Record Route. Этот параметр действует лучше всего, если вы указываете Количество, которое не меньше числа сегментов между отправителем и получателем. ( Количество должно быть числом от 1 до 9.)

    -s Число указывает, что в заголовке IP используется опция Internet Timestamp (Метка времени) для записи времени поступления сообщения Echo Request и соответствующего сообщения Echo Reply для каждого сегмента. (Число должно быть значением 1 до 4.)

    -j Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. Средство Loose Source Route действует с несколькими промежуточными пунктами, которые разделены одним или несколькими маршрутизаторами. Максимальное количество адресов или имен в списке хостов – 9. Список хостов – это набор IP-адресов, разделенных пробелами.

    -k Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Strict Source Route (Жесткая маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. При использовании средства Strict Source Route каждый следующий узел должен быть достижим непосредственным образом (то есть он должен быть "соседом" в интерфейсе маршрутизатора). Максимальное количество адресов или имен в списке хостов – 9. Список хостов – это набор IP-адресов, разделенных пробелами.

    -w Тайм-аут указывает допустимое количество времени (в миллисекундах) для ожидания сообщения Echo Reply, соответствующего данному сообщению Echo Request. Если сообщение Echo Reply не получено в течение времени тайм-аута, то на экран выводится сообщение об ошибке "Request times out" (Время ожидания ответа на запрос истекло). По умолчанию время тайм-аута равно 4000 (4 секунды).

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Tracert

    Программа tracert, известная также под названием traceroute в системах UNIX, идентифицирует маршрутизатор, через который должны проходить дейтаграммы к указанному узлу. Кроме трассировки интернет-соединений, она полезна также для устранения проблем маршрутизации. Если у вас имеется Windows-компьютер с несколькими сетевыми адаптерами, то tracert – это надежное средство, позволяющее определить, какую сеть использует этот компьютер для достижения указанного узла.

    Используя такие же пакеты ICMP, как и ping, программа tracert отправляет последовательные сообщения Echo Request по целевому адресу с наращиваемыми значениями TTL (time-to-live). Поскольку каждый промежуточный компьютер, через который проходит пакет, уменьшает значение TTL на единицу, срок действия каждого последующего запроса истекает на один сегмент дальше вдоль маршрута к целевому узлу.

    Когда истекает срок действия очередного пакета, он возвращает отправителю сообщение, содержащее адрес шлюза, где значение TTL уменьшилось до нуля. Эти адреса разрешаются и выводятся на экран компьютера вместе с интервалом времени для каждого сегмента.

    При использовании с адресами интернет tracert позволяет увидеть структуру этой международной телекоммуникационной сети. Поскольку Windows выполняет разрешение адреса каждого шлюза, вы можете идентифицировать сайты, через которые проходят пакеты на пути к целевому узлу. Выполните трассировку маршрута со своего компьютера на какой-нибудь веб-сервер в США, и вы увидите, исходя из значений времени, тот момент, когда ваш сигнал пересек океан.

    Программа tracert имеет следующий синтаксис.

    tracert [-d] [-h Максимум-сегментов] [-j Список-хостов] [-w Тайм-аут] 
    [Имя_получателя]

    где

    -d запрещает tracert выполнять попытки разрешения IP-адресов промежуточных маршрутизаторов, что часто ускоряет вывод результатов.

    -h Максимум -сегментов задает максимальное число сегментов пути поиска целевого узла. (По умолчанию 30 сегментов).

    -j Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. (Описание того же параметра см. в синтаксисе ping в предыдущем разделе.)

    -w Тайм-аут указывает допустимое количество времени (в миллисекундах) для ожидания сообщения Echo Reply, соответствующего данному сообщению Echo Request. Если сообщение Echo Reply не получено в течение времени тайм-аута, то на экран выводится символ "звездочка" (*). По умолчанию время тайм-аута равно 4000 (4 секунды).

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Pathping

    Pathping – то же самое, что и tracert, но эта команда работает в пределах вашего предприятия. Вы можете использовать эту команду для получения информации о задержках в сети и потерях в сети на промежуточных участках между исходным и целевым узлами. Команда имеет следующий синтаксис.

    pathping [-n] [-h Максимум-сегментов] [-g Список-хостов] [-p Период] 
    [-q Число-запросов] [-w Тайм-аут] [-T] [-R] [Имя_получателя]

    где

    -n запрещает pathping выполнять попытки разрешения IP-адресов промежуточных маршрутизаторов в их имена, что часто ускоряет вывод результатов.

    -h Максимум-сегментов задает максимальное число сегментов пути поиска целевого узла. (По умолчанию 30 сегментов).

    -g Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. (Описание того же параметра см. в предыдущих разделах.)

    -p Период – количество миллисекунд ожидания между последовательными пакетами. По умолчанию 250 миллисекунд (1/4 секунды).

    -q Число-запросов задает количество сообщений Echo Request, отправляемых каждому маршрутизатору указанного пути. По умолчанию 100 запросов.

    -w Тайм-аут – количество миллисекунд ожидания каждого ответа. По умолчанию 3000 миллисекунд (3 секунды).

    -T присоединяет тег приоритета уровня 2 (например, 802.1p) к сообщениям Echo Request, которые отправляются каждому сетевому устройству вдоль маршрута. Это способ идентификации сетевых устройств, которые не имеют возможности приоритета уровня 2. В основном этот параметр используется для тестирования качества обслуживания Quality of Service (QoS) соединений.

    -R указывает то, что каждое сетевое устройство вдоль маршрута поддерживает протокол RSVP (Resource Reservation Protocol), который позволяет данному хост-компьютеру резервировать определенную долю пропускной способности для потока данных. Этот параметр также используется для тестирования качества обслуживания (QoS) соединений.

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Ipconfig

    Ipconfig – это утилита командной строки, которая выводит на экран текущие настройки конфигурации IP для вашего компьютера. При использовании ipconfig с ключом /all она выводит текущие настройки конфигурации IP для каждого сетевого адаптера, установленного на вашем компьютере. Это особенно полезно для компьютеров клиентов DHCP, где нет другого способа определения этой информации без доступа к программе DHCP Manager на сервере. Эта утилита имеет следующий синтаксис.

    ipconfig [/all] [/renew [Адаптер]] [/release [Адаптер]] [/flushdns] 
    [displaydns] [/registerdns] [/showclassid Адаптер] 
    [/setclassid Адаптер [Идентификатор-класса]]

    где

    /all – вывод полной конфигурации TCP/IP для всех адаптеров. Если он опущен, то ipconfig выводит на экран только значения IP-адреса, маски подсети и шлюза по умолчанию для каждого адаптера. Адаптером может быть физический интерфейс (например, карта сетевого интерфейса, NIC) или логический интерфейс (например, коммутируемое [dial-up] соединение).

    /renew [Адаптер ] – обновление конфигурации DHCP для всех адаптеров (если конкретный адаптер не указан) или для указанного адаптера, если задан параметр Адаптер. Этот параметр можно использовать, только если вы сконфигурировали данный компьютер для автоматического получения IP-адреса. (Используйте имя адаптера, которое выводится при запуске ipconfig без параметров.)

    /release [Адаптер ] – отправка сообщения DHCPRELEASE серверу DHCP, чтобы освободить текущую конфигурацию DHCP и отменить конфигурацию IP-адресов для всех адаптеров (если конкретный адаптер не указан) или для указанного адаптера, если задан параметр Адаптер. Этот параметр отключает TCP/IP для адаптеров, которые сконфигурированы для автоматического получения IP-адресов.

    /flushdns – сброс и установка в исходное состояние содержимого кэша разрешения IP-адресов клиентов DNS. Это полезно для устранения проблем, связанных с DNS.

    /displaydns – вывод на экран содержимого кэша разрешения IP-адресов клиентов DNS, в который включаются записи, заранее загружаемые из локального файла HOSTS, а также все недавно полученные ресурсные записи для запросов имен, разрешенных данным компьютером.

    /registerdns – выполнение ручной динамической регистрации для имен DNS и IP-адресов, сконфигурированных на данном компьютере. Этот параметр полезен для устранения проблем регистрации имен DNS. Его также полезно использовать для устранения проблем динамического обновления между клиентом и сервером DNS без необходимости перезагрузки клиентского компьютера.

    /showclassid Адаптер – вывод идентификатора класса DHCP для указанного адаптера (или всех адаптеров, если указать вместо Адаптера "звездочку", * ).

    /setclassid Адаптер [Идентификатор-класса] – задает идентификатор-класса для указанного адаптера (или всех адаптеров, если указать вместо Адаптера "звездочку", * ).

    Более подробную информацию по использованию идентификатора класса см. в лекции 2.

    Netstat

    Используйте netstat для вывода на экран соединений TCP/IP, которые используются на данный момент компьютером, а также статистики обмена данных для данного сетевого интерфейса и для протоколов IP, TCP и UDP. Утилита netstat имеет следующий синтаксис.

    netstat [-a] [-e] [-n] [-o] [-p протокол] [-r] [-s] [интервал]

    где

    -a – вывод списка активных TCP-соединений вместе с портами TCP и UDP, по которым компьютер следит за соединениями.

    -e – вывод статистики Ethernet, например, количество отправленных и полученных байтов и пакетов (вы можете также объединять параметр -e с параметром -s).

    -n – вывод списка активных соединений TCP с адресами и номерами портов, показанными в числовом порядке (не делается никаких попыток определения имен).

    -o – вывод списка активных соединений TCP с идентификатором процесса (PID) для каждого соединения. Вы можете найти приложение, соответствующее этому PID, во вкладке Processes Диспетчера задач (Task Manager). (Этот параметр можно объединять с параметрами -a, -n и -p.)

    -p протокол – вывод соединений для указанного протокола (tcp или udp). Если вы объединяете этот параметр с параметром -s, то протоколом может быть tcp, udp, icmp или ip.

    -r – вывод содержимого таблицы IP-маршрутизации.

    -s – вывод статистики, упорядоченной по протоколам. По умолчанию статистика выводится для протоколов tcp, udp, icmp и ip.

    интервал – повторяющийся вывод выбранной информации через указанный временной интервал (в секундах). Чтобы прекратить вывод, введите CTRL-C.

    Примечание. При вводе параметров нельзя заменять дефис (-) на слэш.

    ARP

    Утилита ARP выводит на экран текущее содержимое кэша ARP (Address Resolution Protocol). Этот кэш содержит MAC-адреса и IP-адреса компьютеров вашей локальной сети, которые недавно участвовали в обмене данных TCP/IP. ARP имеет следующий синтаксис.

    arp [-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] 
    [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]

    где

    -a [InetAddr] [-N IfaceAddr] – вывод списка текущих таблиц кэша ARP для всех интерфейсов. Чтобы вывести запись кэша ARP для определенного IP-адреса, используйте arp -a с параметром InetAddr (этот IP-адрес). Чтобы вывести таблицу кэша ARP для определенного интерфейса, используйте параметр -NIfaceAddr, где IfaceAddr – IP-адрес, назначенный для этого интерфейса.

    Внимание. Параметр -N указывается прописной буквой N.

    -g [ InetAddr ] [ -N IfaceAddr ] – то же самое, что и -a.

    -d InetAddr [IfaceAddr] – удаление записи с определенным IP-адресом, где InetAddr – этот IP-адрес. Чтобы удалить запись из таблицы для определенного интерфейса, используйте параметр IfaceAddr, где IfaceAddr – IP-адрес, назначенный для этого интерфейса. Чтобы удалить все записи, используйте символ "звездочка" ( * ) вместо InetAddr.

    -s InetAddr EtherAddr [IfaceAddr] – добавление в кэш ARP статической записи, которая используется для разрешения (преобразования) InetAddr в EtherAddr.

    Кэш содержит записи для компьютера, с которым устанавливала соединение ваша рабочая станция, а также другие рабочие станции, поскольку ответные пакеты, генерируемые компьютерами в ответ на ARP-запросы, передаются как широковещательные сообщения. Это позволяет всем компьютерам в сети использовать результаты запроса, направленного с одной машины.

    Кэш ARP периодически очищается, чтобы данные соответствовали текущим изменениям. Однако использование параметра -s для добавления записей в таблицу ARP делает эти записи постоянными.

    Route

    Ваш компьютер Windows Server 2003 поддерживает таблицу, в которой записываются сведения о маршрутизации, полученные от других компьютеров, в форме пакетов ICMP Redirect. Вы можете использовать команду route для просмотра или изменения таблиц маршрутизации. Например, вы можете указать, что для передачи данных в определенный узел должен использоваться какой-либо шлюз, отличный от шлюза по умолчанию. Команда route имеет следующий синтаксис.

    route [-f] [-p] [Команда [Цель]] [mask Сетевая маска] [Шлюз] 
    [metric Метрика]] [if Интерфейс]

    где

    -f – очистка таблицы маршрутизации для всех записей, которые не попадают в следующие категории

  • Маршруты к хостам (маршруты с сетевой маской 255.255.255.255).
  • Закольцованный (loopback) сетевой маршрут (маршруты с целевым адресом 127.0.0.0 и сетевой маской 255.0.0.0).
  • Групповые (multicast) маршруты (маршруты с целевым адресом 224.0.0.0 и сетевой маской 240.0.0.0).
  • Примечание. Если вы используете параметр -f с одной из команд (например, add, change или delete), то таблица автоматически очищается перед выполнением команды.

    -p используется с параметром Команда следующим образом:

  • Используйте -p с командой add, чтобы добавить указанный маршрут в реестр. Эти записи реестра инициализируют таблицу IP-маршрутизации при запуске протокола TCP/IP. (По умолчанию добавляемые маршруты не являются постоянными.)
  • Используйте -p с командой print, чтобы вывести на экран список постоянных маршрутов.
  • Постоянные маршруты сохраняются в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes.
  • Команда указывает одну из следующих команд.

  • add – добавление маршрута.
  • change – изменение существующего маршрута.
  • delete – удаление маршрута.
  • print – печать маршрута.
  • Цель – указывает для данного маршрута цель в сети. Этот IP-адрес сети (где биты хоста в сетевом адресе равны нулю), IP-адрес для маршрута к хосту или 0.0.0.0 для маршрута по умолчанию.

    mask Сетевая маска – указывает сетевую маску (маску подсети), связанную с указанным целевым адресом. Маска подсети может быть нужной сетевой маской для IP-адреса сети, 255.255.255.255 для маршрута к хосту или 0.0.0.0 для маршрута по умолчанию.

    Шлюз указывает промежуточный IP-адрес, через который происходит доступ к набору адресов, определенных адресом целевой сети и маской подсети (в следующем сегменте).

    Примечание. Для маршрутов локальной подсети адрес шлюза – это IP-адрес, назначенный интерфейсу, который подсоединен к этой подсети. Для удаленных маршрутов (с прохождением через один или несколько маршрутизаторов) адрес шлюза – это непосредственно доступный IP-адрес, который назначается соседнему маршрутизатору.

    metric Метрика – целое значение "стоимости" данного маршрута (от 1 до 9999). Значения метрики используются для выбора между несколькими маршрутами в таблице маршрутизации (система выбирает маршрут с минимальной метрикой).

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

    if Интерфейс указывает индекс интерфейса для интерфейса, через который можно попасть к цели. Если этот параметр опущен, то интерфейс определяется из адреса шлюза.

    Совет. Чтобы увидеть список интерфейсов и соответствующих индексов интерфейсов, введите route print. Внимание. Если вы используете Routing and Remote Access (RRAS), то для управления маршрутами вы должны использовать только оснастку RRAS.

    nbtstat

    Команда nbtstat используется для вывода статистики работы NetBT (NetBIOS over TCP/IP) на каком-либо компьютере. С помощью nbtstat вы можете выводить содержимое кэша имен NetBIOS, получать список текущих сеансов NetBT, выводить статистику протоколов через определенные интервалы времени и даже перезагружать кэш путем обработки файла LMHOSTS (вы можете вносить в этот файл изменения, которые применяются сразу).

    nbtstat имеет следующий синтаксис.

    nbtstat [-a Имя-удаленного-компьютера] [-A IP-адрес] [-c] [-n] [-r] 
    [-R] [-RR] [-s] [-S] [Интервал]

    где

    -a Имя-удаленного-компьютера – вывод на экран таблицы имен NetBIOS удаленного компьютера (в качестве Имя-удаленного-компьютера указывается NetBIOS-имя этого компьютера).

    -A IP-адрес – вывод на экран таблицы имен NetBIOS удаленного компьютера с использованием IP-адреса этого удаленного компьютера.

    -c – вывод содержимого кэша имен NetBIOS, таблицы имен NetBIOS и соответствующих разрешенных IP-адресов.

    -n – вывод таблицы имен NetBIOS локального компьютера. Состояние Registered (Зарегистрировано) означает, что имя зарегистрировано с помощью широковещательного сообщения или с помощью сервера WINS.

    -r – вывод статистики разрешения имен NetBIOS. На компьютере Windows Server 2003/XP Professional, сконфигурированном для использования WINS, этот параметр дает количество имен, разрешенных и зарегистрированных с помощью широковещательных сообщений и WINS.

    -R – удаление содержимого кэша имен NetBIOS и последующая перезагрузка записей с тегом #PRE из файла LMHOSTS.

    -RR – освобождение занятых имен NetBIOS и последующее обновление имен, которые были зарегистрированы локальным компьютером.

    -s – показ сеансов клиента и сервера NetBIOS и попытка преобразовать целевой IP-адрес в имя.

    -S – показ сеансов клиента и сервера NetBIOS с выводом сведений для этих удаленных компьютеров только по целевому IP-адресу.

    Интервал – повторяющийся вывод выбранной статистики через указанный временной Интервал (в секундах). Чтобы прекратить вывод, введите CTRL-C.

    Значительная часть сведений, которые вы почерпнули в этой лекции, бесполезна, если вы не знаете, каким образом могли бы использовать средства TCP/IP на своем предприятии: DHCP и DNS. В следующих лекциях дается описание этих важных средств.

    Страницы:

    Вся система Windows Server 2003 разработана с учетом взаимодействия через TCP/IP. Многие функции, которые описываются в этой лекции, не видны пользователю после должного конфигурирования TCP/IP, но вы не сможете полностью освоить администрирование сети Windows Server 2003, пока не ознакомитесь с сетевыми процессами, которые выполняются скрытым образом. В данной лекции дается обзор многих таких процессов, включая следующие темы.

  • Использование TCP/IP в рамках сетевой модели Windows Server 2003
  • Протоколы TCP/IP и уровни их функционирования
  • Использование утилит TCP/IP Windows Server 2003
  • Понимание этих тем упрощает разрешение проблем TCP/IP в случае их возникновения.

    Обзор TCP/IP

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

    Чтобы справиться с этой перегрузкой, многие сетевые администраторы прибегли к стандартизации на основе какого-либо одного набора протоколов, чтобы им было проще управлять сетевым трафиком. По целому ряду причин наиболее очевидным комплектом протоколов является TCP/IP. В частности, это следующие причины.

  • Совместимость. Большинство известных сетевых операционных систем в настоящее время могут использовать TCP/IP как собственный протокол. Остальные операционные системы явно уступают в их поддержке отраслевых стандартов.
  • Масштабируемость. TCP/IP разрабатывали для использования в том, что стало теперь крупнейшей интерсетью, то есть в интернете. TCP/IP содержит протоколы, отвечающие почти любой задаче обмена информацией при различных уровнях скорости, объемах служебной информации и надежности.
  • Разнородность (гетерогенность). Комплект TCP/IP может поддерживать практически любое оборудование или платформу операционных систем, которые используются в настоящее время. Его модульная архитектура позволяет поддерживать новые платформы без переделки базовых протоколов.
  • Адресуемость. Каждой машине в сети TCP/IP присваивается уникальный идентификатор, что делает ее адресуемой на любой другой машине в сети.
  • Доступность. Протоколы TCP/IP предлагаются как открытые стандарты, которые могут использовать все, и они разрабатываются на основе "открытого форума", когда приветствуется вклад от любых заинтересованных сторон.
  • Рост популярности Windows в наши дни, в частности, объясняется использованием TCP/IP. Его предшественник, NETBEUI (собственный исходный протокол Windows NT), оказался недостаточным как протокол уровня предприятия, поскольку у него нет сетевого уровня, и поэтому он не поддерживает маршрутизацию между сегментами сети.

    Использование TCP/IP в разработках Microsoft

    Разработка протоколов TCP/IP для использования в сети ARPANET (которую позже переименовали в Internet) началась в 1970-х гг., но некоторые нововведения, которые сделали TCP/IP применимым для использования в частных сетях уровня предприятия, были осознаны много позже. Показательным случаем стало применение TCP/IP компанией Microsoft для ее собственной глобальной корпоративной интерсети.

    В начале 1990-х гг., когда группа по информационным технологиям (Information Technology Group) компании Microsoft обсуждала различные протоколы, которые могли бы заменить "архаичные" протоколы XNS, TCP/IP был первым кандидатом с самого начала, но он содержал определенные серьезные препятствия для широкомасштабного развертывания по всему миру. Главными препятствиями были администрирование и конфигурирование IP-адресации, разрешения сетевых имен и использования широковещательных сообщений для поиска других компьютеров.

    Даже в сети небольшого или среднего масштаба задача назначения IP-адресов является достаточно обременительной; но в крупной интерсети, охватывающей более 50 стран, это требует серьезных административных затрат. Требуется не только тщательно планировать назначения сетевых адресов и вести аккуратные записи в какой-либо центральной точке, но также справляться с задачей реального конфигурирования тысяч узлов. Вы смогли бы отправить обученный персонал в каждый удаленный офис? Обучить сотрудников, которые уже работают там? Разработать документацию, которая (как предполагается) позволит конечным пользователям сконфигурировать свои собственные рабочие станции?

    Еще одной серьезной проблемой является разрешение имен при таком масштабе. Чтобы использовать TCP/IP с операционными системами Microsoft до Windows 2000, вам приходилось иметь средства сопоставления имен Net-BIOS с IP-адресами. В локальном сегменте сети это осуществлялось с помощью широковещательных сообщений (что само по себе могло создавать проблемы сетевого трафика). Для соединения с машинами в других сетях на каждой рабочей станции требовались записи файла LMHOSTS, где указывались имена NetBIOS и соответствующие IP-адреса. Задача поддержки этих файлов на таком большом числе компьютеров требует еще больших затрат, чем назначение IP-адресов.

    Для сотрудников Microsoft было ясно, что трудности, с которыми они сталкиваются, будут возникать в определенной степени при любой реализации TCP/IP в крупной корпоративной сети. Результатом усилий Microsoft совместно с другими разработчиками сетей и производителями программных продуктов стали модули DHCP и WINS, которые предоставляли сетевым пользователям соответственно службы конфигурирования IP-адресов и разрешения имен. Используя эти службы, вы могли в огромной степени снизить административную нагрузку, возникающую в большой сети TCP/IP и избавить своих пользователей от необходимости знать что-либо о протоколах и IP-адресах.

    Комплект TCP/IP сильно изменился с появлением Windows 2000 и последующим выпуском Windows Server 2003. В него вошло много новых средств и улучшений по сравнению с предыдущими реализациями. TCP/IP Windows Server 2003 был стандартизован. Он больше не основывается на NetBIOS для разрешения имен. Вместо этого основным механизмом разрешения имен является система доменных имен DNS (Domain Name System).

    Термин TCP/IP не охватывает весь этот комплект. На самом деле это набор из более чем дюжины протоколов, а TCP и IP – это только два из них. Стандарты, на которых основываются эти протоколы, публикуются группой IETF (Internet Engineering Task Force) в форме документов RFC (requests for comments). Если вас интересуют документы RFC, начните с сайта IETF, www.ietf.org, откуда вы можете переходить на другие сайты, содержащие документы RFC. На большинстве сайтов эти документы хранятся в каталоге верхнего уровня под названием RFC. Это в основном ASCII-файлы, и некоторые документы содержат рисунки, доступные в формате PostScript.

    Улучшения в TCP/IP Windows Server 2003

    Как и почти для всего в компьютерном мире, в TCP/IP постоянно вносятся изменения и улучшения, отвечающие постоянно растущим деловым потребностям. В этом разделе описываются некоторые из новых технологий TCP/IP, включенные в Windows Server 2003 (многие из них появились впервые в Windows 2000, но представлены здесь как "новые" для тех, кто переходит к Windows Server 2003 из Windows NT).

    IGMP Version 3

    Протокол IGMP (Internet Group Management Protocol) Version 3 позволяет определять членство в группах для групповых сообщений. Хосты могут указывать, что они заинтересованы в получении трафика групповых сообщений из определенных источников. Это средство препятствует тому, чтобы поддерживающие групповую доставку маршрутизаторы не передавали групповой трафик в подсеть, где нет хостов, которым требуется получать групповой трафик.

    Альтернативная конфигурация

    Альтернативные конфигурации TCP/IP – это новая возможность для семейства Windows (Windows Server 2003 и Windows XP). Альтернативная конфигурация означает, что компьютер может иметь альтернативную конфигурацию TCP/IP – вручную сконфигурированный IP-адрес, который может использоваться в отсутствие сервера DHCP. Без альтернативной конфигурации TCP/IP использует по умолчанию средство автоматической IP-адресации Automatic Private IP Addressing (APIPA), чтобы назначить уникальный IP-адрес в диапазоне от 169.254.0.1 до 169.254.255.254 с маской подсети 255.255.0.0.

    Возможность иметь альтернативную настройку – это преимущество типа "два средства по цене одного" для пользователей компьютеров, которые подсоединяются более чем к одной сети, в одной из которых или в обеих нет сервера DHCP. Например, мобильные пользователи часто подсоединяются к офисной сети, а также используют свои компьютеры в своих домашних сетях. Многие мобильные пользователи ездят в филиалы своих компаний или к клиентам, где им нужно подключаться к местным сетям. В одном из мест для лэптопа этого пользователя используется конфигурация TCP/IP, предусматривающая использование DHCP. В другом месте, если нет сервера DHCP, лэптоп автоматически использует альтернативную конфигурацию, выполняя доступ к устройствам домашней сети и к интернету. Такой пользователь имеет доступ к обеим сетям без необходимости изменения настроек TCP/IP вручную и последующей перезагрузки.

    Хотя ваш компьютер Windows Server 2003 вряд ли является лэптопом, вам как администратору может потребоваться настройка компьютера Windows XP какого-либо пользователя для альтернативной конфигурации. Выполните для этого следующие шаги.

  • Откройте диалоговое окно Properties для объекта Local Area Connection (Соединение локальной сети).
  • Во вкладке General (Общие) выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • Выберите вариант Obtain an IP address automatically (Получать IP-адрес автоматически), что вызовет появление вкладки Alternate Configuration (Альтернативная конфигурация) в этом диалоговом окне.
  • Перейдите во вкладку Alternate Configuration (рис 1.1).
  • Выберите вариант User Configured (Задается пользователем) и введите требуемую информацию.
  • (рис 1.1) Задайте заранее альтернативный IP/адрес, чтобы упростить подсоединение ко второй локальной сети

    Отключение "NetBIOS over TCP/IP"

    Windows 2000 позволяет вам отключать службу NetBT (NetBIOS over TCP/IP) для любого отдельного сетевого соединения. Это полезно для компьютеров с двумя сетевыми подключениями, взаимодействующих с компьютерами, у которых отключена NetBT (например, прокси-серверы или защитные хосты в среде с брандмауэрами, где поддержка NetBT нежелательна).

    Например, серверам с двумя сетевыми подключениями, которые подсоединены как к внутренней сети, так и к интернету, не требуется NetBT со стороны интернета. Возможность отключения NetBT для соединения с Internet означает, что компьютер может продолжать работать как сервер WINS или клиент во внутренней сети. Это повышает как уровень производительности, так и уровень безопасности.

    По умолчанию Windows Server 2003 задает состояние NetBT как "использовать DHCP, иначе включить NetBT". Чтобы увидеть или изменить эту настройку, выполните следующие шаги.

  • Откройте диалоговое окно Properties для соответствующего соединения (обычно это требуется сделать для соединения с интернетом).
  • Выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • Щелкните на кнопке Advanced (Дополнительно), чтобы открыть диалоговое окно Advanced TCP/IP Settings.
  • Перейдите во вкладку WINS, чтобы увидеть текущую настройку NetBIOS (рис 1.2).
  • При необходимости внесите изменения.
  • (рис 1.2) Вручную отключите (Disable) или включите (Enable) NetBIOS over TCP/IP (NetBT)

    Автоматическое определение метрики маршрутизации

    Если у вас несколько интерфейсов, то по умолчанию TCP/IP теперь автоматически рассчитывает метрику маршрутизации, исходя из скорости интерфейса. Метрика интерфейса определяется как значение колонки Metric для таблицы маршрутизации. Это обеспечивает использование самого быстрого интерфейса для направления трафика к шлюзу по умолчанию.

    Автоматическое конфигурирование частных адресов

    Automatic Private IP Addressing (APIPA) – это средство, которое позволяет вам автоматизировать конфигурирование IP-адресов для сетей, имеющих одну подсеть и не содержащих сервера DHCP. По умолчанию Windows Server 2003 активизирует APIPA. Это средство действует следующим образом. Компьютер пытается обратиться к какому-либо серверу DHCP в сети, чтобы получать конфигурацию для каждого сетевого соединения автоматически. Затем происходят следующие действия.

  • Если какой-либо сервер DHCP найден и аренда конфигурации проходит успешно, то происходит конфигурирование TCP/IP.
  • Если сервер DHCP не найден, то интерфейс компьютера проверяется на наличие альтернативной конфигурации. Если она найдена, то ее настройки используются, чтобы сконфигурировать TCP/IP для этого интерфейса. (См. выше раздел "Альтернативная конфигурация".)
  • Если для данного интерфейса нет альтернативной конфигурации, то для автоматического конфигурирования TCP/IP используется APIPA. Это означает, что Windows задает адрес из зарезервированного диапазона IP-адресов (от 169.254.0.1 до 169.254.255.254). Для маски подсети задается значение 255.255.0.0. (Формально этот адрес считается временным, пока не найден сервер DHCP, и действительно, система продолжает искать его.)
  • Вы можете отключить APIPA на компьютере путем редактирования реестра:

  • Перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
  • Создайте новый элемент типа REG_DWORD с именем IPAutoconfigurationEnabled. (Этот элемент данных не существует, если вы не добавили его, поскольку Windows автоматически включает APIPA.)
  • Введите значение 0, чтобы отключить APIPA.
  • Чтобы снова включить это средство, измените значение на 1.
  • Этот раздел имеет довольно сложную структуру. Вы должны помнить, что он содержит настройки, которые применяются ко всему компьютеру. Однако в нем имеется подраздел с именем Interfaces, имеющий отдельные подразделы для каждого отдельного интерфейса TCP/IP на данном компьютере.

    Если в каком-либо из подразделов Имя_интерфейса имеется элемент IPAutoconfigurationEnabled, то именно это значение используется для данного интерфейса (а не значение одноименного элемента в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ). Поэтому важно проверить значения во всех этих подразделах, чтобы начали действовать именно те изменения, которые вы вносите.

    Поддержка новых стандартов TCP/IP

    Новые документы RFC для TCP/IP появляются все время, и в этом разделе рассматриваются некоторые новые RFC, которые поддерживаются в Windows Server 2003. Вы можете получать информацию по RFC на веб-сайте RFC Editor по адресу www.rfc-editor.org. Этот сайт поддерживается членами ISI (Information Services Institute), которые публикуют упорядоченный список всех RFC.

    Поддержка больших окон TCP/IP

    Размер окна связан с максимальным количеством пакетов, которые могут быть отправлены без ожидания подтверждения. Без поддержки больших окон максимальный размер окна обычно фиксирован и равен 64 Кб. Это неэффективно, если между отдельными отправителями и получателями передаются большие объемы данных. При использовании поддержки больших окон вы можете динамически задавать размер окна, используя опции конфигурирования TCP, что повышает пропускную способность сети.

    Примечание. Большие окна TCP определены в документе RFC 1323, "TCP Extensions for High Performance".

    Поддержка выборочных подтверждений

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

    Без этого средства подтверждения являются накопительными. TCP подтверждает получение только тех сегментов, которые согласуются с предыдущими подтвержденными сегментами. Сегменты, которые получены не по порядку, не подтверждаются явным образом. TCP требует, чтобы сегменты подтверждались в течение достаточно короткого промежутка времени, иначе недостающий сегмент и все следующие за ним сегменты передаются заново. Это означает, что сегменты могут быть успешно получены, и все-таки будут переданы снова.

    Использование выборочных подтверждений означает, что только те данные, которые не были получены, требуют повторной передачи, что повышает эффективность использования пропускной способности сети

    Примечание. Выборочные подтверждения определены в документе RFC 2018, "TCP Selective Acknowledgement Options".

    Поддержка улучшений в оценке времени на передачу и подтверждение приема

    TCP использует значение времени на передачу и подтверждение приема (RTT – round-trip time) для оценки времени, которое требуется для взаимного обмена данными между отправителем и получателем. Windows Server 2003 поддерживает использование нового средства TCP RTT Measurement, которое улучшает способ оценки этого времени. Это, в свою очередь, помогает настраивать таймеры повторной передачи, что повышает скорость и производительность TCP.

    Этот новый способ особенно полезен для более длинных каналов, например, каналов глобальной сети (WAN) с большим числом сегментов либо беспроводных или спутниковых каналов связи.

    Примечание. Определение этого метода дается в документе RFC 1323 "TCP Extensions for High Performance".

    Поддержка обнаружения маршрутизаторов с помощью ICMP

    Средство обнаружения маршрутизаторов с помощью ICMP (Internet Control Message Protocol) использует управляющие сообщения ICMP для обнаружения шлюза по умолчанию в каком-либо сегменте сети, если шлюз по умолчанию не был сконфигурирован вручную и не был назначен через DHCP. Используются два сообщения ICMP:

  • Запрос поиска маршрутизаторов, отправляемый хостом для обнаружения маршрутизаторов в сети.
  • Объявление маршрутизатора, которое отправляется каким-либо маршрутизатором. Это сообщение отправляется в ответ на запрос поиска маршрутизаторов, и оно отправляется периодически, чтобы извещать хосты в сети, что имеется данный маршрутизатор.
  • По умолчанию Windows Server 2003 отключает обнаружение маршрутизаторов с помощью ICMP для хостов, если хост не получил опцию Perform Router Discovery (Выполнять обнаружение маршрутизаторов) от сервера DHCP. Для Windows Server 2003 с запущенной службой RAS вы можете включить поддержку обнаружения маршрутизаторов с помощью ICMP следующим образом.

  • Откройте оснастку Routing and Remote Access из меню Administrative Tools.
  • В дереве консоли раскройте Server, затем раскройте IP Routing и выберите General.
  • В правой панели щелкните правой кнопкой на соответствующем сетевом адаптере (NIC) и выберите в контекстном меню пункт Properties.
  • Во вкладке General установите флажок Enable Router Discovery Advertisements (Включить объявления для обнаружения маршрутизатора).
  • В поле Advertisement Lifetime (minutes) [Время действия объявления (в минутах)] задайте время, по прошествии которого с момента последнего объявления маршрутизатора этот маршрутизатор считается отключенным.
  • В поле Level of preference (Уровень предпочтения) задайте уровень для данного маршрутизатора, при котором он считается шлюзом по умолчанию для хостов.
  • В поле Minimum time (minutes) [Минимальное время (в минутах)] задайте минимальный промежуток времени, после которого маршрутизатор периодически отправляет объявления ICMP.
  • В поле Maximum time (minutes) задайте максимальный промежуток времени, после которого маршрутизатор периодически отправляет объявления ICMP.
  • Примечание. Реально маршрутизатор периодически отправляет объявления ICMP в некоторый случайный момент времени между минимальным и максимальным промежутком. Примечание. Обнаружение маршрутизаторов с помощью объявлений ICMP описано в документе RFC 1256, "ICMP Router Discovery Messages".

    Поддержка IP Version 6

    Одной из основных причин использования IPv6 является резкий рост числа зарегистрированных IP-адресов. Принципы, лежащие в основе IPv6, аналогичны существующей схеме IP-адресации (IPv4), но вместо 32-битной адресации используется 128-битная адресация. Это существенно увеличивает количество доступных для использования IP-адресов. Для 128-битной адресации в IPv6 используются восемь наборов шестнадцатеричных цифр, разделенных символом "двоеточие" (:). Таким образом, адрес IPv6 может иметь следующий вид.

    4321:0:1:2:3:4:567:89ab

    В IPv6 определен также новый тип ресурсной записи, AAAA, для работы с новым 128-битным форматом адресации. Кроме того, создается ip6.int – новое пространство имен для обратного поиска (сопоставления имен IP-адресам).

    На данный момент в США разгорелась полемика, нужен ли реально IPv6, и основным доводом против его ввода является то, что на самом деле количество устройств, которым требуются открытые (допустимые для интернета) IP-адреса, меньше, чем утверждают сторонники IPv6. Сторонники IPv4 указывают на функции внутренних частных IP-адресов (такие как DHCP) как средство, которое позволит обойтись существующим количеством доступных открытых адресов. Специалисты из Европы и Азии больше склоняются к переходу на IPv6, чем администраторы в США. Они указывают, что в интернете скоро будет миллиард пользователей, и каждый пользователь может иметь больше одного устройства, выполняющего доступ в интернет. На данный момент, как они считают, мы явно ощущаем нехватку IP-адресов.

    Одним из интересных разрабатываемых приложений IPv6, особенно в Азии, является его использование для одноранговых сетей, включающих некомпьютерные устройства. Для связи с вашими бытовыми приборами, системами безопасности и другими устройствами через ваш компьютер (дома или в офисе) каждое устройство получает адрес IPv6. (Я представляю себе свою микроволновую печь, на дисплее которой показаны часы, отсчет времени, когда подогревается мой кофе, и ее адрес IPv6.)

    Пока не началось широкое распространение IPv6, я не хочу уделять много места описанию всех деталей запуска IPv6 в вашей сети (вы должны задать маршрутизаторы, DNS и сетевые адаптеры). Но если вам все же нужен IPv6 на вашем компьютере Windows Server 2003 (например, чтобы включать домашнюю микроволновую печь перед вашим уходом с работы), то вы должны добавить IPv6 к вашему сетевому адаптеру (NIC) путем добавления протокола Microsoft TCP/IP version 6 из диалогового окна Select Network Protocol.

    Улучшения в TCP/IP

    Если вы переходите к Windows Server 2003 из Windows NT, то вам необходимо знать об улучшениях (дополнениях) TCP/IP, которые появились с выпуском Windows 2000 (и, конечно, представлены в Windows Server 2003). Соответствующий обзор приводится в таблице 1.1.

    Улучшения в TCP/IP
    Средство Описание
    Internet Printing Protocol Позволяет вам направлять задания печати непосредственно по URL-адресу и управлять печатающими устройствами через интранет или интернет.
    Quality of Service (QoS) Поддерживает стандарты, связанные с качеством обслуживания (QoS), такие как Resource Reservation Protocol (RSVP), Differentiated Quality of Service и 801.1p, чтобы получать более высокие уровни качества обслуживания. QoS интерпретируется как некое "соглашение" между двумя и более машинами, которое гарантирует определенный ожидаемый уровень пропускной способности, управления трафиком и т.д. Однако это средство забирает довольно много ресурсов.
    Telephony Application Programming Inteface (TAPI) 3 Улучшенная поддержка средств телефонии.
    IP Security (IPSec) Технология шифрования для IP. Часто используется в виртуальных частных сетях (VPN). Более подробные сведения по вопросам безопасности см. в лекции 8.
    Layer Two Tunneling Protocol (L2TP) Расширение возможностей для защищенных виртуальных частных сетей.
    NDIS 5 Новая сетевая архитектура, которая поддерживает множество дополнений, таких как групповые сообщения, резервирование доли пропускной способности, управление электропитанием и т.д.
    Automatic Client Configuration (Автоматическое конфигурирование клиента) Способность клиента DHCP конфигурировать самого себя для работы в сети, когда нет связи с сервером DHCP.
    Поддержка высокоскоростных сетей Поддержка высокоскоростных сетей (определенных в RFC 1323) в увеличении производительности и масштабируемости. Сюда включается поддержка Selective Acknowledgements (SACK), IEEE 1394, беспроводных сетей, IP over ATM (RFC 1577) и многих других средств.
    Internet Group Management Protocol version 2 (IGMPv2) Позволяет компьютерам использовать технологии на основе групповых сообщений, такие как службы потокового медиа.
    Protocol Stack Tuning (Настройка стека протоколов) Windows автоматически регулирует настройки протоколов, такие как увеличение размера окна TCP по умолчанию для повышения производительности сети.
    Plug and Play Networking Автоматическое обнаружение сетевого оборудования, такого как сетевые адаптеры и адаптеры PCMCIA, без ручного вмешательства.
    Улучшения в DHCP Новые средства для DHCP, включая интеграцию с DNS, улучшение средств мониторинга и отчетов об использовании, обнаружение поддельных серверов DHCP и многое другое.

    TCP/IP и сетевая модель Windows Server 2003

    Сетевая архитектура Windows Server 2003 особенно подходит для использования различными наборами протоколов. Имея интерфейс Transport Device Interface (TDI) вверху транспортного уровня модели OSI и интерфейс Network Device Interface Specification (NDIS) внизу сетевого уровня, основные транспортные протоколы большей частью изолированы от остальной части сетевого стека.

    Любые допустимые протоколы, которые могут обращаться к этим двум интерфейсам, могут использоваться для отправки данных через сеть. Конечно, различные протоколы могут одновременно функционировать в Windows Server 2003, требуя компромисса между взаимодействием платформ и производительностью сетевого трафика.

    Поверх TDI находятся интерфейсы пользовательского режима (их называют также интерфейсами прикладного программирования, или API ). К этим интерфейсам обращаются приложения, когда им требуются сетевые службы. Во главе этих интерфейсов находятся интерфейс NetBIOS, который по-прежнему поддерживается системой Windows Server 2003 для файловых служб, и Windows Sockets (Winsock), который является стандартным интерфейсом для многих утилит TCP/IP и Internet в целях обратной совместимости с клиентами предыдущих версий Windows. Поддерживаются также следующие API.

  • Удаленные вызовы процедур (RPC – Remote Procedure Calls)
  • Блоки серверных сообщений (SMB – Server Message Blocks)
  • Именованные каналы (Named Pipes)
  • Почтовые слоты (Mail Slots)
  • Эти API не обязательно связаны с определенным набором протоколов. Например, в первоначальном выпуске системы Windows NT можно было передавать данные только из ее интерфейсов API в протокол NetBEUI и затем драйверу NDIS. В этой упрощенной системе не было функций TCP/IP, но она предоставляла определенные сетевые услуги.

    TDI предоставляет распределенный интерфейс, который позволяет направлять сетевые запросы от различных API тому протоколу, который требуется для доступа к нужному ресурсу. Например, NetBIOS-запросы файлов можно направлять протоколам TCP/IP при доступе к диску Windows в сети или протоколу NWLink, когда приложению требуется файл, находящийся на сервере NetWare. Несколько приложений, работающих в Windows Server 2003, могут обрабатывать несколько сетевых запросов одновременно, а это означает, что вызовы различных функций могут передаваться через TDI в стек протоколов TCP/IP либо в стек NWLink или одновременно в оба стека.

    Все стеки протоколов, действующие на компьютере Windows Server 2003, передают свои запросы сетевых услуг в одно место – интерфейс NDIS. NDIS – это стандарт, используемый для создания драйвера устройства, который обеспечивает доступ к сетевому оборудованию. Сетевую архитектуру Windows Server 2003 можно рассматривать как последовательность "суживающих" процедур. Приложения вверху этой модели генерируют запросы, которые могут использовать любой из нескольких API. Затем эти API передают запросы меньшему числу протоколов (обычно одному или двум). Различные виды запросов могут смешиваться в отдельных стеках протоколов; в интерфейсе NDIS они смешиваются в один поток и компонуются в виде дискретных пакетов, которые передаются через сетевой адаптер и затем самому сетевому носителю.

    Тем самым протоколы TCP/IP в первую очередь используются для перемещения запросов от TDI к интерфейсу NDIS, упаковывая их в дискретные блоки, которые называются дейтаграммами, что позволяет эффективно передавать эти запросы в их место назначения. Этот процесс, конечно, выполняется в обратном порядке, когда данные поступают на рабочую станцию. Можно считать, что упаковка состоит из трех основных функций.

  • Адресация. Для отправки данных другому компьютеру в сети должны существовать средства, с помощью которых может быть уникально идентифицирована точка назначения. TCP/IP предоставляет свою собственную систему идентификации в форме IP-адреса для каждой машины в сети.
  • Маршрутизация. Протокол канального уровня (Data Link), такой как Ethernet, не занимается конечной доставкой сетевых пакетов, а только их пересылкой следующей машине в сети. TCP/IP предоставляет средства, с помощью которых сетевой трафик эффективно и надежно маршрутизируется через несколько сетевых сегментов в место назначения.
  • Мультиплексирование. Поскольку такая операционная система, как Windows Server 2003, может выполнять несколько программ одновременно, сетевые запросы мультиплексируются через кабель (то есть пакеты из различных источников и с различными точками назначения смешиваются в потоке сетевых данных). Поэтому, чтобы запросы могли быть переданы соответствующему прикладному процессу на целевом компьютере, должен быть идентифицирован каждый пакет. TCP/IP выполняет эту задачу, назначая каждому процессу номер порта, который в сочетании с IP-адресом уникально идентифицирует в сети конкретный процесс, которому должен быть доставлен пакет. Комбинация IP-адреса и номера порта называется сокетом.
  • Стек протоколов TCP/IP

    Протоколы TCP/IP, реализованные в Windows Server 2003, можно разбить на четыре функциональных уровня, примерно соответствующих уровням эталонной модели OSI.

  • Прикладной (Application)
  • Транспортный (Transport)
  • Сетевой (Network; известный также как уровень интернет)
  • Сетевого доступа (Network Access)
  • Как и в эталонной модели OSI, функции различных протоколов TCP/IP разбиваются на четыре уровня, которые делают процесс инкапсуляции (упаковки) данных более структурированным. По мере того, как сообщение проходит из пользовательского интерфейса вверху сетевого стека к реальному сетевому носителю (обычно это кабель) вниз, данные, обработанные протоколом верхнего уровня, повторно инкапсулируются протоколами, действующими на каждом следующем уровне. В результате получается составной пакет, который передается целевому компьютеру, где весь процесс повторяется в обратном порядке по мере прохождения сообщения вверх по этим уровням.

    Изучение уровней, на которых действует этот комплект протоколов, позволяет понять, каким образом они реализованы для использования в сетях Windows Server 2003. В следующих разделах дается обзор уровней TCP/IP.

    Уровень сетевого доступа (Network Access)

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

    Каждый тип сети – Ethernet или какой-либо еще – имеет свой собственный способ идентификации компьютеров в сети. В большинстве современных типов сетей эта идентификация осуществляется с помощью адреса устройства, который кодируется в каждом сетевом адаптере его изготовителем. Этот MAC-адрес (Media Access Control address) используется в крайнем фрейме каждого сетевого пакета для идентификации компьютера, которому он должен быть передан.

    Поэтому для дейтаграммы IP, которая должна быть отправлена через сеть, должен существовать способ, позволяющий определить, какой MAC-адрес соответствует заданному IP-адресу. Это задача протоколов уровня сетевого доступа, из которых наиболее известен протокол разрешения адресов ARP (Address Resolution Protocol).

    ARP

    ARP действует между сетевым и канальным уровнями сетей Ethernet. Он не может действовать, пока не получит IP-адрес компьютера, которому отправлена дейтаграмма. Дейтаграмма не может быть передана через сеть, пока ARP не снабдит канальный уровень адресом целевого устройства.

    Когда ARP получает дейтаграмму от сетевого уровня, он считывает IP-адрес точки назначения из заголовка IP и затем формирует пакет разрешения запроса адреса (ARP-пакет), который распространяется путем широковещательной передачи во всей локальной сети. Запрос разрешения адреса содержит IP-адрес целевого компьютера (если он находится в том же сегменте сети) или IP-адрес шлюза по умолчанию для соответствующей рабочей станции (в противном случае).

    Каждый компьютер в данном сегменте сети обрабатывает пакет ARP и записывает содержащийся в нем IP-адрес. Если компьютер обнаруживает в пакете ARP свой собственный IP-адрес, то он отвечает отправителю, указывая адрес устройства, соответствующий его сетевому адаптеру. ARP передает этот адрес протоколу канального уровня, который использует его при разбиении пакета на фреймы и затем передает его через сеть.

    ARP также поддерживает кэш IP-адресов и соответствующие адреса устройств, чтобы снизить количество избыточных широковещательных сообщений, передаваемых через сеть. Кэш стирается при каждом выключении или перезагрузке компьютера, что препятствует неверной передаче, которая может быть вызвана изменениями в сетевом оборудовании.

    Примечание. Широковещательные сообщения ARP ограничиваются локальным сетевым сегментом. Протокол канального уровня отвечает только за передачу фрейма следующему компьютеру в линии. Во многих случаях это может быть шлюз в другой сетевой сегмент, а не компьютер, IP-адрес которого указан как точка назначения данного сообщения.

    ARP – это лишь один из многих протоколов уровня сетевого доступа, предназначенных для поддержки чрезвычайно обширного и разнообразного множества платформ, которые могут использовать TCP/IP.

    Сетевой уровень (Network Layer)

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

  • Упаковка трафика более высоких уровней в дейтаграммы, которые являются базовыми единицами передачи TCP/IP.
  • Реализация системы адресации TCP/IP.
  • Маршрутизация дейтаграмм между сетями.
  • Фрагментация и дефрагментация дейтаграмм в соответствии с ограничениями типов сетей между исходной и конечной точками.
  • Передача данных между транспортным уровнем и уровнем сетевого доступа (в обоих направлениях).
  • IP – это протокол без установления соединения (connectionless) и поддержки средств надежности. Слова "без установления соединения" означают, что он передает пакеты без проверки того, что целевой компьютер работает и готов к приему данных. Отсутствие средств надежности означает, что не существует внутренних механизмов, которые обеспечивают обнаружение и коррекцию ошибок. Эти очевидные недостатки на самом деле не представляют какой-либо проблемы, поскольку IP можно всегда использовать в сочетании с другими протоколами, которые могут обеспечивать эти функции. Основой протокола IP является обеспечение только обычных функций, которые требуются для всех видов передачи данных, чтобы можно было выбрать подходящий транспортный протокол, отвечающий конкретным требованиям передаваемых данных.

    Маршрутизация IP

    IP также отвечает за маршрутизацию дейтаграмм в смежные сегменты сети. Каждый компьютер, работающий с TCP/IP в интерсети, имеет доступ к одному или нескольким шлюзам, которые он использует для передачи данных компьютерам других сетей. Шлюз в терминологии TCP/IP – это устройство, которое передает пакеты между двумя и более сетями. Этот термин не обязательно подразумевает существование трансляции протоколов (в отличие от обычной сетевой терминологии). Систему с TCP/IP, которая используется как шлюз между источником и целью передачи, называют также промежуточной системой (источник и цель называют конечными системами ).

    Трафик TCP/IP в промежуточной системе доходит до сетевого уровня, но не выше. Протоколу IP известно только о компьютерах в его локальном сетевом сегменте и о смежных сегментах, доступ к которым осуществляется через локальные шлюзы. Когда протокол IP получает пакет, предназначенный для компьютера в другом сегменте, он отправляет его локальным шлюзам, чтобы они продолжили передачу этого пакета. Этот конкретный шлюз выбирается по следующим причинам.

  • Он обеспечивает непосредственный доступ к сети, в которой находится целевой компьютер.
  • Он зарегистрирован в таблице маршрутизации данного компьютера как наиболее подходящий маршрут к целевой сети.
  • Это шлюз по умолчанию данного компьютера.
  • Заголовок IP

    Как и любой сетевой протокол, IP помещает свой собственный заголовок в каждый пакет, который он получает от вышележащих уровней, инкапсулируя его для передачи и вставляя информацию, которая требуется для выполнения всех функций протокола. Заголовок IP содержит 20 или 24 байта в зависимости от включения определенных возможностей. Байты в терминологии TCP/IP называются октетами, и заголовок разбивается на 5 или 6 32-битных слов. После включения заголовка пакет называют дейтаграммой, и он передается вниз на уровень сетевого доступа (Network Layer). Дейтаграмма инкапсулируется снова канальным уровнем (Data Link), прежде чем начинается ее передача через сеть.

    Заголовок IP состоит из шести полей.

  • Первое слово
  • Версия (Version, 4 бита). Указывает версию заголовка IP.
  • Длина заголовка (Internet Header Length, 4 бита). Общая длина заголовка IP (количество 32-битных слов), указывая тем самым, имеется ли необязательное шестое слово.
  • Тип обслуживания (Type of Service [TOS], 8 битов). Указывает нужный приоритет сетевого обслуживания для данной дейтаграммы.
  • Общая длина (Total Length, 16 битов). Указывает общую длину дейтаграммы в октетах (байтах); может использоваться, чтобы определять, нужна ли фрагментация дейтаграммы для выполнения передачи.
  • Второе слово
  • Идентификация (Identification, 16 битов). Если дейтаграмма фрагментируется или дефрагментируется, то данное поле указывает дейтаграмму, которой принадлежит определенный фрагмент.
  • Флаги (Flags, 3 бита). Указывает, может ли данная дейтаграмма быть фрагментированной и получены ли все фрагменты, образующие исходную дейтаграмму.
  • Смещение фрагментации (Fragmentation Offset, 13 битов). Используется для сборки фрагментов в нужном порядке; это поле указывает начальную точку (измеряется 64-битными блоками) данного фрагмента дейтаграммы.
  • Третье слово
  • Время действия (Time to Live, 8 битов). Указывает, как долго (в секундах) данная дейтаграмма может оставаться активной в интерсети. Это позволяет удалять дейтаграммы, которые невозможно доставить, после заданного периода времени. Каждая система, которая обрабатывает дейтаграмму, уменьшает это значение как минимум на секунду.
  • Протокол (Protocol, 8 битов). Указывает протокол на транспортном уровне целевого компьютера, которому должна быть доставлена дейтаграмма.
  • Контрольная сумма заголовка (Header Checksum, 16 битов). Используется для проверки того, что заголовок IP (но не данные) переданы правильно. Эта контрольная сумма проверяется каждой промежуточной системой и пересчитывается, прежде чем выполнить отправку в следующий узел.
  • Четвертое слово
  • Исходный адрес (Source Address, 32 бита). IP-адрес передающего компьютера.
  • Пятое слово
  • Целевой порт (Destination Address, 32 бита). IP-адрес конечной системы, которой отправлена дейтаграмма.
  • Шестое слово (необязательное)
  • Параметры (Options, переменной длины). Задает параметры для обслуживания маршрутизации, безопасности и временных меток в передачах IP. Это поле тоже не является обязательным, но должно поддерживаться всеми реализациями IP.
  • Заполнитель (Padding, переменной длины). Нули, используемые для заполнения остатка шестого слова до 32 битов.
  • Хотя протокол IP наиболее активно используется протоколами TCP/IP, сам IP не может справляться с некоторыми ситуациями, встречающимися во время передачи дейтаграмм. В этих случаях требуется "вспомогательный" протокол, выполняющий дополнительные функции управления передачей.

    ICMP (Internet Control Message Protocol). ICMP действует на сетевом уровне. Он используется для выполнения ряда диагностических и административных функций, которые помогают в передаче пакетов IP. Например, утилита ping использует пакеты ICMP для проверки существования определенных IP-адресов в данной сети.

    Аналогичные пакеты ICMP используются также для предоставления компьютеру-отправителю отчетов о состоянии передачи, например:

  • сообщения, что целевой адрес дейтаграмм недоступен, указывая далее, какой элемент целевой доставки недоступен, – сеть, хост, протокол или порт;
  • сообщения ICMP типа Source Quench ("Замедление источника"), указывающие, что промежуточная или конечная система переполнена поступающими пакетами. Это позволяет отправившему сообщение узлу инициировать процедуры управления потоком, снижающие скорость передачи, пока не исчезнут сообщения этого типа;
  • отчеты о том, что пакеты были исключены промежуточной или конечной системой из-за повреждения заголовка пакета;
  • предупреждения, что дейтаграммы должны быть фрагментированы, чтобы они могли успешно дойти до целевого узла.
  • Сообщения ICMP типа Redirect (Перенаправление) являются рекомендациями по маршрутизации, информирующими узел-отправитель об условиях вне смежных сегментов сети. Если передающий компьютер находится в сегменте, где имеется более одного применимого шлюза, то эти пакеты позволяют отправителю выбирать шлюз, который обеспечивает более эффективный маршрут к целевому узлу.

    Эти функции не следует путать с функциями действительно ориентированной на соединения службы и средств обнаружения ошибок. ICMP помогает в доставке дейтаграмм IP на целевой компьютер, но не гарантирует надежности обслуживания.

    Транспортный уровень (Transport Layer)

    Как и в эталонной модели OSI, транспортный уровень TCP/IP находится поверх сетевого уровня. Транспортные протоколы инкапсулируются внутри дейтаграмм IP для передачи через сеть и предоставляют различные уровни обслуживания в зависимости от требований соответствующего приложения. Два основных протокола, которые действуют на транспортном уровне, это TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Они подробно описываются в следующих двух разделах. TCP/IP применяется в тех случаях, когда требуется более надежное обслуживание, и UDP – в тех случаях, когда гарантированная доставка не является критически важным требованием. В поле Protocol заголовка IP указывается, какой транспортный протокол передается в дейтаграмме, чтобы принимающая рабочая станция знала, как обрабатывать данный пакет.

    TCP (Transport Control Protocol)

    TCP – это основной ориентированный на соединения надежный протокол, используемый в передаче данных TCP/IP. Приложения используют его в ситуациях, требующих передачи данных, которые можно проверить на полную точность, например, при ftp-пересылке файлов. В отличие от IP передача данных TCP никогда не начинается, пока не будет выполнено трехстороннее квитирование (three-way handshake) с целевым компьютером. В результате создается виртуальное соединение между двумя компьютерами, то есть заранее созданное "соглашение" между этими двумя машинами для обмена пакетами. После установления соединения все дейтаграммы, передаваемые в течение данного сеанса, считаются сегментами этой передачи. Весь набор дейтаграмм, передаваемых в течение всего сеанса, называется последовательностью.

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

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

    Заголовок TCP

    Заголовок TCP достаточно сложен ввиду большого числа функций, хотя он имеет тот же размер, что и заголовок IP. Заголовок TCP передается внутри заголовка IP и читается только конечной системой, получившей пакет. Поскольку целевая система должна подтвердить получение отправленных данных, TCP является двунаправленным протоколом. Один и тот же заголовок используется для отправки пакетов данных в одном направлении и передачи подтверждений в обратном направлении. Заголовок TCP форматируется следующим образом.

  • Первое слово
  • Исходный порт (Source Port, 16 битов). Указывает номер порта прикладного процесса на исходном компьютере, отправившего данные.
  • Целевой порт (Destination Port, 16 битов). Указывает номер порта прикладного процесса на целевом компьютере, который получит данные.
  • Второе слово
  • Порядковый номер (Sequence Number, 32 бита). Гарантирует, что сегменты будут обработаны в должном порядке на целевом компьютере за счет указания номера первого октета данных сегмента во всей последовательности.
  • Третье слово
  • Порядковый номер подтверждения (Acknowledgement Number, 32 бита). Указывает порядковый номер для следующего сегмента, который будет получен целевым компьютером; является признаком того, что все предыдущие сегменты были правильно получены и подтверждены.
  • Четвертое слово
  • Смещение данных (Data Offset, 4 бита). Задает длину заголовка TCP (количество 32-битных слов), указывая тем самым начало поля данных и наличие шестого слова, если оно присутствует в заголовке.
  • Зарезервированное поле (Reserved, 6 битов). В настоящее время не используется; это значение должно быть равно нулю.
  • Управляющие биты (Control Bits, 6 битов). Двоичные флаги, которые можно устанавливать, чтобы указывать функцию или назначение сегмента:
  • URG: Имеют смысл данные поля Urgent Pointer
  • ACK: Имеют смысл данные поля Acknowledgement Number
  • PSH: Функция Push
  • RST: Повторно установить соединение
  • SYN: Синхронизировать номера в последовательности
  • FIN: Нет больше данных от отправителя
  • Окно (Window, 16 битов). Обеспечивает управление потоком, указывая количество октетов (начиная с номера, указанного в поле Acknowledgement Number), которые должны быть получены целевым компьютером от исходного компьютера.
  • Пятое слово
  • Контрольная сумма (Checksum, 16 битов). Обеспечивает коррекцию ошибок путем проверки заголовка TCP и полей данных, а также псевдозаголовка, содержащего адрес исходного компьютера, адрес целевого компьютера и название протокола из заголовка IP, а также суммарную длину пакета TCP. Псевдозаголовок позволяет транспортному уровню повторно проверить то, что дейтаграммы отправлялись соответствующему целевому компьютеру.
  • Указатель срочных данных (Urgent Pointer, 16 битов ). Если установлен управляющий бит URG, то в этом поле указывается местоположение срочных данных (относительно значения Sequence Number данного сегмента).
  • Шестое слово (необязательное)
  • Параметры (Options, переменной длины ). Необязательное поле, которое используется для указания максимальной длины сегмента, разрешенной компьютером-отправителем во время квитирования TCP (когда установлен управляющий бит SYN).
  • Заполнитель (Padding, переменной длины). Нули, используемые для заполнения остатка шестого слова до 32 битов.
  • Анатомия сеанса TCP

    Чтобы начать сеанс TCP, одна система-отправитель передает пакет, в котором установлен управляющий бит синхронизации (SYN) и содержится выбранный случайным образом порядковый номер. Система-получатель отвечает отправителю пакетом, в котором установлен управляющий бит ACK и указан ее собственный начальный порядковый номер, и затем возвращает бит синхронизации. Каждая из двух систем поддерживает свою собственную систему нумерации байтов в последовательности, зная также порядковые номера второй системы.

    Нумерация начинается с первого пакета и непрерывно наращивается обеими системами в течение всего соединения TCP. Когда передающий компьютер начинает передачу реальных данных, он указывает в каждом пакете порядковый номер первого байта, содержащего в этом пакете поля данных. Если пакеты поступают к получателю в неверном порядке, то система-получатель использует эти порядковые номера для перестановки пакетов в нужном порядке.

    Во время передачи данных передающая система вычисляет контрольную сумму каждого пакета и помещает результат в соответствующее поле заголовка TCP. Компьютер-получатель пересчитывает контрольную сумму для каждого полученного пакета и сравнивает результат со значением поля контрольной суммы. Если значения совпадают, пакет верифицируется как переданный без ошибок. Закончив отправку данных, передающий компьютер отправляет пакет с установленным битом FIN, прекращая соединение и заканчивая последовательность.

    Протокол UDP (User Datagram Protocol)

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

    UDP обычно не используется для передачи больших двоичных файлов данных, когда один неверный бит означает потерю файла. UDP чаще используется для передачи короткого запроса другому компьютеру. Если отправитель не получает никакого ответа, то запрос можно передать еще раз с использованием меньшего суммарного объема трафика, чем при установлении соединения TCP.

    Примечание. Некоторые приложения начали использовать UDP для потоковой передачи аудио и видео через Internet, поскольку объем управляющей информации здесь намного меньше, а также потому, что поток аудио или видео намного проще восстановить при случайной потере одного из пакетов, чем для большинства двоичных файлов.

    Заголовок UDP намного проще и короче, чем заголовок TCP. Он содержит следующую информацию.

  • Первое слово
  • Исходный порт (Source Port, 16 битов). Указывает номер порта прикладного процесса, инициировавшего UDP-передачу (необязательный параметр; заполняется нулями, если опущен).
  • Целевой порт (Destination Port, 16 битов). Указывает номер порта прикладного процесса на целевом компьютере, которому направлена UDP-передача.
  • Второе слово
  • Длина (Length, 16 битов). Указывает общую длину пакета UDP в октетах, включая данные, но исключая заголовок IP и любые фреймы канального уровня.
  • Контрольная сумма (Checksum, 16 битов). Указывает результат расчета контрольной суммы для заголовка UDP и данных плюс псевдозаголовок, содержащий поля IP Source Address, Destination Address и Protocol.
  • Прикладной уровень (Application Layer)

    В комплект TCP/IP включено много различных протоколов, которые действуют поверх интерфейса Transport Device Interface (TDI). Некоторые из них, такие как ftp и Telnet, сами являются как приложениями, так и протоколами, и включаются во многие реализации комплекта TCP/IP для предоставления пользователям любой платформы базовых служб пересылки файлов и эмуляции терминалов со стандартизованным интерфейсом.

    Общедоступные уровни. Другие протоколы прикладного уровня используются для предоставления определенных услуг TCP/IP программам. Например, протокол SMTP (Simple Mail Transfer Protocol) используется многими программами для отправки электронной почты через сети TCP/IP. Другие протоколы, такие как DNS (Domain Name System), предоставляют более "обобщенные" услуги. DNS используется многими приложениями для разрешения (преобразования) хост-имен интернета в IP-адреса.

    Скрытые уровни. Хотя приводившиеся до сих пор примеры достаточно хорошо известны, некоторые прикладные протоколы действуют почти невидимо для пользователя. Например, протокол RIP (Routing Information Protocol) рассылает другим компьютерам в сети информацию, которая помогает им принимать более обоснованные решения по маршрутизации.

    Как действует прикладной уровень. Прикладные протоколы логически ближе всего к пользовательскому интерфейсу, и они часто используются непосредственно с процессом, который генерирует запросы сетевых ресурсов. При обработке такого запроса он передается вниз по уровням сетевого стека и инкапсулируется с помощью различных протоколов, которые описаны в предыдущих разделах.

    Так, если вы подсоединяетесь к серверу ftp в интернете, чтобы загрузить с него файл, этот сервер ftp в удаленном сайте выполняет доступ к данному файлу и создает пакет, добавляя к нему заголовок прикладного протокола FTP. Весь пакет затем передается вниз транспортному уровню, где он становится полем данных в пакете TCP. На сетевом уровне пакет делится на блоки нужного размера для передачи через сеть. К каждому из них добавляется заголовок IP, после чего эти пакеты можно назвать набором дейтаграмм.

    За исключением небольших изменений в заголовках IP во время передачи этих дейтаграмм они не открываются, пока не поступят в место назначения. Пока они находятся в сети, самый внешний уровень пакетов данных, фрейм канального уровня, может изменяться несколько раз во время перемещения пакетов от сервера ftp к вашей рабочей станции. Дейтаграммы могут поступить на ваш компьютер в оболочке пакетов Ethernet, и они могут даже уйти в таком виде с сервера ftp, а "по дороге" между исходной и конечной системами может быть 20 или больше шлюзов, где работает огромное количество различных протоколов канального уровня.

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

    Все описанные в предыдущих разделах протоколы TCP/IP действуют совместно для передачи данных через сеть. По умолчанию Windows Server 2003 устанавливает их как часть стека сетевого обмена данными. В Windows Server 2003 часто ссылаются на TCP/IP как на один протокол, хотя на самом деле применяется целое семейство протоколов.

    Установка и конфигурирование TCP/IP

    TCP/IP стал предпочтительным протоколом со времен Windows NT 4, и он устанавливается во время установки самой операционной системы. Однако в Windows Server 2003 TCP/IP является необходимым условием вашего входа, использования Active Directory (AD), DNS (Domain Name System) и многого другого. Стек TCP/IP в Windows Server 2003 содержит поддержку всех протоколов, описанных в предыдущих разделах, а также большой набор служб и утилит, которые позволяют вам использовать TCP/IP, управлять им и устранять проблемы TCP/IP. Windows Server 2003 поставляется вместе с многими службами TCP/IP, которые помогают администрировать большое число пользователей TCP/IP в сети.

    Кроме того, TCP/IP можно устанавливать и после установки операционной системы, для чего нужно щелкнуть на кнопке Add на странице Local Area Connections Properties. Если вы использовали для взаимодействия с другими Windows-компьютерами вашей локальной сети другие протоколы, такие как NetBEUI, то я настоятельно рекомендую удалить их после того, как вы сконфигурируете все ваши машины для использования TCP/IP. Практика показывает, что число используемых протоколов должно быть сведено к минимуму.

    После установки TCP/IP (в процессе установки операционной системы или с помощью страницы Local Area Connections Properties) вы должны задать информацию, необходимую для идентификации вашей машины и ее подготовки к взаимодействию с остальными машинами сети TCP/IP. В Windows Server 2003 включается DHCP (Dynamic Host Configuration Protocol), позволяющий использовать какой-либо компьютер Windows Server 2003 для автоматического предоставления вашим компьютерам всех настроек конфигурации TCP/IP, которые им требуются. Использование сервера DHCP, который описывается в лекции 2, означает, что вы можете не знакомиться с настройками конфигурации, которые описываются в следующих разделах. Но чтобы вы полностью знали возможности TCP/IP, я опишу настройки, необходимые для эффективного обмена данных с помощью TCP/IP, а также использование этих настроек компьютерами для взаимодействия с сетью.

    Настройки, необходимые для использования TCP/IP в Windows Server 2003, конфигурируются на странице Internet Protocol (TCP/IP) Properties каждого сетевого устройства:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию
  • Предпочтительные и альтернативные серверы DNS
  • IP/адрес

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

    Примечание. В сети TCP/IP термин "хост" не обязательно является синонимом компьютера. Хост – это сетевой интерфейс, и на одном компьютере может быть несколько сетевых интерфейсов. В таком случае каждый хост должен иметь свой собственный IP-адрес.

    IP-адреса содержат 32 бита и представляются в виде четырех разделенных точками десятичных значений от 0 до 255 (по 8 бит каждое). Например, IP-адрес 192.168.1.146 эквивалентен следующему двоичному представлению

    11000000.10101000.00000001.10010010

    Если ваша сеть не подсоединена к интернету, то сетевые адреса могут назначаться отдельным хостам сетевыми администраторами. Это могут быть любые допустимые комбинации чисел, и каждый назначенный адрес должен быть уникальным для данной сети. Такая сеть называется незарегистрированной, поскольку она организована только в пределах вашего предприятия.

    Но если ваша сеть подсоединена к интернету, то вы должны иметь одну или несколько машин с зарегистрированными IP-адресами. Чтобы избежать дублирования адресов, вы должны регистрировать хосты интернета с помощью какой-либо уполномоченной организации интернет. В частной сети могут быть зарегистрированные адреса у всех хостов или может поддерживаться незарегистрированная сеть для внутренних пользователей и регистрироваться те машины, которые доступны непосредственно из интернета, например, серверы World Wide Web и ftp. В таком случае пользователи с незарегистрированными IP-адресами обычно выполняют доступ в интернет через брандмауэр или прокси-сервер, который препятствует несанкционированному доступу к локальной сети из внешних машин

    Конфигурируя компьютер для использования TCP/IP, вы должны использовать для этого запланированную группу адресов или использовать сервер DHCP Windows Server 2003, который назначает адреса автоматически из заданного вами пула адресов.

    Внимание. Ни в коем случае нельзя выбрать произвольный IP-адрес, чтобы просто посмотреть, как он действует. Конфликты IP-адресов – это наиболее распространенная проблема в сетях TCP/IP, и ее труднее всего устранить. Помните, что IP-адрес, который вы просто "заимствуете", может принадлежать другому компьютеру, и стек IP-адресов отключается в случае появления дубликатов.

    Маска подсети

    Маска подсети – это, может быть, наиболее сложный для понимания параметр конфигурирования TCP/IP. Люди видят значения, назначенные маске подсети, например, 255.255.255.0, и путают их с реальными IP-адресами.

    На самом деле маска подсети основывается на очень простом принципе. В предыдущем разделе говорилось, что IP-адрес идентифицирует как сеть, так и конкретный хост в этой сети. Единственное назначение маски подсети – это обозначить, какая часть IP-адреса идентифицирует сеть, в которой находится данный хост, и какая часть идентифицирует сам хост.

    Это проще понять, если рассматривать маску подсети в двоичном виде. Все IP-адреса – это 32-битные двоичные значения. Они записываются в десятичной форме только из соображений удобства. Маска подсети 255.255.255.0 выглядит следующим образом в двоичном виде:

    11111111.11111111.11111111.00000000

    Это означает для IP-адреса, связанного с этой маской, что все цифры со значением 1 идентифицируют сеть, а все нули идентифицируют хост в этой сети (единицы маскируют идентификатор сети). Таким образом, если IP-адрес машины – 123.45.67.89, то 123.45.67 идентифицирует сеть, и 89 идентифицирует хост.

    Типы IP/адресов

    Если вы поняли, для чего используется маска подсети, то дальше логично спросить, почему для идентификации различных сетей требуется различное количество цифр. Ответ на этот вопрос, как и на большинство вопросов по TCP/IP, нужно искать в интернете. Протоколы TCP/IP разрабатывались для структуры, которая теперь называется интернет. Хотя никто не ожидал столь стремительного роста интернета, эту структуру разрабатывали как сеть с высокой степенью масштабируемости, для которой требуется минимум централизованного администрирования.

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

    Для регистрации отдельных сетей было создано три различных класса сетей, определяющихся количеством хостов, подсоединенных к интернету. В таблице 1.2 приводятся эти классы вместе с их маской подсети, максимальным количеством возможных сетей для каждого класса и количеством уникальных адресов хостов в одной сети, доступных для каждого класса.

    Примечание. Имеется два дополнительных класса – D и E. Адреса класса D обычно используются для групповых сообщений, адреса класса E зарезервированы для экспериментального использования.

    На практическом уровне это означает, что если вы хотите зарегистрировать свою сеть для ее подсоединения к интернету, то можете получить, например, адрес класса C от какого-либо уполномоченного органа интернет. Он назначит вам сетевой адрес, который вы будете использовать для первых трех октетов своих IP-адресов, например, 199.45.67. После этого вы можете назначать произвольным образом 254 возможных значения четвертого октета без дублирования. Маска подсети на всех ваших машинах – 255.255.255.0, что означает использование только последнего октета для идентификации хоста.

    Если в вашей сети больше 254 узлов, то вам потребуется получить еще один адрес класса C. Если у вас достаточно большая сеть, то вы можете получить адрес класса B, что позволит поддерживать до 65534 хостов. После этого вы сможете сами назначать адреса из последних двух октетов и использовать маску подсети 255.255.0.0.

    Характеристики классов адресов
    Класс адреса Маска подсети по умолчанию Количество сетей Количество хостов
    A 255.0.0.0 126 16777214
    B 255.255.0.0 16384 65534
    C 255.255.255.0 2097152 254

    Понятие подсети

    Маскирование подсети иногда сложнее, чем приведенные выше примеры. Разделение между сетью и хостом в IP-адресе не всегда происходит строго по октетам.

    Подсеть – это просто логическое разбиение, налагаемое на сетевой адрес в организационных целях. Например, в большой корпорации, имеющей зарегистрированный сетевой адрес класса B, маловероятно, чтобы ее узлам присваивались адреса путем последовательной нумерации от 0.0 до 255.255.

    Более практичный сценарий – это разбиение сети на подсети, которое обычно основывается на схеме кабельных соединений между помещениями. При создании подсетей, соответствующих сетям, из которых состоит предприятие, задачу создания и поддержки IP-адресов можно разделить между администраторами, ответственными за каждую сеть.

    Поэтому при таком сценарии адрес сети класса - определяет значения первых двух октетов в IP-адресе, а подсеть определяет значение третьего октета, позволяя использовать четвертый октет для идентификации хостов. Этой ситуации соответствует маска подсети 255.255.255.0, поскольку первые три октета определяют адрес сети, и при этом не имеет значения, зарегистрирован он или не зарегистрирован.

    Предположим, однако, что у вас имеется адрес класса C и вы находитесь в той же ситуации. Первые три октета ваших IP-адресов определяются зарегистрированным адресом сети, но вы хотите создать подсети, поскольку ваши рабочие станции находятся в различных сегментах сети. Вы тоже можете сделать это, если представите себе маску подсети в двоичном виде. Вместо использования маски подсети класса C по умолчанию вы можете выделить несколько битов четвертого октета тоже для адреса сети, например:

    11111111.11111111.11111111.11110000

    Если преобразовать этот адрес в десятичную форму, то мы получим маску подсети 255.255.255.240. Это позволяет определить до 14 адресов сетей (но не 16, поскольку з начения 0000 и 1111 не допускаются), содержащих до 14 хостов каждая. Вы можете изменять маску, чтобы иметь большее количество сетей или большее количество хостов. Чтобы назначать адреса сетей и хостов с помощью этого метода, имеет смысл записывать подходящие значения в двоичной форме и затем преобразовывать их в десятичную форму во избежание ошибок. Поскольку немногие из нас могут считать в двоичной системе, большинству для выполнения этой задачи требуется калькулятор.

    В большинстве случаев значение маски подсети для вашей рабочей станции предоставляется вам вместе с IP-адресом – вручную или сервером DHCP, особенно при сложной организации подсетей. Напомним, однако, что разбиение на подсети – это локальная задача, то есть занятие для администратора. Приложения TCP/IP работают с IP-адресами одинаковым образом – независимо от битов, которые используются для идентификации сети.

    Шлюз по умолчанию

    Шлюз по умолчанию на странице Internet Protocol (TCP/IP) Properties – это адрес шлюза в вашем локальном сегменте сети, который обеспечивает доступ к остальной части интерсети. Шлюзом может быть компьютер, коммутатор (switch) или маршрутизатор, соединяющий два или более сегментов вашей сети. Вы можете иметь более одного шлюза в своем локальном сегменте, но когда один из ваших компьютеров пытается установить соединение с компьютером в другой сети (например, в интернете), он использует по умолчанию именно тот шлюз, который задан как шлюз по умолчанию.

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

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

    Расширенная IP/адресация

    Компьютер может иметь более одного сетевого интерфейса, каждый из которых должен иметь свои собственные настройки конфигурации TCP/IP. Страница Internet Protocol (TCP/IP) Properties окна Local Area Connection Properties содержит список выбора, где можно выбрать один из сетевых адаптеров, установленных на вашей машине, чтобы вы могли задать различные настройки для каждого из них.

    Для компьютеров с системой из семейства Windows Server 2003 вы можете назначить более одного IP-адреса для одного сетевого адаптера. Если щелкнуть на кнопке Advanced на странице Internet Protocol (TCP/IP) Properties, то появится диалоговое окно Advanced TCP/IP Settings. Во вкладке IP Settings вы можете ввести дополнительные IP-адреса для каждого установленного сетевого адаптера.

    Наиболее распространенный сценарий, при котором одному адаптеру на компьютере Windows Server 2003 назначают несколько адресов, это машина, используемая как сервер в интернете. Вы можете, например, запустить сервер World Wide Web (WWW), использующий IIS на машине Windows Server 2003, непосредственно подсоединенной к интернету, и держать на нем веб-сайты для различных заказчиков, снабдив каждый сайт его собственным IP-адресом. Пользователи интернета могут выполнять доступ к различным сайтам, которые связаны с каждым из этих IP-адресов, не зная, что все эти сайты находятся на одной машине.

    Вкладка IP Settings диалогового окна Advanced TCP/IP Settings позволяет также задавать адреса дополнительных шлюзов для каждого адаптера. Но в отличие от дополнительных IP-адресов, которые остаются активными одновременно, дополнительные шлюзы используются (в заданном порядке) только в том случае, когда шлюз по умолчанию недоступен.

    Предпочтительные и альтернативные серверы DNS

    Если вы переходите к Windows Server 2003 из Windows NT, то увидите, что DNS используется намного больше, чем это было раньше. Вы, возможно, привыкли, что DNS в основном используется для разрешения внешних имен, а для взаимодействия с другими компьютерами в вашей сети используются NetBIOS и WINS, но не DNS.

    Разрешение имен выполняется в Windows Server 2003 исключительно с помощью DNS (фактически это началось с Windows 2000). Каждый раз, когда вы запрашиваете контакт с другим компьютеров в вашей сети или в интернете, именно служба DNS обеспечивает необходимое преобразование имени в IP-адрес.

    В результате зависимости Windows Server 2003 от DNS вы должны сконфигурировать все компьютеры своей сети для использования предпочтительного сервера DNS. Рекомендуется также задать альтернативный сервер DNS, но это не обязательно. Вы можете ввести IP-адреса предпочтительного и вторичного серверов DNS вручную или разрешить серверу DHCP передавать эту информацию клиентам. Лекция 3 содержит более подробное описание DNS в Windows Server 2003.

    Понятие о регистрации и разрешении имен

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

    В операционных системах Microsoft до Windows 2000 сетевой обмен всегда основывался на именах NetBIOS. Система Windows Server 2003 продолжает поддерживать имена NetBIOS для совместимости, но она разработана для использования в первую очередь хост-имен, а не имен NetBIOS. В любом случае требуется метод, позволяющий устанавливать соответствие между этими именами и IP-адресами.

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

    Если у вас действует сеть Windows Server 2003 с клиентами более ранних версий Windows (до Windows 2000), то вам нужно иметь как минимум два различных механизма разрешения имен. Хост-имена и имена NetBIOS всегда обрабатываются отдельно в этом отношении, даже если на компьютере эти имена совпадают. Если в вашей сети нет клиентов более ранних версий Windows или приложений на основе NetBIOS, то вы можете не поддерживать имена NetBIOS.

  • Имеющиеся механизмы для хост-имен – это файл HOSTS и служба доменных имен (DNS).
  • Имеющиеся механизмы для имен NetBIOS – это широковещательные сообщения в сети (Network Broadcasts), средства WINS и файл LMHOSTS.
  • Все Windows-компьютеры применяют по крайней мере один из этих механизмов во время любого обмена данных TCP/IP, где используются имена, а не IP-адреса. Понимание того, как они действуют, поможет вам максимально повысить эффективность вашей сети, свести к минимуму сетевой трафик и справляться с проблемами передачи данных. Для более полного ознакомления с такими понятиями, как хост-имена, доменная иерархия, DNS и т.д. обратитесь к лекции 3.

    Использование файла HOSTS

    Самый простой способ разрешения хост-имен – это ведение таблицы этих имен и соответствующих им IP-адресов. Этой задаче отвечает файл HOSTS – ASCII-файл, который хранится на локальном жестком диске и в котором слева содержатся IP-адреса и справа хост-имена. Если пользователь передает в какое-либо приложение хост-имя, это приложение ищет его в файле HOSTS. Если это имя найдено, то эквивалентный ему IP-адрес используется для создания сетевого соединения. Если имя не найдено, то соединение не может быть установлено.

    Хотя в это трудно поверить, но в свое время услуги разрешения имен для всего интернета предоставлялись с помощью одной таблицы HOSTS, содержащей тысячи записей, которые должны были регулярно скачиваться пользователями интернета для обновления их файла. Проблемы использования этого метода очевидны. Вставку имен и адресов в файл для их регистрации можно выполнять только вручную. Пользователи или администраторы должны по отдельности изменять или обновлять файл HOSTS на каждом сетевом компьютере, чтобы включить имя и адрес каждого хоста, к которому нужно обращаться по имени. Кроме того, число записей растет, файл быстро увеличивается в размерах, что начинает влиять на скорость разрешения имен. Вообразите, что вам приходится управлять файлом HOSTS с сотнями или тысячами записей для отображения имен в IP-адреса. Каждое изменение этого файла потребовало бы обновления на всех компьютерах сети, то есть пересылки файла HOSTS каждому из них.

    Использование системы доменных имен (DNS)

    Система доменных имен (DNS – Domain Name System) – это наиболее распространенный метод разрешения хост-имен интернет, поскольку он позволяет пользователям подсоединяться к любому сайту в Internet по имени. Это может показаться невероятно трудным, особенно в свете роста интернета за последние несколько лет, но DNS использует доменную структуру хост-имен интернет и, конечно, является основной причиной ее использования.

    Система доменных имен состоит из тысяч серверов DNS, распределенных по всей сети интернет. Если вы регистрируете какое-либо доменное имя, то должны обязательно указать основной (primary) и резервный (backup) сервер DNS. Их называют доверяемыми (authoritative) серверами для вашего домена. Сервер DNS – это демон UNIX или служба Windows, отвечающая за поддержку и публикацию базы данных хост-имен и адресов в ее собственном домене.

    Серверы DNS какого-либо домена не обязательно должны находиться в его собственной сети, и действительно, многие провайдеры услуг интернета (ISP) поддерживают службы веб-хостинга, в которых они предоставляют использование их серверов DNS за плату. Здесь важно то, что уполномоченный орган интернет или другая организация, зарегистрировавшая имя этого домена, имеет запись для серверов DNS, ответственных за хосты этого домена.

    Поскольку администраторы отдельных сетей отвечают за назначение хост-имен в своих доменах, они также должны обеспечивать поддержку записей DNS для этих имен. Удивительно, но регистрация хост-имен домена на его серверах DNS – это такая же ручная операция, как и для файла HOSTS. Например, если вы добавляете новый сервер ftp к своей сети, то должны вручную добавить или изменить ресурсную запись DNS, указав имя и адрес новой машины.

    Однако в Windows Server 2003 была принята новая технология – динамическая регистрация компьютеров вместо утомительного ручного обновления ресурсных записей. Клиенты могут сделать так, чтобы их ресурсные A-записи (адресные записи для хостов) и PTR-записи (указатели для обратного поиска) регистрировались автоматически сервером DNS. Кроме того, DNS Windows Server 2003 может быть интегрирована с Active Directory (AD), что повышает уровень безопасности, улучшает репликацию базы данных DNS, администрирование и многое другое. DNS и связанные с ней темы подробно описываются в лекции 3.

    Имена NetBIOS

    Хотя NetBIOS больше не является обязательным компонентом в сети Windows Server 2003, она важна для обратной совместимости с предыдущими системами Windows, такими как Windows 9x и Windows NT, где для обмена данных используется NetBIOS, а также с приложениями, которые используют NetBIOS.

    NetBIOS – это программный интерфейс, который использовался на протяжении многих лет для предоставления возможностей сетевого обмена приложениям. Некоторые возможности исходной архитектуры Windows NT, встроенные в Windows Server 2003, полностью основывались на системе именования NetBIOS для именования других компьютеров в сети.

    Имя NetBIOS содержит до 16 символов, последний из которых регистрируется в Windows для идентификации конкретных функций определенных компьютеров, например, контроллеров домена или браузеров. Если включена служба NetBIOS, то каждому компьютеру операционной системой присваивается имя NetBIOS. Это имя может совпадать или не совпадать с именем входа пользователя или хост-именем компьютера. Вы используете имена NetBIOS, когда вводите UNC-имя пути, указывающее какой-либо узел сети Windows.

    NetBIOS уже не является обязательным компонентом, если у вас нет клиентов более ранних версий Windows или зависящих от NetBIOS приложений, но это все еще составная часть сетевых средств Windows. Службы Workstation и Server, которые запускаются на всех компьютерах Windows Server 2003/2000, используют как NetBIOS, так и непосредственный хостинг (direct hosting) для предоставления базовых услуг разделяемого доступа к файлам, которые запрашиваются какой-либо операционной системой. Непосредственный хостинг – это протокол, который использует для разрешения имен DNS, а не NetBIOS. По умолчанию задана конфигурация, в которой включены как NetBIOS, так и непосредственный хостинг, которые используются одновременно при разрешении имен для новых соединений с другими машинами.

    Поскольку NetBIOS запускается поверх интерфейса Transport Device Interface (TDI), она может теоретически использовать любые совместимые протоколы для своих нужд низкоуровневого взаимодействия. Первоначально операционные системы, предшествовавшие Windows 2000, использовали для трафика NetBIOS интерфейс NetBEUI (NetBIOS Extended Use Interface). Однако NetBEUI не является маршрутизируемым, поэтому, когда в качестве альтернативы был предложен TCP/IP, была начата разработка открытого стандарта (опубликованного в дальнейшем в виде документа RFC), чтобы определить способ, посредством которого можно было бы предоставлять услуги NetBIOS, используя протоколы TCP/IP. Этот стандарт получил название NetBIOS over TCP/IP, или NetBT.

    Стандарт NetBT определяет два вида служб – службы сеансов и дейтаграмм. Службы сеансов используют TCP для обеспечения полностью надежной ориентированной на соединения службы передачи сообщений, а службы дейтаграмм используют протокол UDP, который требует небольшого объема служебной информации и имеет не очень высокую надежность.

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

    Поскольку имена NetBIOS преобразуются в IP-адреса до передачи данных, то вы можете использовать их вместо хост-имен во внутренних сетях. Например, чтобы подсоединиться к веб-серверу интранет, пользователь может задать NetBIOS-имя этого сервера вместо обычного хост-имени. Аналогичным образом, вы можете использовать хост-имя в UNC-пути вместо NetBIOS-имени.

    Типы узлов

    Имеется несколько различных методов, посредством которых компьютеры могут регистрировать и разрешать свои имена NetBIOS в сети Windows Server 2003/2000. Эти методы варьируются по своим возможностям и эффективности. Для поиска машины с определенным NetBIOS-именем компьютер может использовать сетевые широковещательные сообщения, может обращаться к серверу имен NetBIOS (NBNS) в своей сети (например, к серверу WINS) или использовать таблицу поиска в локально хранящемся файле LMHOSTS.

    В стандарте NetBT определены несколько типов узлов, которые указывают, какие методы и в каком порядке должен использовать компьютер. Типы узлов присваиваются клиентам сервером DHCP или определяются параметрами TCP/IP, заданными в конфигурации клиента. В стандарте NetBT определяются следующие типы узлов.

  • B-узел. Клиент использует широковещательные сообщения в сети как для регистрации, так и для разрешения имен.
  • P-узел. Клиент направляет отдельное сообщение для регистрации или разрешения имени серверу имен NetBIOS.
  • M-узел. Клиент использует широковещательные сообщения для регистрации имен; для разрешения имен клиент использует сначала широковещательные сообщения, и если это не дает результата, то он направляет запросы серверу имен NetBIOS.
  • H-узел. Клиент направляет отдельное сообщение регистрации или разрешения имени серверу имен NetBIOS (NBNS); если NBNS недоступен, то клиент использует широковещательные сообщения, пока не будет восстановлено соединение с NBNS.
  • Сначала операционные системы, предшествовавшие Windows 2000, использовали для регистрации и разрешения имен расширенную службу B-узла. Служба считалась расширенной, так как при невозможности разрешения имени с помощью широковещательных сообщений в качестве альтернативы использовался файл LMHOSTS данного компьютера. Это позволяло пользователям обращаться к компьютерам в других сегментах сети, если эти компьютеры были вручную внесены в файл LMHOSTS.

    В Windows Server 2003 по-прежнему включена служба WINS как сервер имен NetBIOS, в базе данных которого хранятся имена NetBIOS и IP-адреса для всей интерсети, что позволяет предоставлять эту информацию пользователям всего предприятия. Компьютеры с более ранними версиями Windows описываются как расширенные H-узлы. Эти компьютеры сначала пытаются разрешать имена NetBIOS с помощью WINS, обращаясь к широковещательным сообщениям, если WINS не дает результата или недоступна, и затем обращаются к файлу LMHOSTS, если не удается получить разрешение имени с помощью широковещательных сообщений.

    Регистрация имен NetBIOS

    Стандарт NetBT требует, что когда машина с более ранней версией Windows выполняет вход в сеть, ее NetBIOS-имя должно быть зарегистрировано, чтобы никакой другой компьютер не мог использовать дублированное имя и чтобы был правильно задан IP-адрес. Если вы переводите рабочую станцию в другую подсеть и вручную изменяете ее IP-адрес, то процесс регистрации обеспечивает, что другие компьютеры и серверы WINS будут знать об этом изменении.

    Метод регистрации имени, используемый рабочей станцией, зависит от ее типа узла. Для регистрации имен B-узлов и M-узлов используются широковещательные сообщения, в то время как H-узлы и P-узлы направляют запросы регистрации непосредственно серверу WINS. Эти два метода описываются в следующих разделах. Один из этих двух методов используется любым компьютером с более ранней версией Windows, который подсоединяется к сети.

    Регистрация имен с помощью широковещательных сообщений

    B-узлы и M-узлы, использующие широковещательные сообщения для регистрации имен NetBIOS, не выполняют регистрацию в том смысле, как это делают узлы других типов. Это имя не вводится в какую-либо таблицу и не сохраняется на других компьютерах сети. Вместо этого данный компьютер использует широковещательные сообщения, чтобы "объявить" свое имя NetBIOS и проверить, не используется ли уже это имя каким-либо другим компьютером.

    Процесс регистрации начинается при входе данного компьютера в сеть. Он распространяет с помощью протокола UDP набор широковещательных сообщений NAME REGISTRATION REQUEST (запрос регистрации имени), содержащих его предлагаемое имя NetBIOS и его IP-адрес. Если это имя уже используется какой-либо другой машиной в данной сети, то эта машина передает отдельное сообщение NEGATIVE NAME REGISTRATION RESPONSE (отрицательный ответ на запрос регистрации имени) по IP-адресу запрашивающего компьютера. Тем самым происходит отказ запроса регистрации. Запрашивающий компьютер должен выбрать другое имя и выполнить новую попытку регистрации.

    Если компьютер не получает никакого ответа на повторяющиеся попытки рассылки пакетов NAME REGISTRATION REQUEST в течение заданного периода времени, то он передает сообщение NAME OVERWRITE DEMAND (требование перезаписи имени), объявляя, что он успешно зарегистрировал свое имя. Этот компьютер теперь должен отвечать на любые запросы, направляемые другими компьютерами по данному NetBIOS-имени.

    Как и все широковещательные сообщения, эти сообщения регистрации имени ограничены локальным сегментом сети. Это означает, что компьютеры в других сетевых сегментах могут использовать то же NetBIOS-имя. Это представляет очевидную проблему. Только тщательная работа администраторов сети может воспрепятствовать конфликтам имен и неверной адресации пакетов. Эта опасность, а также излишний сетевой трафик, вызываемый отправкой широковещательных сообщений, являются причинами для создания сервера WINS как средства регистрации имен.

    Регистрация имен с помощью WINS

    Клиентский компьютер WINS начинает процедуру регистрации имени с генерации того же пакета NAME REGISTRATION REQUEST, что и при широковещательной передаче. Но на этот раз пакет отправляется как отдельное сообщение непосредственно серверу WINS, указанному во вкладке WINS Configuration диалогового окна TCP/IP Properties. Если никакой другой компьютер не использует это имя, то сервер WINS возвращает отправителю POSITIVE NAME REGISTRATION RESPONSE (положительный ответ на запрос регистрации имени) и записывает данное имя NetBIOS и IP-адрес в свою базу данных.

    Если сервер WINS обнаруживает, что данное имя NetBIOS уже зарегистрировано другим компьютером, то сервер WINS отправляет этому компьютеру сообщение NAME QUERY REQUEST (запрос имени), чтобы он "защитил" свое зарегистрированное имя. Если этот обладатель имени не отвечает или отправляет ответ NEGATIVE NAME QUERY RESPONSE (отрицательный ответ на запрос имени), то сервер WINS регистрирует это имя для нового компьютера и отправляет ему сообщение POSITIVE NAME REGISTRATION RESPONSE. Если запрашиваемый обладатель имени отправляет ответ POSITIVE NAME QUERY RESPONSE (положительный ответ на запрос имени), это означает, что он успешно "защитил" свое имя. В этом случае сервер WINS отправляет новому компьютеру сообщение NEGATIVE NAME REGISTRATION RESPONSE, информируя, что ему отказано в попытке регистрации.

    Когда сервер WINS успешно регистрирует определенное имя NetBIOS, он назначает дату истечения срока регистрации в форме значения TTL (time-to-live). Каждый раз, когда компьютер выполняет вход в сеть, это значение обновляется. Пока не истечет этот период времени, любая попытка зарегистрировать данное NetBIOS-имя будет отклоняться. Но если за этот период времени не будет выполнено ни одного входа, то данное NetBIOS-имя будет освобождено и может быть назначено снова сервером WINS без запроса какого-либо компьютера. Если данное имя остается неиспользованным в течение указанного периода времени, то объявляется как вышедшее из употребления и стирается из базы данных WINS.

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

    Разрешение имен NetBIOS

    Если включена система NetBIOS, то на всех компьютерах Windows поддерживается кэш имен NetBIOS, разрешение которых они уже выполняли. Когда компьютеру требуется разрешение NetBIOS-имени, то сначала происходит обращение к кэшу. Если это имя не найдено в кэше, то далее используется метод, определяемый типом узла данного компьютера.

  • Клиент, не использующий WINS, отправляет широковещательные сообщения для разрешения имени, и в случае неудачного результата обращается к локальному файлу LMHOSTS.
  • Клиент WINS может использовать для разрешения имен NetBIOS любой из имеющихся методов. Сначала он использует кэш имен NetBIOS, затем обращается к серверу WINS. Если сервер WINS не дает результата, то происходит рассылка широковещательных сообщений, и в случае неудачного результата происходит обращение к файлу LMHOSTS.
  • В следующих разделах дается описание возможных методов разрешения имен NetBIOS в том порядке, как они использовались бы на компьютере, поддерживающем WINS.

    Кэш имен NetBIOS. Во время каждого сетевого сеанса клиентский компьютер сохраняет в кэше памяти все имена NetBIOS, для которых было успешно выполнено разрешение, чтобы их можно было использовать повторно. Поскольку кэш хранится в памяти, его использование является самым быстрым и эффективным способом разрешения имен. Это первый ресурс, к которому обращаются узлы всех типов, когда им требуется разрешение какого-либо имени. Вы можете увидеть текущее содержимое кэша имен NetBIOS вашего компьютера, набрав nbtstat -c в командной строке.

    Разрешение имен WINS. WINS – это средство на уровне сети предприятия для регистрации и разрешения имен NetBIOS. Это единственный механизм, доступный сети Windows Server 2003/2000, который автоматически поддерживает базу данных NetBIOS-имен сети и соответствующих им IP-адресов. В отличие от широковещательных сообщений служба WINS использует только отдельные сетевые сообщения, что позволяет ей работать независимо от границ между сегментами сети. Использование отдельных сообщений WINS позволяет существенно сократить объем сетевого трафика, который возникает за счет операций разрешения имен NetBIOS.

    WINS поставляется вместе с Windows Server 2003, и она функционирует как служба. В ваш комплект администрирования включена оснастка WINS, которая позволяет вам управлять всеми серверами WINS в сети вашего предприятия из одной центральной точки. Для повышения скорости (а также отказоустойчивости) вы можете запускать в сети предприятия несколько серверов WINS. Базы данных WINS могут автоматически реплицироваться через заранее заданные периоды времени или в указанные моменты дня. Вы можете запланировать репликацию WINS через каналы глобальной сети (WAN) на периоды низкого уровня трафика, создавая тем самым унифицированную базу данных для распределенной по всему миру сети.

    WINS также позволяет своим клиентам выполнять навигацию среди машин других сегментов сети, не запрашивая услуг главных браузеров в этих сетях. Это позволяет пользователям взаимодействовать с другими машинами в удаленных сайтах, не занимая канал глобальной сети трафиком браузера.

    Если клиенту WINS требуется разрешение имен NetBIOS, то он отправляет отдельное сообщение NAME QUERY REQUEST первому серверу WINS, указанному на странице WINS Address диалогового окна TCP/IP Properties. Затем сервер WINS отвечает сообщением POSITIVE NAME QUERY RESPONSE, содержащим запрашиваемое имя и соответствующий IP-адрес, или сообщением NEGATIVE NAME QUERY RESPONSE, указывающим, что в базе данных нет записи с этим именем.

    Если имеется некоторая задержка с ответом на запрос, сервер WINS отправляет клиенту пакеты WACK (WAIT FOR ACKNOWLEDGEMENT RESPONSE – ожидать подтверждающего ответа), чтобы клиент не перешел к использованию следующего метода разрешения имен.

    Если сервер WINS не может выполнить разрешение имени, отправив отрицательный ответ или не отправив никакого ответа, то клиент обращается к вторичному (резервному) серверу WINS и повторяет весь процесс. Если это не может сделать и вторичный сервер, то компьютер, который является H-узлом, переходит к использованию широковещательных сообщений для разрешения имени. Но если серверы WINS не могут ответить на любые запросы разрешения имен, то клиент продолжает попытки контакта с этими серверами, чтобы вернуться к разрешению имен WINS, как только появится такая возможность.

    Разрешение имен с помощью широковещательных сообщений

    Если разрешение имен NetBIOS происходит с помощью широковещательных сообщений, то все зарегистрированные компьютеры должны отвечать на запросы, в которых указаны их имена. Компьютер, который применяет широковещательные сообщения для разрешения имен, генерирует тот же пакет NAME QUERY REQUEST, что и клиент WINS, за исключением того, что запрос направляется в виде широковещательных сообщений всем компьютерам данной локальной подсети. Каждый компьютер, получивший этот пакет, должен проверить имя, для которого запрашивается IP-адрес.

    Если пакет содержит нераспознаваемое имя, то он "молча" удаляется. Но если компьютер опознал свое собственное имя в этом запросе, то он должен ответить отправителю пакетом POSITIVE NAME QUERY RESPONSE, содержащим его IP-адрес. Этот пакет отправляется как отдельное (не широковещательное) сообщение.

    Метод разрешения имени с помощью широковещательных сообщений используется всеми старыми системами Windows, которые не являются клиентами WINS (после попытки получить имя из кэша имен). Если имя, которое должно быть разрешено, принадлежит компьютеру в другом сегменте сети, то широковещательные сообщения не могут попасть в этот сегмент, и этот метод даст неудачный результат (по истечении периода тайм-аута для широковещательных сообщений).

    Файл LMHOSTS

    Если не удается разрешить имя NetBIOS с помощью широковещательных сообщений, то следующая альтернатива – это файл LMHOSTS на локальном жестком диске. Клиенты, не поддерживающие WINS, делают это автоматически. Чтобы клиент WINS мог использовать файл LMHOSTS (после того, как поиск с помощью WINS и широковещательных сообщений не дал результата), вы должны установить флажок Enable LMHOSTS Lookup (Разрешить поиск в LMHOSTS) на странице WINS Address диалогового окна TCP/IP Properties.

    Примечание. Использование файла LMHOSTS не включено в стандарт NetBT как часть определений типов узлов. Поэтому клиентов, которые используют LMHOSTS, называют системами расширенного B-узла или H-узла.

    Файл LMHOSTS аналогичен файлу HOSTS (который используется для разрешения хост-имен) за исключением того, что он содержит список имен NetBIOS. Он находится в той же папке, что и HOSTS ( %SystemRoot%\System32\drivers\...), и Windows предоставляет файл-образец с именем Lmhosts.sam, который вы можете использовать как модель для своего собственного файла (это текстовый файл, который вы можете просматривать с помощью Notepad [Блокнот]).

    Для компьютера, который не являются клиентом WINS, файл LMHOSTS – это единственное средство разрешения имен, доступное компьютерам в других сегментах сети. Чтобы регистрировать имена NetBIOS, нужно вручную отредактировать файл LMHOSTS и добавить запись для каждого компьютера, с которым вы будете взаимодействовать. Каждая запись должна содержать IP-адрес компьютера, после которого в той же строке (через пробел) должно следовать соответствующее NetBIOS-имя.

    В отличие от файла HOSTS файл LMHOSTS может содержать дополнительные средства, которые помогают в процессе разрешения имен.

  • #PRE. Если тег #PRE добавляется к какой-либо записи в файле LMHOSTS, то эта запись заранее загружается в кэш имен NetBIOS при каждой загрузке данного компьютера. Добавление в файл LMHOSTS компьютеров, к которым чаще всего выполняется доступ, ускоряет разрешение имен даже для клиентов WINS. Тег #PRE следует добавлять в конец записи с одним или несколькими пробелами, отделяющими его от имени NetBIOS.
  • #DOM:имя_домена. Тег #DOM используется, чтобы связать запись файла LMHOSTS с доменом Windows NT, который указывается переменной имя_домена. В результате компьютер, указанный в этой записи, будет получать список для навигации среди компьютеров домена от главного контроллера (PDC) указанного домена. Это позволяет компьютерам, не использующим WINS, выполнять навигацию среди компьютеров домена, которые находятся в других сегментах сети. Тег #DOM вместе со своим параметром помещается в конец записи после пробела.
  • #INCLUDE путь. Тег #INCLUDE позволяет вам получать доступ к файлу LMHOSTS, находящемуся в другом месте. Обычно это средство используется для доступа к файлу на каком-либо сетевом диске, где он может одновременно использоваться другими клиентами. Это означает, что вы можете редактировать один централизованный файл LMHOSTS вместо обновления по отдельности копий на рабочих станциях. Этот тег, после которого следует полный UNC-путь к файлу, должен быть помещен в отдельную строку файла LMHOSTS, как это показано ниже:
    #INCLUDE \\сервер1\разделяемый_ресурс\...\lmhosts
    Примечание. Проследите, чтобы NetBIOS-имя, используемое в UNC-пути, можно было разрешить с помощью тега #PRE, если эта машина находится в другом сегменте сети.
  • #BEGIN_ALTERNATE/#END_ALTERNATE. Эти теги используются, чтобы обеспечить отказоустойчивость для тега #INCLUDE. Если поместить несколько тегов #INCLUDE между тегами #BEGIN_ALTERNATE и #END_ALTERNATE, как это показано ниже, то теги #INCLUDE будут обрабатываться по порядку, пока не будет выполнен успешный доступ к соответствующему файлу LMHOSTS. После успешного чтения этого файла все следующие теги #INCLUDE игнорируются и происходит переход к следующей строке после тега #END_ALTERNATE.
    #BEGIN_ALTERNATE#INCLUDE \\сервер 1\разделяемый_ресурс\...\lmhosts#INCLUDE\\
    сервер 2\разделяемый_ресурс\...\lmhosts#END_ALTERNATE
  • \Oxhh. Этот тег используется для задания специальных символов в именах NetBIOS по их шестнадцатеричным значениям. Если приложению требуется специальный символ в 16-й позиции имени NetBIOS, то вы можете задать его, заключив это имя в кавычки и применив \Oxhh в соответствующей позиции (с заменой hh шестнадцатеричным значением этого символа). \Oxhh заменяет только какой-либо один символ в имени NetBIOS. Вы должны включить нужное число пробелов, чтобы в имени было 16 символов, например:
    139.41.129.18 "application \ox14"
  • Когда следует прекратить использование NetBIOS

    Microsoft рекомендует переходить к более "чистой" реализации TCP/IP в сетевых окружениях Windows. Теперь уже не обязательно использовать NetBIOS over TCP/IP для разрешения имен, поскольку эти функции взяла на себя DNS. Кроме того, NetBIOS поддерживается только для совместимости с унаследованными системами и приложениями.

    DNS просто лучше – это более масштабируемое и надежное решение для разрешения имен. Она выдержала испытание временем, и интернет является наилучшим примером ее успеха. Чтобы детальнее ознакомиться с DNS и ее влиянием на среду Windows, обратитесь к лекции 3.

    Как вы, вероятно, уже поняли, чем быстрее вы прекратите использовать NetBIOS, тем лучше станет ваша среда Windows. Первый шаг – это модернизировать клиентов прежних версий Windows, перейдя к текущей версии Windows.

    К сожалению, модернизация не позволит полностью выполнить вашу задачу. Вам придется также проверить, работают ли у вас приложения, которые зависят от NetBIOS. Если у вас есть такие приложения и они все еще нужны вам, обратитесь к поставщику, чтобы узнать, нет ли у него модернизированной версии, которая не использует NetBIOS (для начала проверьте свою версию Microsoft Office). После того как вы отключите NetBIOS, любые приложения, которые основываются на этой службе, перестанут правильно работать или не будут работать совсем. И последний шаг – это фактическое отключение NetBIOS на всех машинах Windows Server 2003/XP/2000. Для этого выполните следующие шаги.

  • В меню Start\Settings выберите Network Connections.
  • Щелкните правой кнопкой на значке Local Area Connection и выберите пункт Properties.
  • Выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
  • В диалоговом окне Properties щелкните на кнопке Advanced, чтобы появилось диалоговое окно Advanced TCP/IP Settings.
  • Перейдите во вкладку WINS и выберите вариант Disable NetBIOS over TCP/IP (Отключить NetBIOS поверх TCP/IP).
  • Два раза щелкните на кнопках OK и затем щелкните на кнопке Close.
  • Инструментальные средства TCP/IP

    В реализацию протоколов TCP/IP для Windows Server 2003/2000 входит набор инструментальных средств и утилит, которые помогают осуществлять мониторинг и устранять проблемы работы TCP/IP.

    Ping

    Ping – это наиболее простая и наиболее известная утилита TCP/IP. Вы можете использовать ее, чтобы определить, работает ли стек TCP/IP на вашем компьютере, можно ли установить контакт с другим компьютером в сети и может ли сервер DNS выполнить разрешение хост-имени в IP-адрес.

    Ping действует путем отправки пакетов Echo Request получателю, указанному в командной строке, используя протокол ICMP (Internet Control Message Protocol). Компьютер-получатель возвращает пакет Echo Response для каждого полученного запроса, и ping выводит на экран размер каждого отправленного пакета (в байтах), время прохождения до получателя и обратно (в миллисекундах) и срок действия пакета (TTL).

    Ping имеет следующий синтаксис.

    ping [-t] [-a] [-n Количество] [-l Размер] [-f] [-i TTL] [-v TOS] 
    [-r Количество] [-s Число] [{-j Список-хостов\-k Список-хостов}] 
    [-w Тайм-аут] [Имя_получателя]

    где

    -t указывает ping, что нужно продолжать отправку сообщений Echo Request получателю, пока вы не остановите этот процесс. Чтобы прервать процесс и вывести статистику, нажмите Ctrl-Break. Чтобы прервать процесс и выйти из ping, нажмите Ctrl-C.

    -a указывает обратный поиск имени по IP-адресу получателя.

    -n Количество указывает количество сообщений Echo Request, которое должно быть отправлено утилитой ping (по умолчанию 4).

    -l Размер – это длина (в байтах) поля Data (Данные) в отправляемых сообщениях Echo Request. По умолчанию 32. Максимальный Размер – 65527.

    -f – отправка сообщений Echo Request с установленным в 1 флагом Don't Fragment в заголовке IP. Это означает, что сообщение Echo Request не может фрагментироваться маршрутизаторами, которые находятся на пути к получателю. Используйте этот параметр, когда нужно устранить проблемы PMTU (Path Maximum Transmission Unit).

    -i TTL указывает значение поля TTL (срок действия пакета) в заголовке IP для отправляемых сообщений Echo Request. Это значение равно по умолчанию значению TTL для хоста. Для хостов Windows Server 2003 оно обычно равно 128. (Максимальное значение TTL – 255.)

    -v TOS указывает значение поля TOS (тип обслуживания) в заголовке IP для отправляемых сообщений Echo Request. По умолчанию равно 0. (Значение TOS задается как десятичное число от 0 до 255.)

    -r Количество указывает, что в заголовке IP используется опция Record Route (Записать маршрут) для записи пути, который требуется сообщению Echo Request и соответствующему сообщению Echo Reply. Для каждого сегмента этого пути используется своя запись из опции Record Route. Этот параметр действует лучше всего, если вы указываете Количество, которое не меньше числа сегментов между отправителем и получателем. ( Количество должно быть числом от 1 до 9.)

    -s Число указывает, что в заголовке IP используется опция Internet Timestamp (Метка времени) для записи времени поступления сообщения Echo Request и соответствующего сообщения Echo Reply для каждого сегмента. (Число должно быть значением 1 до 4.)

    -j Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. Средство Loose Source Route действует с несколькими промежуточными пунктами, которые разделены одним или несколькими маршрутизаторами. Максимальное количество адресов или имен в списке хостов – 9. Список хостов – это набор IP-адресов, разделенных пробелами.

    -k Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Strict Source Route (Жесткая маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. При использовании средства Strict Source Route каждый следующий узел должен быть достижим непосредственным образом (то есть он должен быть "соседом" в интерфейсе маршрутизатора). Максимальное количество адресов или имен в списке хостов – 9. Список хостов – это набор IP-адресов, разделенных пробелами.

    -w Тайм-аут указывает допустимое количество времени (в миллисекундах) для ожидания сообщения Echo Reply, соответствующего данному сообщению Echo Request. Если сообщение Echo Reply не получено в течение времени тайм-аута, то на экран выводится сообщение об ошибке "Request times out" (Время ожидания ответа на запрос истекло). По умолчанию время тайм-аута равно 4000 (4 секунды).

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Tracert

    Программа tracert, известная также под названием traceroute в системах UNIX, идентифицирует маршрутизатор, через который должны проходить дейтаграммы к указанному узлу. Кроме трассировки интернет-соединений, она полезна также для устранения проблем маршрутизации. Если у вас имеется Windows-компьютер с несколькими сетевыми адаптерами, то tracert – это надежное средство, позволяющее определить, какую сеть использует этот компьютер для достижения указанного узла.

    Используя такие же пакеты ICMP, как и ping, программа tracert отправляет последовательные сообщения Echo Request по целевому адресу с наращиваемыми значениями TTL (time-to-live). Поскольку каждый промежуточный компьютер, через который проходит пакет, уменьшает значение TTL на единицу, срок действия каждого последующего запроса истекает на один сегмент дальше вдоль маршрута к целевому узлу.

    Когда истекает срок действия очередного пакета, он возвращает отправителю сообщение, содержащее адрес шлюза, где значение TTL уменьшилось до нуля. Эти адреса разрешаются и выводятся на экран компьютера вместе с интервалом времени для каждого сегмента.

    При использовании с адресами интернет tracert позволяет увидеть структуру этой международной телекоммуникационной сети. Поскольку Windows выполняет разрешение адреса каждого шлюза, вы можете идентифицировать сайты, через которые проходят пакеты на пути к целевому узлу. Выполните трассировку маршрута со своего компьютера на какой-нибудь веб-сервер в США, и вы увидите, исходя из значений времени, тот момент, когда ваш сигнал пересек океан.

    Программа tracert имеет следующий синтаксис.

    tracert [-d] [-h Максимум-сегментов] [-j Список-хостов] [-w Тайм-аут] 
    [Имя_получателя]

    где

    -d запрещает tracert выполнять попытки разрешения IP-адресов промежуточных маршрутизаторов, что часто ускоряет вывод результатов.

    -h Максимум -сегментов задает максимальное число сегментов пути поиска целевого узла. (По умолчанию 30 сегментов).

    -j Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. (Описание того же параметра см. в синтаксисе ping в предыдущем разделе.)

    -w Тайм-аут указывает допустимое количество времени (в миллисекундах) для ожидания сообщения Echo Reply, соответствующего данному сообщению Echo Request. Если сообщение Echo Reply не получено в течение времени тайм-аута, то на экран выводится символ "звездочка" (*). По умолчанию время тайм-аута равно 4000 (4 секунды).

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Pathping

    Pathping – то же самое, что и tracert, но эта команда работает в пределах вашего предприятия. Вы можете использовать эту команду для получения информации о задержках в сети и потерях в сети на промежуточных участках между исходным и целевым узлами. Команда имеет следующий синтаксис.

    pathping [-n] [-h Максимум-сегментов] [-g Список-хостов] [-p Период] 
    [-q Число-запросов] [-w Тайм-аут] [-T] [-R] [Имя_получателя]

    где

    -n запрещает pathping выполнять попытки разрешения IP-адресов промежуточных маршрутизаторов в их имена, что часто ускоряет вывод результатов.

    -h Максимум-сегментов задает максимальное число сегментов пути поиска целевого узла. (По умолчанию 30 сегментов).

    -g Список-хостов указывает, что сообщения Echo Request используют в заголовке IP вариант Loose Source Route (Свободная маршрутизация через промежуточные узлы) с набором промежуточных пунктов, указанных в Списке-хостов. (Описание того же параметра см. в предыдущих разделах.)

    -p Период – количество миллисекунд ожидания между последовательными пакетами. По умолчанию 250 миллисекунд (1/4 секунды).

    -q Число-запросов задает количество сообщений Echo Request, отправляемых каждому маршрутизатору указанного пути. По умолчанию 100 запросов.

    -w Тайм-аут – количество миллисекунд ожидания каждого ответа. По умолчанию 3000 миллисекунд (3 секунды).

    -T присоединяет тег приоритета уровня 2 (например, 802.1p) к сообщениям Echo Request, которые отправляются каждому сетевому устройству вдоль маршрута. Это способ идентификации сетевых устройств, которые не имеют возможности приоритета уровня 2. В основном этот параметр используется для тестирования качества обслуживания Quality of Service (QoS) соединений.

    -R указывает то, что каждое сетевое устройство вдоль маршрута поддерживает протокол RSVP (Resource Reservation Protocol), который позволяет данному хост-компьютеру резервировать определенную долю пропускной способности для потока данных. Этот параметр также используется для тестирования качества обслуживания (QoS) соединений.

    Имя_получателя указывает целевой узел (его IP-адрес или хост-имя).

    Ipconfig

    Ipconfig – это утилита командной строки, которая выводит на экран текущие настройки конфигурации IP для вашего компьютера. При использовании ipconfig с ключом /all она выводит текущие настройки конфигурации IP для каждого сетевого адаптера, установленного на вашем компьютере. Это особенно полезно для компьютеров клиентов DHCP, где нет другого способа определения этой информации без доступа к программе DHCP Manager на сервере. Эта утилита имеет следующий синтаксис.

    ipconfig [/all] [/renew [Адаптер]] [/release [Адаптер]] [/flushdns] 
    [displaydns] [/registerdns] [/showclassid Адаптер] 
    [/setclassid Адаптер [Идентификатор-класса]]

    где

    /all – вывод полной конфигурации TCP/IP для всех адаптеров. Если он опущен, то ipconfig выводит на экран только значения IP-адреса, маски подсети и шлюза по умолчанию для каждого адаптера. Адаптером может быть физический интерфейс (например, карта сетевого интерфейса, NIC) или логический интерфейс (например, коммутируемое [dial-up] соединение).

    /renew [Адаптер ] – обновление конфигурации DHCP для всех адаптеров (если конкретный адаптер не указан) или для указанного адаптера, если задан параметр Адаптер. Этот параметр можно использовать, только если вы сконфигурировали данный компьютер для автоматического получения IP-адреса. (Используйте имя адаптера, которое выводится при запуске ipconfig без параметров.)

    /release [Адаптер ] – отправка сообщения DHCPRELEASE серверу DHCP, чтобы освободить текущую конфигурацию DHCP и отменить конфигурацию IP-адресов для всех адаптеров (если конкретный адаптер не указан) или для указанного адаптера, если задан параметр Адаптер. Этот параметр отключает TCP/IP для адаптеров, которые сконфигурированы для автоматического получения IP-адресов.

    /flushdns – сброс и установка в исходное состояние содержимого кэша разрешения IP-адресов клиентов DNS. Это полезно для устранения проблем, связанных с DNS.

    /displaydns – вывод на экран содержимого кэша разрешения IP-адресов клиентов DNS, в который включаются записи, заранее загружаемые из локального файла HOSTS, а также все недавно полученные ресурсные записи для запросов имен, разрешенных данным компьютером.

    /registerdns – выполнение ручной динамической регистрации для имен DNS и IP-адресов, сконфигурированных на данном компьютере. Этот параметр полезен для устранения проблем регистрации имен DNS. Его также полезно использовать для устранения проблем динамического обновления между клиентом и сервером DNS без необходимости перезагрузки клиентского компьютера.

    /showclassid Адаптер – вывод идентификатора класса DHCP для указанного адаптера (или всех адаптеров, если указать вместо Адаптера "звездочку", * ).

    /setclassid Адаптер [Идентификатор-класса] – задает идентификатор-класса для указанного адаптера (или всех адаптеров, если указать вместо Адаптера "звездочку", * ).

    Более подробную информацию по использованию идентификатора класса см. в лекции 2.

    Netstat

    Используйте netstat для вывода на экран соединений TCP/IP, которые используются на данный момент компьютером, а также статистики обмена данных для данного сетевого интерфейса и для протоколов IP, TCP и UDP. Утилита netstat имеет следующий синтаксис.

    netstat [-a] [-e] [-n] [-o] [-p протокол] [-r] [-s] [интервал]

    где

    -a – вывод списка активных TCP-соединений вместе с портами TCP и UDP, по которым компьютер следит за соединениями.

    -e – вывод статистики Ethernet, например, количество отправленных и полученных байтов и пакетов (вы можете также объединять параметр -e с параметром -s).

    -n – вывод списка активных соединений TCP с адресами и номерами портов, показанными в числовом порядке (не делается никаких попыток определения имен).

    -o – вывод списка активных соединений TCP с идентификатором процесса (PID) для каждого соединения. Вы можете найти приложение, соответствующее этому PID, во вкладке Processes Диспетчера задач (Task Manager). (Этот параметр можно объединять с параметрами -a, -n и -p.)

    -p протокол – вывод соединений для указанного протокола (tcp или udp). Если вы объединяете этот параметр с параметром -s, то протоколом может быть tcp, udp, icmp или ip.

    -r – вывод содержимого таблицы IP-маршрутизации.

    -s – вывод статистики, упорядоченной по протоколам. По умолчанию статистика выводится для протоколов tcp, udp, icmp и ip.

    интервал – повторяющийся вывод выбранной информации через указанный временной интервал (в секундах). Чтобы прекратить вывод, введите CTRL-C.

    Примечание. При вводе параметров нельзя заменять дефис (-) на слэш.

    ARP

    Утилита ARP выводит на экран текущее содержимое кэша ARP (Address Resolution Protocol). Этот кэш содержит MAC-адреса и IP-адреса компьютеров вашей локальной сети, которые недавно участвовали в обмене данных TCP/IP. ARP имеет следующий синтаксис.

    arp [-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] 
    [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]

    где

    -a [InetAddr] [-N IfaceAddr] – вывод списка текущих таблиц кэша ARP для всех интерфейсов. Чтобы вывести запись кэша ARP для определенного IP-адреса, используйте arp -a с параметром InetAddr (этот IP-адрес). Чтобы вывести таблицу кэша ARP для определенного интерфейса, используйте параметр -NIfaceAddr, где IfaceAddr – IP-адрес, назначенный для этого интерфейса.

    Внимание. Параметр -N указывается прописной буквой N.

    -g [ InetAddr ] [ -N IfaceAddr ] – то же самое, что и -a.

    -d InetAddr [IfaceAddr] – удаление записи с определенным IP-адресом, где InetAddr – этот IP-адрес. Чтобы удалить запись из таблицы для определенного интерфейса, используйте параметр IfaceAddr, где IfaceAddr – IP-адрес, назначенный для этого интерфейса. Чтобы удалить все записи, используйте символ "звездочка" ( * ) вместо InetAddr.

    -s InetAddr EtherAddr [IfaceAddr] – добавление в кэш ARP статической записи, которая используется для разрешения (преобразования) InetAddr в EtherAddr.

    Кэш содержит записи для компьютера, с которым устанавливала соединение ваша рабочая станция, а также другие рабочие станции, поскольку ответные пакеты, генерируемые компьютерами в ответ на ARP-запросы, передаются как широковещательные сообщения. Это позволяет всем компьютерам в сети использовать результаты запроса, направленного с одной машины.

    Кэш ARP периодически очищается, чтобы данные соответствовали текущим изменениям. Однако использование параметра -s для добавления записей в таблицу ARP делает эти записи постоянными.

    Route

    Ваш компьютер Windows Server 2003 поддерживает таблицу, в которой записываются сведения о маршрутизации, полученные от других компьютеров, в форме пакетов ICMP Redirect. Вы можете использовать команду route для просмотра или изменения таблиц маршрутизации. Например, вы можете указать, что для передачи данных в определенный узел должен использоваться какой-либо шлюз, отличный от шлюза по умолчанию. Команда route имеет следующий синтаксис.

    route [-f] [-p] [Команда [Цель]] [mask Сетевая маска] [Шлюз] 
    [metric Метрика]] [if Интерфейс]

    где

    -f – очистка таблицы маршрутизации для всех записей, которые не попадают в следующие категории

  • Маршруты к хостам (маршруты с сетевой маской 255.255.255.255).
  • Закольцованный (loopback) сетевой маршрут (маршруты с целевым адресом 127.0.0.0 и сетевой маской 255.0.0.0).
  • Групповые (multicast) маршруты (маршруты с целевым адресом 224.0.0.0 и сетевой маской 240.0.0.0).
  • Примечание. Если вы используете параметр -f с одной из команд (например, add, change или delete), то таблица автоматически очищается перед выполнением команды.

    -p используется с параметром Команда следующим образом:

  • Используйте -p с командой add, чтобы добавить указанный маршрут в реестр. Эти записи реестра инициализируют таблицу IP-маршрутизации при запуске протокола TCP/IP. (По умолчанию добавляемые маршруты не являются постоянными.)
  • Используйте -p с командой print, чтобы вывести на экран список постоянных маршрутов.
  • Постоянные маршруты сохраняются в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes.
  • Команда указывает одну из следующих команд.

  • add – добавление маршрута.
  • change – изменение существующего маршрута.
  • delete – удаление маршрута.
  • print – печать маршрута.
  • Цель – указывает для данного маршрута цель в сети. Этот IP-адрес сети (где биты хоста в сетевом адресе равны нулю), IP-адрес для маршрута к хосту или 0.0.0.0 для маршрута по умолчанию.

    mask Сетевая маска – указывает сетевую маску (маску подсети), связанную с указанным целевым адресом. Маска подсети может быть нужной сетевой маской для IP-адреса сети, 255.255.255.255 для маршрута к хосту или 0.0.0.0 для маршрута по умолчанию.

    Шлюз указывает промежуточный IP-адрес, через который происходит доступ к набору адресов, определенных адресом целевой сети и маской подсети (в следующем сегменте).

    Примечание. Для маршрутов локальной подсети адрес шлюза – это IP-адрес, назначенный интерфейсу, который подсоединен к этой подсети. Для удаленных маршрутов (с прохождением через один или несколько маршрутизаторов) адрес шлюза – это непосредственно доступный IP-адрес, который назначается соседнему маршрутизатору.

    metric Метрика – целое значение "стоимости" данного маршрута (от 1 до 9999). Значения метрики используются для выбора между несколькими маршрутами в таблице маршрутизации (система выбирает маршрут с минимальной метрикой).

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

    if Интерфейс указывает индекс интерфейса для интерфейса, через который можно попасть к цели. Если этот параметр опущен, то интерфейс определяется из адреса шлюза.

    Совет. Чтобы увидеть список интерфейсов и соответствующих индексов интерфейсов, введите route print. Внимание. Если вы используете Routing and Remote Access (RRAS), то для управления маршрутами вы должны использовать только оснастку RRAS.

    nbtstat

    Команда nbtstat используется для вывода статистики работы NetBT (NetBIOS over TCP/IP) на каком-либо компьютере. С помощью nbtstat вы можете выводить содержимое кэша имен NetBIOS, получать список текущих сеансов NetBT, выводить статистику протоколов через определенные интервалы времени и даже перезагружать кэш путем обработки файла LMHOSTS (вы можете вносить в этот файл изменения, которые применяются сразу).

    nbtstat имеет следующий синтаксис.

    nbtstat [-a Имя-удаленного-компьютера] [-A IP-адрес] [-c] [-n] [-r] 
    [-R] [-RR] [-s] [-S] [Интервал]

    где

    -a Имя-удаленного-компьютера – вывод на экран таблицы имен NetBIOS удаленного компьютера (в качестве Имя-удаленного-компьютера указывается NetBIOS-имя этого компьютера).

    -A IP-адрес – вывод на экран таблицы имен NetBIOS удаленного компьютера с использованием IP-адреса этого удаленного компьютера.

    -c – вывод содержимого кэша имен NetBIOS, таблицы имен NetBIOS и соответствующих разрешенных IP-адресов.

    -n – вывод таблицы имен NetBIOS локального компьютера. Состояние Registered (Зарегистрировано) означает, что имя зарегистрировано с помощью широковещательного сообщения или с помощью сервера WINS.

    -r – вывод статистики разрешения имен NetBIOS. На компьютере Windows Server 2003/XP Professional, сконфигурированном для использования WINS, этот параметр дает количество имен, разрешенных и зарегистрированных с помощью широковещательных сообщений и WINS.

    -R – удаление содержимого кэша имен NetBIOS и последующая перезагрузка записей с тегом #PRE из файла LMHOSTS.

    -RR – освобождение занятых имен NetBIOS и последующее обновление имен, которые были зарегистрированы локальным компьютером.

    -s – показ сеансов клиента и сервера NetBIOS и попытка преобразовать целевой IP-адрес в имя.

    -S – показ сеансов клиента и сервера NetBIOS с выводом сведений для этих удаленных компьютеров только по целевому IP-адресу.

    Интервал – повторяющийся вывод выбранной статистики через указанный временной Интервал (в секундах). Чтобы прекратить вывод, введите CTRL-C.

    Значительная часть сведений, которые вы почерпнули в этой лекции, бесполезна, если вы не знаете, каким образом могли бы использовать средства TCP/IP на своем предприятии: DHCP и DNS. В следующих лекциях дается описание этих важных средств.

    Вернуться к учебному плану