Структура стека протоколов tcp ip состоит из

Семинар.

Мы будем Вам очень благодарны! Спасибо!

Если Вам понравился данный материал, пожалуйста, поделитесь им с друзьями.

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

Протоколы локальных сетей должны обладать следующими основными характеристиками:

· обеспечивать надежность сетевых каналов;

· обладать высоким быстродействием;

· обрабатывать исходные и целевые адреса узлов;

· соответствовать сетевым стандартам

Наиболее популярными являются стеки: TCP/IP, IPX/SPX, NetBEUI. Эти стеки на нижних уровнях – физическом и канальном модели OSI – используют одни и те же протоколы Ethernet, Token Ring, FDDI и др. На верхних уровнях все стеки работают по своим собственным протоколам. Эти протоколы, не соответствуют уровням модели OSI, так как она появилась уже как результат обобщения уже существующих и реально используемых стеков.

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

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

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



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

· Transmission Control Protocol (TCP);

· User Datagram Protocol (UDP);

· Internet Protocol (IP).

Каждый коммуникационный протокол оперирует некоторой порцией передаваемых данных - блоком данных. В протоколе TCP принято называть блоки кадрами, в UDP – датаграммами, в IP – пакетами. Часто пакет называют также датаграммой, характеризуя таким образом блок данных, содержащий маршрутную информацию. Датаграммами оперируют протоколы без установления соединений, такие как IP и UDP. Потоком называют данные, поступающие от приложений на транспортный уровень TCP или UDP. Протокол TCP разбивает поступающий файл на пакеты.

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

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

Рис. 13. Структура стека протоколов TCP/IP.

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

Протокол IP реализует следующие базовые функции: передача данных, адресация, маршрутизация и динамическая фрагментация пакетов. Для правильной доставки пакета используется специальная система адресации. Передающий и принимающий компьютеры в сети идентифицируются с помощью логических IP-адресов. Адресная информация пакета позволяет определять маршрут движения. Протокол может передавать пакеты в сетях разных типов, которые используют пакеты разной длины. Например, пакет Ethernet может иметь длину от 64 до 1526 байтов, а пакет FDDI – до 4472 байтов. Полная длина IP-пакета может достигать 65535 байтов. Пакет содержит заголовок и данные. Заголовок IP-пакета содержит ряд полей. Среди них следующие: адреса источника и приемника, общая длина пакета в байтах, включающая заголовок и данные, транспортный протокол (TCP или UDP), время жизни, которое задается во избежания непрерывной циркуляции в некоторой сети. По истечении указанного времени пакет уничтожается.

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

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

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

Протокол OSPF вычисляет маршруты в IP-сетях, сохраняя при этом другие протоколы обмена маршрутной информацией.

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

Протокол ARP , как указывалось выше, используется для определения локального адреса по IP-адресу. Протокол, решающий обратную задачу - нахождение IP-адреса по известному локальному адресу-, реверсивный ARP – RARP, используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера. В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом. Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP-запросе отправитель указывает свой локальный адрес.

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

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

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

Различные сетевые приложения, установленные на одном компьютере, могут одновременно получать или отправлять сообщения. Для того чтобы их разделять, в протоколах транспортного уровня используют порты. Наиболее распространенные приложения используют предопределенные порты. Так, например, службе удаленного доступа к файлам FTP соответствует порт 21, службе telnet – 23, SMTP – 25, HTTP - 80. Назначение номеров портов известным прикладным процессам осуществляется централизованно, для менее распространенных служб - локально. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров носит название сокета (socket) .

Верхний уровень (уровень I ) называется прикладным. На этом уровне действуют протоколы передачи файлов FTP, эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Интернет, протокол передачи гипертекста HTTP и другие.

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

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

Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Изначально протокол SNMP был разработан для удаленного контроля и управления маршрутизаторами Интернет. Позднее SNMP стали применять и для управления любым коммуникационным оборудованием – концентраторами, коммутаторами, сетевыми адаптерами и т.п. Проблема управления в протоколе SNMP разделяется на две задачи.

Первая задача связана с передачей информации. Протоколы передачи управляющей информации определяют процедуру взаимодействия SNMP-агента, работающего в управляемом оборудовании, и SNMP-монитора, работающего на компьютере администратора. Протоколы передачи определяют форматы сообщений, которыми обмениваются агенты и монитор.

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

