P.S. и это не олени...
На кону Новый год, а значит время заказывать подарочки!
Вы открываете приложение Wildberries/Ozon, кладёте в корзину бизиборд для племянника, ароматическую свечку для мамы, носки с капибарами для брата и нажимаете «Оплатить».
Через пару секунд — «Заказ №2025-12345 успешно оформлен. Доставим 29 декабря до 17:00».
Новогодняя магия? Почти. На самом деле за эти доли секунды ваш телефон и сервер маркетплейса успели обменяться тысячами маленьких пакетов данных по всему миру. И всё это по строгим правилам одного-единственного «закона интернета» — модели TCP/IP.
Именно о нём мы сегодня и расскажем: что это такое, кто и когда его придумал, как он работает на примере вашего новогоднего заказа и почему до сих пор именно TCP/IP правит всем интернетом.
Что такое TCP/IP и кто его придумал
TCP/IP (от англ. Transmission Control Protocol / Internet Protocol) — это совокупность протоколов, которая задает правила передачи данных по сети, объединяя устройства в единое информационное пространство.
Ключевые Протоколы
Название модели дано в честь двух основных протоколов:
- TCP (Transmission Control Protocol): Отвечает за надежность передачи данных. Он разбивает информацию на сегменты, нумерует их, отправляет, контролирует, чтобы все они дошли до получателя, и собирает их обратно в правильном порядке.
- IP (Internet Protocol): Отвечает за адресацию и маршрутизацию. Его задача — найти уникальный IP-адрес получателя в сети и определить оптимальный путь, по которому пакеты данных должны пройти, чтобы добраться до цели.
Под названием TCP/IP скрывается не только эта пара, но и десятки других протоколов: UDP, HTTP, HTTPS, DNS, SMTP, FTP, ICMP, ARP и т.д.
История
Чтобы понять историю TCP/IP, важно знать о сети ARPANET (Advanced Research Projects Agency Network). ARPANET была экспериментальной компьютерной сетью, созданной в конце 1960-х годов Министерством обороны США через его Агентство передовых исследовательских проектов (ARPA, ныне DARPA).
Основной задачей ARPANET было создание устойчивой, распределенной сети, которая могла бы продолжать работать, даже если часть ее компонентов выйдет из строя (например, в случае ядерной атаки или стихийного бедствия). Это требовало децентрализованного подхода к передаче данных.
ARPANET была первой крупной сетью, реализовавшей технологию пакетной коммутации — метод передачи данных, при котором информация разбивается на небольшие блоки (пакеты), и каждый пакет отправляется по сети независимо, находя свой собственный оптимальный маршрут к получателю.
Изначально ARPANET использовала другой протокол. Однако в 1970-х годах, когда сеть начала расти, стало ясно, что ей нужен более универсальный и гибкий набор правил для обмена данными между разнородными сетями. Именно для решения этой проблемы Винтон Серф и Роберт Кан разработали TCP/IP.
- В 1974 году они публикуют статью «A Protocol for Packet Network Intercommunication» — концепцию будущего интернета.
- В 1978 году протокол официально разделили на TCP и IP.
- В 1981 году выходят RFC 791 (IP) и RFC 793 (TCP) — формальные спецификации двух ключевых протоколов.
- 1 января 1983 — сеть ARPANET полностью перешла на TCP/IP. Этот день считается днём рождения современного интернета. С тех пор TCP/IP — де-факто стандарт всей планеты.
- Дальше стек эволюционирует: появляются IPv6, расширения TCP (CUBIC и другие реализации), механизмы безопасности (IPsec) и т.п., но общая архитектура остаётся прежней.
Уровни модели TCP/IP
TCP/IP состоит из четырех взаимосвязанных уровней. Они похожи на уровни OSI, но объединены и привязаны к реальным протоколам.
Канальный уровень (Link Layer)
Отвечает за физическую передачу данных внутри одной локальной сети (дома, офиса, дата-центра) — по кабелю, Wi-Fi, оптоволокну.
Данные делятся на небольшие кусочки (фреймы) и передаются между устройствами. Каждый фрейм содержит часть передаваемой информации и служебные данные.
Чтобы понять, куда отправлять фреймы, используют адресацию канального уровня — MAC-адреса. Это уникальные физические адреса устройств (например, 00-14-22-01-23-45) — по ним протоколы канального уровня определяют отправителей и получателей.
На этом уровне работает протокол ARP (Address Resolution Protocol) — он нужен, чтобы узнать MAC-адрес устройства по известному IP-адресу внутри локальной сети. Простыми словами: компьютер знает, что нужно отправить пакет на IP 192.168.1.35, он кричит в локальную сеть «Скажите, чей это IP?» — и устройство с этим IP отвечает «Мой, вот мой MAC-адрес». После этого фрейм уходит точно по нужному кабелю или радиоканалу.
Также канальный уровень проверяет ошибки передачи и при необходимости просит повторить фрейм:
- Если возникла ошибка, устройство отправляет фрейм обратно, а второе устройство передаёт его ещё раз.
- Если всё прошло удачно, то фрейм передаётся на следующий уровень для обработки.
Межсетевой уровень (Internet Layer)
Отвечает за передачу данных между разными сетями — по всему интернету. Основная задача — маршрутизация пакетов по сети, то есть выбор наилучшего пути от отправителя к получателю.
Главный протокол этого уровня — IP (IPv4 или IPv6). Он делает три важные вещи:
- Присваивает каждому устройству IP-адрес и вычисляет местонахождение устройства.
- Разбивает данные на пакеты. Пакеты содержат фрагменты данных и служебную информацию, например IP-адреса отправителя и получателя.
- Выбирает маршрут, по которому пакеты полетят дальше.
Чтобы определить, где находится получатель и как построить путь к нему, IP обращается к системе DNS — она знает IP-адреса всех устройств в интернете.
*DNS (Domain Name System) — это система доменных имён, которая работает как глобальный каталог: переводит удобные для человека адреса сайтов (например, google.com или ozon.ru) в числовые IP-адреса (например, 142.250.74.14), по которым компьютеры находят друг друга в интернете.
Как только IP-адрес получателя известен, пакеты отправляются в путь. Если получатель находится в той же локальной сети — сразу на канальный уровень. Если в другой сети — пакет уходит на роутер, а там снова срабатывает ARP, чтобы узнать MAC-адрес следующего роутера по пути.
На этом же уровне работает ICMP (Internet Control Message Protocol) — это протокол, который отвечает на команду ping («жив ли сайт?»), показывает путь пакета в traceroute и присылает сообщения об ошибках, когда что-то пошло не так («адрес не найден», «пакет потерялся»).
*Traceroute — это команда (в Windows называется tracert), которая показывает весь путь вашего пакета от компьютера до сайта: через какие роутеры и города он прошёл и сколько миллисекунд занял каждый «прыжок».
Транспортный уровень (Transport Layer)
Отвечает за установление надежного соединения между приложениями, а затем передает данные по нему, контролируя ошибки.
На этом уровне используются два основных протокола:
- TCP (Transmission Control Protocol): Надежная, но более медленная передача с гарантией доставки, проверкой ошибок и повторной отправкой. Используется для веб-страниц, электронной почты, банковских транзакций.
- UDP (User Datagram Protocol): Быстрая, но ненадежная передача (без гарантии доставки и порядка). Используется для потокового видео, онлайн-игр, VoIP.
Прикладной уровень (Application Layer)
Это тот самый уровень, который делает интернет удобным для человека. Отвечает за прямое общение программ и сайтов с пользователем — всё, что вы видите и нажимаете.
Здесь живут все протоколы, с которыми мы напрямую сталкиваемся через программы:
- HTTP/HTTPS — веб-страницы, API.
- FTP, SFTP — передача файлов.
- SMTP, IMAP, POP3 — электронная почта.
- DNS — преобразование доменных имён в IP-адреса.
- DHCP — автоматическое присваивание устройству уникального IP-адреса сразу после подключения к Wi-Fi или кабелю.
- SIP, XMPP, WebSocket и т.п. — мессенджеры, звонки, чаты.
Этот уровень нужен, чтобы упростить пользователям передачу данных по интернету. Именно с его помощью программисты и обычные пользователи взаимодействуют с моделью TCP/IP.
И так, что же происходит, когда мы заказываем ароматическую свечку маме на Новый год?
Особенности TCP/IP
Сильные Стороны
- Независимость от Платформы: TCP/IP не привязан к конкретному оборудованию, операционной системе или физической технологии. Устройства на Windows, Linux, macOS и Android могут свободно общаться в одной сети.
- Масштабируемость: Архитектура TCP/IP позволяет легко расширять сеть от маленькой домашней до глобальной инфраструктуры с миллиардами устройств.
- Открытость и Стандартизация: Модель основана на открытых стандартах (RFC), что способствует ее широкому внедрению, гибкости и совместимости.
- Гибкость Протоколов: Поддержка двух основных транспортных протоколов (TCP и UDP) позволяет выбрать оптимальный вариант для разных задач — надежность для файлов или скорость для стриминга.
Слабые Стороны
- Сложность Настройки: Из-за гибкости и большого количества настроек управление крупными сетями на базе TCP/IP требует значительных знаний и ресурсов.
- Отсутствие Встроенной Безопасности: TCP/IP проектировали в эпоху, когда угроз было мало. Шифрование, аутентификация и защита от атак реализуются внешними средствами: TLS, IPsec, VPN, файрволы, IDS/IPS и т.д.
- Неидеальная эффективность: Добавление служебной информации в каждый пакет (заголовки) увеличивает общий объем передаваемых данных, снижая эффективную пропускную способность.
TCP/IP vs OSI: в чём разница и почему победил TCP/IP
Вы уже знакомы с моделью OSI, которая является семиуровневым теоретическим эталоном. Теперь сравним ее с TCP/IP.
Почему стандартом стал именно TCP/IP, а не OSI
- TCP/IP оказался раньше в продакшене: он использовался в ARPANET и университетских сетях ещё до того, как OSI стала популярна.
- Стек был открытым и бесплатным, поддерживался академическим сообществом и правительством США, активно внедрялся в Unix-системах.
- OSI создавалась большими организациями и часто была слишком сложной и тяжёлой для практической реализации.
- Производители оборудования и разработчики ОС массово поддержали TCP/IP — сила инерции сделала своё: когда весь мир уже говорит на одном «языке», сменить его почти нереально.
В итоге OSI осталась отличным концептуальным инструментом, а TCP/IP стал де-факто стандартом, на котором работает интернет.
Заключение
Теперь вы знаете, что когда заказываете подарки к Новому году, отправляете «С наступающим!» или смотрите «Иронию судьбы», за всем этим стоит один и тот же TCP/IP, которому уже больше сорока лет. Он тихо делает свою работу, связывает устройства по всему миру и продолжает быть основой того, как живёт современный интернет.