Какой стек протоколов сегодня наиболее популярен почему. Сетевые протоколы и стандарты. Введение в протоколы

Стек NetBIOS/SMB

Фирмы Microsoft и IBM совместно работали над сетевыми средствами для персональных компьютеров, поэтому стек протоколов NetBIOS/SMB является их совместным детищем. Средства NetBIOS появились в 1984 году как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network фирмы IBM, которая на прикладном уровне (рис. 3) использовала для реализации сетевых сервисов протокол SMB.

Рис. 3. Стек NetBIOS/SMB

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

Протокол SMB , соответствующий прикладному и представительному уровням модели OSI, регламентирует взаимодействие рабочей станции с сервером. В функции SMB входят следующие операции:

Управление сессиями. Создание и разрыв логического канала между рабочей станцией и сетевыми ресурсами файлового сервера.

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

Сервис печати. Рабочая станция может ставить файлы в очередь для печати на сервере и получать информацию об очереди печати.

Сервис сообщений. SMB поддерживает простую передачу сообщений со следующими функциями: послать простое сообщение; послать широковещательное сообщение; послать начало блока сообщений; послать текст блока сообщений; послать конец блока сообщений; переслать имя пользователя; отменить пересылку; получить имя машины.

Из-за большого количества приложений, которые используют функции API, предоставляемые NetBIOS, во многих сетевых ОС эти функции реализованы в виде интерфейса к своим транспортным протоколам. В NetWare имеется программа, которая эмулирует функции NetBIOS на основе протокола IPX, существуют программные эмуляторы NetBIOS для Windows NT и стека TCP/IP.


Стек TCP/IP

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

Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Широкое распространение ОС UNIX привело и к широкому распространению протокола IP и других протоколов стека. На этом же стеке работает всемирная информационная сеть Internet, чье подразделение Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC.

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

Структура протоколов TCP/IP приведена на рисунке 4. Протоколы TCP/IP делятся на 4 уровня.

Рис. 4. Стек TCP/IP

Самый нижний (уровень IV) - уровень межсетевых интерфейсов - соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных каналов это Ethernet, Token Ring, FDDI, для глобальных каналов - собственные протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP/PPP, которые устанавливают соединения типа "точка - точка" через последовательные каналы глобальных сетей, и протоколы территориальных сетей X.25 и ISDN. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня.

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

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

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

Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня: протокол копирования файлов FTP, протоколы удаленного управления telnet и ssh, почтовый протокол SMTP, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие. Кратко остановимся на некоторых из протоколов стека, наиболее тесно связанных с тематикой данного курса.

Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Проблема управления разделяется здесь на две задачи. Первая задача связана с передачей информации. Протоколы передачи управляющей информации определяют процедуру взаимодействия сервера с программой-клиентом, работающей на хосте администратора. Они определяют форматы сообщений, которыми обмениваются клиенты и серверы, а также форматы имен и адресов. Вторая задача связана с контролируемыми данными. Стандарты регламентируют, какие данные должны сохраняться и накапливаться в шлюзах, имена этих данных и синтаксис этих имен. В стандарте SNMP определена спецификация информационной базы данных управления сетью. Эта спецификация, известная как база данных MIB (Management Information Base), определяет те элементы данных, которые хост или шлюз должен сохранять, и допустимые операции над ними.

Протокол пересылки файлов FTP (File Transfer Protocol) реализует удаленный доступ к файлу. Для того, чтобы обеспечить надежную передачу, FTP использует в качестве транспорта протокол с установлением соединений - TCP. Кроме пересылки файлов протокол, FTP предлагает и другие услуги. Так пользователю предоставляется возможность интерактивной работы с удаленной машиной, например, он может распечатать содержимое ее каталогов, FTP позволяет пользователю указывать тип и формат запоминаемых данных. Наконец, FTP выполняет аутентификацию пользователей. Прежде, чем получить доступ к файлу, в соответствии с протоколом пользователи должны сообщить свое имя и пароль.

В стеке TCP/IP протокол FTP предлагает наиболее широкий набор услуг для работы с файлами, однако он является и самым сложным для программирования. Приложения, которым не требуются все возможности FTP, могут использовать другой, более экономичный протокол - простейший протокол пересылки файлов TFTP (Trivial File Transfer Protocol). Этот протокол реализует только передачу файлов, причем в качестве транспорта используется более простой, чем TCP, протокол без установления соединения - UDP.

