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

Протоколы данного типа позволяют реализовать модель соединения пакетов. По сути, они являются основой работы всего Интернета. И чаще всего при использовании термина TCP/IP подразумевают всю сеть, которая работает на основе 2 отдельных протоколов – TCP и IP.
Набор протоколов включает в себя ряд соглашений о межсетевом взаимодействии и маршрутизации. С помощью такого инструмента удается наладить связь между пользователями из университетов, исследовательских центров, промышленных предприятий и госучреждений.
TCP – аббревиатура, которая расшифровывается как Transfer Control Protocol. То есть по сути это специальный протокол, который управляет передачей. Он создан для установки и поддержания надежного соединения между устройствами. Именно он отвечает за передачу данных, контролирует объем передаваемых файлов и выполняет новую отправку при возникновении сбоев.
Характеристики протокола TCP заключаются в следующем:
- Реализация взаимодействия на уровне логического соединения.
- Организация потоковой отсылки данных.
- Двунаправленная взаимосвязь.
- Функция отправки отдельных пакетов данных.
- Использование принципа «скользящего окна» для увеличения скорости передачи.
Другой протокол – IP – расшифровывается как «Интернет протокол». Он является базовым для архитектуры передачи файлов и необходим для отправки сетевого пакета по необходимому адресу. Все данные предварительно делятся на несколько пакетов, которые отправляются независимо друг от друга до конечного адресата.
Основными характеристиками протокола IP является следующее:
- Реализация обмена данных при помощи сегментов.
- Взаимодействие устройств без использования логического соединения.
- Фрагментация IP-сегментов в случае необходимости.
- Отсутствие средств для управления скоростью передачи сегментов.
Стек сетевых протоколов требуется для поддержания связи компьютеров (хостов), которые подключены к сети. Главная особенность такого набора – аппаратная независимость, которую невозможно получить при использовании других сетевых технологий. То есть TCP/IP не зависит от характеристик аппаратного обеспечения, что позволяет организовать обмен данными между сетями с разными технологиями передачи. За счет использования IP-адресов поддерживается соединение между двумя любыми устройствами.
В протоколах предусмотрено выполнение ряда команд. Например:
- Передача файлов в другую систему.
- Выполнение команд в удаленном режиме.
- Отправка сообщений удаленным пользователям.
- Печать файлов в удаленном режиме.
- Вход в удаленную систему.
- Управление системой и др.
По сути стек протоколов TCP/IP является сетевой моделью, в которой описывается весь процесс передачи цифровых данных. До появления этого набора (в 70-е годы прошлого века) передача информации из одной сети в другую была невозможна. Разработка стека помогла решить эту проблему.
Разрабатывалось семейство протоколов под руководством Министерства обороны США, поэтому иногда его называют DoD-системой. Многие специалисты отмечают сходство системы с протоколами OSI, так как обе они строятся по принципу деления на уровни и выполнение отдельных функций на каждом из них.
Удаленный офис
и онлайн-продажи
За 1 день.
С бесплатным тестовым периодом.
Конфигуратор удаленных рабочих мест
Рабочие места для команды за 1 день
Общие термины и понятия
Отдельно стоит поговорить о понятиях, которые в той или иной мере связаны с TCP/IP. Для начала разберемся в понятии стека. По сути – это гибкое средство для организации сетевого взаимодействия, с помощью которого каждый пользователь может применить собственные настройки.
Для использования протоколов потребуется установка TCP/IP. Это – специальное программное обеспечение, необходимое для настройки сети. Оно устанавливается вместе с базовой операционной системой, то есть дополнительных программ не потребуется.
Настройка протоколов подразумевает процесс установки базовой ОС и не требует от пользователя дополнительных действий.
Еще один термин, который вы можете встретить при изучении темы – это карта сетевых адаптеров. Она представляет собой физическое устройство, которое подключается к сетевому кабелю.
Отдельно стоит рассказать про сетевые интерфейсы стека. TCP/IP на уровне сетевого интерфейса создает пакеты из IP-дейтаграмм, которые передаются при помощи сетевых технологий. В этой модели протоколов применяется схема IP-адресации, при помощи которой удается однозначно идентифицировать хосты и сети, с которыми компьютер устанавливает соединение.
Еще один термин, который нельзя не упомянуть, это демоны TCP/IP (то есть серверы). Они представляют собой процессы, работающие в фоновом режиме и выполняющие запросы других процессов.
Назначение протокола TCP/IP

