Сетевой протокол это правила интерпретации данных передаваемых по сети

Обновлено: 25.06.2024

1. Лекция - Введение. Адресация. Протоколы (IP, TCP, UDP). Порты.

Официальная документация по Internet

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

Адресация в сети Internet.

Типы адресов.

Физический (MAC-адрес)

Сетевой (IP-адрес)

Символьный (DNS-имя)

Компьютер в сети TCP/IP может иметь адреса трех уровней (но не менее двух):

Локальный адрес компьютера. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.

IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.

IPv4 - адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет.

IP-адреса принято записывать разбивкой всего адреса по октетам (8), каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес


10100000010100010000010110000011
записывается как

Перевод адреса из двоичной системы в десятичную

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть.

160.81.5. - номер сети

131 - номер хоста

Базовые протоколы (IP, TCP, UDP)

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

TCP/IP - собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:

Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;

Независимость от физической среды передачи;

Система уникальной адресации;

Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

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

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

Физический и канальный.

Позже была принята 7-ми уровневая модель ISO.

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

Пример инкапсуляции пакетов в стеке TCP/IP

Физический и канальный уровень.

Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

Межсетевой уровень и протокол IP.

Основу этого уровня составляет IP-протокол.

IP (Internet Protocol) – интернет протокол.

Первый стандарт IPv4 определен в RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

Последняя версия IPv4 - RFC-791 (Internet Protocol J. Postel Sep-01-1981).

Первый стандарт IPv6 определен в RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1995)

Последняя версия IPv6 - RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1998).

Протокол IP доставляет блоки данных от одного IP-адреса к другому.

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

Когда модуль IP получает IP-пакет с нижнего уровня, он проверяет IP-адрес назначения.

Если IP-пакет адресован данному компьютеру, то данные из него передаются на обработку модулю вышестоящего уровня (какому конкретно - указано в заголовке IP-пакета).

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

Структура дейтограммы IP. Слова по 32 бита.

Версия - версия протокола IP (например, 4 или 6)

Длина заг. - длина заголовка IP-пакета.

Тип сервиса (TOS - type of service) - Тип сервиса (подробнее рассмотрен в лекции 8).

TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

Идентификатор дейтаграммы, флаги (3 бита) и указатель фрагмента - используются для распознавания пакетов, образовавшихся путем фрагментации исходного пакета.

Время жизни (TTL - time to live) - каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.

Протокол - Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).

Коды некоторые протоколов RFC-1700 (1994)

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

Маршрутная информация, может быть:

Статической (маршрутные таблицы прописываются вручную)

Динамической (маршрутную информацию распространяют специальные протоколы)

Протоколы динамической маршрутизации:

RIP (Routing Information Protocol) - протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.

OSPF (Open Shortest Path First) - протокол "Открой кротчайший путь первым", является внутренним протоколом маршрутизации.

IGP (Interior Gateway Protocols) - внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.

EGP (Exterior Gateway Protocols) - внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.

BGP (Border Gateway Protocol) - протокол граничных маршрутизаторов.

Другие служебные IP-протоколы

IGMP (Internet Group Management Protocol) - позволяет организовать многоадресную рассылку средствами IP.

RSVP (Resource Reservation Protocol) - протокол резервирования ресурсов.

ARP (Address Resolution Protocol) - протокол преобразования IP-адреса и адреса канального уровня.

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

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

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

На транспортном уровне работают два основных протокола: UDP и TCP.

Первая и последняя версия TCP - RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

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

Делает проверку целостности данных, если пакет битый посылает повторный запрос.

Структура дейтограммы TCP. Слова по 32 бита.

Длина заголовка - задается словами по 32бита.

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

Контрольная сумма - включает псевдо заголовок, заголовок и данные.

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

URG - флаг срочности, включает поле "Указатель срочности", если =0 то поле игнорируется.

ACK - флаг подтверждение, включает поле "Номер подтверждения, если =0 то поле игнорируется.

PSH - флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.

RST - флаг прерывания соединения, используется для отказа в соединении

SYN - флаг синхронизация порядковых номеров, используется при установлении соединения.