Протокол telnet обеспечивает передачу потока байтов между процессами, а также между процессом и терминалом. Наиболее часто этот протокол используется для эмуляции терминала удаленной ЭВМ.

Стёком протоколов, или в просторечье TCP/IP называют сетевую архитектуру современных устройств, разработаных для пользования сетью. Stack - это стенка, в которой каждый составляющий кирпичик лежит поверх другого, зависит от него. Называть стек протоколов "стёком TCP/IP" начали благодаря двум основным протоколам, которые были реализованы - непосредственно IP, и TCP на его основе. Однако, они лишь основные и наиболее распостраненные. Если не сотни, то десятки других используются по сей день в разных целях.

Привычный нам веб (world wide web) основан на протоколе HTTP (hyper-text transfer protocol), который в своб очередь работает на основе TCP. Это классический пример использования стека протоколов. Есть еще протоколы электронной почты IMAP/POP и SMTP, протоколы удаленной оболочки SSH, удаленного рабочего стола RDP, баз данных MySQL, SSL/TLS, и тысячи других приложений со своими протоколами (..)

Чем же отличаются все эти протоколы? Все довольно просто. Помимо различных задач, поставленных при разработке (например, скорость, безопасность, устойчивость и прочие критерии), протоколы созданы с целью разграничения. Например, существуют протоколы прикладного уровня, разные у разных приложений: IRC, Skype, ICQ, Telegram и Jabber - несовместимы друг с другом. Они разработаны для выполнения конкретной задачи, и в данном случае возможность звонить по WhatsApp в ICQ просто не определена технически, так как приложения используют различный протокол. Но их протоколы основываются на одном и том же протоколе IP.

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

Вот что такое TCP/IP на примере самых популярных протоколов. Здесь показана иерархия зависимости. Надо сказать что приложения лишь пользуются указанными протоколами, которые могут быть а могут и не быть реализованы внутри ОС.

Если уж совсем-совсем простым языком, это почтовая служба.

У каждого участника IP-совместимой сети есть свой собственный адрес, который выглядит примерно так: 162.123.058.209. Всего таких адресов для протокола IPv4 - 4,22 миллиарда.

Предположим, что один компьютер хочет связаться с другим и отправить ему посылку - "пакет". Он обратится к "почтовой службе" TCP/IP и отдаст ей свою посылку, указав адрес, по которому ее необходимо доставить. В отличие от адресов в реальном мире, одни и те же IP-адреса часто присваиваются разным компьютерам по очереди, а значит, "почтальон" не знает, где физически находится нужный компьютер, поэтому он отправляет посылку в ближайшее "почтовое отделение" - на сетевую плату компьютера. Возможно, там есть информация о том, где находится нужный компьютер, а возможно, такой информации там нет. Если ее нет, на все ближайшие "почтовые отделения" (коммутаторы) расылается запрос адреса. Этот шаг повторяется всеми "почтовыми отделениями", пока они не обнаружат нужный адрес, при этом они запоминают, сколько "почтовых отделений" до них прошел этот запрос и если он пройдет определенное (достаточно болшое) их количество, то его вернут назад с пометкой "адрес не найден". Первое "почтовое отделение" вскоре получит кучу ответов от других "отделений" с вариантами путей до адресата. Если ни одного достаточно короткого пути не найдется (обычно 64 пересылки, но не более 255), посылка вернется отправителю. Если найдется один или несколько путей, посылка будет передана по самому короткому из них, при этом "почтовые отделения" на некоторое время запомнят этот путь, позволяя быстро передавать последующие посылки, не спрашивая ни у кого адрес. После доставки, "почтальон" в обязательном порядке заставит получателя подписать "квитанцию" о том, что он получил посылку и отдаст эту "квитанцию" отправителю, как свидетельство о том, что посылка доставлена в целости - проверка доставки в TCP обязательна. Если отправитель не получит такую квитанцию через определенный промежуток времени или в квитанции будет написано, что посылка повредилась или потерялась при отправке, тогда он попытается снова отправить посылку.

TCP/IP - это набор протоколов.

Протокол - это правило. Например, когда с вами здороваются - вы здороваетесь в ответ (а не прощаетесь или нежелает счастья). Программисты скажут что мы используем протокол приветствия, например.