Процесс передачи данных между устройствами требует, чтобы оба компьютера использовали одинаковый протокол.
Каждый протокол применяет свои способы борьбы с ошибками, которые могут возникнуть при передаче данных, однако принципиальная схема исправления одна и та же. Как мы уже отметили, передаваемый файл разбивается на отдельные пакеты, которые передаются на конечное устройства и соединяются в определенной последовательности. Каждый пакет дополнительно содержит контрольный байт, который позволяет убедиться в отсутствии ошибок. Если компьютер обнаруживает ошибку при передаче данных, то пакет запрашивается заново.
Такая процедура уменьшает объем информации, которую можно передавать в единицу времени, однако позволяет добиться надежности передачи.
Модель TCP/IP считается наиболее совершенной, так как позволяет настроить взаимодействие компьютеров и подключить к ним различные сетевые устройства. По сути основное назначение TCP/IP заключается в обеспечении трафика для крупных сетей и поддержание функционирования всего Интернета.
Форматы протоколов
Теперь поговорим о том, что такое IP-протокол. Как мы уже отмечали, этот межсетевой протокол в стеке используется для определения адресации сетевого уровня. Существует два основных формата протокола, которые применяется для IP адресов:
- IPv4. Представляет собой 32-битное число. Представление адресов в такой форме достаточно удобное – оно представляет собой 4 группы десятичных чисел (но строго от 0 до 255), которые разделяются точками. Например: 188.227.9.194.
- IPv6. Такой формат подразумевает использование 128-битного числа. Адреса формируются в виде 8 групп, в каждой из которых имеется 4 шестнадцатеричные цифры. Разделяются группы двоеточием. Например: 2001:0058:0db8:0074:1c60:2c18:1025:2b5f.
Уровневая модель протоколов
При рассмотрении модели TCP/IP нельзя обойти внимание и уровни, на которые она разделена. Интересно, что количество уровней регламентируется стандартом RFC. Этот стандарт выделяет 4 уровня (или ступени):
- канальный;
- сетевой (или межсетевой);
- транспортный;
- прикладной.
Ряд экспертов делят начальный уровень на канальный и физический, однако до сих пор не существует единого мнения о целесообразности такой классификации. Мы рассмотрим 4 основных уровня, которые выделяют чаще всего.
1. Канальный.
Его предназначение – описать то, как происходит обмен сведениями на ступени сетевых устройств. Также канальный уровень определяет, как именно информация будет передаваться от одной машины к другой. Данные на link layer обязательно кодируются, затем делятся на несколько пакетов и отправляются по выбранному каналу передачи.
На этом уровне определяется максимально допустимое расстояние для передачи данных, а также такие параметры, как задержка ответа, частота сигнала и т. д. То есть, все физические характеристики системы. Наиболее распространенным протоколом на этом уровне является Ethernet.
2. Межсетевой.
Этот уровень стека протоколов TCP/IP занимается соединением существующих локальных сетей в глобальную. В этом случае под локальными сетями понимают индивидуальные сети на каждом устройстве. Internet layer регламентирует передачу данных по множеству сетей, что позволяет наладить взаимодействие между разными системами.
Именно межсетевое взаимодействие является одним из ключевых принципов функционирования Интернета. Локальные сети объединяются в общую, глобальную, а благодаря пограничным и магистральным маршрутизаторам между ними осуществляется передача файлов.
3. Транспортный.
На этой ступени функционируют протоколы TCP и UDP, которые отвечают за отправку и доставку данных.
Первый протокол – TCP – управляет передачей, проверяет, все ли файлы дошли, насколько полным является полученный объем и не произошло ли ошибок во время процедуры. Протокол помогает двум компьютерам выполнять обмен пакетами при помощи установки специального соединения. Дополнительно TCP позволяет повторно запросить потерянные данные, устранить дублирующиеся пакеты и регулировать загрузку сети. Именно такой протокол отвечает за сборку полученных пакетов в правильном порядке.
А вот протокол UDP, используемый на transport layer, является менее надежным. Занимается он отправкой автономных датаграмм, однако не гарантирует их 100% получение. Данные могут быть утеряны или доставлены в неверном порядке. По этой причине UDP не используется в тех случаях, когда необходима надежная передача. Применение этого протокола допустимо только тогда, когда потеря данных не будет критичной для работы приложения. Также UDP требуется в тех случаях, когда невозможно по каким-либо причинам сделать повторный запрос данных.
4. Прикладной.
Последний уровень, который присутствует в протоколе типа TCP/IP – это прикладной. В отличие от той же системы OSI, отсутствуют промежуточные уровни (например, сеансовый), поэтому форматированием и разбивкой данных занимается программный интерфейс приложений. Приложение обращается к API, а в ответ получает набор действий или инструкцию по их выполнению.
Application layer существует для большинства программ, которые обмениваются файлами с нижними уровнями по уже существующим соединениям. Чаще всего для приложений создаются новые протоколы: например, HTTP – для отправки гипертекста, FTP – для отправки файлов и т. д.
Что такое стек