FIN - флаг окончание передачи со стороны отправителя

UDP (Universal Datagram Protocol) - универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

Основные отличия от TCP:

Отсутствует соединение между модулями UDP.

При потере пакета запрос для повторной передачи не посылается

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

Структура дейтограммы UDP. Слова по 32 бита.


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

Протокол реального времени RTP

RTP (Real Time Protocol) - транспортный протокол для приложений реального времени.

RTCP (Real Time Control Protocol) - транспортный протокол обратной связи для приложения RTP..

Назначение портов

По номеру порта транспортные протоколы определяют, какому приложению передать содержимое пакетов.

Порты могут принимать значение от 0-65535 (два байта 2^16).

Некоторые заданные порты RFC-1700 (1994)

Программа Ping

Программа для проверки соединения и работы с удаленным хостом.

Программа TraceRoute - позволяет проверить маршрут до удаленного хоста.

Эта статья о протоколах, составляющих архитектуру Интернета. Только для сетевого протокола IP см. Протокол Интернета .

Набор протоколов Интернета - это концептуальная модель и набор протоколов связи, используемых в Интернете и подобных компьютерных сетях . Он широко известен как TCP / IP, потому что основными протоколами в наборе являются протокол управления передачей (TCP) и Интернет-протокол (IP). В ходе своего развития, версии его были известны как министерства обороны ( МО ) модель , так как развитие метода сетевого финансировались Министерством обороны США через DARPA. Его реализация представляет собой стек протоколов .

Набор интернет-протоколов обеспечивает сквозную передачу данных, определяющую, как данные должны быть пакетированы, адресованы, переданы, маршрутизированы и получены. Эта функциональность организована в четыре уровня абстракции , которые классифицируют все связанные протоколы в соответствии с областью задействованной сети. [1] [2] Уровни от самого низкого до самого высокого являются канальным уровнем , содержащим методы передачи данных, которые остаются в пределах одного сетевого сегмента (ссылки); уровень Интернета , обеспечивающий межсетевое взаимодействие между независимыми сетями; транспортный уровень , обработки хост-хост связи; иприкладной уровень , обеспечивающий межпроцессный обмен данными для приложений.

В технические стандарты , лежащие в основе набора протоколов Интернет и его составные протоколы поддерживается Engineering Task Force Internet (IETF). Набор Интернет-протоколов предшествовал модели OSI , более всеобъемлющей эталонной структуре для общих сетевых систем.