Что за TCP/IP (сейчас будет совсем просто, пусть коллег не бомбит):

Информация до вашего компа идет по проводам (радио или что еще - не суть важно). Если по проводам пустили ток - значит 1. Выключили - значит 0. Получается 10101010110000 и так далее. 8 ноликов и единиц (битов) это байт. Например 00001111. Это можно представить как число в двоичном виде. В десятичном виде байт - это число от 0 до 255. Эти числа сопоставляет с буквами. Например 0 это А, 1 это Б. (Это называется кодировка).

Ну так вот. Чтобы два компьютера могли эффективно передавать информацию по проводам - они должны подавать ток по каким то правилам - протоколам. Например, они должны условиться как часто можно менять ток, чтобы можно было отличить 0 от второго 0.

Это первый протокол.

Компьютерам как то понимать, что один из них перестал отдавать информацию (типа "я все сказал"). Для этого в начале последовательности данных 010100101 компьютеры могут слать несколько бит, длинну сообщения, которое они хотят передать. Например, первые 8 бит могут означать длину сообщения. То есть сначала в первых 8 битах передают закодированное число 100 и потом 100 байт. После этого принимающий компьютер будет ожидать следующие 8 бит и следующее сообщение.

Вот у нас еще один протокол, с его помощью можно передавать сообщения (компьютерные).

Компьютеров много, чтобы они могли понять кому надо отправить сообщение используют уникальные адреса компьютеров и протокол, позволяющий понять кому это сообщение адресовано. Например первые 8 бит будут означать адрес получателя, следующие 8 - длину сообщения. И потом сообщение. Мы только что засунули один протокол в другой. IP протокол отвечает за адресацию.

Связь не всегда надежная. Для надежной доставки сообщений (компьютерных) используют TCP. При выполнении протокола TCP компьютеры будут переспрашивает друг друга - правильное ли они сообщение получили. Есть еще UDP - это когда компы не переспрашивают то ли они получили. Зачем надо? Вот вы слушаете интернет радио. Если пару байт придет с ошибками - вы услышите например "пш" и дальше снова музыку. Не смертельно, да и не особо важно - для этого используют UDP. А вот если пару байт испортятся при загрузку сайта - вы получите хрень на мониторе и ничего не поймёте. Для сайтом используют TCP.

TCP/IP еще (UDP/IP) - это протоколы, вложенные друг в друга, на которых работает интернет. В конце концов эти протоколы позволяют передать компьютерное сообщение целым и точно по адресу.

Еще есть http протокол. Первая строчка - адрес сайта, последующие строчки - текст который вы шлете на сайт. Все строчки http - это текст. Который засовывают в TCP сообщение, которое адресуют с помощью IP и так далее.

Ответить

Все эти стеки, кроме SNA на нижних уровнях - физическом и канальном, - используют одни и те же хорошо стандартизованные протоколы Ethernet , Token Ring , FDDI и ряд других, которые позволяют задействовать во всех сетях одну и ту же аппаратуру. Зато на верхних уровнях все стеки работают по своим протоколам. Эти протоколы часто не соответствуют рекомендуемому моделью OSI разбиению на уровни. В частности, функции сеансового и представительного уровня, как правило, объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель OSI появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот.

Стек OSI

Следует четко различать модель OSI и стек OSI . Если модель OSI является концептуальной схемой взаимодействия открытых систем , то стек OSI представляет собой набор вполне конкретных спецификаций протоколов.

В отличие от других стеков протоколов, стек OSI полностью соответствует модели OSI , он включает спецификации протоколов для всех семи уровней взаимодействия, определенных в этой модели. На нижних уровнях стек OSI поддерживает Ethernet, Token Ring , FDDI , протоколы глобальных сетей, X.25 и ISDN , - то есть использует разработанные вне стека протоколы нижних уровней, как и все другие стеки. Протоколы сетевого, транспортного и сеансового уровней стека OSI специфицированы и реализованы различными производителями, но распространены пока мало. Наиболее популярными протоколами стека OSI являются прикладные протоколы. К ним относятся: протокол передачи файлов FTAM, протокол эмуляции терминала VTP, протоколы справочной службы X.500, электронной почты X.400 и ряд других.

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

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

