Какой из протоколов сети является протоколом гипертекстовых ресурсов

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

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

Существует модель OSI (Open System Interface или модель открытых систем), содержащая 7 уровней протоколов:

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

Модель OSI: схема

Модель OSI является семиуровневой. Однако, зачастую, на практике используются не все семь уровней, а меньше. Например, как правило, протоколы сеансового и представительского уровня, в силу небольшого объема выполняемых задач, объединяются с транспортным или прикладным уровнями. Поэтому, фактически, на практике используется 3…5 уровней протоколов.

Что часто интересует программиста, занимающегося сетевыми технологиями?

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

Физический уровень

Так как этот уровень имеет дело с электрическими сигналами в виде битов, соответственно, их источником и адресатом являются соответствующие физические сетевые устройства (например, модемы и/или сетевые карты). Эти физические устройства могут быть связаны друг с другом посредством той или иной среды передачи – USB-кабель, оптоволокно, радиоканал и т.п. На физическом уровне вообще не идет речи об IP-адресах, доменах, URL и т.п. Эти абстракции появляются на более высоких уровнях модели OSI.

Здесь играет роль правильность составления кадра из битов, для чего используются различные способы низкоуровневого или физического кодирования: манчестерский код, дифференциальное, потенциальное кодирование, NRZ, БВН и многие другие способы. Физическое кодирование осуществляется в рамках соответствующих стандартов, например, IEEE 802.3 .

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

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

1101100001 0 011

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

Канальный уровень

На этом уровне происходит контроль правильности составления кадров (фреймов). Типичный размер фрейма – 1 кБ. При разработке стеков протоколов на канальном уровне осуществляется помехоустойчивое кодирование. К таким способам кодирования относится код Хемминга, блочное кодирование, код Рида-Соломона. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой. Это не новый уровень, а просто реализация модели для конкретной операционной системы. Здесь, как и на физическом уровне, также пока нет ни байтов, ни файлов, ни т.п.

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

Взаимодействие на канальном уровне осуществляется, также как и на физическом, естественно, между физическими устройствами. Однако, для адресации используются так называемые МАС-адреса (аппаратные адреса). Они имеют следующий примерный вид (в шестнадцатеричном представлении):

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

Следует иметь в виду, что сервер (компьютер-адресат), получая пакеты от клиента (например, от браузера), естественно, получает и МАС-адрес компьютера, на котором запущен. браузер. Так же, как и его IP-адрес. И если IP-адрес несложно подменить, например, путем соединения с сервером-адресатом через прокси-сервер, то подмена МАС-адреса представляет собой куда более сложное занятие. Ранние версии операционных систем Linux, как правило, позволяли делать такую подмену на пользовательском уровне. Тогда как современные версии это запрещают (надеемся, понятно, почему). Впрочем, конечно, никто никому не мешает заново собрать и перекомпилировать ядро операционной системы, в котором уже предусмотреть такую замену. Однако, сделать это способен далеко не каждый программист. Или же можно использовать такой прокси-сервер, который будет парсить заголовки протоколов канального уровня и записывать в них какой-нибудь другой МАС-адрес.

Поэтому КАЖДЫЙ, кто выходит в интернет со своего компьютера, на котором установлена стандартная операционная система, типа Windows, Linux, MacOS, Android и т.п., неважно, через прокси-сервер или напрямую, должен ясно понимать, что МАС-адрес его компьютера может быть известен серверу-адресату . Если только, повторимся, он не использует такой прокси-сервер, который способен сделать подмену МАС-адреса. В общем же случае ЛЮБОЙ сервер способен точно идентифицировать пользователя - именно по его MAC-адресу. Кстати, этот аргумент когда-нибудь вполне сможет использовать Раскомнадзор, если ему будет дана команда - заблокировать интернет. Тут же в СМИ возникнут статьи на тему: "А Вы знаете, что любой сервер знает о ВАС ВСЁ?". Вот, мол, Раскомнадзор стал настолько заботлив о пользователях интернета, что решил защитить их от него. Причем, отметим, что Яндекс- и Google-метрики - это сущий пустяк по сравнению с этим. Ни Google, ни Яндекс не собирают информацию о МАС-адресах посетителей сайтов. Ну, по крайней мере, с их слов.