Теперь вернемся к вопросу о том, что такое «стек». Почти каждому пользователю знаком протокол Ethernet. В нем каждое устройство и адресат снабжаются MAC-адресом – он является идентификатором машины. Этот адрес объединяется с типом используемых данных и самими файлами. Фрагмент этих данных называют фреймом (frame). Стоит отметить, что MAC-адрес всегда уникален и не повторяется ни на одном устройстве, так как дубли могут привести к возникновению серьезных сетевых проблем.
Изучая уровневую структуру, становится очевидным, что выполнить передачу данных между двумя устройствами напрямую – невозможно. То есть, сначала все фрагменты файлов должны попасть на межсетевой уровень, где каждый компьютер получает IP-адрес. Далее на транспортном уровне происходит передача отдельных частей информации при помощи протокола TCP или UDP.
На каждом отдельном уровне к имеющимся файлам присоединяется и различная служебная информация. Например, она содержит указание порта на прикладном уровне, который служит для распознавания приложения. Дополнительную информацию могут добавлять разные протоколы: Ethernet, IP, TCP и т. д. Именно такая вложенность данных и называется стеком, а само название семейства протоколов TCP/IP – образовано по аббревиатурам двух основных протоколов.
Если обобщить понятие стека, то это – комплект сетевых протоколов с иерархической структурой. Главное условие его создания – это достаточный набор правил для организации взаимодействия устройств в сети. Все протоколы должны работать одновременно, без конфликтов, сбоев и незавершенных операций. Именно поэтому стек делится на отдельные уровни, каждый из которых направлен на решение определенной задачи: например, подготовку данных к отправке или их непосредственную передачу.
Изначально стек протоколов «ТСП/ИП» разработан в 1972 году на основе Network Control Protocol, но только спустя 4 года создана передача данных с применением протокола TCP. К концу 80-х было выделено две отдельные функции – TCP и IP. И уже к 1983 году удалось полностью перейти на современный протокол, что и считается отправной точкой развития Интернета.
Сравнение с моделью OSI
Многие сравнивают стек TCP/IP с моделью OSI, но стоит понимать, что между системами существует ряд принципиальных различий.
В OSI различают три начальных уровня – приложения, представления и сеансовый, – когда как в TCP/IP все это выделяется в прикладной уровень.
Ряд экспертов считают, что в первый уровень OSI намного шире и охватывает более широкие проблемы. Некоторые исследователи и вовсе включают первые слои OSI в модель TCP/IP, так как их можно встретить в современных стандартах. Но в большинстве случаев канальный уровень TCP/IP равняется канальному и физическому уровню в OSI.
Выводы
Стек модели TCP/IP контролирует взаимодействие различных уровней системы. Ключевыми в нем являются сами протоколы, которые встраиваются друг в друга и обеспечивают передачу данных. Однако если сравнивать модель с OSI, то ее архитектура более простая. Также стоит отметить, что стандарты протоколов постоянно обновляются, в то время как принцип действия TCP/IP остается неизменным.
Надеемся, что вы разобрались в том, что такое TCP/IP и в чем заключаются принципы его работы. Если у вас остались вопросы по теме, то специалисты Xelent обязательно ответят на них.
Что такое модель OSI и зачем она нужна: препарируем слоёный пирог интернета
Рассказываем, по каким механизмам работает интернет, как устройства обмениваются данными и почему вы можете сёрфить в соцсетях.


Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Что происходит, когда вы отправляете сообщение, скажем, в Telegram? Понятно, что Telegram отправляет это сообщение. Но что в этот момент происходит в компьютере и в сети? Куда летят файлы и как они понимают, куда им лететь? Разберёмся вместе в этой статье.
Всё, что нужно знать о модели OSI:
- Что это такое
- Первый уровень OSI
- Второй уровень OSI
- Третий уровень OSI
- Четвёртый уровень OSI
- Пятый уровень OSI
- Шестой уровень OSI
- Седьмой уровень OSI
- Как модель работает на практике
- Что запомнить
Что такое модель OSI
Модель OSI (Open System Interconnection), или эталонная модель взаимодействия открытых систем описывает, как устройства в локальных и глобальных сетях обмениваются данными и что происходит с этими данными. Её предложили в 1984 году инженеры из Международной организации по стандартизации (ISO), которая работала над единым стандартом передачи данных по интернету.
При этом сама по себе эталонная модель — не стандарт интернета, как, например, TCP/IP; её можно сравнить с фреймворками в мире языков программирования: в OSI «из коробки» доступны разные веб-стандарты — UDP, HTTP, FTP, Telnet и другие. Всего таких протоколов — более 100 штук.
Модель OSI включает семь слоёв, или уровней, — причём каждый из них выполняет определённую функцию: например, передать данные или представить их в понятном для человека виде на компьютере. Кстати, у каждого слоя — свой набор протоколов.
Слои ничего не знают о том, как устроены другие слои. Это называется абстракцией.

Самый нижний слой отвечает за физическое представление данных, то есть за то, как данные передаются по проводам или с помощью радиоволн, а самый верхний — за то, как приложения взаимодействуют с сетью.
Нижний слой оперирует такими понятиями, как «тип кабеля» или «тип коннектора», а верхний — такими, как HTTP или API.
Рассмотрим каждый слой подробнее.
1-й уровень OSI — физический
(L1, physical layer)
На самом нижнем уровне модели OSI данные представляют собой физические объекты — ток, свет или радиоволны. Они передаются по проводам или с помощью беспроводных сигналов.
Этот слой работает с кабелями, контактами в разъёмах, модуляцией сигнала, кодированием единиц и нулей и другими низкоуровневыми штуками. По сути, первый уровень — это уровень проводов и физических способов передачи сигнала. Минимальная абстракция.

Самый известный протокол на физическом уровне — Ethernet. Он описывает, как сигналы кодируются и передаются по проводам. Кроме него есть Bluetooth, Wi-Fi и ИК-порт, которые также содержат инструкции для передачи данных.
Устройства физического уровня — концентраторы и репитеры. Они работают с физическим сигналом «втупую» и не вникают в его логику: получили данные — передали их дальше по проводу.

2-й уровень OSI — канальный
(L2, data link layer)
Над физическим уровнем располагается канальный. Его задача — проверить целостность полученных данных и исправить ошибки. Этот уровень «поумнее» предыдущего: он уже понимает, что разные амплитуды напряжений отвечают разным битам — нулям и единицам. А ещё канальный уровень умеет кодировать сигналы в биты и передавать их дальше.
Полученные с нижнего уровня данные делятся на фреймы, или кадры. Каждый фрейм состоит из служебной информации — например, адреса отправителя и адреса получателя, — а также самих данных.

Получается что-то вроде почтового конверта. На лицевой стороне у него написано, от кого пришло письмо, а внутри находится само письмо (в нашем случае данные).
Лицевая сторона конверта — это MAC-адрес устройства, которое отправило нам информацию. Он нужен, чтобы идентифицировать устройства в локальной сети, состоит из 48 или 64 бит и выглядит примерно так:

Ещё один важный факт о MAC-адресах: когда на заводе собирают ноутбук или смартфон, ему сразу же присваивают определённый MAC-адрес, который потом уже никак нельзя поменять. MAC-адрес настольных ПК зашит в сетевую карту, поэтому его можно изменить, только заменив эту самую карту.

С помощью команды ifconfig можно узнать MAC-адрес вашего Macbook или компьютера на Linux. В Windows нужно ввести команду ipconfig.
Канальный уровень не так прост — он делится ещё на два подуровня:
- уровень управления логическим каналом — LLC (logical link control);
- уровень управления доступом к среде — тот самый MAC (media access control).
Первый подуровень нужен для взаимодействия с верхним уровнем, сетевым, а второй — для взаимодействия с нижним, физическим.
Устройства канального уровня — коммутаторы и мосты. Они нужны, чтобы передавать фреймы нужному адресату. Протоколы канального уровня — PPP, CDP.
3-й уровень OSI — сетевой
(L3, network layer)
Этот уровень отвечает за маршрутизацию данных внутри сети между компьютерами. Здесь уже появляются такие термины, как «маршрутизаторы» и «IP-адреса».