Стек OSI - независимый от производителей международный стандарт . Его поддерживает правительство США в своей программе GOSIP, в соответствии с которой все компьютерные сети, устанавливаемые в правительственных учреждениях США после 1990 года, должны или непосредственно поддерживать стек OSI , или обеспечивать средства для перехода на этот стек в будущем. Тем не менее, стек OSI более популярен в Европе, чем в США, так как в Европе осталось меньше старых сетей, работающих по собственным протоколам. Большинство организаций пока только планируют переход к стеку OSI , и очень немногие приступили к созданию пилотных проектов. Из тех, что работают в этом направлении, можно назвать Военно-морское ведомство США и сеть NFSNET. Одним из крупнейших производителей, поддерживающих OSI , является компания AT&T, ее сеть Stargroup полностью базируется на этом стеке.

Стек TCP/IP

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

Стек TCP/IP на нижнем уровне поддерживает все популярные стандарты физического и канального уровней: для локальных сетей - это Ethernet, Token Ring , FDDI , для глобальных - протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP, PPP, протоколы территориальных сетей X.25 и ISDN .

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

За долгие годы использования в сетях различных стран и организаций стек TCP/IP вобрал в себя большое количество протоколов прикладного уровня. К ним относятся такие популярные протоколы, как протокол пересылки файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы службы WWW и многие другие.

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

Действительно, только в сети Internet объединено около 10 миллионов компьютеров по всему миру, которые взаимодействуют друг с другом с помощью стека протоколов TCP/IP .

Стремительный рост популярности Internet привел и к изменениям в расстановке сил в мире коммуникационных протоколов - протоколы TCP/IP , на которых построен Internet, стали быстро теснить бесспорного лидера прошлых лет - стек IPX/SPX компании Novell. Сегодня в мире общее количество компьютеров, на которых установлен стек TCP/IP , превысило количество компьютеров, на которых работает стек IPX/SPX , и это говорит об изменении отношения администраторов локальных сетей к протоколам, используемым на настольных компьютерах, так как именно на них раньше почти везде работали протоколы компании Novell, необходимые для доступа к файловым серверам NetWare . Процесс продвижения стека TCP/IP на лидирующие позиции в любых типах сетей продолжается, и сейчас в комплекте поставки любой промышленной операционной системы обязательно имеется программная реализация этого стека.

Хотя протоколы TCP/IP неразрывно связаны с Internet, и каждый из многомиллионной армады компьютеров Internet работает на основе этого стека, существует большое количество локальных, корпоративных и территориальных сетей, непосредственно не являющихся частями Internet, в которых также используются протоколы TCP/IP . Чтобы отличать эти сети от Internet, их называют сетями TCP/IP или просто IP-сетями.

Поскольку стек TCP/IP изначально создавался для глобальной сети Internet, он имеет много особенностей, которые обеспечивают ему преимущество перед другими протоколами, когда речь заходит о построении сетей, включающих глобальные связи. В частности, очень полезным свойством, благодаря которому этот протокол может применяться в больших сетях, является его способность фрагментировать пакеты. Действительно, сложная составная сеть часто состоит из сетей, построенных на совершенно разных принципах. В каждой из этих сетей может быть установлена собственная величина максимальной длины единицы передаваемых данных (кадра). В таком случае при переходе из одной сети, имеющей большую максимальную длину, в другую, с меньшей максимальной длиной, может возникнуть необходимость разделения передаваемого кадра на несколько частей. Протокол IP стека TCP/IP эффективно решает эту задачу.

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

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

Однако платой за преимущества здесь оказываются высокие требования к ресурсам и сложность администрирования IP-сетей. Для реализации мощных функциональных возможностей протоколов стека TCP/IP требуются большие вычислительные затраты. Гибкая система адресации и отказ от широковещательных рассылок приводят к наличию в IP-сети различных централизованных служб типа DNS, DHCP и т. п. Каждая из этих служб упрощает администрирование сети и конфигурирование оборудования, но в то же время сама требует пристального внимания со стороны администраторов.

Можно приводить и другие доводы за и против, однако факт остается фактом - сегодня TCP/IP самый популярный стек протоколов , широко используемый как в глобальных, так и в локальных сетях.

Стек IPX/SPX

