Основы дизайна систем: сети и протоколы

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

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

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

Наиболее распространенные сетевые протоколы эпохи Интернета - это HTTP, TCP/IP и др.

IP - Internet Protocol - Интернет-протокол

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

Сообщения по IP часто передаются в "пакетах", которые представляют собой небольшие пакеты информации (2^16 байт). Каждый пакет состоит из двух компонентов: заголовка и данных.

Заголовок содержит «метаданные» о пакете и его данных. Эти метаданные включают такую информацию, как IP-адрес источника (откуда приходит пакет) и IP-адрес пункта назначения (пункт назначения пакета). Ясно, что это фундаментально важно для возможности отправлять информацию из одной точки в другую - вам нужны адреса «от» и «к».

IP-адрес - это числовая метка, назначаемая каждому устройству, подключенному к компьютерной сети, которое использует Интернет-протокол для связи. Существуют публичные и частные IP-адреса, и в настоящее время существует две версии. Новая версия называется IPv6 и получает все большее распространение, поскольку в IPv4 заканчиваются числовые адреса.

Другие протоколы, которые мы рассмотрим в этом посте, построены на основе IP.

TCP - Transmission Control Protocol - протокол управления передачей

TCP - это утилита, построенная на основе IP.

TCP был создан для решения проблемы с IP. Данные по IP обычно отправляются несколькими пакетами, потому что каждый пакет довольно мал (2^16 байт). Множественные пакеты могут привести к (A) потерянным или отброшенным пакетам и (B) неупорядоченным пакетам, таким образом искажая передаваемые данные. TCP решает обе эти проблемы, гарантируя передачу пакетов упорядоченным способом.

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

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

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

HTTP - Hyper Text Transfer Protocol - протокол передачи гипертекста

HTTP - это протокол, который представляет собой абстракцию, построенную на основе TCP/IP. Он вводит очень важный шаблон, называемый шаблоном запроса-ответа, специально для взаимодействий клиент-сервер.

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

Таким образом, этот цикл запроса-ответа имеет свои собственные правила для HTTP, и это стандартизирует то, как информация передается через Интернет.

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

HTTP также поставляется с некоторыми "глаголами" или "методами", которые представляют собой команды, которые дают вам представление о том, какой тип операции предполагается выполнять. Например, распространенными методами HTTP являются «GET», «POST», «PUT», «DELETE» и «PATCH», но их больше.


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

Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Нормальные формы, пример нормализации в базе данных

Хэш-таблица: разрешение коллизий