Маршрутизаторы позволяют разным сетям общаться друг с другом: они используют MAC-адреса, чтобы построить путь от одного устройства к другому.
Данные на сетевом уровне представляются в виде пакетов. Такие пакеты похожи на фреймы из канального уровня, но используют другие адреса получателя и отправителя — IP-адреса.
Чтобы получить IP-адрес обоих устройств (отправителя и получателя), существует протокол ARP (address resolution protocol). Он умеет конвертировать MAC- в IP-адрес и наоборот.

4-й уровень OSI — транспортный
(L4, transport layer)
Из названия понятно, что на этом уровне происходит передача данных по сети. Так и есть. Два главных протокола здесь — TCP и UDP. Они как раз и отвечают за то, как именно будут передаваться данные.
TCP (Transmission Control Protocol) — это протокол, который гарантирует доставку данных в корректном виде. Он жёстко следит за каждым битом информации, но работает гораздо медленнее UDP.
Например, когда вы вводите логин и пароль при входе в социальную сеть, очень важно, чтобы все символы отправились в определённой последовательности. Если какие-то потеряются или изменятся, вы просто не сможете авторизоваться. Поэтому протокол TCP использует разные методы проверок — например, контрольные суммы.

А вот в видео или аудио небольшие потери некритичны, зато важна скорость передачи данных. Для таких задач как раз и придумали протокол UDP (user datagram protocol). Он уже не проверяет цельность битов, его задача — как можно быстрее передать данные с одного устройства на другое.
В протоколе TCP данные делятся на сегменты. Каждый сегмент — часть пакета. Сегменты нужны, чтобы передавать информацию по сети, учитывая её пропускную способность.
Например, если вы передаёте данные с компьютера, у которого пропускная способность 100 Мб/c, на смартфон с пропускной способность 10 Мб/c, то данные разделятся так, чтобы не застревать в самом медленном устройстве.

Ещё сегментация важна для надёжности. Один большой пакет может потеряться или направиться не тому адресату. А маленькие пакеты снижают риск подобных ошибок и даже позволяют проверять их количество. Если какой-то сегмент не получилось доставить, протокол TCP может запросить его у отправителя снова. Так обеспечивается надёжность.
В UDP данные делятся на датаграммы — это примерно то же, что и пакет, только датаграммы автономны. Каждая датаграмма имеет всё необходимое, чтобы дойти до получателя. Поэтому они не зависят от сети и могут доставляться по разным маршрутам и в произвольном порядке.
5-й уровень OSI — сеансовый
(L5, session layer)
Начиная с этого уровня и выше, данные имеют уже нормальный вид — например, привычных нам JPEG- или MP3-файлов. Задача сети на этих уровнях — представить информацию в понятном для человека виде и сделать так, чтобы пользователь мог её как-то «потрогать».
Сеансовый уровень управляет соединениями, или сессиями. Типичный пример — звонок по Skype или Zoom. Когда вы звоните другому человеку, между вашими компьютерами устанавливается соединение, по которому передаются аудио и видео. Если такое соединение разорвать, то и ваш звонок прервётся.
На сеансовом уровне очень важно, чтобы соединение правильно установилось и поддерживалось. То есть механизмы протоколов должны проверить, что у обоих собеседников есть нужные кодеки и сигнал между устройствами присутствует.

6-й уровень OSI — уровень представления данных
(L6, presentation layer)
На этом уровне происходит преобразование форматов данных — их кодирование и сжатие. Например, полученные данные могут превратиться в GIF- или MP4-файл. То же самое происходит и в обратном порядке: когда пользователь отправляет файл другому человеку, данные сначала конвертируются в биты и сжимаются, а потом уже передаются на транспортный уровень.
Помимо кодировки и сжатия на уровне представления, данные могут шифроваться — если, конечно, это необходимо.

7-й уровень OSI — прикладной
(L7, application layer)
Последний уровень модели OSI — прикладной. На нём находятся сетевые службы, которые помогают без проблем сёрфить в интернете.
Прикладной уровень похож на некий графический интерфейс для всей модели OSI — с его помощью пользователь взаимодействует с другими уровнями, даже не подозревая об этом. Этот интерфейс называется сетевым.
Самые популярные из сетевых интерфейсов — это HTTP, HTTPS, FTP и SMTP. А «устройства» здесь — это уже программы: Zoom, Telegram, браузеры.

