Пожалуй, транспортный уровень можно отнести к более высоким. Это означает, что данным уровнем управляет программа, а не аппаратные средства.
Транспортный уровень отвечает за надежность передачи данных. Существует несколько способов передачи, которые отличаются друг от друга степенью защищенности и возможностью исправления ошибок. Естественно, это сказывается на времени и скорости передачи информации между конкретными точками.
Способ передачи данных выбирается автоматически, с помощью анализа информации маршрутизаторов сети. Если анализ показывает, что конфликты в сети минимальны, то используется самый простой (а значит, самый быстрый) способ. В противном случае выбирается способ передачи высокой степени надежности с возможностью исправления поврежденных пакетов (этот способ передачи, конечно, более медленный). Какой бы способ ни был выбран, в любом случае информация будет доставлена в целостном виде.
Сеансовый уровень
Сеансовый уровень предназначен для контроля передачи пакетов между компьютерами. В процессе синхронизации принятых и отправленных пакетов протоколы сеансового уровня отслеживают недостающие данные и передают их заново. За счет работы только с недостающими пакетами достигается повышение скорости передачи данных.
Уровень представления
На уровне представления данные приводятся к единому стандарту, что позволяет достичь договоренности при их приеме и передаче. Именно на этом уровне данные могут шифроваться, что повышает безопасность их передачи по сети. Кроме того, часто на уровне представления происходит компрессия информации, благодаря чему повышается скорость передачи данных.
Уровень представления реализуется программно, что позволяет использовать для шифрования данных новейшие достижения.
Прикладной уровень
Прикладной уровень – самый верхний уровень модели ISO/OSI. Его задача – организация взаимодействия с прикладными программами. За это отвечает множество прикладных протоколов, с помощью которых операционная система и программы получают доступ к разнообразным ресурсам сети.
1.2. Понятие протокола
В предыдущем разделе мы кратко рассмотрели модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Для начала работы необходим механизм, реализующий описываемую модель. Таким механизмом является протокол передачи данных, включающий в себя множество протоколов.
Таким образом, протокол – набор правил, благодаря которым возможна передача данных между компьютерами. Эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, поскольку это может повлечь за собой несовместимость оборудования и программного обеспечения.
Каждый уровень модели ISO/OSI обладает своими особенностями, и реализовать все особенности в рамках одного протокола невозможно. Мало того, это даже невыгодно, поскольку значительную часть логики можно разрабатывать на уровне аппаратного обеспечения, что приводит к ускорению работы с данными. Исходя из этих соображений, было разработано множество узконаправленных протоколов, каждый из которых с максимальной отдачей и быстродействием выполняет свою задачу.
Протоколы могут быть двух типов: низкоуровневые и высокоуровневые.
• Низкоуровневые протоколы появились достаточно давно и с тех пор не претерпели никаких кардинальных изменений. За длительное время использования таких протоколов в них были найдены и устранены все возможные «дыры» и ошибки.
Примечание.
Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться их максимального быстродействия.
• Что касается высокоуровневых протоколов, то они постоянно разрабатываются и совершенствуются. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный, способ передачи данных.
Примечание.
Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию для работы в разных операционных системах.
Существует множество различных протоколов, каждый из которых имеет свои особенности. Одни протоколы узконаправленные, другие имеют более широкое применение. Каждая компания разрабатывает свой собственный стек (набор) протоколов. Хотя разные стеки протоколов изначально несовместимы, существуют дополнительные протоколы, представляющие собой «мосты» между стеками. Благодаря этому в одной операционной системе можно работать с несколькими несовместимыми между собой протоколами.
Стоит также упомянуть тот факт, что не все протоколы можно использовать в одинаковых условиях. Иногда применение одного протокола выгодно для небольшой группы компьютеров и крайне невыгодно для большого количества компьютеров с несколькими маршрутизаторами и подключением к Интернету.
В следующих разделах вы познакомитесь с наиболее распространенными протоколами и стеками протоколов.
1.3. NetBIOS и NetBEUI
NetBIOS
NetBIOS (Network Basic Input Output System, базовая система сетевого ввода/ вывода) – протокол (скорее, интерфейс) прикладного программирования, разработанный в конце 1983 года для компьютеров IBM.
На самом деле NetBIOS не является полноценным протоколом, поскольку описывает только программную часть передачи данных – набор сетевых API-функций. Это означает, что с помощью этого протокола можно только подготовить данные для передачи. Физически же передача может осуществляться только с помощью любого транспортного протокола, например TCP.
Благодаря такой ситуации подготовка передачи данных не привязана к транспортному протоколу, что позволяет использовать для этих целей любой подходящий протокол. Кроме того, неоспоримым достоинством NetBIOS является быстродействие.
Однако, к сожалению, для полноценной работы протокола NetBIOS требуется, чтобы на всех компьютерах сети использовался один транспортный протокол, иначе компьютеры не смогут синхронизироваться. Основным недостатком NetBIOS является то, что он не поддерживает маршрутизацию, без которой не обходится любая мало-мальски развернутая сеть.
NetBEUI
NetBEUI (NetBIOS Extended User Interface, протокол расширенного пользовательского интерфейса базовой системы сетевого ввода/вывода) – протокол, дополняющий NetBIOS. Благодаря NetBEUI появилась возможность не только описывать программный уровень передачи данных, но и передавать их физически по сети, используя специальные встроенные механизмы этого протокола. Кроме того, значительно возросла надежность и скорость передачи данных.
Основной недостаток NetBEUI, как и NetBIOS, – отсутствие механизма маршрутизации, что делает этот протокол бесполезным в больших сетях. Если же ваша сеть состоит из нескольких компьютеров и не располагает маршрутизатором, то более быстрого протокола вы не найдете.
Итак, протокол NetBEUI не поддерживает маршрутизацию в сети, что не позволяет эффективно использовать его скорость в глобальных сетях. Тем не менее, этот протокол является одним из основных компонентов NT-систем, и его установка происходит автоматически.
1.4. TCP, IP и UDP
TCP
TCP (Transmission Control Protocol, протокол управления передачей данных) – распространенный протокол, разработанный много лет назад. Он используется не только в локальных сетях, но и в сети Интернет, что однозначно характеризует TCP с хорошей стороны.
Главным достоинством протокола является его надежность, достигаемая путем использования подтверждающих пакетов, которые присылаются каждый раз в ответ на полученное сообщение. При этом в первую очередь устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что гарантирует успешную доставку пакетов.
Еще одним механизмом надежности передачи данных является механизм, отслеживающий время жизни пакета, – TTL (Time To Live, время жизни). Если по истечении заданного времени компьютер-получатель не пришлет подтверждение о доставке очередного пакета данных, то компьютер-отправитель перешлет эти данные повторно. Кроме того, данные будут повторно посланы, если пакет оказался поврежденным и компьютер-получатель его отклоняет, о чем сообщает отправителю.
IP
IP (Internet Protocol, протокол межсетевого взаимодействия) – протокол, который обычно применяется вместе с протоколом TCP. Для работы он использует готовые данные маршрутизации, поэтому не контролирует доставку сообщений адресату. Располагая информацией о маршрутизации между выбранными компьютерами, этот протокол просто добавляет к пакету адрес отправителя и получателя[1 - При работе протокол использует понятие дейтаграммы – пакета данных, снабженных служебной информацией о получателе и отправителе.] и пересылает его дальше. Дальнейшая судьба отправленных данных неизвестна, поэтому функцию контроля должен выполнять другой протокол, в частности TCP.
Чтобы хоть как-то повысить надежность, протокол IP вкладывает в пакет контрольную сумму, что позволяет компьютеру-получателю удостовериться в том, что пакет принят без ошибок или, в противном случае, отвергнуть его.
Преимуществом протокола является возможность фрагментации (разделения на компьютере-отправителе большого пакета на более мелкие) с последующей их дефрагментацией на компьютере-получателе.
UDP
UDP (User Datagram Protocol, протокол пользовательских дейтаграмм) – один из самых быстрых, но не очень надежных протоколов, которые используют в сети для передачи данных. Он работает практически так же, как и протокол IP, однако после удачного приема пакета компьютер-получатель присылает соответствующее подтверждение. При этом логическое соединение между компьютерами не требуется, то есть пакет отсылается в надежде (или с уверенностью) на то, что нужный компьютер находится в сети и может его принять. Если подтверждение доставки не получено, значит, через некоторое время компьютер-отправитель повторно вышлет необходимый пакет данных.
Как ни странно, протокол UDP применяется в сети достаточно часто. Благодарить за это нужно скорость, с которой он работает. Эта скорость достигается за счет отсутствия необходимости соединения с другими компьютерами, что позволяет использовать трафик сети в нужном направлении. Так, протокол UDP часто используется, например, в сетевых играх или для передачи звуковых данных с интернет-радио (когда надежность доставки пакетов не играет большой роли).
1.5. IPX и SPX
Протоколы IPX и SPX являются представителями стека протоколов, разработанных компанией Novell. В свое время эта компания являлась прямым конкурентом Microsoft в области сетевых операционных систем: противостояли операционная система Novell Netware и Windows NT. Соответственно, каждая операционная система использовала собственный набор протоколов.
Как известно, компания Novell сдала свои позиции, и первенство завоевали сетевые версии операционной системы Windows NT. Тем не менее протоколы, разработанные Novell, используются до сих пор и будут использоваться еще очень долго.
IPX