Потоком называется движение информационных пакетов между двумя IP-адресами, которые определяются номером порта сетевого TCP- или UDP-приложения. Поток пакетов, перемещающийся между этими же хостами, но в противоположном направлении, является отдельным потоком. Это вполне нормально, когда несколько потоков перемещаются между двумя хостами. Например, если пользователь открыл несколько окон сетевого браузера, то каждая из этих сессий имеет свой поток. Эти потоки остаются разделенными благодаря использованию различных номеров порта.
Потоки составляют основу QoS, так как каждый поток получает информацию о направлении (путь, соединяющий два хоста), о времени (последовательность и направленность соединения) и о причине (работающее приложение). Потоки идентифицируются с помощью некоторых элементов информации пакета.
Адрес хоста-отправителя. Сетевой адрес хоста-отправителя (характерный для протоколов третьего уровня, таких как IP или IPX).
Адрес конечного хоста. Сетевой адрес хоста-получателя (характерный для протоколов третьего уровня, таких как IP или IPX).
Протокол. Сетевые и транспортные протоколы (IP, TCP, UDP, IPX, SAP и т. д.).
Порт протокола отправителя. Протокол сетевого приложения на хосте-источнике (HTTP, FTP и т. д.).
Порт протокола получателя. Протокол сетевого приложения, зависящий от сетевого адреса конечного хоста.
Интерфейс исходного устройства. Сетевой интерфейс, через который трафик поступает в устройство (обычно маршрутизатор).
Любая комбинация вышеназванных критериев определения потока называется кортежем (tuple). В QoS кортежи используются для идентификации различных потоков. Когда между двумя хостами группируются потоки, то образовывается соединение. Соединение упрощает управление различными уровнями обслуживания, снижая количество инструкций по управлению потоком. Другим названием соединения является сессия. Этот термин часто употребляется в контексте с людьми, использующими соединение.
Идентификация потоков является одной из основных функций QoS, так как она используется сетевыми устройствами для определения соединения, которому принадлежит пакет. Это позволяет применять к этому пакету соответствующий уровень обслуживания.
RSVP
Протокол резервирования ресурсов RSVP обеспечивает качество обслуживания каждому потоку. Как следует из его названия, RSVP резервирует ресурсы полосы пропускания на линии, соединяющей исходное и конечное устройства, чтобы обеспечить хотя бы минимальный уровень QoS. Приложения, работающие на конечных IP-устройствах, используют протокол RSVP для указания характера потока пакетов, который они хотят получить, резервируя полосу пропускания, которая может поддерживать требуемое качество обслуживания. Это делается с помощью указания таких параметров, как минимальная пропускная способность, максимальная задержка при пульсации сигнала и пр.
RSVP является механизмом обеспечения качества обслуживания в Windows 2000. Мы обсуждаем его здесь на случай, если Windows XP Professional клиенты будут устанавливать соединения с Windows 2000-сервером, который использует RSVP. К тому же, Windows XP Professional включает в себя инструменты, которые могут отслеживать атрибуты RSVP в System Monitor, о чем речь пойдет ниже.
RSVP является протоколом, который применяется в архитектуре комплексных услуг (integrated services) QoS, сокращенно IntServ. Составляющая "комплексные" происходит от того, что все устройства связаны одним сервисным режимом для поддержки нужного уровня обслуживания потока в обоих направлениях.
Протокол RSVP работает комплексно. Он определяет хосты отправителя и получателя для каждого потока. Хост-отправитель посылает на хост-получатель сообщение PATH, в котором по пути следования формируется список всех устройств. Получив сообщение PATH, хост-получатель отправляет в ответ сообщение RESV, которое идет по тому же пути следования. В сообщении RESV указываются параметры характеристик нужного канала связи. После того как все промежуточные устройства настраиваются на нужный уровень обслуживания, сессия может начинаться. Когда связь прекращается, то применяется специальный прерывающий механизм, который освобождает ресурсы зарезервированных устройств. RSVP-процесс показан на рис. 15.1.
Рис. 15.1.RSVP использует сложную, изолированную систему отправки сообщений для резервирования полосы частот
Для полной гарантии резервирования каждый переход между сетевыми устройствами должен поддерживать резервирование и на физическом уровне предоставлять необходимую пропускную способность.
Если резервирование отвергается, то программа получает ответное сообщение, что сеть не может поддерживать такой тип и объем пропускной способности или необходимый уровень обслуживания. Программа решает, отсылать ли данные в настоящий момент, используя best-effort доставку (доставку с максимальными усилиями), или подождать и послать новый запрос позже.
RSVP представляет собой гибкий (soft-state) протокол, который требуется периодически обновлять. Информация о резервировании или состояние резервирования кэшируется на каждом переходе. Если сетевой протокол маршрутизации изменяет путь прохождения данных, то RSVP автоматически устанавливает состояние резервирования на новом маршруте. Если сообщения об обновлении не получены, то время резервирования истекает и аннулируется, а зарезервированный канал связи освобождается.
Примечание. Многие старые маршрутизаторы и коммутаторы не подчиняются протоколу RSVP. В таких случаях сообщения о резервировании отправляются на каждом этапе. Гарантия прямой доставки и малой задержки для запрашиваемого уровня обслуживания не достижима.
Группирование маршрутов частично снижает сложности и дополнительные расходы, связанные с применением RSVP. Например, если тысячи RSVP хостов-получателей должны получить, скажем, видеоклип, то RESV-сообщения будут свертываться и собираться в точках группирования. И наоборот, только один поток будет посылаться от источника, передающего видео, копироваться в точках группирования и "растекаться" по всем конечным пунктам.