Как на практике работает сетевая модель OSI
В начале статьи мы задались вопросом: а как передаются сообщения в Telegram? Настало время на него ответить — и показать весь процесс передачи данных по модели OSI.
Мы хотим отправить сообщение нашему другу. Печатаем текст и нажимает кнопку «Отправить», а дальше перемещаемся внутрь компьютера.
Прикладной уровень. Приложение Telegram работает на прикладном уровне модели OSI. Когда мы печатаем текст сообщения и нажимаем кнопку «Отправить», эти данные передаются на сервер мессенджера, а оттуда — нашему другу.
Весь процесс проходит через API разных библиотек — например, для HTTP-запросов. Интерфейсы позволяют без лишних проблем обмениваться данными и не погружаться в то, как они представлены на низком уровне. Всё, что нужно знать, — это какую функцию вызвать и какие переменные туда передать.
Уровень представления. Здесь данные должны преобразоваться в унифицированный формат, чтобы их можно было передавать на разные устройства и операционные системы. Например, если мы отправляем сообщение c Windows на macOS, данные должны быть в читаемом для компьютеров Apple виде. Такая же ситуация и с другими устройствами.
Раз мы собираемся передать данные на другой компьютер, их нужно перевести в бинарный формат. После этого начнётся сам процесс передачи по сети.
Сеансовый уровень. Чтобы данные успешно передались сначала на сервер Telegram, а затем к нашему другу, приложению нужно установить соединение, или сеанс. Он обеспечивает синхронизацию между устройствами и восстанавливает связь, если она прервалась.
Благодаря сеансам вы можете видеть, что собеседник что-то печатает или отправляет вам картинки или видео. Но главная задача этого соединения — обеспечить стабильное соединение для передачи данных.
Транспортный уровень. Когда соединение установлено и данные унифицированы, пора передавать их. Этим занимается транспортный уровень.
Здесь данные разбиваются на сегменты и к ним добавляется дополнительная информация — например, номер порта и контрольные суммы. Всё это нужно, чтобы данные дошли до пользователя в целостности.
Сетевой уровень. Теперь данным нужно найти маршрут к устройству нашего друга, а затем отправить их по нему. Поэтому данные упаковываются в пакеты и к ним добавляются IP-адреса.
Чтобы получить IP-адрес устройств, которым нужно отправить пакеты, маршрутизаторы (устройства сетевого уровня) обращаются к ARP. Этот протокол быстро найдёт адрес получателя и отдаст его нам.
Канальный уровень. Здесь данные передаются от одного MAC-адреса к другому. Изначальный текст делится на фреймы — с заголовками и контрольными суммами для проверки целостности данных.
Физический уровень. И на самом нижнем уровне данные в виде электрических сигналов передаются по проводам, кабелям или по радиоволнам. Тут только одна задача — как можно быстрее откликаться на сигналы свыше.
После прохождения всех уровней модели OSI сообщение успешно доставляется на устройство нашего друга. Правда, в реальности это занимает всего миллисекунды.
Что запомнить
Модель OSI описывает, как работает весь интернет: как электрические сигналы преобразуются в картинки с котиками и как устройства обмениваются этими данными.
Модель включает семь уровней:
- физический;
- канальный;
- сетевой;
- транспортный;
- сеансный;
- представления;
- прикладной.
На каждом уровне находятся определённые протоколы, которые помогают данным перемещаться или превращаться в удобный для пользователей формат.
Больше интересного про код в нашем телеграм-канале. Подписывайтесь!
Читайте также:
- Кирпичи для интернета: топ‑10 концепций современной веб‑архитектуры, которые вам точно нужно знать
- Тест: угадайте, где эзотерические языки программирования, а где — нет
- Языки программирования: что это такое, зачем нужны и какой выбрать новичку
В некоторых версиях Linux вместо ifconfig сейчас используется команда ip.
Курс
Профессия Специалист по кибербезопасности с нуля
Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT.
Программа курса — самая полная на рынке!
Стек протоколов TCP/IP: структура, уровни, настройка. Интернет-протоколы
![]()
В этой статье будут рассказаны основы модели TCP/IP. Для лучшего понимания описаны основные протоколы и службы. Главное — не торопиться и стараться понимать каждую вещь поэтапно. Все они взаимосвязаны и без понимания одной, трудно будет понять другую. Здесь скомпонована весьма поверхностная информация, так что эту статью смело можно назвать «стеком протоколов TCP/IP для чайников». Однако, многие вещи здесь не так трудны для понимания, как может показаться на первый взгляд.
TCP/IP
Стек TCP/IP — сетевая модель передачи данных в сети, она определяет порядок взаимодействия устройств. Данные поступают на канальный уровень и обрабатываются поочередно каждым уровнем выше. Стек представлен в виде абстракции, которая объясняет принципы обработки и приема данных.
Стек протоколов сети TCP/IP имеет 4 уровня:
- Канальный (Link).
- Сетевой (Internet).
- Транспортный (Transport).
- Прикладной (Application).

Прикладной уровень
Прикладной уровень обеспечивает возможность взаимодействия между приложением и другими уровнями стека протоколов, анализирует и преобразовывает поступающую информацию в формат, подходящий для программного обеспечения. Является ближайшим к пользователю и взаимодействует с ним напрямую.
Самые распространенные протоколы:
Каждый протокол определяет собственный порядок и принципы работы с данными.
HTTP (HyperText Transfer Protocol) предназначен для передачи данных. По нему отправляются, например, документы в формате HTML, которые служат основой веб-страницы. Упрощенно схема работы представляется как «клиент – сервер». Клиент отправляет запрос, сервер его принимает, должным образом обрабатывает и возвращает конечный результат.
FTP (File Transfer Protocol) служит стандартом передачи файлов в сети. Клиент посылает запрос на некий файл, сервер ищет этот файл в своей базе и при успешном обнаружении отправляет его как ответ.
SMTP (Simple Mail Transfer Protocol) используется для передачи электронной почты. SMTP-операция включает в себя три последовательных шага:
- Определение адреса отправителя. Это необходимо для возвращения писем.
- Определение получателя. Этот шаг может повторяться некоторое количество раз при указании нескольких адресатов.
- Определение содержимого сообщения и отправка. В качестве служебной информации передаются данные о типе сообщения. Если сервер подтверждает готовность принять пакет, то совершается сама транзакция.
Заголовок (Header)

