Модель сетевого взаимодействия и основные сетевые протоколы
Если вы были последовательны, то уже успели познакомиться с основными типами и топологиями сетей, а также сетевыми стандартами. Как и любая другая область жизни и работы человека, все действия находятся под неусыпным контролем разного рода законов и стандартов. Иначе и быть не может, так как в противном случае начинается хаос. Например, благодаря этим стандартам производители знают, какими параметрами и функциями должно обладать производимое ими оборудование, чтобы работать в тех или иных условиях.
Что касается любого типа сети, она подчиняется своим правилам и стандартам, роль которых выполняют модель взаимодействий 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]
Сеансовый уровень служит для контроля передачи пакетов между компьютерами. Синхронизируя принятые и отправленные пакеты, протоколы сеансового уровня отслеживают недостающие пакеты и передают их заново. За счет того что передаются только недостающие пакеты, достигается повышение скорости передачи данных.
Чтобы урегулировать процессы отправки и получения информации между двумя компьютерами, существует уровень представления, отвечающий за приведение информации к единому синтаксическому стандарту. Именно здесь можно эффективно использовать разнообразные методы шифрования информации, чем и занимаются многие протоколы.
Прикладной уровень отвечает за связь с прикладными программами. Это обычный набор протоколов, с помощью которых можно наладить доступ к любым ресурсам сети.
Таким образом, пройдя все семь уровней, сообщение пользователя пополняется служебной информацией (заголовками) каждого из них. Аналогично, попав к требуемому получателю и опять пройдя все семь уровней, информация очищается от всей служебной информации.
Что такое протокол и зачем он нужен
В предыдущем разделе была очень кратко рассмотрена модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Чтобы все это начало работать, необходим реализующий ее механизм, которым является протокол передачи данных, точнее, множество протоколов.
Таким образом, протокол – набор правил, используя которые можно передать данные между компьютерами. Все эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, так как это может повлечь за собой несовместимость оборудования и программного обеспечения.
Поскольку каждый из уровней модели ISO/OSI обладает своими особенностями, реализация всех этих особенностей невозможна в рамках одного протокола. Мало того, она даже невыгодна, так как значительную часть логики можно создавать на уровне аппаратного обеспечения, что приводит к ускорению обработки данных. Исходя из этих соображений было разработано множество узконаправленных протоколов, каждый из которых выполняет свою задачу и делает это с максимальной отдачей и быстродействием.
Все протоколы можно разделить на низкоуровневые и высокоуровневые.
Низкоуровневые реализованы давно, и никаких кардинальных изменений в них не вносится, что за длительное время их использования позволило найти и устранить все возможные дыры и ошибки.
Примечание
Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться максимального быстродействия и безошибочности.
Высокоуровневые протоколы разрабатывают и совершенствуют постоянно. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный способ передачи данных.
Примечание
Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию под разные операционные системы.
Существует множество разных протоколов, каждый из которых имеет свои особенности. Одни из них узконаправленные, другие имеют более широкое применение. Протоколы разрабатывают несколько фирм, поэтому неудивительно, что каждая из них создает свой собственный стек (набор) протоколов. Хотя эти стеки по умолчанию между собой несовместимы, существуют дополнительные протоколы, являющиеся мостами между ними, что позволяет использовать в одной операционной системе несколько несовместимых между собой протоколов.
Стоит также упомянуть, что не все протоколы могут применяться в одинаковых условиях. Случается, применение одного из них выгодно для небольшой группы компьютеров и крайне невыгодно для большого количества машин с несколькими маршрутизаторами и подключением к Интернету.
Наибольшую популярность приобрели такие стеки протоколов, как NetBIOS/NetBEUI, IPX/SPX, TCP/IP, DECnet и др.
Протокол NetBIOS/NetBEUI
NetBIOS (Network Basic Input/Output System) – один из первых сетевых протоколов, разработанный в 1984 году для создания интерфейса передачи сообщений по локальной сети: как одноранговой, так и на основе сервера.
Чтобы передавать сообщения по сети NetBIOS, используются логические имена компьютеров. Когда такая машина заходит в сеть, она не только сообщает об этом всем остальным, но и заносит их имена в свою динамическую таблицу.
В силу своей простоты NetBIOS – один из самых быстрых протоколов, и это его сильная сторона.
На самом деле NetBIOS не является полноценным протоколом, так как описывает только программную часть передачи данных – набор сетевых API-функций. Это означает, что, используя его, можно только подготовить данные для передачи. Физическая же передача может осуществляться только с помощью любого транспортного протокола, например TCP.
Положительный момент этой ситуации – непривязанность к транспортному протоколу, что позволяет использовать любой подходящий для этих целей протокол. Кроме того, неоспоримым плюсом является его быстродействие.
Минус в том, что для полноценной работы NetBIOS требуется, чтобы на всех машинах сети стоял одинаковый транспортный протокол, иначе компьютеры не смогут синхронизироваться. Однако главный недостаток протокола – отсутствие поддержки маршрутизации, без чего не обходится любая мало-мальски развернутая сеть.
NetBEUI (NetBIOS Extended User Interface) – транспортный протокол, «собрат» протокола NetBIOS. Однако он обладает большей скоростью доставки сообщений, надежностью и устойчивостью к ошибкам, что достигается путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом прежде всего в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.
Еще один момент надежности передачи данных – механизм, отслеживающий время «жизни» пакета (TTL). Если по его истечении компьютер-получатель не пришлет подтверждения о доставке очередного пакета данных, то компьютер-отправитель отсылает порцию данных повторно. Повторная отправка сведений аналогична предыдущей, и если пакет оказался поврежденным и компьютер-получатель его отклоняет, то он сообщает об этом компьютеру-отправителю.
Как и NetBIOS, NetBEUI не поддерживает маршрутизацию в сети, что не позволяет эффективно использовать его скорость и применять в глобальных сетях. Тем не менее этот протокол – один из основных компонентов NT-систем, и устанавливается он автоматически.
Протокол IPX/SPX
Протоколы IPX и SPX – представители стека протоколов, разработанных компанией Novell, которая в свое время являлась прямым конкурентом компании Microsoft. Конкуренция велась в области сетевых операционных систем: с одной стороны стояла операционная система Novell Netware, с другой – Windows NT. Соответственно каждая из этих систем использовала свой набор протоколов.
К сожалению, со временем Novell сдала свои позиции, и первенство завоевали сетевые версии операционных систем Windows NT. Тем не менее разработанные Novell протоколы используют до сих пор и будут использоваться еще очень долго.
Протоколы IPX и SPX являются продолжением протокола XNS компании Xerox, который не получил широкого распространения.
IPX/SPX представляет собой набор подпротоколов, каждый из которых может выполнять возложенную на него задачу на высоком уровне (рис. 5.2). Тем не менее два нижних уровня (физический и сетевой) реализуют стандартные протоколы Ethernet.
Рис. 5.2. Распределение протоколов стека IPX/SPX по уровням модели ISO/OSI (в сравнении)
Рассмотрим некоторые протоколы, входящие в состав протокола IPX/SPX.
• IPX (Internetwork Packet Exchange) – отвечает за работу сетевого уровня. Его основные функции – вычисление адресов компьютеров сети и организация маршрутизации между двумя выбранными компьютерами. Анализируя данные других протоколов, IPX составляет наиболее эффективный путь маршрутизации, после чего пакет данных (датаграмма[12]) с добавленной информацией об адресе получателя и отправителя отсылается по выбранному маршруту. К сожалению, этот протокол самостоятельно работать не может, так как не устанавливает соединение между компьютерами, а без этого нельзя ожидать от него надежности доставки пакетов.
• SPX (Sequenced Packet Exchange) – протокол транспортного уровня, отвечающий за установку соединения между выбранными компьютерами и передающий сообщения – датаграммы.
• SAP (Service Advertising Protocol) – отвечает за работу сразу трех уровней: прикладного, представления данных и сеансового. Однако одна из основных его функций – рассылка сообщений о доступных сервисах, благодаря чему все сетевые устройства знают об имеющихся сетевых сервисах. SAP – очень мощное средство организации службы поддержки, однако это и его основной недостаток. Поскольку любое сетевое устройство сети постоянно посылает о себе информацию, это приводит к повышению трафика сети и соответственно – снижению ее эффективности. Для уменьшения засорения сети используют возможности маршрутизаторов, позволяющих фильтровать SAP-сообщения.
• NCP (NetWare Core Protocol) – протокол верхнего (прикладного) уровня, отвечающий за взаимодействие сервера операционной системы Novell NetWare и рабочей станции. С его помощью пользователь видит любую нужную информацию о ресурсах сети, работает с файлами, меняет их атрибуты, удаляет, копирует и т. д.
Протокол TCP/IP
TCP/IP – самый распространенный протокол транспортного уровня и в локальных, и в глобальных сетях, разработанный Министерством обороны США более 20 лет назад.
Протокол TCP/IP имеет открытый интерфейс. Это означает, что вся информация об этом протоколе открыта и любой может использовать ее посвоему желанию и назначению.
В названии данного протокола есть разделитель, то есть оно состоит из наименований двух протоколов. Первый из них – TCP (Transmission Control Protocol), второй – IP (Internet Protocol). Следовательно, в данном протоколе участвует по меньшей мере два протокола (рис. 5.3).
Рис. 5.3. Распределение протоколов стека TCP/IP по уровням модели ISO/OSI (в сравнении)
На самом деле в стеке TCP/IP участвует намного больше протоколов, так как каждый из них предназначен для выполнения определенных задач. Как известно, лучше иметь несколько механизмов, работа которых отлажена до мелочей, чем один большой, но вызывающий неполадки.
Стек TCP/IP состоит из следующих протоколов.
• TCP (Transmission Control Protocol) – осуществляет обмен данными между двумя компьютерами с предварительно установленной логической связью. Он постоянно используется в Интернете, так как надежность соединения в этом случае играет очень большую роль. Кроме того, TCP обеспечивает надежность доставки сообщений, принимая подтверждения доставки каждой порции сведений, что достигается путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.
• UDP (User Datagram Protocol) – при использовании этого протокола не нужно иметь установленное логическое соединение двух компьютеров. Когда передаются данные другому компьютеру, предполагается, что он где-то есть, то есть подключен к сети. В этом случае нет никакой гарантии, что обмен данными произойдет. При этом к отсылаемому пакету просто добавляется IP-адрес компьютера, которому нужно отослать сообщение. Если сообщение принято, то присылается подтверждение об этом, иначе отсылка данных повторяется через некоторый промежуток времени. Как ни странно, но протокол UDP применяется в сети достаточно часто благодаря скорости, с которой он работает. Данная скорость достигается за счет того, что не устанавливаются соединения с другими компьютерами, что позволяет использовать трафик в нужном направлении. Так, этот протокол часто применяется в сетевых играх, для передачи звуковых данных с Интернет-радио и в других случаях, где надежность доставки пакетов не играет большой роли.
• IP (Internet Protocol) – протокол более высокого уровня, чем TCP и UDP. Он используется непосредственно для передачи данных по ранее установленному (или неустановленному) соединению и имеет механизмы маршрутизации. Пользуясь информацией о маршрутизации между выбранными компьютерами, он просто добавляет адрес отправителя и получателя к пакету и отсылает его дальше. Еще одна часто используемая функция протокола – разбитие большого пакета на более мелкие составляющие на одном компьютере и соответственно соединение всех частей в одно целое на другом, что является большим плюсом данного протокола. IP не контролирует доставку сообщений конечному адресату. IP-адреса машины-отправителя и машины-получателя включаются в заголовок датаграммы и используются для ее передачи между шлюзами. При этом информация о маршрутизации, находящаяся на шлюзе, указывает, куда передать датаграмму на каждом этапе.
• ICMP (Internet Control Message Protocol) – отвечает за контроль над протоколом IP. Он отслеживает любые изменения, влияющие на процесс маршрутизации. При возникновении каких-либо ошибок об этом узнают и отправитель, и получатель, при этом в сообщении указывается причина сбоя.
• RIP (Routing Information Protocol) – родной «брат» протокола IP (они оба связаны с маршрутизацией). Тем не менее протокол RIP отвечает за выбор наилучшего пути маршрута доставки данных.
• OSPF (Open Shortest Path First) – еще один протокол, выполняющий те же действия, что и RIP.
• ARP (Address Resolution Protocol) – работает с адресами компьютеров, то есть определяет фактический адрес машины, расположенной в той или иной ветке сети. Например, если нужно узнать физический адрес в сети Ethernet, имея при этом IP-адрес, то ARP конвертирует 32-битный IP-адрес в 48-битный Ethernet-адрес.
• DNS (Domain Name System) – это также «адресный» протокол, позволяющий определять адрес компьютера на основе его логического имени.
• RARP (Revere Address Resolution Protocol) – протокол, определяющий адрес компьютера в сети. Работает аналогично протоколу ARP, однако конвертирование происходит в обратном порядке, то есть 48-битный Ethernet-адрес преобразуется в 32-битный IP-адрес.
• ВООТР (Boot Protocol) – относится к прикладному уровню. С его помощью можно запустить сетевой компьютер, используя данные о загрузке с сетевого сервера.
• FTP (File Transfer Protocol) – очень известный протокол, позволяющий загружать файлы с одного компьютера на другой.
• TELNET – позволяет налаживать связь между двумя компьютерами, используя удаленный доступ. При этом пользователь получает полный контроль над компьютером, с которым связывается.
• EGP (Exterior Gateway Protocol) – служит шлюзом, если данные необходимо передать из локальной сети во внешнюю. При этом кроме информации передаются дополнительные служебные сведения о состоянии сети.
• IGP (Interior Gateway Protocol) – еще один шлюзовой протокол, необходимый для передачи информации о маршрутизации внутри сети.
• GGP (Gateway-to-Gateway Protocol) – передает информацию о сети и текущей маршрутизации, только в этом случае данные сведения предназначены для других существующих внутренних или внешних шлюзов.
Кроме описанных, существует набор протоколов, отвечающих за разные аспекты функционирования сети, в частности администрирование, работу с электронной почтой и т. п.
Имея в составе мощный набор вспомогательных протоколов, TCP/IP не зря пользуется популярностью. К тому же сегодня это единственный эффективный протокол, который используется для работы в Интернете.
Протоколы работы с электронной почтой
Описываемые протоколы являются теми протоколами, без которых невозможна работа электронной почты. Особенность данных протоколов – их узкая направленность, то есть их использование для других целей принципиально невозможно, да и не имеет смысла. Их задача – организация обмена электронными сообщениями, с чем они отлично справляются.
Еще одна особенность почтовых протоколов – их «однозадачность»: например, протокол, умеющий отсылать сообщения, не умеет их принимать, и наоборот. Именно поэтому такие протоколы работают парами.
SMTP (Simple Message Transfer Protocol) – почтовый протокол для передачи электронных сообщений. Он накапливает письма и рассылает их по адресам, указанным в заголовках.
Благодаря своей простоте[13] и возможностям SMTP завоевал себе достойное место в компьютерном мире. Есть у него, конечно, и недостатки, основной из которых – отсутствие механизма аутентификации входящих соединений и шифрования передачи данных между серверами.
SMTP рассчитан на передачу только текстовой информации, поэтому для отсылки файлов разработан стандарт UUENCODE. Благодаря этому дополнению также появляется возможность использовать разную кодировку писем. Однако и UUENCODE не является полноценным дополнением, так как при кодировании файла в текстовый формат теряется информативность, то есть его характер, формат и т. п. Поэтому вместе с SMTP работает еще одно расширение почты – MIME (Multipurpose Internet Mail Extension), выполняющее больше разнообразных функций.
Достоинство протокола SMTP – возможность отправлять сообщения с любым форматом вложения, будь то простой текстовый файл или любимая песня. Однако у всего есть свои недостатки – сообщение, прошедшее через кодовую обработку UUENCODE, увеличивается в размере в среднем на 30 %.
Перед отправкой письма SMTP устанавливает предварительное соединение с адресатом, что позволяет ему получить сообщение в кратчайшие сроки.
Почтовый протокол POP (Post Office Protocol) – один из самых распространенных протоколов. С его помощью пользователь может загружать письма с почтового сервера, которые адресованы только ему.
Данный протокол имеет простой интерфейс, который на все запросы отвечает недвусмысленно: ОК или ERR. Возможно, это и не позволяет использовать некоторые желательные функции, например чтение писем без копирования их на локальный компьютер или выборочный прием сообщений. Для выполнения этих и других полезных функций вместе с POP используют протокол IMAP.
IMAP (Interactive Mail Access Protocol) – еще один почтовый протокол, «младший брат» протокола РОРЗ. Он был разработан позже РОРЗ, что позволило учесть все недостатки и добавить много новых востребованных функций, наиболее полезная из которых – скачивание заголовков сообщений, анализируя которые можно эффективно настраивать фильтры, сортирующие письма или отсеивающие спам.
Еще одно немаловажное нововведение – механизм оптимизации использования каналов, по которым передаются сообщения. Эти каналы не всегда быстрые и незагруженные, поэтому наличие такой функции существенно облегчает жизнь пользователя. Также можно передавать сообщения по небольшим частям, что очень полезно, когда размер письма большой, например 5-10 Мбайт.
Другие протоколы
О протоколе HTTP (Hyper Text Transfer Protocol) вы, скорее всего, уже слышали. Именно он является одним из прародителей обмена информацией в Интернете. Каждый раз, переходя с одной веб-страницы на другую или выбирая ссылку, вы тем самым задействуете механизм, который напрямую связан с HTTP-протоколом.
Особенность протокола – его способность передавать любую информацию: текстовую и графическую, вследствие чего можно использовать дополнительные средства разработки веб-страниц и веб-ресурсов, позволяющие превращать обычные веб-страницы в анимированные и красиво оформленные.
FTP (File Transfer Protocol) – «собрат» HTTP-протокола, так как они всегда работают вместе. Главное отличие заключается в том, что FTP-протокол был разработан специально для передачи файлов в Интернете. Каждый раз, скачивая, например, музыку или нужные документы, вы пользуетесь услугами механизмов FTP-протокола. Представить себе Интернет без FTP невозможно.
Протокол передачи данных SLIP создан специально для организации постоянного подключения к Интернету с использованием имеющейся телефонной линии и обычного модема. Из-за высокой стоимости данный тип подключения могут позволить себе немногие пользователи. Как правило, такое подключение используют организации, имеющие сервер, на котором находится веб-страница организации и другие ресурсы (база данных, файлы).
Данный протокол работает вместе с протоколом TCP/IP, находясь на более низком уровне. Перед тем как информация с модема поступит на обработку TCP/IP-протоколу, ее предварительно обрабатывает SLIP-протокол. Выполнив все необходимые действия, он создает другой пакет и передает его TCP/IP.
Пакеты формируются и в обратном порядке: получив пакет данных от TCP/IP, SLIP создает другой пакет, предварительно выбрав всю ценную информацию.
Протокол РРР выполняет ту же работу, что и описанный выше протокол SLIP, однако он более приспособлен к ней, так как обладает дополнительными функциями. Кроме того, в отличие от SLIP, РРР может взаимодействовать не только с TCP/IP, но и с протоколами IPX/SPX, NetBIOS, DHCP, наиболее распространенными в локальных сетях.
Распространению протокола РРР также помогла операционная система класса Windows NT, которая часто устанавливается на интернет-серверах (SLIP применяют для соединения с серверами, функционирующими на операционной системе UNIX).
Протокол Х.25, созданный в 1976 году и усовершенствованный в 1984 году, работает на физическом, канальном и сетевом уровнях модели взаимодействия ISO/OSI. Его разработкой занимался консорциум, состоящий из представителей многих телефонных компаний, и создавали его специально для использования на существующих телефонных линиях.
Учитывая год создания протокола, а соответственно и качество тогдашних телефонных линий, можно с уверенностью сказать, что протокол Х.25 – один из самых надежных. Когда создавался Х.25, цифровая телефонная линия была редкостью – использовалась в основном аналоговая. По этой причине в нем присутствует система обнаружения и коррекции ошибок, что существенно повышает надежность связи. В то же время она замедляет скорость передачи данных (максимальная – 64 Кбит/с). Однако этот факт не мешает использовать его там, где прежде всего требуется высокая надежность, например в банковской системе.
Frame Relay – еще один протокол, предназначенный для передачи данных по выделенной телефонной линии, который, кроме высокой надежности Х.25, обладает дополнительными полезными нововведениями. Поскольку передаваемые данные могут иметь формат видео, аудио или содержать электронную информацию, есть возможность выбирать приоритет передаваемого содержимого.
Еще одна особенность протокола Frame Relay – его скорость, которая достигает 45 Мбит/с.
Протокол AppleTalk – собственность компании Apple Computer, он был разработан для установки связи между компьютерами Macintosh.
Так же, как и TCP/IP, протокол AppleTalk представляет собой набор протоколов, каждый из которых отвечает за работу определенного уровня модели ISO/OSI.
В отличие от протоколов TCP/IP и IPX/SPX, стек протокола AppleTalk использует собственную реализацию физического и канального уровня, а не протоколы модели ISO/OSI (рис. 5.4).
Рис. 5.4. Распределение протоколов стека AppleTalk по уровням модели ISO/OSI
Рассмотрим протоколы стека AppleTalk.
• DDP (Datagram Delivery Protocol) – отвечает за работу сетевого уровня. Его основное предназначение – организация и обслуживание процесса передачи данных без предварительной установки связи между компьютерами.
• RTMP (Routing Table Maintenance Protocol) – работает с маршрутными таблицами AppleTalk. Любая такая таблица содержит информацию о каждом сегменте, куда возможна доставка сообщений. Таблица состоит из номеров маршрутизаторов (порта), которые могут доставить сообщение к выбранному компьютеру, количества пунктов «пересадки»,[14] параметров выбранных сегментов сети: скорости, загруженности и т. п.
• NBP (Name Binding Protocol) – отвечает за адресацию, которая сводится к привязке логического имени компьютера к физическому адресу в сети. Кроме процесса привязки имени, он отвечает за регистрацию, подтверждение, стирание и поиск этого имени.
• ZIP (Zone Information Protocol) – протокол, работающий в паре с протоколом NBP, помогая ему искать имя в рабочих группах или зонах. Для этого он использует информацию ближайшего маршрутизатора, создающего запрос по всей сети, где могут находиться компьютеры, входящие в заданную рабочую группу.
• ATP (AppleTalk Transaction Protocol) – один из протоколов транспортного уровня, отвечающий за транзакции. Транзакция – это набор из запроса, ответа на этот запрос и идентификационного номера, который присваивается данному набору. Примером транзакции может быть сообщение о доставке данных от одного компьютера другому. Кроме того, АТР умеет разбивать большие пакеты на более мелкие с последующей их сборкой после подтверждения о приеме или доставке.
• ADSP (AppleTalk Data Stream Protocol) – протокол, аналогичный ATP, отвечающий за доставку пакетов. Однако в данном случае происходит не одна транзакция, а гарантированная доставка, которая может повлечь за собой несколько транзакций. Кроме того, протокол гарантирует, что данные при доставке не потеряются и не будут дублироваться.