Аналогию можно привести в отношении сотовых телефонов. Ведь любой сотовый телефон представляет собой устройство, подключенное к внешней сети (через ближайшую вышку сотовой связи). КАЖДЫЙ сотовый телефон имеет уникальный МАС-адрес, как и компьютер, ноутбук и т.д. Поэтому ЛЮБОЙ сотовый оператор способен в течение нескольких секунд идентифицировать, с какого именно телефона производится звонок (вызов) на конкретную вышку. А телефонный номер здесь, по идее, и не столь важен, сим-карта может быть вообще любая, это не имеет значения. Может возникнуть вопрос: почему же тогда так называемые "правоохранительные" органы зачастую утверждают, что, якобы, "не могут найти" краденые сотовые телефоны? Ответ: потому, что не хотят или не имеют полномочий. Впрочем, может и хотят, и имеют полномочия, но кто-то вышестоящий запрещает им это делать. Другое дело, что ряд сотовых телефонов можно перепрошить, т.е. подменить в них МАС-адрес. Но, разве те, кто воруют телефоны, а также те, кто покупает краденые телефоны - это всегда делают? Как правило, нет. Ибо и те, и другие прекрасно осведомлены о том, что ни с какими такими МАС-адресами никто дела иметь не будет. Ну, за исключением особо важных случаев, конечно (точнее, "особо важных персон"). Там-то, да, будут смотреть не только МАС-адреса, а и многое другое.

Сетевой уровень

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

Т.е. еще раз следует подчеркнуть: фактически, связь осуществляется на основе МАС-адресов. Тогда как IP-адреса используются больше для организации сетевого взаимодействия, понятного не только для компьютеров, но и для людей.

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

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

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

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

В общем, дело обстоит следующим образом:

Клиент (например, браузер) начинает открывать страницу, URL которой введен, к примеру, в его адресной строке. Для начала, браузер будет делать запрос в сеть на предмет того – какому IP-адресу соответствует сервер с доменными именем, содержащимся в открываемом URL. Далее, делается запрос (см. выше) о том, каков МАС-адрес узла сети, соответствующий этому IP-адресу. И только после этого, когда браузер получает в свое распоряжение MAC-адрес искомого узла, он и может выполнить запрос к нему.

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

Типичная схема передачи сетевого запроса

Инкапсуляция протоколов

Кадр протокола канального уровня

В связи с этим предлагаем взглянуть на схему инкапсуляции протоколов:

или, отображая в виде рисунка:

Схема инкапсуляции сетевых протоколов (предварительно)

Для большей полноты изображения, покажем место IPv4-протокола в кадре канального протокола:

Схема инкапсуляции сетевых протоколов (полностью)

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

Гриша, если еще актуально: данные протокола НТТР вложены внутрь ТСР-пакетов. Порты разные у НТТР и ТСР и независимые друг от друга.

* тогда на какой МАС-адрес будет отправлять ответ адресат? Для ответа нам не нужен МАК отправителя для этого у нас есть его IP. Мы отправляем ответ в дефолтный шлюз (если для сети отправителя нет особых маршрутов).

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

Следует отметить, однако, что сами по себе эти протоколы каких-то значительных дополнительных возможностей не предоставляют. В отличие от них, комплект 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 , без ожидания подтверждения об их приеме, и только после этого останавливает передачу и ждет подтверждения. Если он получит подтверждение только на часть переданных данных, то начнет передачу новой порции с номера, следующего за подтвержденным.

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

Руководство по стеку протоколов 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 получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.

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