Пакет TCP/IP включает некоторые утилиты, предназначенные для просмотра параметров конфигурации протокола и устранения неполадок. К числу наиболее рапространенных утилит относятся следующие: ping, ARP и RARP, netstat, nbstat, утилиты конфигурирования IP: ipconfig, winipcfg, config, ifconfig, утилиты отслеживания маршрута: traceroute, tracert, iptrace. Все утилиты запускаются в командной строке, предназначены для использования в операционных системах Windows, UNIX / Linux.

Утилита ping используется для проверки соединения IP. Ее можно запускать как с доменным именем в качестве параметра, так с цифровым. Эта утилита посылает на принимающий компьютер эхо-запрос ICMP. Получив его, принимающий компьютер передает обратно эхо-ответ ICMP, что подтверждает наличие соединения. С помощью утилиты ping можно найти IP - адрес компьютера по его имени. Если в командной строке ввести команду ping microsoft.com, то на экран будет выведен адрес хоста: 207.46.130.108.

Утилита – nslookup – возвращает IP-адрес компьютера с заданным именем по цифровому адресу. С помощью утилиты ARP в одноименном протоколе можно просматривать и модифицировать отображение IP-адресов на MAC – адреса. Утилита netstаt позволяет получить статистику сети, связанную с активными в данный момент соединениями. Полученные данные используются для устранения неполадок в соединении TCP/IP. Команду можно использовать со следующим опциями: а – просмотр всех соединений и активных портов, е – просмотр статистика в Ethernet, р – вывод информации о выбранном протоколе (для Windows), r – просмотр таблицы маршрутизации и др. Конфигурационную информацию можно вывести в зависимости от операционной системы Windows или UNIX с помощью команд ipconfig и ifconfig соответственно. Эти утилиты возвращают информацию о текущих IP-адресе и MAC-адресе, о маске подсети, адрес сервера DNS, данные DHCP и др. Утилиты tracert и traceroute используются для отслеживания маршрута, по которому пакеты проходят от передающего компьютера к принимающему. Первая команда предназначена для Windows, вторая – для UNIX. Результат отслеживания содержит имена и IP- адреса компьютеров или маршрутизаторов, через которые прошел пакет.

TCP/IP представлено целым семейством протоколов, среди которых находятся протоколы UDP и TCP. В этом разделе описывается стек протоколов TCP/IP, а также протоколы UDP и TCP.

Протокол TCP обеспечивает прозрачный обмен данными между конечными системами, используя нижележащие службы сетевого уровня (Network layer) для перемещения пакетов между двумя системами, между которыми установлена связь. TCP является примером протокола транспортного уровня (Transport layer). IP — протоколом сетевого уровня.

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

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

Функции UDP

Протокол UDP является расширением раннего набора IP протоколов.

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

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

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

Протокол TCP/IP (Transmission Control Protocol/Internet Protocol ) представляет собой стек сетевых протоколов, повсеместно используемый для Интернета и других подобных сетей (например, данный протокол используется и в ЛВС). Название TCP/IP произошло от двух наиболее важных протоколов:

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

Основные характеристики TCP/IP:

  • Стандартизованные протоколы высокого уровня, используемые для хорошо известных пользовательских сервисов.
  • Используются открытые стандарты протоколов, что дает возможность разрабатывать и дорабатывать стандарты независимо от программного и аппаратного обеспечения;
  • Система уникальной адресации;
  • Независимость от используемого физического канала связи;

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

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

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

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

Пример инкапсуляции можно представить следующим образом:

Рассмотрим каждые функции уровней

Прикладной уровень

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

Распространенными примерами приложений являются программы:

  • Telnet
  • HTTP
  • Протоколы электронной почты (SMTP, POP3)

Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного модуля.

Транспортный уровень

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

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

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

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

  • обеспечение доставки данных между конкретными программами, функционирующими, в общем случае, на разных узлах сети;
  • обеспечение гарантированной доставки массивов данных произвольного размера.

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

Сетевой (межсетевой) уровень

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

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

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

Когда модуль IP получает дейтаграмму с нижнего уровня, он проверяет IP адрес назначения, если дейтаграмма адресована данному компьютеру, то данные из нее передаются на обработку модулю вышестоящего уровня, если же адрес назначения дейтаграммы чужой, то модуль IP может принять два решения:

  • Уничтожит дейтаграмму;
  • Отправить ее дальше к месту назначения, определив маршрут следования, так поступают промежуточные станции – маршрутизаторы .

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