Этот стек является оригинальным стеком протоколов фирмы Novell, разработанным для сетевой операционной системы NetWare еще в начале 80-х годов. Протоколы сетевого и сеансового уровней Internetwork Packet Exchange ( IPX и Sequenced Packet Exchange, SPX ), которые дали название стеку, являются прямой адаптацией протоколов XNS фирмы Xerox, распространенных в гораздо меньшей степени, чем стек IPX/SPX .

Популярность стека IPX/SPX непосредственно связана с операционной системой Novell NetWare , которая долгое время сохраняла мировое лидерство по числу установленных систем, хотя в последнее время ее популярность намного снизилась, и по темпам роста она заметно отстает от Microsoft Windows NT.

Многие особенности стека IPX/SPX обусловлены ориентацией ранних версий ОС NetWare (до версии 4.0) на работу в локальных сетях небольших размеров, состоящих из персональных компьютеров со скромными ресурсами. Понятно, что для таких компьютеров компании Novell нужны были протоколы, на реализацию которых требовалось бы минимальное количество оперативной памяти (ограниченной в IBM-совместимых компьютерах под управлением MS-DOS объемом 640 Кбайт) и которые быстро работали бы на процессорах небольшой вычислительной мощности. В результате протоколы стека IPX/SPX до недавнего времени хорошо работали в локальных сетях и не очень - в больших корпоративных сетях, так как они слишком перегружали медленные глобальные связи широковещательными пакетами, которые интенсивно используются несколькими протоколами этого стека (например, для установления связи между клиентами и серверами). Это обстоятельство, а также тот факт, что стек IPX/SPX является собственностью фирмы Novell, и на его реализацию нужно получать лицензию (то есть открытые спецификации не поддерживались), долгое время ограничивали его поле деятельности только сетями NetWare . Однако с момента выпуска версии

Стек TCP/IP был разработан по инициативе Министерства обороны США (DoD) более 20 лет назад для связи экспериментальной сети ARPANET с другими сетями как набор общих протоколов для разнородной вычислительной среды. Большой вклад в развитие стека TCP/IP, который получил свое название по популярным протоколам IP и TCP, внес университет Беркли, реализовав протоколы стека в своей версии ОС Unix. Популярность этой операционной системы привела к широкому распространению протоколов TCP, IP и других протоколов стека. Сегодня этот стек используется для связи компьютеров в Интернете, а также в огромном числе корпоративных сетей.

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

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

Однако, как и всегда, за получаемые преимущества надо платить, и платой здесь оказываются высокие требования к ресурсам и сложность администрирования IP-сетей. Мощные функциональные возможности протоколов стека TCP/IP требуют для своей реализации больших вычислительных затрат. Гибкая система адресации и отказ от широковещательных рассылок приводят к наличию в IP-сети разнообразных централизованных служб типа DNS, DHCP и т. п. Каждая из этих служб направлена на облегчение администрирования сети, но в то же время сама требует пристального внимания со стороны администраторов.

В стеке TCP/IP определены 4 уровня.

Прикладной уровень стека TCP/IP соответствует трем верхним уровням модели OSI: прикладному, представления и сеансовому. Он объединяет службы, предо­ставляемые системой пользовательским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. К ним относятся такие распространенные протоколы, как протокол передачи файлов (File Transfer Proocol, FTP), протокол эмуляции терминала (telnet), простой протокол передачи электронной почты (Simple Mail Transfer Protocol, SMTP), протокол передачи Ипертекста (HyperText Transfer Protocol, HTTP} и многие другие. Протоколы прикладного уровня развертываются на хостах.

Архитектура стека TCP/IP

Транспортный уровень стека TCP/IP может предоставлять вышележащему уровню два типа сервиса:

□ гарантированную доставку обеспечивает протокол управления передачей (Transmission Control Protocol, TCP);

□ доставку по возможности, или с максимальными усилиями, обеспечивает протокол пользовательских дейтаграмм (User Datagram Protocol, UDP).

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

Второй протокол этого уровня - UDP - является простейшим дейтаграммным протоколом, который используется в том случае, когда задача надежного обмена данными либо вообще не ставится, либо решается средствами более высокого уровня - прикладным уровнем или пользовательскими приложениями.

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

Программные модули, реализующие протоколы TCP и UDP, подобно модулям протоколов прикладного уровня, устанавливаются на хостах.

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

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

