Основы протокола TCP для чайников простыми словами

Содержание
  1. Поток байт
  2. Гарантия доставки: подтверждение получения
  3. Краткое описание протоколов Интернет
  4. TCP/IP
  5. HTTP
  6. FTP
  7. TELNET
  8. WAIS
  9. Gorpher
  10. TCP или IP: в чем разница?
  11. Порты и сокеты – что это и зачем они нужны
  12. FTP — File Transfer Protocol
  13. Являются ли ваши пакеты данных частными по TCP/IP?
  14. Гарантия доставки: повторная отправка
  15. NTP — Network Time Protocol
  16. HTTP — HyperText Transfer Protocol
  17. Протокол TCP: скользящее окно
  18. Варианты подтверждения доставки
  19. Время передачи сообщения
  20. Пример подтверждения доставки
  21. Скользящее окно
  22. Тип подтверждения
  23. DNS
  24. Форматы протоколов TCP/IP
  25. Формат IP протокола
  26. Порядок следования сообщений
  27. Дублирование сегментов
  28. Нумерация байтов
  29. Дублирование сегментов
  30. UDP — User Datagram Protocol
  31. TCP/IP — Transmission Control Protocol/Internet Protocol
  32. Соединение TCP
  33. Задачи соединения
  34. Установка соединения в TCP
  35. Как работают протоколы TCP/IP
  36. Уровни модели TCP/IP
  37. Канальный (сетевой интерфейс)
  38. Межсетевой (Internet Layer)
  39. Транспортный уровень (Transport Layer)
  40. Прикладной уровень (Application Layer)
  41. Как работает TCP/IP?

Поток байт

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

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

Гарантия доставки: подтверждение получения

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

Краткое описание протоколов Интернет

TCP/IP

Лучшие умы человечества работали над созданием протоколов, необходимых для существования глобальной сети. Одним из них был Винтон Дж. Серф. Теперь этого человека называют «отцом Интернета». В 1997 году президент Билл Клинтон наградил Винтона Серфа и его коллегу Роберта Э. Кана Национальной медалью за заслуги перед технологиями в знак признания их вклада в зарождение и развитие Интернета. Винтон Серф в настоящее время является старшим вице-президентом по архитектуре Интернета в MCI WorldCom Inc.

В 1972 году группа разработчиков под руководством Винтона Серфа разработала протокол управления передачей / Интернет-протокол (TCP / IP).

Министерство обороны США заказало эксперимент по разработке этого протокола. Этот проект назывался ARPANet (Сеть агентств перспективных исследовательских проектов). Очевидно, что в условиях войны, когда потребность в обмене информацией становится как никогда острой, возникает проблема непредсказуемости состояния пути, по которому будет передаваться та или иная информация — любой узел передачи может быть отключен противником в любое время. Поэтому основной задачей при разработке сетевого протокола была его «простота»: он должен был работать с любым сетевым окружением и, кроме того, быть гибким в выборе пути при доставке информации.

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

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

Схема работы протокола TCP / IP:

HTTP

  • HTTP (протокол передачи гипертекста) — это протокол более высокого уровня, чем TCP / IP, протокол прикладного уровня. HTTP был разработан для эффективной передачи веб-страниц через Интернет. Именно благодаря HTTP у нас есть возможность созерцать веб-страницы во всей их красе. Протокол HTTP — это основа всемирной паутины.

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

    Чтобы текст, составляющий содержимое веб-страниц, отображался на них определенным образом — в соответствии с намерением создателя страницы — он помечается с помощью специальных текстовых меток — тегов HTML (HyperText Markup Language).

    Адреса интернет-ресурсов, к которым вы обращаетесь по протоколу HTTP, выглядят так: http://www.tut.by

  • FTP

    FTP (протокол передачи файлов) специально разработан для передачи файлов через Интернет. Подробнее об этом мы поговорим позже. А пока давайте просто скажем, что адрес FTP-ресурса в Интернете выглядит так: ftp://ftp.netscape.com

    TELNET

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

    Telnet — это протокол эмуляции терминала. Вы можете работать с ним из командной строки. Если вам нужно воспользоваться услугами этого протокола, не стоит рыскать по просторам Интернета в поисках подходящей программы. Клиент Telnet предоставляется, например, с Windows 98.

    Чтобы указать клиенту Telnet подключиться к удаленному компьютеру, подключитесь к Интернету, выберите «Выполнить» в меню «Пуск» и введите в строке ввода, например, следующее: telnet lib.ru

    (Конечно, вы можете ввести другой адрес вместо lib.ru). Это запустит программу Telnet и запустит сеанс связи.

    WAIS

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

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

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

    Ресурс WAIS в Интернете выглядит так: wais: //site.edu

    Gorpher

    Протокол Gopher — это протокол прикладного уровня, разработанный в 1991 году. До повсеместного распространения гипертекстовой системы во всемирной паутине Gopher использовался для извлечения информации (в основном текстовой) из иерархической файловой структуры. Gopher был предшественником WWW, который позволял меню перемещаться со страницы на страницу, постепенно сужая диапазон отображаемой информации. У клиентов Gopher был текстовый интерфейс. Однако пункты меню Gopher могут указывать не только на текстовые файлы, но также, например, на соединения telnet или базы данных WAIS.

    Gopher переводится как «суслик», что отражает славное университетское прошлое разработчиков этой системы. Студенческие спортивные команды Университета Миннесоты назвали себя «Золотыми сусликами»).

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

    Адреса информационных ресурсов Gopher выглядят так: gopher: //gopher.tc.umn.edu

    TCP или IP: в чем разница?

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

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

    Порты и сокеты – что это и зачем они нужны

    Процессы, работающие на прикладном уровне, «общаются» с транспортом, но видны ему как «черные ящики» с зашифрованной информацией. Но он понимает, на какой IP-адрес направляются данные и через какой порт они должны быть получены. Этого достаточно для точного распределения пакетов по сети, независимо от расположения хостов. Порты с 0 по 1023 зарезервированы операционными системами, остальные в диапазоне от 1024 до 49151 условно свободны и могут использоваться сторонними приложениями.

    Комбинация IP-адреса и порта называется сокетом и используется для идентификации компьютера. В то время как первая уникальна для каждого хоста, вторая обычно настраивается для конкретного типа приложения. Итак, получение электронной почты идет через порт 110, передача данных по FTP — 21, открытие сайтов — 80.

    FTP — File Transfer Protocol

    Он используется для передачи файлов. Этот протокол не нов: он успешно использовался задолго до появления IP. Его до сих пор используют при организации удаленного доступа к услугам хостинга.

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

    Являются ли ваши пакеты данных частными по TCP/IP?

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

    Гарантия доставки: повторная отправка

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

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

    NTP — Network Time Protocol

    На самом деле не все протоколы передачи используются для обмена информацией в классической форме. Протокол NTP используется для синхронизации локальных часов устройства со временем в глобальной / локальной сети. NTP использует алгоритм Марзулло для выбора наиболее точного источника времени. NTP также работает через UDP, что позволяет достичь максимальной скорости передачи данных. В целом, протокол достаточно устойчив к изменениям задержки WAN / LAN.

    HTTP — HyperText Transfer Protocol

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

    Протокол HTTP имеет расширение HTTPS, которое поддерживает шифрование. В нем данные уже передаются по криптографическому протоколу TLS.

    Протокол TCP: скользящее окно

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

    Варианты подтверждения:

    • Выключить и подождать (Wi-Fi, уровень канала передачи данных)
    • Скользящее окно (TCP, транспортный уровень)

    Варианты подтверждения доставки

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

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

    Время передачи сообщения

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

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

    Пример подтверждения доставки

    Возьмем пример того, как работает сеть.

    • Например, канал Екатеринбург-Пермь, его длина 465 километров, скорость 10 Гбит / с, так как длина достаточно большая, задержка передачи данных 10 миллисекунд.
    • Объем данных в сети: умножьте задержку на скорость передачи данных, это 12,5 МБ. Это означает, что отправитель начал передачу данных и до того, как первая часть данных достигнет получателя, он может отправить в сеть 12,5 МБ. Он может отправить ту же сумму в сеть, пока не получит подтверждение о получении. Если вы не прерываете передачу до получения подтверждения, вы можете передать 25 МБ по сети и только после этого получить подтверждение первых данных. Если мы остановимся и дождемся получения каждого сегмента, мы сможем передать только 50 сегментов в секунду, скорость передачи данных в этом режиме будет всего 75 килобайт в секунду, что значительно меньше пропускной способности канала 10 Гбит / с. Поэтому важно использовать скользящее окно и передавать несколько сегментов одновременно, не дожидаясь подтверждения каждого из них.

    Скользящее окно

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

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

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

    Тип подтверждения

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

    • Кумулятивное подтверждение, указывает, что указанный байт данных и все предыдущие были получены. Это подход TCP по умолчанию. Теперь, в связи с распространением высокоскоростных каналов связи на большие расстояния, размер окна в TCP может быть увеличен до 1 гигабайта. Представьте, что вы передали гигабайт данных и потеряли только один сегмент, который находится посередине. С помощью кумулятивного подтверждения можно подтвердить получение только первых 500 мегабайт, получается, что нужно повторно передать 500 мегабайт данных, которые уже есть у получателя.

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

    DNS

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

    Форматы протоколов TCP/IP

    Формат IP протокола

    Существует два формата IP-адресов протокола IP.

    Формат IPv4. Это 32-битное двоичное число. Удобная форма записи IP-адреса (IPv4) — это запись в виде четырех групп десятичных чисел (от 0 до 255), разделенных точками. Например: 193.178.0.1.

    Формат IPv6. Это 128-битное двоичное число. Обычно адреса IPv6 уже записаны в виде восьми групп. Каждая группа состоит из четырех шестнадцатеричных цифр, разделенных двоеточиями. Пример IPv6-адреса 2001 года: 0db8: 85a3: 08d3: 1319: 8a2e: 0370: 7889.

    Порядок следования сообщений

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

    Какие могут быть проблемы? IP не сохраняет порядок сообщений, и поэтому сегменты могут поступать получателю в другом порядке, в котором они были отправлены. Также некоторые сегменты могут повторяться два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.

    Дублирование сегментов

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

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

    Механизм очень простой, все сообщения пронумерованы. В TCP сегменты не нумеруются, так как разные сегменты могут иметь разные размеры, кроме байтов.

    В нашем примере с 4 сегментами первый сегмент содержит байты от 0 до 1023, второй — от 1024 до 2047 и так далее.

    Нумерация байтов

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

    • Например, сегмент данных, байт 0, содержит байты от 0 до 1023.
    • Получатель отправляет подтверждение и в подтверждение включает номер следующего байта, ожидаемого для байта 1024.
    • Отправитель передает следующий сегмент, включая первое количество байтов, сегмент данных, первое количество байтов 1024 содержит данные до количества байтов 2047.
    • Получатель отправляет подтверждение, что он ожидает количество байтов 2048, если сегменты прибывают в неправильном порядке, получатель всегда может разместить их в правильной последовательности по количеству байтов.

    Дублирование сегментов

    Рассмотрим, как решается ситуация с повторяющимися сегментами.

    • Отправитель включает в сегмент номер первого переданного байта 1024.
    • Получатель отправляет подтверждение, в котором говорится, что он ожидает байта в 2048 году.
    • Но поскольку подтверждения не пришло, отправитель передает тот же сегмент 1024.
    • Однако получатель видит, что у него уже есть этот сегмент, поэтому он игнорирует этот сегмент и снова отправляет подтверждение, где он говорит, что ожидает 2048 байтов.

    UDP — User Datagram Protocol

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

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

    TCP/IP — Transmission Control Protocol/Internet Protocol

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

    Соединение TCP

    TCP использует соединение для передачи данных. Соединение должно быть установлено до начала передачи данных, а после завершения передачи данных соединение разрывается.

    Задачи соединения

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

    Установка соединения в TCP

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

    Получатель в ответ отправляет сообщение SYN, которое включает подтверждение получения предыдущего сообщения ACK из слова подтверждения и порядковый номер байта, который он ожидает 7538, поскольку количество байтов 7537 было получено на предыдущем шаге.

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

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

    Как работают протоколы TCP/IP

    Если удобно, представьте себе передачу пакетов данных по сети, как отправку письма по почте.

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

    Уровни модели TCP/IP

    TCP / IP основан на OSI и, как и его предшественник, имеет несколько уровней, составляющих его архитектуру. Всего различают 4 уровня: канальный (интерфейс), межсетевой, транспортный и прикладной.

    Канальный (сетевой интерфейс)

    Аппаратный уровень обеспечивает взаимодействие между сетевым оборудованием Ethernet и Wi-Fi. Он соответствует физическому стандарту предыдущего стандарта OSI. Здесь задача закодировать информацию, разделить ее на пакеты и отправить по желаемому каналу. Также измеряются такие параметры сигнала, как задержка ответа и расстояние между хостами.

    Межсетевой (Internet Layer)

    Интернет состоит из множества локальных сетей, связанных между собой протоколом связи TCP / IP. Уровень шлюза регулирует взаимодействие между отдельными подсетями. Маршрутизация осуществляется путем ссылки на конкретный IP-адрес с использованием маски.

    Если хосты находятся в одной подсети и помечены одинаковой маской, данные передаются напрямую. В противном случае информация «путешествует» по всей цепочке промежуточных звеньев, пока не достигнет желаемой точки. IP-адрес назначается по стандарту IPv4 или IPv6 (они несовместимы друг с другом).

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

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

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

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

    Он объединяет 3 уровня модели OSI: сеанс, представление и приложение. Он отвечает за поддержание сеанса связи, преобразование данных, взаимодействие с пользователем и сетью. На этом уровне применяются стандарты API, которые позволяют передавать команды для выполнения определенных задач.

    также возможно использование «производных» протоколов. Например, HTTPS используется для открытия сайтов, SMTP используется для отправки электронной почты, а DHCP используется для назначения IP-адресов. Такой подход упрощает программирование, снижает нагрузку на сеть и увеличивает скорость обработки команд и передачи данных.

    Как работает TCP/IP?

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

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

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

    Хорошим примером того, как это работает на практике, является отправка электронного письма через SMTP с почтового сервера. Уровень сервера TCP разбивает сообщение на пакеты, нумерует их и пересылает на уровень IP, который затем пересылает каждый пакет на почтовый сервер назначения. Когда пакеты прибывают, они направляются на уровень TCP для повторной сборки в исходном формате сообщения и отправки на почтовый сервер, который доставляет сообщение в почтовый ящик пользователя.

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

    Источники

    • https://ZvonDoZvon.ru/tehnologii/protokoli/tcp
    • http://bourabai.kz/dbt/protocols.htm
    • https://www.fortinet.com/ru/resources/cyberglossary/tcp-ip
    • https://timeweb.com/ru/community/articles/chto-takoe-tcp-ip
    • https://otus.ru/nest/post/1919/
    • https://webonto.ru/protokolyi-tcp-ip-prostyim-yazyikom/

    Оцените статью
    Блог о хакинге