Также протокол IP может отправлять сообщения – уведомления с помощью протокола ICMP , например, в случае уничтожения дейтаграммы. Более никаких средств контроля корректности данных, подтверждения или доставки, предварительного соединения в протоколе нет, эти задачи возложены на транспортный уровень.

Уровень доступа к среде

Функции этого уровня следующие:

  • Отображение IP-адресов в физические адреса сети. Эту функцию выполняет протокол ARP ;
  • Инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров, при этом не требуется какого-либо контроля безошибочной передачи, поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение. В заголовке кадров указывается точка доступа к сервису SAP, это поле содержащее код протокола;
  • Определение метода доступа к среде передачи, т.е. способа, с помощью которого компьютеры устанавливает свое право на передачу данных;
  • Определение представления данных в физической среде;
  • Пересылка и прием кадра.

Рассмотрим инкапсуляцию на примере перехвата пакета протокола HTTP с помощью сниффера wireshark, который работает на прикладном уровне протокола TCP/IP:


Помимо самого перехваченного протокола HTTP, на основании стека TCP/IP сниффер описывает каждый нижележащий уровень. HTTP инкапсулируется в TCP, протокол TCP в IPv4, IPv4 в Ethernet II.

Лекция №3

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

План лекции

Стек TCP/IP.

История создания стека TCP/IP.

Модель OSI.

Структура TCP/IP.

Документы RFC.

Обзор основных протоколов.

Утилиты диагностики TCP/IP.

Контрольные вопросы.

Стек TCP/IP

Стек TCP/IP – это набор иерархически упорядоченных сетевых протоколов. Название стек получил по двум важнейшим протоколам – TCP (Transmission Control Protocol) и IP (Internet Protocol). Помимо них в стек входят ещё несколько десятков различных протоколов. В настоящее время протоколы TCP/IP являются основными для Интернета, а также для большинства корпоративных и локальных сетей.

4. Транспортный уровень (transport layer) решает задачу надежной передачи сообщений в составной сети с помощью подтверждения доставки и повторной отправки пакетов. Этот уровень и все следующие реализуются программно.

5. Сеансовый уровень (session layer) позволяет запоминать информацию о текущем состоянии сеанса связи и в случае разрыва соединения возобновлять сеанс с этого состояния.

6. Уровень представления (presentation layer) обеспечивает преобразование передаваемой информации из одной кодировки в другую (например, из ASCII в EBCDIC).

7. Прикладной уровень (application layer) реализует интерфейс между остальными уровнями модели и пользовательскими приложениями.

Структура TCP / IP

В основе структуры TCP/IP лежит не модель OSI, а собственная модель, называемая DARPA (Defense ARPA – новое название Агентства по перспективным исследовательским проектам) или DoD (Department of Defense – Министерство обороны США). В этой модели всего четыре уровня. Соответствие модели OSI модели DARPA, а также основным протоколам стека TCP/IP показано на рис. 2.2.

DIV_ADBLOCK430">

3) черновой стандарт (Draft Standard) – документ становится черновым стандартом, если не менее двух независимых разработчиков реализовали и успешно применили предлагаемые спецификации. На этом этапе ещё допускаются незначительные исправления и усовершенствования;

4) стандарт Интернета (Internet Standard) – наивысший этап утверждения стандарта, спецификации документа получили широкое распространение и хорошо зарекомендовали себя на практике. Список стандартов Интернета приведен в RFC 3700. Из тысяч RFC только несколько десятков являются документами в статусе «стандарт Интернета».

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

экспериментальный (Experimental) – документ, содержащий сведения о научных исследованиях и разработках, которые могут заинтересовать членов ISOC;

информационный (Informational) – документ, опубликованный для предоставления информации и не требующий одобрения сообщества ISOC;

лучший современный опыт (Best Current Practice) – документ, предназначенный для передачи опыта конкретных разработок, например реализаций протоколов.

Статус указывается в заголовке документа RFC после слова Category (Категория). Для документов в статусе стандартов (Proposed Standard, Draft Standard, Internet Standard) указывается название Standards Track , так как уровень готовности может меняться.

Номера RFC присваиваются последовательно и никогда не выдаются повторно. Первоначальный вариант RFC никогда не обновляется. Обновленная версия публикуется под новым номером. Устаревший и замененный документ RFC получает статус исторический (Historic).