В заголовке содержатся служебные данные. Важно понимать, что они предназначаются только для конкретного уровня. Это значит, что как только пакет отправится к получателю, то будет обработан там по такой же модели, но в обратном порядке. Вложенный заголовок будет нести специальную информацию, которая может быть обработана только определенным образом.
Например, заголовок, вложенный на транспортном уровне, на другой стороне может быть обработан только транспортным уровнем. Другие просто его проигнорируют.
Транспортный уровень
На транспортном уровне полученная информация обрабатывается как единый блок, вне зависимости от содержимого. Полученные сообщения делятся на сегменты, к ним добавляется заголовок, и все это отправляется ниже.
Протоколы передачи данных:
TCP (Transmission Control Protocol) — самый распространенный протокол. Он отвечает за гарантированную передачу данных. При отправке пакетов контролируется их контрольная сумма, процесс транзакции. Это значит, что информация дойдет «в целости и сохранности» независимо от условий.
UDP (User Datagram Protocol) — второй по популярности протокол. Он также отвечает за передачу данных. Отличительное свойство кроется в его простоте. Пакеты просто отправляются, не создавая особенной связи.
TCP или UDP?
У каждого из этих протоколов есть своя область применения. Она логически обусловлена особенностями работы.
Основное преимущество UDP заключается в скорости передачи. TCP является сложным протоколом с множеством проверок, в то время как UDP представляется более упрощенным, а значит, и более быстрым.
Недостаток кроется в простоте. Ввиду отсутствия проверок не гарантируется целостность данных. Таким образом, информация просто отправляется, а все проверки и подобные манипуляции остаются за приложением.
UDP используется, например, для просмотра видео. Для видеофайла не критична потеря небольшого количества сегментов, в то время как скорость загрузки – важнейший фактор.
Однако если необходимо отправить пароли или реквизиты банковской карты, то необходимость использования TCP очевидна. Потеря даже самой мизерной части данных может повлечь за собой катастрофические последствия. Скорость в этом случае не так важна, как безопасность.
Сетевой уровень
Сетевой уровень из полученной информации образует пакеты и добавляет заголовок. Наиболее важной частью данных являются IP и MAC-адреса отправителей и получателей.
IP-адрес (Internet Protocol address) – логический адрес устройства. Содержит информацию о местоположении устройства в сети. Пример записи: [192.168.33.4].
MAC-адрес (Media Access Control address) – физический адрес устройства. Используется для идентификации. Присваивается сетевому оборудованию на этапе изготовления. Представлен как шестибайтный номер. Например: [08-00-27-AB-0E-25].
Сетевой уровень отвечает за:
- Определение маршрутов доставки.
- Передачу пакетов между сетями.
- Присвоение уникальных адресов.
Маршрутизаторы — устройства сетевого уровня. Они прокладывают путь между компьютером и сервером на основе полученных данных.
Самый популярный протокол этого уровня – IP.
IP (Internet Protocol) — интернет-протокол, предназначенный для адресации в сети. Используется для построения маршрутов, по которым происходит обмен пакетами. Не обладает никакими средствами проверки и подтверждения целостности. Для обеспечения гарантий доставки используется TCP, который использует IP в качестве транспортного протокола. Понимание принципов этой транзакции во многом объясняет основу того, как работает стек протоколов TCP/IP.
Виды IP-адресов

В сетях используются два вида IP-адресов:
Публичные (Public) используются в Интернете. Главное правило – абсолютная уникальность. Пример их использования – маршрутизаторы, каждый из которых имеет свой IP-адрес для взаимодействия с сетью Интернет. Такой адрес называется публичным.
Приватные (Private) не используются в Интернете. В глобальной сети такие адреса не являются уникальными. Пример – локальная сеть. Каждому устройству присваивается уникальный в пределах данной сети IP-адрес.
Взаимодействие с сетью Интернет ведется через маршрутизатор, который, как уже было сказано выше, имеет свой публичный IP-адрес. Таким образом, все компьютеры, подключенные к маршрутизатору, представляются в сети Интернет от имени одного публичного IP-адреса.
IPv4
Самая распространенная версия интернет-протокола. Предшествует IPv6. Формат записи — четыре восьмибитных числа, разделенные точками. Через знак дроби указывается маска подсети. Длина адреса — 32 бита. В подавляющем большинстве случаев, когда речь идет об IP-адресе, имеется в виду именно IPv4.
Формат записи: [192.168.7.2/24].
IPv6
Эта версия предназначается для решения проблем предыдущей версией. Длина адреса — 128 бит.
Основная проблема, которую решает IPv6 – это исчерпание адресов IPv4. Предпосылки начали проявляться уже в начале 80-х годов. Несмотря на то, что эта проблема вступила в острую стадию уже в 2007-2009 годах, внедрение IPv6 очень медленно «набирает обороты».
Главное преимущество IPv6 – более быстрое интернет-соединение. Это происходит из-за того, что для этой версии протокола не требуется трансляции адресов. Выполняется простая маршрутизация. Это является менее затратным и, следовательно, доступ к интернет-ресурсам предоставляется быстрее, чем в IPv4.
Пример записи: [4003:0af3:06s8:11f3:8b4e:09d8:623b:d34f].
Существует три типа IPv6-адресов:
- Unicast.
- Anycast.
- Multicast.
Unicast – тип одноадресных IPv6. При отправке пакет достигает только интерфейса, расположенного на соответствующем адресе.
Anycast относится к групповым IPv6-адресам. Отправленный пакет попадет в ближайший сетевой интерфейс. Используется только маршрутизаторами.
Multicast являются многоадресными. Это значит, что отправленный пакет достигнет всех интерфейсов, находящихся группе мультивещания. В отличие от broadcast, который является «вещанием для всех», multicast вещает лишь определенной группе.
Маска подсети
Маска подсети выявляет из IP-адреса подсеть и номер хоста.
Например, IP-адрес [192.168.38.2] имеет маску [255.255.255.0]. В таком случае формат записи будет выглядеть так [192.168.38.2/24]. Число «24» – это количество бит в маске. Восемь бит равняется одному октету, который также может называться байтом.
Если подробнее, то маску подсети [255.255.255.0] можно представить в двоичной системе счисления таким образом: [11111111.11111111.11111111.00000000]. В ней имеется четыре октета, и запись состоит из «1» и «0». Если сложить количество единиц, то получим в сумме «24». К счастью, считать по единице не обязательно, ведь в одном октете – 8 значений. Видим, что три из них заполнены единицами, складываем [8+8+8+0] и получаем «24».
Если говорить именно о маске подсети, то в двоичном представлении она имеет в одном октете либо единицы, либо нули. При этом последовательность такова, что сначала идут байты с единицами, а только потом с нулями.