СОДЕРЖАНИЕ

  • 1 История
    • 1.1 Ранние исследования
    • 1.2 Ранняя реализация
    • 1.3 Принятие
    • 1.4 Официальные спецификации и стандарты

    Пакет Интернет-протокола явился результатом исследований и разработок, проведенных Агентством перспективных исследовательских проектов Министерства обороны США ( DARPA ) в конце 1960-х годов. [3] После создания новаторской ARPANET в 1969 году DARPA начало работу над рядом других технологий передачи данных. В 1972 году Роберт Э. Кан присоединился к Отделу технологий обработки информации DARPA , где он работал как над спутниковыми пакетными сетями, так и над наземными пакетными сетями радиосвязи, и осознал ценность возможности связи между ними. Весной 1973 года Винтон Серф , который помогал разработать существующий протокол программы управления сетью ARPANET (NCP), присоединился к Кану для работы надмодели взаимодействия с открытой архитектурой с целью разработки следующего поколения протоколов для ARPANET. [ необходима цитата ] Они основывались на опыте исследовательского сообщества ARPANET и Международной сетевой рабочей группы , которую возглавлял Серф. [4]

    К лету 1973 года Кан и Серф разработали фундаментальную переформулировку, в которой различия между протоколами локальной сети были скрыты за счет использования общего межсетевого протокола , и вместо того, чтобы сеть отвечала за надежность, как в существующих протоколах ARPANET , эта функция была делегирована хостам. Серф благодарит Юбера Циммермана и Луи Пузена , дизайнера сети CYCLADES , которые оказали большое влияние на этот дизайн. [5] [6] Новый протокол был реализован как Программа управления передачей в 1974 году. [7]

    DARPA заключило контракт с BBN Technologies , Стэнфордским университетом и Университетским колледжем Лондона на разработку операционных версий протокола на нескольких аппаратных платформах. [13] В процессе разработки протокола номер версии уровня маршрутизации пакетов увеличился с версии 1 до версии 4, последняя из которых была установлена ​​в ARPANET в 1983 году. В качестве протокола он стал известен как Интернет-протокол версии 4 (IPv4). который до сих пор используется в Интернете вместе с его нынешним преемником, Internet Protocol версии 6 (IPv6).

    В 1975 году между Стэнфордом и Университетским колледжем Лондона был проведен тест связи TCP / IP с двумя сетями. В ноябре 1977 г. был проведен тест TCP / IP для трех сетей между узлами в США, Великобритании и Норвегии. Несколько других прототипов TCP / IP были разработаны в нескольких исследовательских центрах между 1978 и 1983 годами.

    Компьютер, называемый маршрутизатором, имеет интерфейс для каждой сети. Он пересылает сетевые пакеты туда и обратно между ними. [14] Первоначально маршрутизатор назывался шлюзом , но этот термин был изменен, чтобы избежать путаницы с другими типами шлюзов . [15]

    В марте 1982 года Министерство обороны США объявило TCP / IP стандартом для всех военных компьютерных сетей. [16] В том же году НОРСАР и исследовательская группа Питера Кирстайна в Университетском колледже Лондона приняли протокол. [13] [17] [18] Переход ARPANET на TCP / IP был официально завершен в день флага 1 января 1983 г., когда новые протоколы были окончательно активированы. [19]

    В 1985 году Консультативный совет Интернета (позже Совет по архитектуре Интернета ) провел трехдневный семинар по TCP / IP для компьютерной индустрии, на котором присутствовало 250 представителей поставщиков, которые продвигали протокол и привели к его расширению коммерческого использования. В 1985 году первая конференция Interop была посвящена сетевой совместимости за счет более широкого внедрения TCP / IP. Конференция была основана Дэном Линчем, одним из первых активистов Интернета. С самого начала на встрече присутствовали крупные корпорации, такие как IBM и DEC. [20]

    IBM, AT&T и DEC были первыми крупными корпорациями, принявшими TCP / IP, несмотря на наличие конкурирующих проприетарных протоколов . В IBM с 1984 года разработкой TCP / IP занималась группа Барри Аппельмана . Они сориентировались в корпоративной политике, чтобы получить поток продуктов TCP / IP для различных систем IBM, включая MVS , VM и OS / 2 . В то же время несколько небольших компаний, таких как FTP Software и Wollongong Group , начали предлагать стеки TCP / IP для DOS и Microsoft Windows . [21] Первый стек TCP / IP VM / CMS был разработан Университетом Висконсина. [22]

    Некоторые из ранних стеков TCP / IP были написаны в одиночку несколькими программистами. Джей Элински и Олег Вишнепольский [ ru ] из IBM Research написали стеки TCP / IP для VM / CMS и OS / 2 соответственно. [ необходима цитата ] В 1984 году Дональд Гиллис из Массачусетского технологического института написал протокол TCP с несколькими подключениями ntcp, который работал поверх уровня IP / PacketDriver, поддерживаемого Джоном Ромки из Массачусетского технологического института в 1983–1994 годах. Ромки использовал этот протокол TCP в 1986 году, когда была основана компания FTP Software. [23] [24] Начиная с 1985 года Фил Карн создал приложение TCP с несколькими подключениями для систем любительской радиосвязи (KA9Q TCP). [25]

    Распространение TCP / IP получило дальнейшее развитие в июне 1989 года, когда Калифорнийский университет в Беркли согласился передать код TCP / IP, разработанный для BSD UNIX, в общественное достояние. Различные корпоративные поставщики, включая IBM, включили этот код в коммерческие выпуски программного обеспечения TCP / IP. Microsoft выпустила / стек нативный TCP IP в Windows 95. Это событие доминирование помогло цементного TCP / IP над другими протоколами в сетях Microsoft на базе, в которую вошли компании IBM Systems Network Architecture (SNA), так и на других платформах , таких как Digital Equipment Corporation «с DECnet , взаимодействие открытых систем (OSI) и Xerox Network Systems (XNS).

    Тем не менее, в течение периода в конце 1980-х - начале 1990-х инженеры, организации и нации были поляризованы по вопросу о том, какой стандарт , модель OSI или набор протоколов Интернета приведут к созданию лучших и наиболее надежных компьютерных сетей. [26] [27] [28]

    В технические стандарты , лежащие в основе набора протоколов Internet и его составляющие протоколы были делегированы Engineering Task Force Интернет (IETF).

    Характерной архитектурой Internet Protocol Suite является его широкое разделение на рабочие области для протоколов, составляющих его основную функциональность. Определяющей спецификацией пакета является RFC 1122, который в общих чертах описывает четыре уровня абстракции . [1] Они выдержали испытание временем, поскольку IETF никогда не изменяла эту структуру. Как такая модель сети, Internet Protocol Suite предшествует модели OSI, более всеобъемлющей эталонной структуре для общих сетевых систем.

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

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

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

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

    Канальный уровень в модели TCP / IP имеет соответствующие функции на уровне 2 модели OSI.

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

    Интернет-уровень не делает различий между различными протоколами транспортного уровня. IP передает данные для множества различных протоколов верхнего уровня . Каждый из этих протоколов идентифицируется уникальным номером протокола : например, Internet Control Message Protocol (ICMP) и Internet Group Management Protocol (IGMP) - это протоколы 1 и 2, соответственно.

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

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

    TCP - это протокол с установлением соединения, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :

    • данные поступают по порядку
    • данные имеют минимальную ошибку (т.е. правильность)
    • повторяющиеся данные отбрасываются
    • потерянные или отброшенные пакеты повторно отправляются
    • включает контроль заторов на дорогах

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

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

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

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

    Протоколы прикладного уровня часто связаны с конкретными клиент-серверными приложениями, а общие службы имеют хорошо известные номера портов, зарезервированные Internet Assigned Numbers Authority (IANA). Например, протокол передачи гипертекста использует порт сервера 80, а Telnet использует порт сервера 23. Клиенты, подключающиеся к службе, обычно используют временные порты., т. е. номера портов, назначаемые только на время транзакции случайным образом или из определенного диапазона, настроенного в приложении. Хотя приложения обычно осведомлены о ключевых качествах соединения транспортного уровня, таких как IP-адреса конечных точек и номера портов, протоколы прикладного уровня обычно рассматривают протоколы транспортного уровня (и более низких уровней) как черные ящики, которые обеспечивают стабильное сетевое соединение, через которое общаться.

    Транспортный уровень и уровни нижнего уровня не заботятся о специфике протоколов прикладного уровня. Маршрутизаторы и коммутаторы обычно не проверяют инкапсулированный трафик, а просто предоставляют для него канал. Однако некоторые приложения для брандмауэра и регулирования полосы пропускания должны интерпретировать данные приложения. Примером может служить протокол резервирования ресурсов (RSVP). Также иногда необходимо, чтобы обход преобразователя сетевых адресов (NAT) учитывал полезную нагрузку приложения.

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

    Кроме того, модель TCP / IP различает пользовательские протоколы и протоколы поддержки . [35] Протоколы поддержки предоставляют услуги системе сетевой инфраструктуры. Пользовательские протоколы используются для реальных пользовательских приложений. Например, FTP - это протокол пользователя, а DNS - протокол поддержки.

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

    Некоторые сетевые модели взяты из учебников, которые являются вторичными источниками, которые могут противоречить цели RFC 1122 и других первичных источников IETF . [43]

    Три верхних уровня в модели OSI, т. Е. Прикладной уровень, уровень представления и уровень сеанса, не различаются отдельно в модели TCP / IP, которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые приложения с чистым протоколом OSI, такие как X.400 , также комбинируют их, нет требования, чтобы стек протоколов TCP / IP налагал монолитную архитектуру над транспортным уровнем. Например, протокол приложения NFS работает поверх протокола представления внешних данных (XDR), который, в свою очередь, работает через протокол, называемый удаленным вызовом процедур (RPC). RPC обеспечивает надежную передачу записей, поэтому может безопасно использовать максимально эффективный транспорт UDP.

    Различные авторы интерпретировали модель TCP / IP по-разному и расходятся во мнениях относительно того, покрывает ли канальный уровень или вся модель TCP / IP проблемы уровня 1 OSI ( физического уровня ), или же аппаратный уровень предполагается ниже канального уровня.

    Несколько авторов попытались включить уровни 1 и 2 модели OSI в модель TCP / IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU ). Это часто приводит к модели с пятью уровнями, где уровень канала или уровень доступа к сети разделен на уровни 1 и 2 модели OSI.

    Протоколы IETF могут быть рекурсивно инкапсулированы, что демонстрируется протоколами туннелирования, такими как Generic Routing Encapsulation (GRE). GRE использует тот же механизм, который OSI использует для туннелирования на сетевом уровне.

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

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

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

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

    Содержание

    Уровни протоколов

    Здесь представлен неполный список сетевых протоколов, отсортированных по ближайшим им уровням модели Open Systems Interconnection (OSI). Однако, многие из данных протоколов изначально основаны на стеке протоколов TCP/IP и прочих моделях, поэтому они не могут быть однозначно соотнесены с уровнями модели OSI.

    Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI. В соответствии с ней протоколы делятся на 7 уровней по своему назначению - от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями):

    Протоколы уровня 1 Physical layer (Физический уровень)

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

    • ADSL Asymmetric Digital Subscriber Line
    • ISDN Integrated Services Digital Network
    • PDH Плезиохронная цифровая иерархия
      • T-канал (T1, T3, etc.)
      • E-канал (E1, E3, etc.)

      Протоколы уровня 1+2

      Протоколы уровня 2 Data Link layer (Канальный уровень)

      Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Данные, полученные с физического уровня, он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS

      • ARCNET Attached Resource Computer NETwork
      • CDP Протокол обнаружения Cisco
      • DCAP Data Link Switching Client Access Protocol
      • Dynamic Trunking Protocol Динамический протокол группобразования
      • Econet
      • FDDI Волоконно-оптический интерфейс по распределенным данным
      • Frame Relay
      • Канальный уровень CCITT G.hn
      • HDLC High-Level Data Link Control
      • IEEE 802.11 WiFi
      • IEEE 802.16 WiMAX
      • LocalTalk
      • L2F Layer 2 Forwarding Protocol
      • L2TP Layer 2 Tunneling Protocol
      • LAPD Процедуры доступа к соединению на D-канале
      • LLDP Link Layer Discovery Protocol
      • LLDP-MED Link Layer Discovery Protocol — Media Endpoint Discovery
      • PPP Point-to-Point Protocol
      • PPTP Point-to-Point Tunneling Protocol
      • Q.710 Упрощенный Message Transfer Part
      • NDP Протокол обнаружения соседей
      • RPR IEEE 802.17 Resilient Packet Ring
      • Shortest Path Bridging
      • SLIP Serial Line Internet Protocol (устарел)
      • StarLAN
      • STP Spanning Tree Protocol
      • Token ring — по сути является не протоколом, а топологией
      • VTP VLAN Trunking Protocol

      Протоколы уровня 2+3

      • ATM Asynchronous Transfer Mode
      • Frame relay, упрощенная версия X.25
      • MPLS Multi-protocol label switching
      • X.25
      • ARP Протокол разрешения адреса
      • RARP Протокол разрешения обратного адреса

      Протоколы уровня 1+2+3

      • MTP Message Transfer Part
      • NSP Network Service Part

      Протоколы уровня 3 Network layer (Сетевой уровень)

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

      • CLNP Сетевой протокол без установки соединения
      • EGP протокол внешнего шлюза (устарел)
      • EIGRP Enhanced Interior Gateway Routing Protocol
      • ICMP Internet Control Message Protocol
      • IGMP Internet Group Management Protocol
      • IGRP Interior Gateway Routing Protocol
      • IPv4 Internet Protocol version 4
      • IPv6 Internet Protocol version 6
      • IPsec Internet Protocol Security
      • IPX Internetwork Packet Exchange
      • SCCP Signalling Connection Control Part
      • AppleTalk DDP

      Протоколы уровня 3 (управление на сетевом уровне)

      • IS-IS Intermediate System-to-Intermediate System
      • OSPF Open Shortest Path First
      • BGP Border Gateway Protocol
      • RIP Routing Information Protocol
      • IRDP: Реализация RFC 1256
      • Gateway Discovery Protocol (GDP) — протокол, разработанный Cisco, схожий с IRDP

      Протоколы уровня 3.5

      Протоколы уровня 3+4

      Протоколы уровня 4 Transport layer (Транспортный уровень)

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

      • AH Authentication Header Аутентификационный заголовок по IP или IPSec
      • ESP Encapsulating Security Payload over IP or IPSec
      • GRE Generic Routing Encapsulation для туннелирования
      • IL Первоначально разработан как транспортный уровень для 9P
      • SCTP Stream Control Transmission Protocol
      • Sinec H1 для удаленного контроля
      • IPX/SPX Sequenced Packet Exchange
      • TCP Transmission Control Protocol
      • UDP User Datagram Protocol

      Протоколы уровня 5 Session layer (Сеансовый уровень)

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

      Прочие протоколы

      • Controller Area Network (CAN)
      • Общепромышленный протокол (CIP)
      • Цифровое управление командами (DCC)
      • Financial Information eXchange (FIX)
      • I²C
      • Modbus
      • DECnet — семейство протоколов от Digital Equipment Corporation (ныне HP(Hewlett-Packard))
      • Service Location Protocol SLP
      • Service Advertising Protocol SAP

      Протокол уровня 6 Presentation layer (Уровень представления)

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

      Протоколы уровня 7 Application layer (Прикладной уровень)

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

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

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

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

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

      Функционирование сети TCP/IP

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

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

      Саша знает имя своего компьютера, IP- и MAC -адрес, т.к. все эти параметры прописаны в конфигурации его компьютера. Остается узнать только IP- и MAC -адрес компьютера Коли. Для этого Саша должен воспользоваться системой доменных имен ( DNS ) и протоколом разрешения адресов ( ARP ). Саша знает IP -адрес DNS , т.к. он прописан в конфигурации Сашиной машины. Далее Саша отправляет DNS -запрос системе DNS , спрашивая у нее IP- адрес Колиной машины. DNS отвечает адресом 10.1.1.2. Но Саше все еще нужен адрес Ethernet MAC , использующий адрес 10.1.1.2, поэтому он выполняет широковещательный ARP -зарос. Такой запрос отправляется по широковещательному Ethernet -адресу, чтобы все компьютеры, находящиеся в сети, его получили. Поскольку компьютер Коли подключен к сети, он получает этот запрос. А так как адрес его компьютера 10.1.1.2, а ARP -запрос ищет MAC -адрес, связанный с адресом 10.1.1.2, Коля сообщает свой MAC -адрес. На рис.1 схематически показан весь этот процесс.

      Рис. 1. Работа служб DNS и протокола ARP

      Теперь Саша знает адреса IP и Ethernet MAC , которые необходимы для отправки данных Коле. Весь этот процесс проходит автоматически, невидимо для пользователя, но важно знать, как это все происходит, чтобы уметь решать возникающие проблемы.

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

      Итак, мы рассмотрели, как работает элементарная сеть с несколькими приложениями. Давайте теперь познакомимся с использованными в данном примере протоколами немного поближе.

      Протоколы канального уровня SLIP и PPP

      На канальном уровне используются протоколы SLIP ( Serial Link Internet Protocol - межсетевой протокол для последовательного канала ) и PPP ( Point-to-Point Protocol - протокол "точка-точка" ) .

      Протоколы канального уровня SLIP и PPP применяются как на коммутируемых линиях, так и на выделенных телефонных каналах. С их помощью к глобальной сети подключается большинство индивидуальных пользователей, а также небольшие локальные сети. Подобные линии связи могут обеспечивать скорость передачи данных до 115200 бит/с.

      Serial Line Internet Protocol (SLIP )

      Согласно RFC -1055 впервые SLIP был включен в качестве средства доступа к IP -сети в пакет фирмы 3COM-UNET . В 1984 г. Рик Адамс реализовал SLIP для BSD 4.2 , и таким образом SLIP стал достоянием Internet в целом. Обычно этот протокол применяют как на выделенных, так и на коммутируемых линиях связи со скоростью передачи от 1200 до 19200 бит/с.

      Такие операционные системы, как FreeBSD, Linux, NetBSD , которые можно свободно скопировать и установить на своем персональном компьютере, или HP-UX , которая поставляется вместе с рабочими станциями Hewlett-Packard , имеют в своем арсенале программные средства типа sliplogin (FreeBSD) или slp (HP-UX ), обеспечивающие работу компьютера в качестве SLIP -сервера для удаленных пользователей, подключающихся к IP -сети по телефону. Хотя в стандарте SLIP нет определения понятия " SLIP -сервер", обычно используют термины " SLIP -клиент" для компьютера, инициирующего физическое соединение, и " SLIP -сервер" для машины, постоянно включенной в IP -сеть.

      В рамках протокола SLIP осуществляется фрагментация IP -пакетов, при этом SLIP -пакет должен начинаться символом ESC (восьмеричное 333 или десятичное 219) и заканчиваться символом END (восьмеричное 300 или десятичное 192). Стандарт не определяет размер SLIP -пакета, поэтому любой интерфейс имеет специальное поле, в котором пользователь должен указать эту длину. SLIP -модуль не анализирует поток данных и не выделяет какую-либо информацию в этом потоке, а также не позволяет выполнять какие-либо действия, связанные с адресами, т.к. в структуре пакета не предусмотрены поле адреса и его специальная обработка. Компьютеры, взаимодействующие по SLIP , обязаны знать свои IP -адреса заранее. SLIP не предусматривает корректировку ошибок линии связи, и коррекция ошибок возлагается на протоколы транспортного уровня - TCP, UDP . В стандартное SLIP не предусмотрена компрессия данных, но существуют варианты протокола с такими возможностями.

      Point to Point Protocol (PPP )

      Согласно RFC -1661 данный протокол обеспечивает стандартный метод взаимодействия двух узлов сети. Предполагается, что обеспечивается двунаправленная одновременная передача данных. Как и в SLIP , данные разбиваются на пакеты, которые передаются от узла к узлу упорядоченно. В отличие от SLIP , PPP позволяет одновременно передавать по линии связи пакеты различных протоколов. Кроме того, PPP предполагает процесс автоконфигурации обеих взаимодействующих сторон. Собственно говоря, PPP состоит из трех частей: механизма инкапсуляции ( encapsulation), протокола управления соединением ( link control protocol) и семейства протоколов управления сетью ( network control protocols ).

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

      В поле "Протокол" указывается тип инкапсулированной датаграммы. Существуют специальные правила кодирования протоколов в этом поле (см. ISO 3309 и RFC -1661). В поле "Информация" записывается собственно пакет данных, а в поле "Хвост" добавляется заполнитель для выравнивания на 32-битовую границу. По умолчанию длина фрейма PPP устанавливается в 1500 байт, но в это число не входит длина поля "Протокол".

      Рис. 2. PPP -фрейм

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

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

      Point-to-Point Tunneling Protocol (PPTP )

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

      Как и в случае с PPP , пакеты PPTP "заворачиваются", транспортируются на другой конец канала (в данном случае в систему, обозначенную IP -адресом, упомянутым в предыдущем абзаце), и "разворачиваются". в результате между дв4умя системами создается "частная виртуальная сеть", по которой передаются пакеты PPTP . Чтобы этот канал был действительно частным, PPTP поддерживает ряд возможностей защиты, вплоть до шифрования всех данных пакета.

      Таким образом, с помощью протоколов PPP и SLIP можно установить глобально-сетевое соединение по коммутируемым линиям, ISDN , сетям X.25 и другим каналам. И PPP , и SLIP характеризуются относительной нечувствительностью к помехам в линии и задержкам приема пакетов.

      Протокол PPP более гибок, чем SLIP . Принцип его работы заключается в "заворачивании" пакетов транспортных протоколов TCP , IPX или NBF в пакет особого формата и транспортировке завернутого таким образом пакета по каналу ГВС (глобальной вычислительной сети). На другом конце соединения пакет "разворачивается", и исходные пакеты передаются по локальной сети. После установления соединения все эти операции становятся полностью прозрачными для приложений - приложения видят абсолютно нормальные пакеты TCP, IPX и NBF (хотя эти пакеты могут прибывать несколько медленнее, чем по локальной сети).

      SLIP менее гибок. Он представляет собой, по сути дела, расширение IP , предназначенное для работы по низкоскоростным каналам, поэтому и поддерживает только IP -сети. Кроме того, он менее устойчив к помехам в линии. Сервис RAS ( Remote Access Services - служба удаленного доступа) операционной системы Windows NT поддерживает SLIP , главным образом, для совместимости с серверами ГВС, работающими на базе ОС UNIX .

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

      Межсетевые протоколы

      Internet Protocol (IP)

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

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

      Главной особенностью протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Это значит, что, прежде чем послать пакет в сеть, модуль операционной системы, реализующий IP , не проверяет возможность установк4и соединения, т.е. никакой управляющей информации кроме той, что содержится в самом IP -пакете, по сети не передается. Кроме того, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколами транспортного уровня (TCP) или протоколами приложений.

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

      Существует несколько версий протокола IP . В настоящее время используется версия Ipv4 (RFC 791) , структура пакета которой представлена на рис. 3.

      Рис. 3. формат пакета Ipv4

      Фактически в заголовке пакета определены все основные данные, необходимые для перечисленных выше функций протокола IP : адрес отправителя, адрес получателя, общая длина пакета и тип пересылаемой дейтаграммы.

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

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

      При обсуждении формата заголовка пакета IP вернемся еще раз к инкапсулированию. Как уже отмечалось, при обычной процедуре инкапсулирован я пакет просто помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, разбивается на более мелкие фрагменты. Размер максимально возможного фре2йма, который передается по сети, определяется величиной MTU (Maximum Transmission Unit ), определенной для протокола канального уровня. Для последующего восстановления пакет IP должен держать информацию о своем разбиении, и для этой цели используются поля Flags и Fragmentation offset . В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части.

      Internet Control Message Protocol (ICMP)

      Routing Information Protocol (RIP)

      Address Resolution Protocol (ARP)

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

      Протоколы транспортного уровня

      User Datagram Protocol (UDP)

      Таблица 1. Стандартные сетевые сервисы и соответствующие им порты

      Наиболее известными сервисами, основанными на UDP , являются служба доменных имен BIND и распределенная файловая система NFS .

      Transfer Control Protocol (TCP)

      В том случае, когда контроль качества передачи данных по сети имеет особое значение для приложения, используется протокол TCP . Этот протокол также называют надежным, ориентированным на соединение, потокоориентированным протоколом. Рассмотрим формат передаваемой по сети дейтаграммы (рис. 5).

      Рис. 5. Структура пакета TCP

      Потоковый характер протокола определяется тем, что SYN определяет стартовый номер для отсчета переданных байтов, а не пакетов. Это значит, что если SYN был установлен в 0 и было передано 200 байтов, то номер, установленный в следующем пакете, будет равен 201, а не 2.

      Потоковый характер протокола и требование подтверждения получения данных порождают проблему скорости передачи данных. Для ее решения используется поле Window ( окно). Идея применения "окна" достаточно проста: передавать данные, не дожидаясь подтверждения об их получении. Это значит, что источник передает некоторое количество данных, равное Window , без ожидания подтверждения об их приеме, и только после этого останавливает передачу и ждет подтверждения. Если он получит подтверждение только на часть переданных данных, то начнет передачу новой порции с номера, следующего за подтвержденным.

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

      Читайте также: