Беспроводная сеть своими руками
Шрифт:
На канальном уровне, как и на физическом, также существуют различия между проводными и беспроводными сетями. Это связано со спецификой сетевого оборудования. Так, доступное на данный момент беспроводное оборудование работает только в полудуплексном режиме: в один момент времени данные могут только приниматься или только передаваться. Этот недостаток резко уменьшает эффективность обнаружения коллизий в сети и, соответственно, понижает скорость передачи данных.
Поскольку модель ISO/OSI жестко регламентирует действия каждого уровня, то разработчикам пришлось немного модернизировать протоколы канального уровня для работы в беспроводных сетях. В частности, для беспроводной передачи данных используются протоколы CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance,
Протокол CSMA/CA предназначен для обнаружения конфликтов при передаче данных. Он использует явное подтверждение доставки данных, сообщающее о том, что передаваемый пакет доставлен и не поврежден.
Данный метод работает следующим образом. Когда один компьютер собирается передать информацию другому, он посылает всем компьютерам сети короткое сообщение – RTS (Ready To Send, готов к передаче), содержащее информацию о получателе и времени, необходимом для передачи данных. Получив такой пакет, все компьютеры прекращают на указанный промежуток времени передачу собственных данных. Компьютер, для которого предназначен пакет, отсылает отправителю сообщение CTS (Clear To Send, свободен для передачи) о готовности к приему данных. Получив такое сообщение, компьютер-отправитель пересылает первую порцию данных и ждет подтверждения доставки пакета. После такого подтверждения передача данных продолжается. Если сообщение об успешной доставке не пришло, то компьютер-отправитель повторно передает необходимый пакет.
Такой метод передачи гарантирует доставку пакетов данных, однако в то же время заметно снижает скорость передачи. Именно поэтому беспроводные сети намного медленнее проводных и останутся таковыми надолго, если не навсегда. Чтобы хоть как-то повысить скорость передачи данных по таким сетям, специальный протокол канального уровня фрагментирует пересылаемые пакеты (разбивает их на более мелкие части), что увеличивает шанс их удачной передачи.
Сетевой уровень
Как и канальный уровень, сетевой отвечает за передачу данных между компьютерами. Для этого он использует сформированные данные и параметры двух предыдущих уровней – физического и канального. Главное отличие сетевого уровня от канального заключается в том, что он умеет передавать данные между сетями с разной топологией – комбинированными. Так, очень часто беспроводные и проводные сети используются в паре. Чаще всего это происходит, если по определенным причинам создать единую проводную сеть физически невозможно.
На сетевом уровне, как и на канальном, данные делятся на пакеты, что позволяет достичь качества и определенной скорости их передачи. Однако, в отличие от канального, сетевой уровень выбирает для передачи данных конкретный маршрут. Процесс выбора оптимального маршрута передачи данных называется маршрутизацией.
Как правило, информацию о выборе маршрута предоставляют специальные устройства, установленные в сети, – маршрутизаторы. Специальные таблицы маршрутизаторов содержат информацию о скорости передачи данных между отдельными отрезками сети, трафике, среднем времени передачи и т. д. Основываясь на этой информации, протоколы сетевого уровня могут выбрать оптимальный путь прохождения данных.
Транспортный уровень
Пожалуй, транспортный уровень можно отнести к более высоким. Это означает, что данным уровнем управляет программа, а не аппаратные средства.
Транспортный уровень отвечает за надежность передачи данных. Существует несколько способов передачи, которые отличаются друг от друга степенью защищенности и возможностью исправления ошибок. Естественно, это сказывается на времени и скорости передачи информации между конкретными точками.
Способ передачи данных выбирается автоматически, с помощью анализа информации маршрутизаторов сети. Если анализ показывает, что конфликты в сети минимальны,
Сеансовый уровень
Сеансовый уровень предназначен для контроля передачи пакетов между компьютерами. В процессе синхронизации принятых и отправленных пакетов протоколы сеансового уровня отслеживают недостающие данные и передают их заново. За счет работы только с недостающими пакетами достигается повышение скорости передачи данных.
Уровень представления
На уровне представления данные приводятся к единому стандарту, что позволяет достичь договоренности при их приеме и передаче. Именно на этом уровне данные могут шифроваться, что повышает безопасность их передачи по сети. Кроме того, часто на уровне представления происходит компрессия информации, благодаря чему повышается скорость передачи данных.
Уровень представления реализуется программно, что позволяет использовать для шифрования данных новейшие достижения.
Прикладной уровень
Прикладной уровень – самый верхний уровень модели ISO/OSI. Его задача – организация взаимодействия с прикладными программами. За это отвечает множество прикладных протоколов, с помощью которых операционная система и программы получают доступ к разнообразным ресурсам сети.
1.2. Понятие протокола
В предыдущем разделе мы кратко рассмотрели модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Для начала работы необходим механизм, реализующий описываемую модель. Таким механизмом является протокол передачи данных, включающий в себя множество протоколов.
Таким образом, протокол – набор правил, благодаря которым возможна передача данных между компьютерами. Эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, поскольку это может повлечь за собой несовместимость оборудования и программного обеспечения.
Каждый уровень модели ISO/OSI обладает своими особенностями, и реализовать все особенности в рамках одного протокола невозможно. Мало того, это даже невыгодно, поскольку значительную часть логики можно разрабатывать на уровне аппаратного обеспечения, что приводит к ускорению работы с данными. Исходя из этих соображений, было разработано множество узконаправленных протоколов, каждый из которых с максимальной отдачей и быстродействием выполняет свою задачу.
Протоколы могут быть двух типов: низкоуровневые и высокоуровневые.
• Низкоуровневые протоколы появились достаточно давно и с тех пор не претерпели никаких кардинальных изменений. За длительное время использования таких протоколов в них были найдены и устранены все возможные «дыры» и ошибки.
Примечание.
Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться их максимального быстродействия.
• Что касается высокоуровневых протоколов, то они постоянно разрабатываются и совершенствуются. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный, способ передачи данных.
Примечание.
Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию для работы в разных операционных системах.
Существует множество различных протоколов, каждый из которых имеет свои особенности. Одни протоколы узконаправленные, другие имеют более широкое применение. Каждая компания разрабатывает свой собственный стек (набор) протоколов. Хотя разные стеки протоколов изначально несовместимы, существуют дополнительные протоколы, представляющие собой «мосты» между стеками. Благодаря этому в одной операционной системе можно работать с несколькими несовместимыми между собой протоколами.