Все существующие на сегодня документы RFC можно посмотреть, например, на сайте www. rfc-editor. org . В августе 2007 года их насчитывалось более 5000. Документы RFC, упоминаемые в этом курсе, приведены в Приложении I.

Обзор основных протоколов

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

Протоколы RIP (Routing Information Protocol – протокол маршрутной информации) и OSPF (Open Shortest Path First – « первыми открываются кратчайшие маршруты») – протоколы маршрутизации в IP-сетях.

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

Протокол ARP (Address Resolution Protocol – протокол преобразования адресов) преобразует IP-адреса в аппаратные адреса локальных сетей. Обратное преобразование осуществляется с помощью протокола RAPR (Reverse ARP).

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

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

HTTP (HyperText Transfer Protocol – протокол передачи гипертекста) – протокол доставки web-документов, основной протокол службы WWW.

FTP (File Transfer Protocol – протокол передачи файлов) – протокол для пересылки информации, хранящейся в файлах.

POP3 (Post Office Protocol version 3 – протокол почтового офиса) и SMTP (Simple Mail Transfer Protocol – простой протокол пересылки почты) – протоколы для доставки входящей электронной почты (POP3) и отправки исходящей (SMTP).

Telnet – протокол эмуляции терминала1, позволяющий пользователю подключаться к другим удалённым станциям и работать с ними со своей машины, как если бы она была их удалённым терминалом.

SNMP (Simple Network Management Protocol – простой протокол управления сетью) предназначен для диагностики работоспособности различных устройств сети.

1 Терминал – это сочетание устройства ввода и устройства вывода, например клавиатура и дисплей.

Утилиты диагностики TCP / IP

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

Информацию о любой утилите можно вывести, набрав в командной строке имя утилиты с ключом «/?», например: IPconfig /?

IPconfig

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

При вводе названия утилиты в командной строке без параметров на экране отобразится информация об основных настройках TCP/IP (эти настройки рассматриваются в следующих лекциях):

– суффикс DNS (Connection-specific DNS Suffix);

– IP-адрес (IP Address);

– маска подсети (Subnet Mask);

– шлюз по умолчанию (Default Gateway).

Приведем основные ключи утилиты:

/ all – отображение полной информации о настройке стека TCP/IP на данном компьютере. Следует отметить, что при наличии нескольких сетевых адаптеров выводятся данные по каждому адаптеру отдельно. Наиболее важные сведения кроме представленных выше – физический адрес (МАС-адрес) сетевого адаптера (Physical Address) и наличие разрешения DHCP (DHCP Enabled).

/ release – освобождение IP-адреса (имеет смысл, если DHCP разрешен).

/ renew – обновление конфигурации TCP/IP (обычно выполняется, если DHCP разрешен).

/ displaydns – вывод на экран кэша имен DNS.

/ flushdns – очистка кэша имен DNS.

/ registerdns – обновление аренды DHCP и перерегистрация доменного имени в базе данных службы DNS.

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

Принцип работы: утилита отправляет на удаленный узел несколько пакетов (число пакетов определяется ключом n , по умолчанию четыре) по протоколу ICMP. Такие пакеты называются эхо-пакетами, т. е. требуют

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

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

Основные ключи:

t – пакеты отправляются до тех пор, пока пользователь не нажмет комбинацию CTRL+C.

a – определение доменного имени по IP-адресу.

l <размер> максимальный размер пакета (по умолчанию 32 байта).

w <таймаут> – задание времени ожидания ответа в миллисекундах (по умолчанию 1000 миллисекунд = 1 секунда).

Название утилиты произошло от Trace Route – отслеживание маршрута. Утилита позволяет решить следующие задачи:

– проследить путь прохождения пакета от данного компьютера до удаленного узла (отображаются промежуточные узлы-маршрутизаторы);

– выявить участки задержки пакетов;

– выявить места потери пакетов.

Принцип работы: утилита отправляет эхо-пакеты на заданный удаленный узел. Отличие между эхо-пакетами заключается в параметре, который называется «время жизни» (TTL – Time To Live). Этот параметр обозначает количество маршрутизаторов (процесс перехода пакета через маршрутизатор называется hop – прыжок), которое может пройти пакет, прежде чем попадет на заданный узел. Каждый маршрутизатор уменьшает время жизни на единицу. Если на каком-то маршрутизаторе TTL станет равным нулю, тот отбрасывает пакет и отправляет служебное сообщение на узел-источник.