К сетевому уровню TCP/IP часто относят протоколы, выполняющие вспомогательные функции по отношению к IP. Это, прежде всего, протоколы маршрутизации RIP и OSPF, занимающиеся изучением топологии сети, определением маршрутов и составлением таблиц маршрутизации, на основании которых протокол IP перемещает пакеты в нужном направлении. По этой же причине к сетевому уровню могут быть отнесены еще два протокола: протокол межсетевых управляющих сообщений (Internet Control Message Protocol, ICMP), предназначенный для передачи маршрутизатором источнику информации об ошибках, возникших при передаче пакета, и протокол групповой адресации (Internet Group Management Protocol, IGMP), использующийся для направления пакета сразу по нескольким адресам.

Идеологическим отличием архитектуры стека TCP/IP от многоуровневой организации других стеков является интерпретация функций самого нижнего уровня - уровня сетевых интерфейсов .

Нижние уровни модели OSI (канальный и физический) реализуют большое количество функций доступа к среде передачи, формированию кадров и согласованию уровней электрических сигналов, кодированию и синхронизации и некоторые другие. Все эти весьма конкретные функции составляют суть таких протоколов обмена данными, как Ethernet, Token Ring, PPP, HDLC и многих других.

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

Задачу обеспечения интерфейса между технологией TCP/IP и любой другой технологией промежуточной сети упрощенно можно свести:

    к определению способа упаковки (инкапсуляции) IP-пакета в единицу передаваемых данных промежуточной сети;

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

Такой подход делает составную сеть TCP/IP открытой для включения любой сети, какую бы внутреннюю технологию передачи данных эта сеть не использовала. Для каждой новой технологии должны быть разработаны собственные интерфейсные средства. Следовательно, функции этого уровня нельзя определить раз и навсегда.

Уровень сетевых интерфейсов в стеке TCP/IP не регламентируется. Он поддерживает все популярные технологии; для локальных сетей - это Ethernet, Token Ring, FDDI, Fast Ethernet, Gigabit Ethernet, для глобальных сетей - протоколы двухточечных соединений SLIP и РРР, технологии Х.25, Frame Relay, ATM.

Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP путем разработки соответствующего документа RFC, определяющего метод инкапсуляции IP-пакетов в ее кадры (например, спецификация RFC 1577, определяющая работу протокола IP через сети ATM, появилась в 1994 году вскоре после принятия основных стандартов ATM).

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

Потоком данных , или просто потоком, называют данные, поступающие от приложений на вход протоколов транспортного уровня - TCP и UDP.

Протокол TCP «нарезает» из потока данных сегменты.

Рис. 4.15. Названия PDU в TCP/IP

Единицу данных протокола UDP часто называют дейтаграммой , или датаграммой . Дейтаграмма - это общее название для единиц данных, которыми оперируют протоколы без установления соединений. К таким протоколам относится и протокол IP, поэтому его единицу данных также называют дейтаграммой. Однако очень часто используется и другой термин - пакет.

В стеке TCP/IP принято называть кадрами, или фреймами, единицы данных любых технологий, в которые упаковываются IP-пакеты для последующей переноски их через сети составной сети. При этом не имеет значения, какое название используется для этой единицы данных в технологии составляющей сети. Для TCP/IP фреймом является и кадр Ethernet, и ячейка ATM, и пакет Х.25, так как все они выступают в качестве контейнера, в котором IP-пакет переносится через составную сеть.

Стеки протоколов

Стек протоколов - это иерархически организованный набор сетевых протоколов различных уровней, достаточный для организации и обеспечения взаимодействия узлов в сети. В настоящее время в сетях используется большое количество стеков коммуникационных протоколов. Наиболее популярными являются стеки: TCP/IP, IPX/SPX, NetBIOS/SMB, Novell NetWare, DECnet, XNS, SNA и OSI. Все эти стеки, кроме SNA, на нижних уровнях - физическом и канальном - используют одни и те же хорошо стандартизованные протоколы Ethemet, Token Ring, FDDI и некоторые другие, которые позволяют использовать во всех сетях одну и ту же аппаратуру. Зато на верхних уровнях все стеки работают по своим собственным протоколам. Эти протоколы часто не соответствуют рекомендуемому моделью OSI разбиению на уровни. В частности, функции сеансового и представительного уровня, как правило, объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель OSI появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот.

Все протоколы, входящие в стек, разработаны одним производителем, то есть они способны работать максимально быстро и эффективно.

Важным моментом в функционировании сетевого оборудования, в частности сетевого адаптера, является привязка протоколов. Она позволяет использовать разные стеки протоколов при обслуживании одного сетевого адаптера. Например, можно одновременно использовать стеки TCP/IP и IPX/SPX. Если вдруг при попытке установления связи с адресатом с помощью первого стека произошла ошибка, то автоматически произойдёт переключение на использование протокола из следующего стека. Важным моментом в данном случае является очередность привязки, поскольку она однозначно влияет на использование того или иного протокола из разных стеков.

Вне зависимости от того, какое количество сетевых адаптеров установлено в компьютере, привязка может осуществляться как «один к нескольким», так и «несколько к одному», то есть один стек протоколов можно привязать сразу к нескольким адаптерам или несколько стеков к одному адаптеру.

NetWare - сетевая операционная система и набор сетевых протоколов, которые используются в этой системе для взаимодействия с компьютерами-клиентами, подключёнными к сети. В основе сетевых протоколов системы лежит стек протоколов XNS. В настоящее время NetWare поддерживает протоколы TCP/IP и IPX/SPX. Novell NetWare была популярна в 80-е и 90-е года по причине большей эффективности в сравнении с операционными системами общего назначения. Ныне это устаревшая технология.

Стек протоколов XNS (Xerox Network Services Internet Transport Protocol) разработан компанией Xerox для передачи данных по сетям Ethernet. Содержит 5 уровней.

Уровень 1 - среда передачи - реализует функции физического и канального уровня в OSI-модели:

* управляет обменом данными между устройством и сетью;

* маршрутизирует данные между устройствами одной сети.

Уровень 2 - межсетевой - соответствует сетевому уровню в OSI- модели:

* управляет обменом данными между устройствами, находящимися в разных сетях (обеспечивает дейтаграммный сервис в терминах IEEE- модели) ;

* описывает способ прохождения данных через сеть.

Уровень 3 - транспортный - соответствует транспортному уровню в OSI-модели:

* обеспечивает связь "end-to-end" между источником и приемником данных.

Уровень 4 - контрольный - соответствует сессионному и представительному уровню в OSI-модели:

* управляет представлением данных;

* управляет контролем над ресурсами устройств.

Уровень 5 - прикладной - соответствует высшим уровням в OSI- модели:

* обеспечивает функции обработки данных для прикладных задач.

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) на сегодня является наиболее распространенным и функциональным. Он работает в локальных сетях любых масштабов. Данный стек является основным стеком в глобальной сети Интернет. Поддержка стека была реализована в компьютерах c операционной системой UNIX. В результате популярность протокола TCP/IP возросла. В стек протоколов TCP/IP входит достаточно много протоколов, работающих на различных уровнях, но свое название он получил благодаря двум протоколам - TCP и IP.

TCP (Transmission Control Protocol) - транспортный протокол, предназначенный для управлением передачей данных в сетях, использующих стек протоколов TCP/ IP. IP (Internet Protocol) - протокол сетевого уровня, предназначенный для доставки данных в составной сети с использованием одного из транспортных протоколов, например TCP или UDP.

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

Изначально протокол TCP/IP разрабатывался для применения в глобальных сетях, именно поэтому он является максимально гибким. В частности, благодаря способности фрагментации пакетов данные, несмотря на качество канала связи, в любом случае доходят до адресата. Кроме того, благодаря наличию IP-протокола становится возможной передача данных между разнородными сегментами сети.

Недостатком TCP/IP-протокола является сложность администрирования сети. Так, для нормального функционирования сети требуется наличие дополнительных серверов, например DNS, DHCP и т. д., поддержание работы которых и занимает большую часть времени системного администратора. Лимончелли Т., Хоган К., Чейлап С. - Сестемное и сетевое администрирование. 2-е изд. 2009год. 944с

Стек протоколов IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) является разработкой и собственностью компании Novell. Он был разработан для нужд операционной системы Novell NetWare, которая еще до недавнего времени занимала одну из лидирующих позиций среди серверных операционных систем.

Протоколы IPX и SPX работают на сетевом и транспортном уровнях модели ISO/ OSI соответственно, поэтому отлично дополняют друг друга.

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

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

