Стеки протоколов TCP/IP и IPX/SPX

Существующие сетевые протоколы могут быть поставлены в соответствие определенным уровням эталонной модели взаимодействия открытых систем OSI. Однако некоторые протоколы могут выполнять функции, относящиеся сразу к нескольким уровням модели OSI, а другие охватывают только некоторую часть функций какого-либо одного из уровней. Это приводит к тому, что протоколы разных компаний часто оказываются несовместимы между собой. Кроме того, некоторые сетевые протоколы могут быть успешно использованы только лишь в составе своего набора (стека) протоколов, выполняющего более или менее законченную группу функций.

Стек протоколов IPX/SPX

Протоколы IPX/SPX, разработанные компанией Novell, образуют набор (стек), используемый в сетевых программных средствах довольно широко распространенных локальных сетей Novell (NetWare). Это сравнительно небольшой и быстрый протокол, поддерживающий маршрутизацию.

Прикладные программы могут обращаться непосредственно к уровню IPX, например, для посылки широковещательных сообщений, но значительно чаще работают с уровнем SPX, гарантирующим быструю и надежную доставку пакетов. Если скорость не слишком важна, то прикладные программы применяют еще более высокий уровень, например, протокол

NetBIOS, предоставляющий удобный сервис

Компания Microsoft разработала свою реализацию протокола IPX/SPX, называемую NWLink. Протоколы IPX/SPX и NWLink поддерживаются операционными системами NetWare и Windows. Выбор этих протоколов обеспечивает совместимость по сети любых абонентов с данными операционными системами.

Однако данный стек протоколов не получил широкого распространения, поскольку не поддерживается UNIX-подобными сетевыми операционными системами.

TCP/IP

TCP/IP — это семейство сетевых протоколов разных уровней модели сетевого взаимодействия, широко используемых в операционных системах UNIX, MacOS, Windows, Windows NT и большинстве других ОС. Данное семейство определяет основной язык общения в среде Интернет. Ключевыми протоколами в нем являются IP (Интернет Protocol — межсетевой протокол) и TCP (Transmission Control Protocol — протокол управления передачей).

Протоколы работают друг с другом в стеке — это означает, что протокол, располагающийся на уровне выше, работает на основе нижнего, используя механизмы инкапсуляции. Например, протокол TCP работает поверх протокола IP.

Стек протоколов TCP/IP является одним из наиболее популярных и перспективных стеков коммуникационных протоколов.

Стек был разработан по инициативе Министерства обороны США более 20 лет назад для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородной вычислительной среды. В сети ARPA связь между двумя компьютерами осуществлялась с использованием протокола IP, который является одним из основных в стеке TCP/IP и фигурирует в названии стека.

Благодаря TCP/IР формируется единый программный интерфейс доступа к сетевому оборудованию различных типов, который позволяет гарантированно обмениваться данными, несмотря на все архитектурные различия. В основе Интернет лежит протокол IP, используемый для доставки неструктурированных пакетов. TCP и UDP (User Datagram Protocol — протокол передачи дейтаграмм пользователя) — это транспортные протоколы, реализованные поверх IP и служащие для доставки пакетов нужным приложениям.

Протокол TCP ориентирован на установление соединений. Он сущест-венно облегчает взаимодействие между двумя программами. ТСР-соединение напоминает телефонный разговор: информация, выдаваемая на одном конце, принимается на другом, и наоборот. Соединение удерживается даже в том случае, когда оба абонента молчат. Протокол TCP обеспечивает надежную доставку пакетов, управление потоком данных и трафиком.

Протокол UDP ориентирован на доставку одиночных пакетов без установления соединения. Этот процесс напоминает отправку письма. Доставка пакетов не гарантируется, и нет средств управления трафиком.

TCP — это “вежливый” протокол, заставляющий одновременно работающих пользователей делить между собой сетевой какал, что способствует повышению производительности. В противоположность этому, протокол UDP старается передавать пакеты с максимально возможной скоростью. Разрабатываются новые, улучшенные версии данного протокола, но они еще не добились широкого признания.

По мере роста сети Интернет все большую долю трафика должны занимать TCP-потоки, что позволяет избегать заторов и эффективно использовать имеющуюся полосу пропускания. Однако, как показывают измерения, проведенные за последние несколько лет, доля U DP-трафика медленно, но неуклонно растет. Начинает сказываться популярность игровых приложений, в которых используется данный протокол.

Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно.

Протоколы в стеке TCP/IP делятся на 5 уровней.

Самый нижний (уровень V) соответствует физическому уровню модели OSI. Физический уровень описывает среду передачи данных (коаксиальный кабель, экранированная и неэкранированная витая пара, оптическое волокно, радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние). Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического уровня.

Следующий уровень (уровень IV) соответствует канальному уровню модели OSI. Данный уровень описывает, каким образом передаются пакеты данных через физический уровень, включая кодирование (то есть специальные последовательности бит, определяющих начало и конец пакета данных). Ethernet, например, в полях заголовка пакета содержит указание того, какой машине или машинам в сети предназначен этот пакет.

Примеры протоколов канального уровня – Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token Ring, ATM и MPLS.

Следующий уровень (уровень III) – это уровень межсетевого взаимодействия, который занимается передачей дейтаграмм с использованием различных локальных сетей, территориальных сетей X.25, линий специальной связи и т.п. Данный уровень изначально разработан для передачи данных из одной (под)сети в другую. С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны.

В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом. Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число – уникальный IP-номер протокола.

К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Интернет Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Интернет Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизатором и шлюзом, системой-источником и системой-приемником, то есть для организации обратной связи. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.

Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol).

Протокол TCP обеспечивает устойчивое виртуальное соединение между удаленными прикладными процессами. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния.

Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности.

Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным методом, то есть без установления виртуального соединения, и поэтому требует меньших накладных расходов, чем TCP. UDP обычно используется в таких приложениях, как потоковое видео и компьютерные игры, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.

Верхний уровень (уровень I) называется прикладным. На прикладном уровне работает большинство сетевых приложений. За долгие годы использования стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Интернет, гипертекстовые сервисы доступа к удаленной информации, такие как HTTP для WWW, SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.

В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:

  • HTTP на TCP-порт 80 или 8080;
  • FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд);
  • SSH на TCP-порт 22;
  • запросы DNS на порт UDP (реже TCP) 53;
  • обновление маршрутов по протоколу RIP на UDP-порт 520.

Эти порты определены Агентством по выделению имен и уникальных параметров протоколов (IANA).

Узнай цену консультации

"Да забей ты на эти дипломы и экзамены!” (дворник Кузьмич)