Первый эхо-пакет посылается с временем жизни, равным единице. Первый маршрутизатор отбрасывает эхо-пакет и отправляет служебное сообщение, в котором содержится информации об имени и адресе маршрутизатора. Следующий эхо-пакет имеет TTL = 2 и отбрасывается уже на втором маршрутизаторе. Таким образом, эхо-пакеты отправляются с увеличением времени жизни на единицу, пока не придет ответ от заданного удаленного узла или время ожидания не будет превышено.

Основные ключи:

/ h < maximum_ hops> – максимальное число хопов (маршрутизаторов) при поиске узла.

/ w <таймаут> – задание времени ожидания ответа в миллисекундах.

Утилита отображает статистическую информацию по протоколам IP, TCP, UDP и ICMP, а также позволяет отслеживать сетевые соединения. Основные ключи:

/ a – список всех подключений и прослушивающихся портов.

/e – статистика для Ethernet.

/ n – список всех подключений и портов в числовом формате.

/ s – статистика для перечисленных четырех протоколов.

< interval> – интервал в секундах, через который утилита выводит требуемую информацию (для прекращения вывода – CTRL+C).

Эта утилита работает с протоколами преобразования IP-адресов в МАС-адреса и обратно ARP и RARP. С её помощью можно выводить на экран таблицу соответствия IP-адресов и МАС-адресов (ARP-кэш), добавлять и удалять записи в ней.

Основные ключи:

/ a – отображение таблицы ARP или, если указан IP-адрес, запись только для этого адреса.

/ s – добавление записи в таблицу.

/ d – удаление записи из таблицы.

Hostname

Это самая простая утилита – она выводит на экран имя компьютера.

Резюме

Стек протоколов TCP/IP – это самый распространенный на сегодняшний день набор иерархически упорядоченных протоколов, применяемый как в локальных, так и в глобальных сетях. Важнейшие протоколы стека – IP, TCP и UDP – появились в начале 80-х годов в рамках проекта ARPANET, который являлся предшественником Интернета. В 90-е годы по мере развития Интернета роль стека TCP/IP сильно возросла.

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

Основными протоколами стека являются IP, TCP, UDP, ICMP, ARP, протоколы маршрутизации RIP и OSPF, протоколы прикладного уровня HTTP, FTP, POP3, SMTP, telnet, SNMP.

Для диагностики и управления стеком TCP/IP в операционной системе Microsoft Windows Server 2003 существуют специальные утилиты – IPconfig, ping, tracert, netstat, arp, hostname и др.

Контрольные вопросы

1. Объясните, что означают свойства «платформонезависимость» и «открытость» применительно к стеку протоколов TCP/IP.

2. Что такое ARPANET?

3. Поясните, для чего предназначена модель OSI? Где она применяется?

4. Назовите функции канального, сетевого и транспортного уровней модели OSI.

5. Чем отличается модель DARPA (DoD) от модели OSI? Как вы думаете, почему?

6. Что такое RFC? В файлах какого формата издаются RFC?

7. Для чего используется протокол ICMP? Протокол ARP?

8. Поясните принцип работы утилиты ping.

9. Поясните принцип работы утилиты tracert.

Стек протоколов TCP/IP – это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.

Мы разобрались с классификацией, стандартами сетей и моделью OSI. Теперь поговорим о стеке, на базе которого построена всемирная система объединенных компьютерных сетей Интернет.

Модель TCP/IP

Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.

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

В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:

  1. Самый нижний, уровень сетевых интерфейсов , обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
  2. Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
  3. Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
  4. Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.

Иногда специалисты пытаются объединить обе модели в нечто общее. Например, ниже приведено пятиуровневое представление симбиоза от авторов «Компьютерные сети» Э. Таненбаума и Д. Уэзеролла:

Модель OSI обладает хорошей теоретической проработкой, но протоколы не используются. С моделью TCP/IP все иначе: протоколы широко используются, но модель подходит исключительно для описания сетей на базе TCP/IP.

Не путайте их:

  • TCP/IP – это стек протоколов, представляющий собой основу Интернета.
  • Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.

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

Рассмотрим каждый уровень более подробно.

Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

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

Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.

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