Рассмотрим небольшой пример. Есть IP-адрес [192.168.46.2] и маска подсети [255.255.255.0]. Считаем и записываем: [192.168.46.2/24]. Теперь сопоставляем маску с IP-адресом. Те октеты маски, в которых все значения равны единице (255) оставляют соответствующие им октеты в IP-адресе без изменения. Если же в значении нули (0), то октеты в IP-адресе также становятся нулями. Таким образом, в значении адреса подсети получаем [192.168.46.0].
Подсеть и хост
Подсеть отвечает за логическое разделение. По сути, это устройства, использующие одну локальную сеть. Определяется диапазоном IP-адресов.
Хост – это адрес сетевого интерфейса (сетевой карты). Определяется из IP-адреса с помощью маски. Например: [192.168.15.2/24]. Так как первые три октета — подсеть, то остается [0.0.0.2]. Это и есть номер хоста.

Диапазон адресов хоста – от 0 до 255. Хост под номером «0» является, собственно, адресом самой подсети. А хост под номером «255» является широковещательным.
Адресация

Для адресации в стеке протоколов TCP/IP используются три типа адресов:
- Локальные.
- Сетевые.
- Доменные имена.
Локальными называются MAC-адреса. Они используются для адресации в таких технологиях локальной сети как, например, Ethernet. В контексте TCP/IP слово «локальные» означает, что они действуют лишь в пределах подсети.
Сетевым адресом в стеке протоколов TCP/IP является IP-адрес. При отправке файла из его заголовка считывается адрес получателя. С его помощью маршрутизатор узнает номер хоста и подсеть и, основываясь на этой информации, прокладывает маршрут к конечному узлу.
Доменные имена – это удобочитаемые адреса веб-сайтов в Интернете. Веб-сервера в сети Интернет доступны по публичному IP-адресу. Он успешно обрабатывается компьютерами, однако для людей представляется слишком неудобным. Для того чтобы избежать подобных сложностей, используются доменные имена, которые состоят из областей, называемых «доменами». Они располагаются в порядке строгой иерархии, от верхнего уровня к нижнему.
Домен первого уровня представляет конкретную информацию. Общие (.org, .net) не ограничены какими-либо строгими границами. Обратная ситуация — с локальными (.us, .ru). Они, как правило, привязаны территориально.
Домены низших уровней – это все остальное. Он может быть любого размера и содержать любое количество значений.

Например, «www.test.quiz.sg» – корректное доменное имя, где «sg» — локальный домен первого (верхнего) уровня, «quiz.sg» — домен второго уровня, «test.quiz.sg» — домен третьего уровня. Доменные имена также могут называться DNS-именами.
DNS (Domain Name System) устанавливает соответствие между доменными именами и публичным IP-адресом. При наборе доменного имени в строке браузера DNS обнаружит соответствующий IP-адрес и сообщит устройству. Устройство обработает этот машинный код и вернет его в виде веб-страницы.
Канальный уровень
На канальном уровне определяется взаимосвязь между устройством и физической средой передачи, добавляется заголовок. Отвечает за кодировку данных и подготовку фреймов для передачи по физической среде. На этом уровне работают сетевые коммутаторы.
Самые распространенные протоколы:
Ethernet – наиболее распространенная технология проводных локальных сетей.
WLAN – локальная сеть на основе беспроводных технологий. Взаимодействие устройств происходит без физических кабельных соединений. Пример самого распространенного метода – Wi-Fi.
Настройка TCP/IP для использования статического IPv4-адреса
Статический IPv4-адрес назначается напрямую в настройках устройства или автоматически при подключении к сети и является постоянным.
Для настройки стека протоколов TCP/IP на использование постоянного IPv4-адреса необходимо ввести в консоль команду ipconfig/all и найти следующие данные.

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

Настройка TCP/IP для использования динамического IPv4-адреса
Динамический IPv4-адрес используется какое-то время, сдается в аренду, после чего меняется. Присваивается устройству автоматически при подключении к сети.
Чтобы настроить стек протоколов TCP/IP на использование непостоянного IP-адреса необходимо зайти в свойства нужного соединения, открыть свойства IPv4 и поставить отметки так, как указано.

Способы передачи данных
Данные передаются через физическую среду тремя способами:
- Simplex.
- Half-duplex.
- Full Duplex.
Simplex – это односторонняя связь. Передача ведется только одним устройством, в то время как другое только принимает сигнал. Можно сказать, что информация транслируется только в одном направлении.

Примеры симплексной связи:
- Телевещание.
- Сигнал от спутников GPS.
Half-duplex – это двусторонняя связь. Однако только один узел может передавать сигнал в определенный момент времени. При такой связи два устройства не могут одновременно использовать один канал. Полноценная двусторонняя связь может быть невозможна физически или приводить к коллизиям. Говорится, что они конфликтуют за среду передачи. Этот режим применяется при использовании коаксиального кабеля.

Пример полудуплексной связи — общение по рации на одной частоте.
Full Duplex – полноценная двусторонняя связь. Устройства могут одновременно транслировать сигнал и производить прием. Они не конфликтуют за среду передачи. Этот режим применяется при использовании технологии Fast Ethernet и соединении с помощью витой пары.

