Какая организация публикует стандарты интернет протокола

Обновлено: 25.05.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 - позволяет проверить маршрут до удаленного хоста.

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

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

Правила, Управляющие Коммуникациями

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

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

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

Использование Слоев Для Описания Коммуникации Лицом к Лицу

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

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

Сетевые Протоколы

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

Наборы сетевых протоколов описывают такие вещи как:

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

Наборы Протоколов и Индустриальные Стандарты

Часто многие из протоколов, составляющих набор протоколов, ссылаются на другие широко используемые протоколы или индустриальные стандарты. Стандарт – это процесс или протокол, который был одобрен сетевой индустрией и ратифицирован организацией по стандартизации, такой как Сообщество Инженеров Электричества и Электроники (англ. Institute of Electrical and Electronics Engineers или IEEE) или Целевая (Оперативная) Группа Инженерной Поддержки Интернета (англ. Internet Engineering Task Force или IETF).

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

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

Взаимодействие Протоколов

Протокол Приложения:

Транспортный Протокол:

Сетевой Протокол:

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

Протоколы Сетевого Доступа:

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

Технологично Независимые Протоколы

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

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

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


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

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

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

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

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

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

TLS 1.3 сейчас проходит через последние этапы стандартизации и уже поддерживается в некоторых реализациях.

Пусть вас не вводит в заблуждение минорная смена номера; это абсолютно новая версия TLS с сильно модернизированным рукопожатием, которое позволяет обмен данными с самого начала (часто такой режим называют 0RTT). Новая архитектура полагается на обмен эфемерными ключами, исключая статические ключи.

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

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

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

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

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

Кроме перехода такого значительного объёма трафика с TCP на UDP (и всех соответствующих сетевых настроек), и Google QUIC (gQUIC), и IETF QUIC (iQUIC) требуют обязательного шифрования для работы; нешифрованного QUIC не существует вообще.

iQUIC использует TLS 1.3 для установки ключей сессии, а затем шифрования каждого пакета. Но поскольку он основан на UDP, значительная часть информации о сессии и метаданных, открытых в TCP, шифруется в QUIC.

Всё остальное зашифровано — включая пакеты ACK, что значительно повышает планку для проведения атак с анализом трафика.

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

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

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

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

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

Например, на последнем этапе разработки TLS 1.3 возникло немало проблем с промежуточными узлами, которые принимают его за старую версию протокола. gQUIC не работает в некоторых сетях, которые приглушают трафик UDP, потому что считают его вредным или низкоприоритетным.

Если разработчики протокола не могут использовать шифрование и точка расширения используется нечасто, то может помочь искусственная прокачка точки расширения. Мы называем это смазкой (greasing).

Например, QUIC подталкивает конечные точки к использованию диапазона значений при согласовании версии, чтобы избежать реализаций, которые полагают номер версии всегда неизменным (такое часто встречается в реализациях TLS, что ведёт к серьёзным проблемам).

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

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

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

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

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

Выражаю благодарность Мартину Томпсону и Брайану Трэммелу за помощь в редактировании статьи.

Руководство по стеку протоколов TCP/IP для начинающих

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

Основы TCP/IP

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

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


Уровневая модель TCP/IP

Три верхних уровня — прикладной, транспортный и сетевой — присутствуют как в RFC, так и у Таненбаума и других авторов. А вот стоит ли говорить только о канальном или о канальном и физическом уровнях — нет единого мнения. В RFC они объединены, поскольку выполняют одну функцию. В статье мы придерживаемся официального интернет-стандарта RFC и не выделяем физический уровень в отдельный. Далее мы рассмотрим четыре уровня модели.

Канальный уровень (link layer)

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

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

Межсетевой уровень (internet layer)

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

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

Маска подсети и IP-адреса


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

Протокол интернета — IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Он имеет два подвида, первым был принят IPv4 (IP version 4, версии 4) в 1983 году.

IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2 32 ). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает его класс, классов всего 4: A, B, C, D.

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

Так как IPv6 адреса длинные, их разрешается сокращать по следующим правилам: ведущие нули допускается опускать, например в адресе выше :00FF: позволяется записывать как :FF:, группы нулей, идущие подряд тоже допустимо сокращать и заменять на двойное двоеточие, например, 2DAB:FFFF::01AA:00FF:DD72:2C4A. Допускается делать не больше одного подобного сокращения в адресе IPv6.

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

ICMP и IGMP


ICMP никогда не вызывается сетевыми приложениями пользователя, кроме случаев диагностики сети, к примеру, пинг (ping) или traceroute (tracert). ICMP не передает данные, это отличает его от транспортных TCP и UDP, расположенных на L3, которые переносят любые данные. ICMP работает только с IP четвертой версии, с IPv6 взаимодействует ICMPv6.

Сетевые устройства объединяются в группы при помощи IGMP, используемый хостами и роутерами в IPv4 сетях. IGMP организует multicast-передачу информации, что позволяет сетям направлять информацию только хостам, запросившим ее. Это удобно для онлайн-игр или потоковой передаче мультимедиа. IGMP используется только в IPv4 сетях, в сетях IPv6 используется MLD (Multicast Listener Discovery, протокол поиска групповых слушателей), инкапсулированный в ICMPv6.

Транспортный уровень (transport layer)

Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

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

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

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

Протоколы L3 не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

Прикладной уровень (application layer)

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

Зачем нужен порт и что означает термин сокет

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

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


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

Стек протоколов, снова канальный уровень

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

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

Point-to-Point протоколы


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

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

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

Заключение

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

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

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