На физическом и канальном уровнях стек OSI поддерживает протоколы Ethernet, Token Ring, FDDI, а также протоколы LLC, X.25 и ISDN, то есть использует все разработанные вне стека популярные протоколы нижних уровней, как и большинство других стеков. Сетевой уровень включает сравнительно редко используемые протоколы Connectionoriented Network Protocol (CONP) и Connectionless Network Protocol (CLNP). Протоколы маршрутизации стека OSI это ES-IS (End System -- Intermediate System) между конечной и промежуточной системами и IS-IS (Intermediate System -- Intermediate System) между промежуточными системами. Транспортный уровень стека OSI скрывает различия между сетевыми сервисами с установлением соединения и без установления соединения, так что пользователи получают требуемое качество обслуживания независимо от нижележащего сетевого уровня. Чтобы обеспечить это, транспортный уровень требует, чтобы пользователь задал нужное качество обслуживания. Службы прикладного уровня обеспечивают передачу файлов, эмуляцию терминала, службу каталогов и почту. Из них наиболее популярными являются служба каталогов (стандарт Х.500), электронная почта (Х.400), протокол виртуального терминала (VTP), протокол передачи, доступа и управления файлами (FTAM), протокол пересылки и управления работами (JTM).

Достаточно популярный стек протоколов, разработкой которого занимались компании IBM и Microsoft, соответственно, ориентированный на использование в продуктах этих компаний. Как и у TCP/IP, на физическом и канальном уровне стека NetBIOS/SMB работают стандартные протоколы, такие как Ethernet, Token Ring и другие, что делает возможным его использование в паре с любым активным сетевым оборудованием. На верхних же уровнях работают протоколы NetBIOS (Network Basic Input/Output System) и SMB (Server Message Block).

Протокол NetBIOS был разработан в середине 80-х годов прошлого века, но вскоре был заменен на более функциональный протокол NetBEUI (NetBIOS Extended User Interface), позволяющий организовать очень эффективный обмен информацией в сетях, состоящих не более чем из 200 компьютеров.

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

Главные плюсы протокола NetBEUI - скорость работы и очень малые требования к ресурсам. Если требуется организовать быстрый обмен данными в небольшой сети, состоящей из одного сегмента, лучшего протокола для этого не найти. Кроме того, для доставки сообщений установленное соединение не является обязательным требованием: в случае отсутствия соединения протокол использует датаграммный метод, когда сообщение снабжается адресом получателя и отправителя и «пускается в путь», переходя от одного компьютера к другому.

Однако NetBEUI обладает и существенным недостатком: он полностью лишен понятия о маршрутизации пакетов, поэтому его использование в сложных составных сетях не имеет смысла. Пятибратов А.П.,Гудыно Л.П.,Кириченко А.А.Вычислительные машины, сети и телекоммуникационные системы Москва 2009год. 292с

Что касается протокола SMB (Server Message Block), то с его помощью организуется работа сети на трех самых высоких уровнях - сеансовом, уровне представления и прикладном уровне. Именно при его использовании становится возможным доступ к файлам, принтерам и другим ресурсам сети. Данный протокол несколько раз был усовершенствован (вышло три его версии), что позволило применять его даже в таких современных операционных системах, как Microsoft Vista и Windows 7. Протокол SMB универсален и может работать в паре практически с любым транспортным протоколом, например TCP/IP и SPX.

Стек протоколов DECnet (Digital Equipment Corporation net) содержит 7 уровней. Несмотря на разницу в терминологии, уровни DECnet очень похожи на уровни OSI-модели. DECnet реализует концепцию сетевой архитектуры DNA (Digital Network Architecture), разработанную фирмой DEC, согласно которой разнородные вычислительные системы (ЭВМ разных классов), функционирующие под управлением различных операционных систем, могут быть объединены в территориально-распределенные информационно-вычислительные сети.

Протокол SNA (System Network Architecture) компании IBM предназначен для удаленной связи с большими компьютерами и содержит 7 уровней. SNA основана на концепции главной (хост) -машины и обеспечивает доступ удаленных терминалов к мейнфреймам IBM. Основной отличительной чертой SNA является наличие возможности доступа каждого терминала к любой прикладной программе главной ЭВМ. Системная сетевая архитектура реализована на базе виртуального телекоммуникационного метода доступа (Virtual Telecommunication Access Method - VTAM) в главной ЭВМ. VTAM управляет всеми линиями связи и терминалами, причем каждый терминал имеет доступ ко всем прикладным программам.