Пример дуплексной связи — общение по телефону через мобильную сеть.
TCP/IP vs OSI
Модель OSI определяет принципы передачи данных. Уровни стека протоколов TCP/IP прямо соответствуют этой модели. В отличие от четырехуровневого TCP/IP имеет 7 уровней:
- Физический (Physical).
- Канальный (Data Link).
- Сетевой (Network).
- Транспортный (Transport).
- Сеансовый (Session).
- Представительский (Presentation).
- Прикладной (Application).
В данный момент не стоит сильно углубляться в эту модель, но необходимо хотя бы поверхностное понимание.

Прикладной уровень в модели TCP/IP соответствует трем верхним уровням OSI. Все они работают с приложениями, поэтому можно отчетливо проследить логику такого объединения. Такая обобщенная структура стека протоколов TCP/IP способствует облегченному пониманию абстракции.
Транспортный уровень остается без изменений. Выполняет одинаковые функции.
Сетевой уровень также не изменен. Выполняет ровно те же задачи.
Канальный уровень в TCP/IP соответствует двум последним уровням OSI. Канальный уровень устанавливает протоколы передачи данных через физическую среду.
Физический представляет собой собственно физическую связь — провода, кабели, электрические сигналы, коннекторы и т.п. В стеке протоколов TCP/IP было решено объединить эти два уровня в один, так как они оба работают с физической средой.
Подробное описание 4 уровней модели TCP/IP и сравнение с OSI
Название стека протоколов TCP/IP было выбрано в честь самых популярных уровней Сетевого и Транспортного. Стек протоколов делали для глобальных сетей, чтобы: соединить компьютеры между собой, и телефонные линии связи методом “Точка-Точка”.
p, blockquote 1,0,0,0,0 —>

p, blockquote 2,0,0,0,0 —>
При появлении современных технологий сетей, Ethernet, спутниковых технологий, адаптировать TCP IP для этих технологий оказалось не просто. Выяснилось, что стека протоколов недостаточно необходима модель, которая будет говорить о том, как люди должны создавать сети на основе разных технологий, чтобы в этих сетях мог действовать стек протоколов tcp ip.
p, blockquote 3,0,0,0,0 —>
Всего 4 уровня Модели TCP/IP
На рисунке модель представлена рядом с моделью открытых систем (OSI), у этих моделей функции большинства уровней одинаковы.
p, blockquote 4,0,1,0,0 —>

p, blockquote 5,0,0,0,0 —>
Первый уровень Сетевых Интерфейсов
Нижний уровень сетевых интерфейсов — это интерфейс который обеспечивает связь с разными сетевыми технологиями, например очень популярными сейчас Ethernet, Wi-Fi и остальными подобными, но и со стареющими технологиями DSL для передачи данных через модем.
p, blockquote 6,0,0,0,0 —>

p, blockquote 7,0,0,0,0 —>
Второй уровень Интернет
Уровень Интернет аналогичен сетевому уровню в OSI. Это уровень необходим для того, чтобы найти маршрут в составной сети, объединяющей сети созданные на основе других технологий. Передавая данные используем протоколы ip.
p, blockquote 8,0,0,0,0 —>
Третий уровень Транспортный
Объединяет процессы происходящие между 2-мя абсолютно разными компьютерами (ноутбуками). В стеке TCP/IP существуют 2 протокола, tcp необходимый для передачи данных гарантируя доставку и udp который передаёт данные с большой скоростью, но к сожалению, не гарантируя доставку.
p, blockquote 9,1,0,0,0 —>
Четвертый уровень Прикладной
Объединил в себе функции аж три уровня модели OSI, видно по картинке. В модели TCP IP считается, если приложению нужны какие-либо функции уровня представления или сеансового, то оно должно их само реализовывать. На практике это оправдано.
p, blockquote 10,0,0,0,0 —>
Здесь находятся определенные протоколы необходимые для решения тех или иных задач. HTTP нужен для веб, SMTP для передачи почты, DNS для назначения ip адресам человеко понятных url доменных имен, FTP для передачи файлов. На самом деле протоколов в прикладном уровне большое количество.
p, blockquote 11,0,0,0,0 —>
Автор Э. Таненбаум в книге Компьютерные сети, объединил достоинства двух моделей OSI и TCP/IP. Именно такая модель, изображенная на картинке, применяется на практике.
p, blockquote 12,0,0,0,0 —>

p, blockquote 13,0,0,0,0 —>
Сравнение моделей OSI и TCP/IP
Достоинства модели открытых систем в хорошей теоретической проработке, именно в это модели разделено понятие интерфейса и реализации. В модели tcp|ip такого не было, сетевой уровень предоставлял транспортному, сервис отправить ip пакет, при вызове нужной функции пользователь должен был передать туда ссылку на полностью сформированный ip пакет, это было неудобно.
p, blockquote 14,0,0,1,0 —>
Достоинства модели tcp — стек протоколов, которые широко используются на практике и лежат в основе интернет. К сожалению, модель TCP IP теоретически проработана не очень хорошо и не пригодна для описания, каких либо сетей, кроме тех в которых работает стек протоколов tcp.
p, blockquote 15,0,0,0,0 —>

p, blockquote 16,0,0,0,0 —>
Где применяют
Модель взаимодействия открытых систем часто используют для описания работы различных сетей, например Fiber Channel, SS7)
p, blockquote 17,0,0,0,0 —>
p, blockquote 18,0,0,0,0 —>
Заключение
h2 4,0,0,0,0 —> p, blockquote 19,0,0,0,1 —>
Стек протоколов TCP/IP популярный в современное время — набор сетевых протоколов, такой стек является фундаментом интернет. Модель TCP/IP это defacto стандарт на организацию сети. Модель описывает, как нужно строить сети, для работы стека протоколов TCP/IP. Рекомендую почитать статью про модель OSI для полного понимания.