3.3. Стек протоколов tcp/ip
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) был разработан по инициативе Министерства обороны США (Department of Defence, DoD) более 20 лет назад для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородной вычислительной среды. Сеть ARPA поддерживала разработчиков и исследователей в военных областях. В сети ARPA связь между двумя компьютерами осу-ществлялась с использованием протокола Internet Protocol (IP), который и по сей день является одним из основных в стеке TCP/IP и фигурирует в названии стека.
Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Широкое распространение ОС UNIX привело и к широкому распространению протокола IP и других протоколов стека.
Сегодня стек протоколов TCP/IP является основой глобальной сети Интернет, что обеспечило ему широкую популярность. Его гибкость и возможности маршрутизации трафика позволяют использовать его в сетях различного масштаба от небольшой локальной сети до глобальной корпоративной сети. Этот стек имеет иерархическую структуру, в которой определено 4 уровня:
– прикладной уровень;
– основной (транспортный уровень);
– сетевой уровень;
– уровень сетевых интерфейсов.
Прикладной уровень стека TCP/IP объединяет сервисы, предос-тавляемые системой пользовательским приложениям. За долгие годы применения в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб приклад-ного уровня. К ним относятся такие распространенные протоколы, как: протокол передачи файлов – FTP; протокол эмуляции терми-нала – telnet; простой протокол передачи почты – SMTP; протокол передачи гипертекста – HTTP и многие другие.
Основной уровень стека TCP/IP может предоставлять вышеле-жащему уровню два типа сервиса:
– гарантированную доставку обеспечивает протокол управле-ния передачей (Transmission Control Protocol, TCP);
– доставку по возможности, или с максимальными усилиями, обеспечивает протокол пользовательских дейтаграмм (User Datagram Protocol, UDP).
Для того чтобы обеспечить надежную доставку данных, протокол TCP предусматривает установление логического соедине-ния, что позволяет ему нумеровать пакеты, доставлять приклад-ному уровню пакеты в том порядке в котором они были отправ-лены, подтверждать их прием квитанциями, а в случае потери организовывать повторные передачи, распознавать и уничтожать дубликаты. Благодаря этому протоколу отправитель и получатель могут поддерживать обмен данными в дуплексном режиме. TCP дает возможность без ошибок доставить сформированный на одном из компьютеров поток байтов на любой другой компьютер, входящий в составную сеть.
Протокол UDP является простейшим дейтаграммным протоко-лом, который используется тогда, когда задача надежного обмена данными либо вообще не ставится, либо решается средствами более высокого уровня – прикладным уровнем или пользовательс-кими приложениями.
В функции протоколов TCP и UDP входит исполнение роли связующего звена между прилегающими к транспортному уровню прикладным и сетевым уровнями. От прикладного протокола транспортный уровень принимает задание на передачу данных с тем или иным качеством прикладному уровню-получателю. Ниже-лежащий сетевой уровень протоколы TCP и UDP рассматривают как своего рода инструмент, способный перемещать пакет в ло-кальной сети.
Сетевой уровень обеспечивает перемещение пакетов в пределах составной сети, образованной объединением нескольких подсетей. Протоколы сетевого уровня поддерживают интерфейс с вышележащим транспортным уровнем, получая от него запросы на передачу данных по составной сети, а также с нижележащим уровнем сетевых интерфейсов.
Основным протоколом сетевого уровня является межсетевой протокол IP. В его задачу входит продвижение пакета между сетями – от одного маршрутизатора к другому до тех пор, пока пакет не попадет в сеть назначения. Протокол IP – это дейтаг-раммный протокол, работающий без установления соединений. Такой тип сетевого сервиса называют также «ненадежным».
К сетевому уровню TCP/IP часто относят протоколы, выпол-няющие вспомогательные функции по отношению к IP. Это, преж-де всего, протоколы маршрутизации RIP и OSPF и протокол межсетевых управляющих сообщений ICMP.
Уровень сетевых интерфейсов отвечает только за организацию взаимодействия с подсетями разных технологий, входящими в составную сеть. TCP/IP рассматривает любую подсеть, входящую в составную сеть, как средство транспортировки пакетов между двумя соседними маршрутизаторами.
Задачу организации интерфейса между технологией TCP/IP и любой другой технологией промежуточной сети можно свести к двум задачам:
– упаковка (инкапсуляция) IP-пакета в единицу передаваемых данных промежуточной сети;
– преобразование сетевых адресов в адреса технологии данной промежуточной сети.
Такой подход позволяет упростить решение проблемы расши-рения набора поддерживаемых технологий. При появлении новой популярной технологии она быстро включается в стек TCP/IP путем разработки соответствующего стандарта, определяющего метод инкапсуляции IP-пакетов в ее кадры. Cоотношение уровней стеков OSI и TCP/IP представлено на рис.3.2.