Александр Ватаманюк - Домашние и офисные сети под Vista и XP
На практике чаще всего встречаются домашние сети, которые в своей основе используют топологию «звезда» с применением кабеля на основе витой пары и сетевого стандарта Ethernet 802.3 100Base-TX. Кроме того, здесь же уживаются и беспроводные, и оптоволоконные сегменты для удлинения сети.
Глава 5
Модель сетевого взаимодействия и основные сетевые протоколы
Если вы были последовательны, то уже успели познакомиться с основными типами и топологиями сетей, а также сетевыми стандартами. Как и любая другая область жизни и работы человека, все действия находятся под неусыпным контролем разного рода законов и стандартов. Иначе и быть не может, так как в противном случае начинается хаос. Например, благодаря этим стандартам производители знают, какими параметрами и функциями должно обладать производимое ими оборудование, чтобы работать в тех или иных условиях.
Что касается любого типа сети, она подчиняется своим правилам и стандартам, роль которых выполняют модель взаимодействий ISO/OSI и протоколы передачи данных.
Модель ISO/OSI
Пожалуй, ключевым понятием в стандартизации сетей и всего, что к ним относится, является модель взаимодействия открытых систем (Open System Interconnection, OSI), разработанная «Международной организацией по стандартизации» (International Standards Organization, ISO). На практике применяется название модель ISO/OSI.
Описываемая модель состоит из семи уровней (рис. 5.1), каждый из которых отвечает за определенный круг задач, осуществляя их с помощью заложенных в этот уровень алгоритмов – стандартов. Поскольку главная задача – выполнить глобальную цель, то уровни связаны между собой посредством интерфейсов (процедуры взаимодействия, протоколы). Таким образом, выполнив свою часть задачи, нижестоящий уровень передает готовые данные вышестоящему. Если эти сведения по какой-то причине не соответствуют шаблону, то они возвращаются обратно на предыдущий уровень для доработки. Получается, что, когда информация пройдет всю цепочку из семи уровней, на выходе будут готовые к «употреблению» данные.
Рис. 5.1. Уровни модели ISO/OSI
Главное отличие между проводными (Ethernet 802.3) и беспроводными (IEEE 802.11) сетями кроется только в двух нижних уровнях – физическом и канальном. Остальные уровни работают абсолютно одинаково и никаких отличий не имеют.
Рассмотрим уровни модели ISO/OSI подробнее.
Физический уровеньФизический уровень – самый первый, нижний уровень. Фактически он представляет собой аппаратную часть сети и описывает способ передачи данных, используя для этого любой имеющийся канал связи: проводной или беспроводной. Исходя из среды передачи данных должно использоваться соответствующее сетевое оборудование с соответствующими параметрами передачи данных, учитывая всевозможные особенности канала, такие как полосы пропускания, защита от помех, уровень сигнала, кодирование, скорость передачи данных в физической среде и т. п.
По сути, всю описанную работу вынуждено выполнять сетевое оборудование: сетевая карта, мост, маршрутизатор и т. д.
Физический уровень – один из уровней, который отличает беспроводные сети от проводных. Главная разница между ними – среда передачи данных. В первом случае это радиоволны определенной частоты или инфракрасное излучение, во втором – любая физическая линия, например коаксиал, витая пара, оптоволокно, электрическая проводка и т. д.
Канальный уровеньГлавная задача канального уровня – удостовериться, что канал передачи данных готов к этой процедуре и ничто не станет угрожать надежности передачи и целостности передаваемых пакетов. В идеале протоколы канального уровня в паре с сетевым оборудованием должны проверить, является ли канал свободным для передачи данных, не имеется ли коллизий передачи и т. п.
Такую проверку необходимо проводить каждый раз, так как локальная сеть редко состоит всего из двух компьютеров, хотя даже в этом случае канал может быть занят. Если канал свободен, то данные, которые необходимо передать другому компьютеру, делятся на более мелкие части – кадры, каждый из которых снабжается контрольной сумой и отсылается. Приняв этот кадр, получатель проверяет контрольные суммы и, если они совпадают, принимает его и отправляет подтверждение о доставке. В противном случае кадр игнорируется, фиксируется ошибка, которая отправляется получателю, и кадр передается заново. Так происходит кадр за кадром.
Как и физический уровень, канальный уровень также имеет различия для проводных и беспроводных сетей, что связано со спецификой сетевого оборудования. Так, беспроводное оборудование на данный момент работает только в полудуплексном режиме, то есть одновременно может вестись только прием или только передача, что резко снижает эффективность обнаружения коллизий в сети и соответственно скорость передачи данных в беспроводных сетях.
Поскольку модель ISO/OSI жестко регламентирует действия каждого уровня, то разработчикам прошлось немного модернизировать протоколы канального уровня для работы в беспроводных сетях. В частности, в случае беспроводной передачи данных используются протоколы CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) или DCF (Distributed Coordination Function).
Протокол CSMA/CA характеризуется тем, что избегает коллизий при передаче данных, используя явное подтверждение доставки, которое сообщает, что пакет доставлен и не поврежден.
Работает это следующим образом. Когда один компьютер собирается передать данные другому, то всем машинам сети посылается короткое сообщение (ready to send, RTS), содержащее в себе информацию о получателе и времени, необходимом для передачи данных. Получив такой пакет, все компьютеры прекращают передачу данных на указанное время. Получатель отсылает отправителю сообщение (clear to send, CTS) о готовности приема данных, получив которое, компьютер-отправитель высылает первую порцию данных и ждет подтверждения о доставке пакета. После получения подтверждения о доставке передача данных продолжается. Если подтверждение о доставке не пришло, то компьютер-отправитель повторно передает конкретный пакет.
Такая система гарантирует доставку пакетов данных, но в то же время заметно снижает скорость передачи данных. Именно поэтому беспроводные сети по скорости всегда отставали и будут отставать от проводных. Тем не менее существуют способы повысить скорость передачи данных за счет оптимизации передачи служебных данных. Кроме того, появляются и новые беспроводные стандарты.
Сетевой уровеньКак и канальный, сетевой уровень занимается передачей информации. Однако между ними есть существенная разница: канальный уровень может передавать данные между компьютерами, подключенными с использованием одной топологии. Если сеть комбинированная, то задача выполняется на сетевом уровне.
Данные в сетевом уровне делятся на порции, которые называются пакетами. Перед началом передачи данных другому компьютеру происходит преждевременная настройка связи, заключающаяся в выборе пути, по которому будут передаваться сведения. Этот процесс называется маршрутизацией.
Выбор нужного маршрута – одна из основных функций сетевого уровня. Невозможно выбрать идеальный путь, так как рано или поздно на одном из отрезков может повыситься трафик, что приведет к увеличению времени передачи пакетов. Поэтому нужный путь выбирается по среднему значению всех необходимых параметров: пропускной способности, интенсивности трафика, дальности и скорости передачи, ее надежности и т. п.
Как правило, при выборе маршрута используется информация установленных в сети маршрутизаторов. В их таблицах хранится информация о скорости передачи между отдельными отрезками сети, трафике, о среднем времени передачи и т. д., основываясь на которой протоколы сетевого уровня могут выбрать оптимальный путь прохождения данных.
Организовать сетевой уровень можно как программно, так и аппаратно.
Транспортный уровеньТранспортный уровень можно отнести к высокому уровню, то есть к такому, управлять которым можно программно, а не только с помощью аппаратных средств.
Идеальную сеть создать невозможно – хоть где-то, но будет отклонение от требований построения. Если сеть достаточно большая и включает несколько маршрутизаторов, то это не только усложняет ее, но и приводит к увеличению ненадежности.
Основная задача транспортного уровня – обеспечить требуемую степень надежности при передаче информации между выбранными компьютерами. Транспортный уровень может делать это пятью способами. Каждый из них отличается не только защищенностью данных при пересылке, но и временем их доставки или возможностью исправления возникших ошибок. По этой причине, начиная с данного уровня, выбрать вариант доставки может программа, то есть непосредственно пользователь. Зачем использовать максимальные предосторожности перед отправкой и во время отсылки данных, если сеть характеризуется хорошим качеством и низкой вероятностью появления ошибок? Логично выбрать наиболее простой способ из пяти существующих. Наоборот, если в сети часто происходят коллизии, приводящие к потере информации, то следует использовать способ, гарантирующий доставку информации в любом случае.[11]