Какой протокол не обеспечивает гарантированной доставки пакетов
Когда речь идет о разработке игр, есть только два протокола, которые следует рассмотреть: TCP/IP и UDP. Это два основных используемых сегодня протокола, и, если вы не читаете эту книгу через много лет после ее издания, только они представляют разумный выбор для разработчика игр.
Протокол TCP/IP
Протокол TCP/IP обеспечивает обмен сообщениями между компьютерами с гарантированной доставкой данных. Он также делает такие приятные вещи, как упорядочивание пакетов. Главное преимущество TCP/IP в том, что он делает за вас большую часть работы, гарантируя доставку сообщений. Что означает гарантия доставки информации? Это значит, что если система сообщает вам о том, что отправила сообщение другому компьютеру, вы можете быть уверены, что данные действительно отправлены. Я знаю, что данная особенность кажется очевидной, но в мире сетевого программирования это не так.
Основной недостаток протокола TCP/IP — медленная передача данных. Это вызвано гарантируемой доставкой данных. Чтобы гарантировать доставку, система должна отправить информацию, получить ответ и проконтроллировать правильность передачи. Это отнимает драгоценное время и на сегодняшнем оборудовании задержки часто оказываются недопустимыми для игр.
Протокол UDP
Протокол UDP — это более простая версия TCP/IP. С одной стороны он не гарантирует доставку информации. Может быть данные добрались до цели, а может и нет — кто знает? Кроме отсутствия гарантии доставки, UDP передает данные в произвольном порядке. Возьмем, к примеру, следующую фразу:
«Шустрая рыжая лиса перепрыгнула через ленивую собаку»
Если вы передаете эту фразу по протоколу UDP, данные могут следовать в таком порядке:
«собаку рыжая Шустрая лиса ленивую перепрыгнула через»
Как видно из приведенного выше примера, данная особенность может вызвать проблемы при разработке игры. Существуют технические способы ее решения, но вы должны реализовать их самостоятельно, или использовать какой-нибудь API, который сделает это за вас.
Главное преимущество UDP — его исключительная быстрота и гибкость. Если не надо беспокоиться о таких вещах, как порядок данных и гарантированная доставка, он даст значительный выигрыш в скорости. Кроме того, вы можете написать систему, гарантирующую доставку данных и работающую поверх протокола и включать ее когда нужно. Это позволит в случае необходимости передавать данные с гарантированной доставкой и поддерживать более быструю передачу, когда данные не являются критически важными.
TCP/IP против UDP
Может быть вы думаете о том, какой протокол и когда следует использовать. Позвольте мне помочь вам, рассмотремв несколько сценариев.
- Пошаговые стратегические игры Для пошаговых стратегических игр вы, скорее всего, должны остановить свой выбор на TCP/IP. Поскольку данные о ходах передаются регулярно, вам не нужна высокая скорость и проблемы с UDP.
- Стратегические игры реального времени Для стратегий реального времени вам нужен UDP. Вам постоянно придется передавать различную информацию: от сообщений игроков до данных о передвижении подразделений. Даже и не думайте использовать для этой цели TCP/IP.
- Многопользовательские сетевые ролевые игры (MMORPG) Эй, это же книга о стратегических играх! (Шутка.) Здесь ответ не столь однозначен. Многопользовательские ролевые игры передают огромные объемы данных, так что они кажутся созданными для использования протокола UDP. Проблема в том, что гарантированная доставка с протоколом UDP не столь эффективна, как с TCP/IP, а в многопользовательских ролевых играх вам очень часто будет требоваться именно гарантированная доставка данных. Я не хочу оставить вас в растерянности, так что советую попробовать сначала UDP, а затем, если не сможете заставить его работать, переключиться на TCP/IP.
Модель OSI
Сетевая модель OSI (эталонная модель взаимодействия открытых систем — англ. Open Systems Interconnection Reference Model-OSI) — абстрактная модель для сетевых коммуникаций и разработки сетевых протоколов.
Назначение модели OSI состоит в обобщенном представлении средств сетевого взаимодействия. Для наглядности процесс работы сети разделен на семь уровней. В верхней части модели располагается приложение, которому нужен доступ к сети, в нижней – сетевая среда передачи данных. По мере того, как данные продвигаются от уровня к уровню вниз, действующие на этих уровнях протоколы постепенно подготавливают эти данные для передачи по сети. Каждый уровень обслуживает свою часть процесса взаимодействия.
7. Прикладной уровень (Application Layer)
6. Уровень представления (Presentation Layer)
5. Сеансовый уровень (Session Layer)
4. Транспортный уровень (Transport Layer)
3. Сетевой уровень (Network Layer)
2. Канальный уровень (Data-Link Layer)
1. Физический уровень (Physical Layer)
Взаимодействие уровней модели OSI
Задача каждого уровня – предоставление услуг смежному уровню, «маскируя» детали реализации этих услуг. Каждый уровень на компьютере-отправителе работает так, будто он напрямую связан с таким же уровнем на получателе – это логическая или виртуальная связь.
В действительности связь осуществляется между смежными уровнями одного компьютера – программное обеспечение, работающее на каждом уровне реализует сетевые функции в соответствии с набором протоколов этого уровня.
Инкапсуляция данных
По сути, взаимодействие протоколов, работающих на разных уровнях модели OSI, состоит в том, что каждый протокол добавляет свой заголовок (header), содержащий поля с информацией специфичной для данного уровня, к информации, полученной с уровня, расположенного выше. При этом, информация полученная с верхнего уровня – заголовок и данные, становятся данными для протокола текущего уровня. На канальном уровне добавляется заголовок и трейлер (footer). Итог — пакет, готовый к передаче по сети. Процесс добавления заголовков к запросу, сгенерированному приложением, называется инкапсуляция
Основные функции протоколов уровней OSI
1. Физический уровень (Physical Layer)
Имеет дело с передачей битов по физическим каналам связи (различные типы кабелей, беспроводные каналы). На этом уровне определяется тип сигнала для передачи данных по сетевой среде (электрический сигнал, световой импульс и т.д.) и его характеристики (уровень, частота и т.д).
2. Канальный уровень (Data-Link Layer)
Основные функции протокола канального уровня:
А. Формирование кадра (пакета) для передачи по сети. Протокол канального уровня добавляет к данным полученным от сетевого уровня заголовок и трейлер, превращая их в кадр. В заголовке содержатся адреса системы-отправителя и системы получателя пакета. Это так называемые аппаратные адреса или MAC-адреса, присвоенные сетевым адаптерам на заводе изготовителе (MAC – Media Access Control – управление доступом к среде).
Б. Реализация механизма контроля доступа к среде (методы доступа CSMA/CD, CSMA/CA, Token Passing и др). Функции протокола канального уровня реализуются сетевыми адаптерами и их драйверами.
3. Сетевой уровень (Network Layer)
Протоколы сетевого уровня обеспечивают «сквозную» передачу пакета от передающего до принимающего компьютера (end-to-end). При этом передатчик и приемник могут находится в одной ЛВС или в разных ЛВС, соединенных между собой специальными устройствами – маршрутизаторами (шлюзами). Пример: протокол сетевого уровня – IP (Internet Protocol), который входит в стек протоколов TCP/IP.
4. Транспортный уровень (Transport Layer)
Протоколы транспортного уровня обеспечивают приложениям ту степень надежности доставки сообщения, которая им требуется. Существует два типа протоколов транспортного уровня:
А. Протоколы ориентированные на соединение (connection-oriented) Такие протоколы перед передачей данных обмениваются сообщениями, чтобы установить связь друг с другом. После установки связи выполняется передача, а затем протоколы обмениваются сообщениями о доставке пакета. Пример: протокол ТСР (Transmission Control Protocol) – входит в стек протоколов TCP/IP, обеспечивает приложениям гарантированную доставку данных с подтверждением приема, обнаружением и коррекцией ошибок.
Б. Протоколы не ориентированные на соединение (connectionless) Передают информацию целевой системе не проверяя готова ли она к приему и существует ли она вообще Пример: протокол UDР (User Datagram Protocol) – входит в стек протоколов TCP/IP, не обеспечивает приложениям гарантированную доставку данных.
5. Сеансовый уровень (Session Layer)
Обеспечивает процесс взаимодействия сторон, фиксирует какая из сторон сейчас является активной и предоставляет средства синхронизации сеанса. Эти средства позволяют в ходе длинных передач сохранять информацию о состоянии этих передач в виде контрольных точек, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все сначала. Этот уровень редко реализуется в виде отдельных протоколов. Функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.
6. Уровень представления (Presentation Layer)
На этом уровне выполняется функция трансляции синтаксиса между различными системами (например, различная кодировка символов в разных системах – ASCII и EBCDIC).
7. Прикладной уровень (Application Layer)
Это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к ресурсам, таким как файлы, принтеры, гипертекстовые документы, а также организуют свою совместную работу, например, по протоколу электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением.
Какой протокол не обеспечивает гарантированной доставки пакетов
Протокол ТСР обеспечивает гарантированную передачу данных между двумя хостами через канал, в котором могут возникать ошибки. Под «каналом» в данном случае мы понимаем все уровни ниже транспортного. Как известно, для доставки сегментов ТСР используется протокол сетевого уровня IР, рассматриваемый ниже, который является ненадежным, т.е. не гарантирует ни доставку пакетов, ни очередность доставки пакетов, ни целостность данных в доставленных пакетах. При использовании для доставки данных протокола 1Р очереди маршрутизаторов могут переполняться, в связи с чем наступает перегрузка, приводящая к потере пакетов и к доставке их в неправильном порядке. Протокол ТСР обладает рядом функций, позволяющих контролировать и управлять потоком сегментов на транспортном уровне. Среди этих функций необходимо выделить нумерацию сегментов данных, подтверждение приемником принятых сегментов и управление таймером.
Управление трафиком и качество обслужевания в сети
- Классиеские и новые протоколы верхних уровней для работы с мультимедийным трафиком в сети интернет
- Мультимедийный трафик и его классификация
- Сохраненные потоковые аудио и видеоприложения
- «живые» потоковые аудио и видеоприложения
- Интерактивные потоковые аудио и видеоприложения
- Классические протоколы транспортного уровня — протокол udp
- Протокол tcp
- Структура сегмента tcp
- Управление соединением tcp
- Обеспечение гарантированной доставки данных
- Посылка и нумерация сегментов данных
- Посылка и нумерация сегментов подтверждения аск
- Управление таймерами
- Протокол go-back-n
- Протокол selective repeat
- Обработка сегментов подтверждения аск в tcp
- Тсриаяо
- Управление потоком в протоколе tcp
- Управление перегрузками в протоколе tcp
- Алгоритм управления перегрузкой
- Алгоритм aimd
- Другие реализации протокола tcp
- Механизм tcp ecn
- Новые протоколы верхних уровней — протокол rtp — необходимость реализации дополнительного протокола
- Общие сведения о протоколе rtp
- Протокол rtcp
- Протокол rtsp
- Литература к главе 1
- Управление сетевым трафиком
- Перегрузки на сети и методы борьбы с ними — то такое перегрузка
- Общие подходы к построению механизмов управления перегрузками на сети
- Неявная обратная связь
- Явная обратная связь
- От best effort к гарантированному качеству обслуживания
- Принцип «справедливого распределения ресурсов»
- Tcp и принцип «справедливого распределения ресурсов»
- Критерий max-min
- Критерий «взвешенный max-min»
- Критерии «пропорциональной справедливости» и «взвешенной пропорциональной справедливости»
- Классификация, мониторинг, допуск и управление нагрузкой
- Управление допуском нагрузки в сеть
- В архитектуре intserv
- Детерминированный сас
- Вероятностный сас
- Мвас
- Сас для сетей атм
- В архитектуре diffserv контракт по трафику sla
- Соглашение тса
- Классификация нагрузки
- Контроль нагрузки и политика управления нагрузкой
- Мониторинг нагрузки
- Алгоритм leaky bucket
- Алгоритм token bucket
- Для архитектуры diffserv: алгоритм trtcm
- Сглаживание профиля трафика
- Сглаживание при помощи token bucket
- Совместная реализация leaky bucket и token bucket
- Планирование обслуживания пакетов
- Классы планировщиков
- Сглаживание профиля трафика на базе планировщика
- Алгоритм round robin
- Алгоритм deficit round robin
- Алгоритм gps
- Алгоритм weighed fair queuing
- Алгоритм virtual clock
- Анализ pfq для последовательности систем
- Сравнение и анализ алгоритмов планировщиков
- Алгоритмы управления очередями
- Алгоритмы пассивного управления очередями
- Алгоритмы активного управления очередями
- Алгоритм red
- Принцип функционирования базового алгоритма red
- Принцип функционирования расширенного алгоритма red
- Настройка параметров алгоритма red
- Сравнение алгоритмов taildrop и red
- Реализация алгоритма red
- Алгоритм ared
- Алгоритмы класса mred
- Алгоритм wred
- Алгоритм fred
- Защита хрупких соединений
- Управление устойчивыми потоками
- Управление неадаптивными потоками
- Подсчет среднего размера очереди
- Алгоритм
- Другие алгоритмы
- Алгоритм red и механизм ecn
- Литература к главе 2
- Протоколы и алгоритмы маршрутизации с поддержкой каества обслуживания
- Маршрутизация в сети интернет — классическая маршрутизация в интернет
- Классификация существующих протоколов класса irp — общие сведения
- Протоколы класса erp — общие сведения
- Пример функционирования протокола класса erp
- Внутри- и междоменная qos-маршрутизация
- Концепция принудительной маршрутизации
- Методы и метрики обеспечения качества обслуживания
- Замечания о метриках
- Теоретическая модель сети на основе графа
- Управление информацией состояния
- Обеспечение качества обслуживания при multicast
- Интеграция qos-маршрутизации — qos-маршрутизация и маршрутизация для best effort
- Qos-маршрутизация и резервирование ресурсов
- Qos-маршрутизация и функция «управления допустимостью соединения» (сас)
- Ооб-маршрутизация и динамическое управление качеством обслуживания
- Стратегии маршрутизации и оптимизация алгоритмов функционирования
- Маршрутизация от источника
- Распределенная маршрутизация
- Иерархическая маршрутизация
- Оптимизация параметров алгоритма функционирования протокола маршрутизации типа lsp
- Факторы, влияющие на стоимость вычисления
- Факторы, влияющие на «накладные расходы»
- Современные алгоритмы qos-маршрутизации
- Перспективные задачи для оов-маршрутизации
- Литература к главе 3
- Методы обеспеения каества обслуживания «из-конца-в-конец» — введение
- Архитектура «интегральные услуги» intserv
- Модель сетевого узла intserv
- Типы услуг, предоставляемых в intserv
- Протокол резервирования ресурсов rsvp
- Классы резервирований
- Временное состояние «soft state»
- Практическое использование rsvp
- Особенности реализации qos для архитектуры intserv
- Качество обслуживания для услуги gs
- Расчет параметров задержки и буферного пространства
- Параметризация gs
- Качество обслуживания для услуги cls
- Архитектура «дифференцированные услуги» diffserv
- Концепция пошаговой маршрутизации рнв
- Рнв ef «быстрое перенаправление»
- Рнв af «гарантированное перенаправление»
- Концепция пошаговой маршрутизации на уровне домена pdb
- Pdb best effort
- Pdb virtual wire
- Pdb assured rate
- Pdb «one-to-any» assured rate
- Pdb lower effort
- Сетевые брокеры
- Общие принципы обеспечения qos в diffserv
- Реализация функционирования intserv через diffserv
- Многопротокольная маршрутизация по метке mpls
- Протокол cops
- Поддержка mpls в архитектуре diffserv
- Совместное функционирование qos-технологий
- Литература к главе 4
Програмирование с использованием OpenGL
- Новости
- Основы OpenGL
- OpenGL и Delphi
- Информационные технологии
- Мультимедиа технологии и компьютерная графика
- Download
- Coding
- Документация
- Литература
- Уроки по OpenGl
- Статьи
- Ссылки
- Наши банера
- О сайте
Какой протокол не обеспечивает гарантированной доставки пакетов
Протоколы – это набор правил и процедур, регулирующих порядок осуществления связи. Компьютеры, участвующие в обмене, должны работать по одним и тем же протоколам, чтобы в результате передачи вся информация восстанавливалась в первоначальном виде.
О протоколах нижних уровней (физического и канального), относящихся к аппаратуре, уже упоминалось в предыдущих разделах. В частности, к ним относятся методы кодирования и декодирования, а также управления обменом в сети. Подробнее некоторые из них будут изложены в главах книги, посвященных стандартным сетям. А сейчас следует остановиться на особенностях протоколов более высоких уровней, реализуемых программно.
Связь сетевого адаптера с сетевым программным обеспечением осуществляют драйверы сетевых адаптеров. Именно благодаря драйверу компьютер может не знать никаких аппаратных особенностей адаптера (его адресов, правил обмена с ним, его характеристик). Драйвер унифицирует, делает единообразным взаимодействие программных средств высокого уровня с любым адаптером данного класса. Сетевые драйверы , поставляемые вместе с сетевыми адаптерами, позволяют сетевым программам одинаково работать с платами разных поставщиков и даже с платами разных локальных сетей (Ethernet, Arcnet, Token-Ring и т.д.). Если говорить о стандартной модели OSI, то драйверы , как правило, выполняют функции канального уровня, хотя иногда они реализуют и часть функций сетевого уровня (рис. 6.1). Например, драйверы формируют передаваемый пакет в буферной памяти адаптера, читают из этой памяти пришедший по сети пакет, дают команду на передачу, информируют компьютер о приеме пакета.
Рис. 6.1. Функции драйвера сетевого адаптера в модели OSI
Качество написания программы драйвера во многом определяет эффективность работы сети в целом. Даже при самых лучших характеристиках сетевого адаптера некачественный драйвер может резко ухудшить обмен по сети.
Прежде чем приобрести плату адаптера, необходимо ознакомиться со списком совместимого оборудования (Hardware Compatibility List, HCL), который публикуют все производители сетевых операционных систем. Выбор там довольно велик (например, для Microsoft Windows Server список включает более сотни драйверов сетевых адаптеров). Если в перечень HCL не входит адаптер какого-то типа, лучше его не покупать.
Протоколы высоких уровней.
Существует несколько стандартных наборов (или, как их еще называют, стеков ) протоколов, получивших сейчас широкое распространение:
- набор протоколов ISO/OSI;
- IBM System Network Architecture (SNA);
- Digital DECnet;
- Novell NetWare;
- Apple AppleTalk;
- набор протоколов глобальной сети Интернет, TCP/IP.
Включение в этот список протоколов глобальной сети вполне объяснимо, ведь, как уже отмечалось, модель OSI используется для любой открытой системы: на базе как локальной, так и глобальной сети или комбинации локальной и глобальной сетей.
Протоколы перечисленных наборов делятся на три основные типа:
- Прикладные протоколы (выполняющие функции трех верхних уровней модели OSI – прикладного, представительского и сеансового);
- Транспортные протоколы (реализующие функции средних уровней модели OSI – транспортного и сеансового);
- Сетевые протоколы (осуществляющие функции трех нижних уровней модели OSI).
Прикладные протоколы обеспечивают взаимодействие приложений и обмен данными между ними. Наиболее популярны:
- FTAM (File Transfer Access and Management) – протокол OSI доступа к файлам;
- X.400 – протокол CCITT для международного обмена электронной почтой;
- Х.500 – протокол CCITT служб файлов и каталогов на нескольких системах;
- SMTP (Simple Mail Transfer Protocol) – протокол глобальной сети Интернет для обмена электронной почтой;
- FTP (File Transfer Protocol) – протокол глобальной сети Интернет для передачи файлов;
- SNMP (Simple Network Management Protocol) – протокол для мониторинга сети, контроля за работой сетевых компонентов и управления ими;
- Telnet – протокол глобальной сети Интернет для регистрации на удаленных серверах и обработки данных на них;
- Microsoft SMBs (Server Message Blocks, блоки сообщений сервера) и клиентские оболочки или редиректоры фирмы Microsoft;
- NCP (Novell NetWare Core Protocol) и клиентские оболочки или редиректоры фирмы Novell.
Транспортные протоколы поддерживают сеансы связи между компьютерами и гарантируют надежный обмен данными между ними. Наиболее популярные из них следующие:
- TCP (Transmission Control Protocol) – часть набора протоколов TCP/IP для гарантированной доставки данных, разбитых на последовательность фрагментов;
- SPX – часть набора протоколов IPX/SPX (Internetwork Packet Exchange/Sequential Packet Exchange) для гарантированной доставки данных, разбитых на последовательность фрагментов, предложенных компанией Novell;
- NWLink – реализация протокола IPX/SPX компании Microsoft;
- NetBEUI – (NetBIOS Extended User Interface, расширенный интерфейс NetBIOS) – устанавливает сеансы связи между компьютерами (NetBIOS) и предоставляет верхним уровням транспортные услуги (NetBEUI).
Сетевые протоколы управляют адресацией, маршрутизацией, проверкой ошибок и запросами на повторную передачу. Широко распространены следующие из них:
- IP (Internet Protocol) – TCP/IP-протокол для негарантированной передачи пакетов без установления соединений;
- IPX (Internetwork Packet Exchange) – протокол компании NetWare для негарантированной передачи пакетов и маршрутизации пакетов;
- NWLink – реализация протокола IPX/SPX компании Microsoft;
- NetBEUI – транспортный протокол, обеспечивающий услуги транспортировки данных для сеансов и приложений NetBIOS.
Все перечисленные протоколы могут быть поставлены в соответствие тем или иным уровням эталонной модели OSI. Но при этом надо учитывать, что разработчики протоколов не слишком строго придерживаются этих уровней. Например, некоторые протоколы выполняют функции, относящиеся сразу к нескольким уровням модели OSI, а другие – только часть функций одного из уровней. Это приводит к тому, что протоколы разных компаний часто оказываются несовместимы между собой. Кроме того, протоколы могут быть успешно использованы исключительно в составе своего набора протоколов (стека протоколов) , который выполняет более или менее законченную группу функций. Как раз это и делает сетевую операционную систему «фирменной», то есть, по сути, несовместимой со стандартной моделью открытой системы OSI.
В качестве примера на рис. 6.2, рис. 6.3 и рис. 6.4 схематически показано соотношение протоколов, используемых популярными фирменными сетевыми операционными системами, и уровней стандартной модели OSI. Как видно из рисунков, практически ни на одном уровне нет четкого соответствия реального протокола какому-нибудь уровню идеальной модели. Выстраивание подобных соотношений довольно условно, так как трудно четко разграничить функции всех частей программного обеспечения. К тому же компании-производители программных средств далеко не всегда подробно описывают внутреннюю структуру продуктов.
Теперь следует подробнее рассмотреть некоторые наиболее распространенные протоколы.
Модель OSI допускает два основных метода взаимодействия абонентов в сети:
- Метод взаимодействия без логического соединения (или метод дейтаграмм ).
- Метод взаимодействия с логическим соединением.
Метод дейтаграмм – это простейший метод, в котором каждый пакет рассматривается как самостоятельный объект (рис. 6.5).
Пакет при этом методе передается без установления логического канала, то есть без предварительного обмена служебными пакетами для выяснения готовности приемника, а также без ликвидации логического канала, то есть без пакета подтверждения окончания передачи. Дойдет пакет до приемника или нет – неизвестно (проверка факта получения переносится на более высокие уровни).
Метод дейтаграмм предъявляет повышенные требования к аппаратуре (так как приемник всегда должен быть готов к приему пакета). Достоинства метода в том, что передатчик и приемник работают независимо друг от друга, к тому же пакеты могут накапливаться в буфере и затем передаваться вместе, можно также использовать широковещательную передачу, то есть адресовать пакет всем абонентам одновременно. Недостатки метода – это возможность потери пакетов, а также бесполезной загрузки сети пакетами в случае отсутствия или неготовности приемника.
Метод с логическим соединением (рис. 6.6, рис. 4.5) разработан позднее, чем метод дейтаграмм , и отличается усложненным порядком взаимодействия.
При этом методе пакет передается только после того, как будет установлено логическое соединение (канал) между приемником и передатчиком. Каждому информационному пакету сопутствует один или несколько служебных пакетов (установка соединения, подтверждение получения, запрос повторной передачи, разрыв соединения). Логический канал может устанавливаться на время передачи одного или нескольких пакетов.
Рис. 6.2. Соотношение уровней модели OSI и протоколов сети Интернет
Рис. 6.3. Соотношение уровней модели OSI и протоколов операционной системы Windows Server
Рис. 6.4. Соотношение уровней модели OSI и протоколов операционной системы NetWare
Рис. 6.5. Метод дейтаграмм
Рис. 6.6. Метод с логическим соединением
Метод с логическим соединением, как уже говорилось, более сложен, чем метод дейтаграмм , но гораздо надежнее, поскольку к моменту ликвидации логического канала передатчик уверен, что все его пакеты дошли до места назначения, причем дошли успешно. Не бывает при данном методе и перегрузки сети из-за бесполезных пакетов. Недостаток метода с логическим соединением состоит в том, что довольно сложно разрешить ситуацию, когда принимающий абонент по тем или иным причинам не готов к обмену, например, из-за обрыва кабеля, отключения питания, неисправности сетевого оборудования, сбоя в компьютере. При этом требуется алгоритм обмена с повторением неподтвержденного пакета заданное количество раз, причем важен и тип неподтвержденного пакета. Не может этот метод передавать широковещательные пакеты (то есть адресованные всем абонентам), так как нельзя организовать логические каналы сразу со всеми абонентами.
Примеры протоколов, работающих по методу дейтаграмм — это протоколы IP и IPX.
Примеры протоколов, работающих по методу с логическим соединением – это TCP и SPX.
Именно для того, чтобы объединить достоинства обоих методов, эти протоколы используются в виде связанных наборов: TCP/IP и IPX/SPX, в которых протокол более высокого уровня (TCP, SPX), работающий на базе протокола более низкого уровня (IP, IPX), гарантирует правильную доставку пакетов в требуемом порядке.
Протоколы IPX/SPX, разработанные компанией Novell, образуют набор (стек) , используемый в сетевых программных средствах довольно широко распространенных локальных сетей Novell (NetWare). Это сравнительно небольшой и быстрый протокол, поддерживающий маршрутизацию. Прикладные программы могут обращаться непосредственно к уровню IPX, например, для посылки широковещательных сообщений, но значительно чаще работают с уровнем SPX, гарантирующим быструю и надежную доставку пакетов. Если скорость не слишком важна, то прикладные программы применяют еще более высокий уровень, например, протокол NetBIOS, предоставляющий удобный сервис. Компанией Microsoft предложена своя реализация протокола IPX/SPX, называемая NWLink. Протоколы IPX/SPX и NWLink поддерживаются операционными системами NetWare и Windows. Выбор этих протоколов обеспечивает совместимость по сети любых абонентов с данными операционными системами.
Набор (стек) протоколов TCP/IP был специально разработан для глобальных сетей и для межсетевого взаимодействия. Он изначально ориентирован на низкое качество каналов связи, на большую вероятность ошибок и разрывов связей. Этот протокол принят во всемирной компьютерной сети Интернет, значительная часть абонентов которой подключается по коммутируемым линиям (то есть обычным телефонным линиям). Как и протокол IPX/SPX, протокол TCP/IP также поддерживает маршрутизацию. На его основе работают протоколы высоких уровней, такие как SMTP, FTP, SNMP. Недостаток протокола TCP/IP —более низкая скорость работы, чем у IPX/SPX. Однако сейчас протокол TCP/IP используется и в локальных сетях, чтобы упростить согласование протоколов локальных и глобальных сетей. В настоящее время он считается основным в самых распространенных операционных системах.
В стек протоколов TCP/IP часто включают и протоколы всех верхних уровней (рис. 6.7). И тогда уже можно говорить о функциональной полноте стека TCP/IP.
Как протокол IPX, так и протокол IP являются самыми низкоуровневыми протоколами, поэтому они непосредственно инкапсулируют свою информацию, называемую дейтаграммой , в поле данных передаваемого по сети пакета (см. рис. 4.6). При этом в заголовок дейтаграммы входят адреса абонентов (отправителя и получателя) более высокого уровня, чем MAC-адреса, – это IPX-адреса для протокола IPX или IP-адреса для протокола IP. Эти адреса включают номера сети и узла, хоста (индивидуальный идентификатор абонента). При этом IPX-адреса (рис. 6.8) более простые, имеют всего один формат, а в IP-адрес (рис. 6.9) могут входить три формата (класса A, B и C), различающиеся значениями трех начальных битов.
Рис. 6.7. Соотношение уровней модели OSI и стека протоколов TCP/IP
Рис. 6.8. Формат IPX- адреса
Рис. 6.9. Форматы IP-адреса
Интересно, что IP-адрес не имеет никакой связи с MAC-адресами абонентов. Номер узла в нем присваивается абоненту независимо от его MAC-адреса. В качестве идентификатора станции IPX-адрес включает в себя полный MAC-адрес абонента.
Номер сети – это код, присвоенный каждой конкретной сети, то есть каждой широковещательной области общей, единой сети. Под широковещательной областью понимается часть сети, которая прозрачна для широковещательных пакетов, пропускает их беспрепятственно.
Протокол NetBIOS (сетевая базовая система ввода/вывода) был разработан компанией IBM для сетей IBM PC Network и IBM Token-Ring по образцу системы BIOS персонального компьютера. С тех пор этот протокол стал фактическим стандартом (официально он не стандартизован), и многие сетевые операционные системы содержат в себе эмулятор NetBIOS для обеспечения совместимости. Первоначально NetBIOS реализовывал сеансовый, транспортный и сетевой уровни, однако в последующих сетях на более низких уровнях используются стандартные протоколы (например, IPX/SPX), а на долю эмулятора NetBIOS остается только сеансовый уровень. NetBIOS обеспечивает более высокий уровень сервиса, чем IPX/SPX, но работает медленнее.
На основе протокола NetBIOS был разработан протокол NetBEUI, который представляет собой развитие протокола NetBIOS до транспортного уровня. Однако недостаток NetBEUI состоит в том, что он не поддерживает межсетевое взаимодействие и не обеспечивает маршрутизацию. Поэтому данный протокол используется только в простых сетях, не рассчитанных на подключение к Интернет. Сложные сети ориентируются на более универсальные протоколы TCP/IP и IPX/SPX. Протокол NetBEUI в настоящее время считается устаревшим, хотя даже в операционной системе Windows XP предусмотрена его поддержка, правда, только как дополнительная опция.
Наконец, упоминавшийся уже набор протоколов OSI – это полный набор (стек) протоколов , где каждый протокол точно соответствует определенному уровню стандартной модели OSI. Набор содержит маршрутизируемые и транспортные протоколы, серии протоколов IEEE 802, протокол сеансового уровня представительского уровня и несколько протоколов прикладного уровня. Пока широкого распространения этот набор протоколов не получил, хотя он и полностью соответствует эталонной модели OSI.
Стандартные сетевые программные средства
Функции верхних уровней эталонной модели OSI выполняют сетевые программные средства. Для установки сети достаточно иметь набор сетевого оборудования, его драйверы , а также сетевое программное обеспечение. От выбора программного обеспечения зависит очень многое: допустимый размер сети, удобство использования и контроля сети, режимы доступа к ресурсам, производительность сети в разных режимах и т.д. Правда, заменить одну программную систему на другую значительно проще, чем сменить оборудование.
С точки зрения распределения функций между компьютерами сети, все сети можно разделить на две группы:
- Одноранговые сети , состоящие из равноправных (с точки зрения доступа к сети) компьютеров.
- Сети на основе серверов , в которых существуют только выделенные (dedicated) серверы, занимающиеся исключительно сетевыми функциями. Выделенный сервер может быть единственным или их может быть несколько.
Согласно с этим, выделяют и типы программных средств, реализующих данные виды сетей.
Одноранговые сети
Одноранговые сети (Peer-to-Peer Network) и соответствующие программные средства, как правило, используются для объединения небольшого количества компьютеров (рис. 6.10). Каждый компьютер такой сети может одновременно являться и сервером и клиентом сети, хотя вполне допустимо назначение одного компьютера только сервером, а другого только клиентом. Принципиальна возможность совмещения функций клиента и сервера. Важно также и то, что в одноранговой сети любой сервер может быть невыделенным (non-dedicated), может не только обслуживать сеть, но и работать как автономный компьютер (правда, запросы к нему по сети сильно снижают скорость его работы). В одноранговой сети могут быть и выделенные серверы, только обслуживающие сеть.
Рис. 6.10. Одноранговая сеть
Именно в данном случае наиболее правильно говорить о распределенных дисковых ресурсах, о виртуальном компьютере, а также о суммировании объемов дисков всех компьютеров сети. Если все компьютеры являются серверами, то любой файл, созданный на одном из них сразу же становится доступным всем остальным компьютерам, его не надо передавать на централизованный сервер.
Достоинством одноранговых сетей является их высокая гибкость: в зависимости от конкретной задачи сеть может использоваться очень активно либо совсем не использоваться. Из-за большой самостоятельности компьютеров в таких сетях редко бывает ситуация перегрузки (к тому же количество компьютеров обычно невелико). Установка одноранговых сетей довольно проста, к тому же не требуются дополнительные дорогостоящие серверы. Кроме того, нет необходимости в системном администрировании, пользователи могут сами управлять своими ресурсами.
В одноранговых сетях допускается определение различных прав пользователей по доступу к сетевым ресурсам, но система разграничения прав не слишком развита. Если каждый ресурс защищен своим паролем, то пользователю приходится запоминать большое число паролей.
К недостаткам одноранговых сетей относятся также слабая система контроля и протоколирования работы сети, трудности с резервным копированием распределенной информации. К тому же выход из строя любого компьютера-сервера приводит к потере части общей информации, то есть все такие компьютеры должны быть по возможности высоконадежными. Эффективная скорость передачи информации по одноранговой сети часто оказывается недостаточной, поскольку трудно обеспечить быстродействие процессоров, большой объем оперативной памяти и высокие скорости обмена с жестким диском для всех компьютеров сети. К тому же компьютеры сети работают не только на сеть, но и решают другие задачи.
Несколько примеров одноранговых сетевых программных средств:
- NetWare Lite компании Novell (сейчас уже не производится);
- LANtastic компании Artisoft (выпуск практически прекращен);
- Windows for Workgroups компании Microsoft (первая версия ОС Windows со встроенной поддержкой сети, выпущенная в 1992 году);
- Windows NT Workstation компании Microsoft;
- Windows 95. Windows XP компании Microsoft.
Первые одноранговые сетевые программные средства представляли собой сетевые оболочки, работающие под управлением DOS (например, NetWare Lite). Они перехватывали все запросы DOS, те запросы, которые вызваны обращениями к сетевым устройствам, обрабатывались и выполнялись сетевой оболочкой, а те, которые вызваны обращениями к «местным», несетевым ресурсам, возвращались обратно в DOS и обрабатывались стандартным образом.
Более поздние одноранговые сетевые программные средства уже были встроены в операционную систему Windows. Это гораздо удобнее, так как исключается этап установки сетевых программ. Поэтому сетевые оболочки сейчас уже практически не используются, хотя многие их характеристики были заметно лучше, чем у сетевых средств Windows.
Сейчас считается, что одноранговая сеть наиболее эффективна в небольших сетях (около 10 компьютеров). При значительном количестве компьютеров сетевые операции сильно замедлят работу компьютеров и создадут множество других проблем. Тем не менее, для небольшого офиса одноранговая сеть – оптимальное решение.
Самая распространенная в настоящий момент одноранговая сеть – это сеть на основе Windows XP (или более ранних версий ОС Windows).
При этом пользователь, приобретая компьютер с установленной операционной системой, автоматически получает и возможность выхода в сеть. Естественно, это во многих случаях гораздо удобнее, чем приобретать и устанавливать пусть даже и более совершенные продукты других фирм. К тому же пользователю не надо изучать интерфейс пользователя сетевой программы, так как он строится так же, как и интерфейс пользователя всех остальных частей операционной системы.
Если приобретаемый компьютер еще и имеет установленный сетевой адаптер, то построить сеть пользователю совсем просто. Надо только соединить компьютеры кабелем и настроить сетевые программы.
В Windows предусмотрена поддержка совместного использования дисков (в том числе гибких дисков и CD), а также принтеров. Имеется возможность объединения всех пользователей в рабочие группы для более удобного поиска требуемых ресурсов и организации доступа к ним. Пользователи имеют доступ к встроенной системе электронной почты. Это означает, что все пользователи сети получают возможность совместно применять многие ресурсы ОС своего компьютера.
При настройке сети пользователь должен выбрать тип сетевого протокола. По умолчанию используется протокол TCP/IP, но возможно применение IPX/SPX (NWLink), а также NetBEUI. При выборе TCP/IP можно задавать адреса IP вручную или с помощью автоматической настройки адресации (в этом случае компьютер сам присвоит себе адрес из диапазона, не используемого в Интернет).
Кроме того, надо задать индивидуальное имя компьютера и определить рабочую группу, к которой он относится.
После этого можно разрешить доступ по сети к ресурсам каждого компьютера сети, к его файлам, папкам, принтерам, сканерам, доступу в Интернет.
Сети на основе сервера
Сети на основе сервера (Server-based Network) применяются в тех случаях, когда в сеть должно быть объединено много пользователей. В этом случае возможностей одноранговой сети может не хватить. Поэтому в сеть включается специализированный компьютер – сервер, который обслуживает только сеть и не решает никаких других задач (рис. 6.11). Такой сервер называется выделенным. Сервер может быть и специализирован на решении одной задачи, например, сервер печати, но чаще всего серверами выступают именно компьютеры. В сети может быть и несколько серверов, каждый из которых решает свою задачу.
Рис. 6.11. Сеть на основе сервера
Серверы специально оптимизированы для быстрой обработки сетевых запросов на разделяемые ресурсы и для управления защитой файлов и каталогов. При больших размерах сети мощности одного сервера может оказаться недостаточно, и тогда в сеть включают несколько серверов. Серверы могут выполнять и некоторые другие задачи: сетевая печать, выход в глобальную сеть, связь с другой локальной сетью, обслуживание электронной почты и т.д. Количество пользователей сети на основе сервера может достигать нескольких тысяч. Одноранговой сетью такого размера просто невозможно было бы управлять. Кроме того, в сети на основе серверов можно легко менять количество подключаемых компьютеров, такие сети называются масштабируемыми.
В любом случае в сети на основе сервера существует четкое разделение компьютеров на клиентов (или рабочие станции) и серверы. Клиенты не могут работать как серверы, а серверы – как клиенты и как автономные компьютеры. Очевидно, что все сетевые дисковые ресурсы могут располагаться только на сервере, а клиенты могут обращаться только к серверу, но не друг к другу. Однако это не значит, что они не могут общаться между собой, просто пересылка информации от одного клиента к другому возможна только через сервер, например, через файл, доступный всем клиентам. В данном случае реализуется некоторая «логическая звезда» с сервером в центре, хотя физическая топология сети может быть любой.
Достоинством сети на основе сервера часто называют надежность. Это верно, но только с одной оговоркой: если сервер действительно очень надежен. В противном случае любой отказ сервера приводит к полному параличу сети в отличие от ситуации с одноранговой сетью , где отказ одного из компьютеров не приводит к отказу всей сети. Бесспорное достоинство сети на основе сервера – высокая скорость обмена, так как сервер всегда оснащается быстрым процессором (или даже несколькими процессорами), оперативной памятью большого объема и быстрыми жесткими дисками. Так как все ресурсы сети собраны в одном месте, возможно применение гораздо более мощных средств управления доступом, защиты данных, протоколирования обмена, чем в одноранговых сетях .
К недостаткам сети на основе сервера относятся ее громоздкость в случае небольшого количества компьютеров, зависимость всех компьютеров-клиентов от сервера, более высокая стоимость сети вследствие использования дорогого сервера. Но, говоря о стоимости, надо также учитывать, что при одном и том же объеме сетевых дисков большой диск сервера получается дешевле, чем много дисков меньшего объема, входящих в состав всех компьютеров одноранговой сети .
Примеры некоторых сетевых программных средств на основе сервера:
- NetWare компании Novell (самая распространенная сетевая ОС);
- LAN Server компании IBM (почти не используется);
- LAN Manager компании Microsoft;
- Windows NT Server компании Microsoft;
- Windows Server 2003 компании Microsoft.
На файл-сервере в данном случае устанавливается специальная сетевая операционная система, рассчитанная на работу сервера. Эта сетевая ОС оптимизирована для эффективного выполнения специфических операций по организации сетевого обмена. На рабочих станциях (клиентах) может устанавливаться любая совместимая операционная система, поддерживающая сеть.
Для обеспечения надежной работы сети при авариях электропитания применяется бесперебойное электропитание сервера. В данном случае это гораздо проще, чем при одноранговой сети , где желательно оснащать источниками бесперебойного питания все компьютеры сети. Для администрирования сети (то есть управления распределением ресурсов, контроля прав доступа , защиты данных, файловой системы, резервирования файлов и т.д.) в случае сети на основе сервера необходимо выделять специального человека, имеющего соответствующую квалификацию. Централизованное администрирование облегчает обслуживание сети и позволяет оперативно решать все вопросы. Особенно это важно для надежной защиты данных от несанкционированного доступа. В случае же одноранговой сети можно обойтись и без специалиста-администратора, правда, при этом все пользователи сети должны иметь хоть какое-то представление об администрировании.
Процесс установки серверной сетевой операционной системы гораздо сложнее, чем в случае одноранговой сети . Так, он включает в себя следующие обязательные процедуры:
- форматирование и разбиение на разделы жесткого диска компьютера-сервера;
- присвоение индивидуального имени серверу;
- присвоение имени сети;
- установка и настройка сетевого протокола;
- выбор сетевых служб;
- ввод пароля администратора.
Сетевая операционная система на базе сервера Windows Server 2003 предоставляет пользователям гораздо больше возможностей, чем в случае одноранговой сети .
Она позволяет строить сложные иерархические структуры сети на основе логических групп компьютеров ( доменов , domain), наборов доменов (деревьев, tree) и наборов деревьев (леса, forest).
Домен представляет собой группу компьютеров, управляемых контроллером домена , специальным сервером. Домен использует собственную базу данных, содержащую учетные записи пользователей, и управляет собственными ресурсами, такими как принтеры и общие файлы. Каждому домену присваивается свое имя (обычно домен рассматривается как отдельная сеть со своим номером). В каждый домен может входить несколько рабочих групп, которые формируются из пользователей, решающих общую или сходные задачи. В принципе домен может включать тысячи пользователей, однако обычно домены не слишком велики, и несколько доменов объединяются в дерево доменов . Это упрощает управление сетью. Точно так же несколько деревьев может объединяться в лес, самую крупную административную структуру, поддерживаемую данной ОС.
В процессе установки Windows Server 2003 необходимо задать тип протокола сети. По умолчанию используется TCP/IP, но возможно применение NWLink (IPX/SPX).
Каждому серверу необходимо назначить роль, которую он будет выполнять в сети:
- контроллер домена (управляет работой домена );
- файловый сервер (хранит совместно используемые файлы);
- сервер печати (управляет сетевым принтером);
- Web-сервер (содержит сайт, доступный по сети Интернет или по локальной сети);
- коммуникационный сервер (обеспечивает работу электронной почты и конференций);
- сервер удаленного доступа (обеспечивает удаленный доступ).
Каждому пользователю сети необходимо присвоить свое учетное имя и пароль, а также права доступа к ресурсам (полномочия). Права доступа могут задаваться как индивидуально, так и целой рабочей группе пользователей. Windows Server 2003 обеспечивает следующие виды полномочий для папок:
- полный контроль (просмотр, чтение, запись, удаление папки, подпапок, файлов, запуск на исполнение, установка прав доступа к папке);
- изменение (просмотр, чтение, запись, удаление подпапок и файлов, запуск на исполнение);
- чтение и исполнение (просмотр, чтение, запуск на исполнение);
- просмотр содержимого папки;
- запись нового содержимого в папку;
- чтение информации из папки.
Те же самые уровни полномочий (кроме просмотра содержимого) предусмотрены и для файлов, доступных по сети.
Сетевые операционные системы NetWare компании Novell сегодня очень популярны, что объясняется их высокой производительностью, совместимостью с разными аппаратными средствами и развитой системой средств защиты данных. Компания Novell выпускает сетевые программные средства с 1979 года: несколько версий сетевых ОС на базе файловых серверов (одна из последних версий – NetWare 6 и 6.5), клиентское программное обеспечение, а также средства диагностики работы сетей. Популярные до недавнего времени сетевые оболочки одноранговых сетей , такие как NetWare Lite и Personal NetWare сейчас уже не производятся.
Отличительной особенностью сетевых программных средств Novell всегда была их открытость, то есть совместимость с операционными системами различных фирм: Windows, UNIX, Macintosh, OS/2. Кроме того, они всегда обеспечивали возможность работы с аппаратными средствами практически всех известных производителей. Это позволяет строить на их основе сети из разнообразных абонентов – от самых простых до самых сложных.
Все сетевые продукты NetWare допускают подключение бездисковых рабочих станций (клиентов), что позволяет при необходимости значительно снизить стоимость сети. Во всех продуктах предусмотрена поддержка сетевых мостов.
Продуктам Novell NetWare присущи и недостатки, например, их стоимость для небольших сетей оказывается достаточно высокой по сравнению с ценой продуктов других производителей. Кроме того, их установка сравнительно сложна, но они уже стали фактическим стандартом, поэтому их позиции на рынке довольно прочны.
Рассмотрим кратко особенности сетевой ОС Novell NetWare 6.5.
Как и в случае Microsoft Windows Server 2003, Novell NetWare 6.5 требует создания древовидной иерархической структуры, включающей в себя сетевые деревья, серверы, пользователей, группы и прочие объекты.
Novell NetWare 6.5 предусматривает обязательное разбиение жестких дисков с использованием собственной системы хранения файлов NSS (Novell Storage Services), которое требует создания логических разделов (Volumes) на диске. Это позволяет серверу более эффективно решать сетевые задачи.
Для каждого сервера сети надо выбрать один из трех типов:
- Настраиваемый сервер (в частности, Web-сервер, FTP-сервер).
- Основной файловый сервер.
- Специальный сервер (например, DNS/DHCP-сервер, контролирующий сетевые адреса и имена, или сервер резервного копирования).
Кроме того, надо задать тип используемого протокола – TCP/IP или IPX/SPX.
На компьютеры-клиенты следует установить клиентское программное обеспечение. Это сравнительно простая процедура.
Каждому клиенту присваивается учетная запись, предоставляются свои права доступа к ресурсам. Клиенты могут быть объединены в рабочие группы, каждой из которых присваиваются имена и права доступа .
Предусмотрены следующие виды доступа к файлам и каталогам (папкам):
- Изменение прав доступа к каталогу или файлу;
- Просмотр каталога;
- Создание каталогов и файлов в данном каталоге;
- Удаление каталогов и файлов в данном каталоге;
- Изменение содержимого файлов;
- Любые операции над файлами каталога;
- Запись в файл.