Что, черт возьми, такое «трехстороннее рукопожатие» TCP и «четырехсторонняя волна»?

HTTP TCP/IP

Легко понять протокол HTTP

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


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


Отправка запроса от клиента, будет ли это результатом Shenma?Нормальный код состояния — 2xx, неправильный код состояния — 4xx или 5xx и так далее.


Ошибка 404:




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


Введите URL-адрес в адресную строку браузера, вы можете увидеть веб-страницу, то есть после того, как клиент введет URL-адрес в адрес браузера, информация будет отправлена ​​​​куда-то, а затем ответ, полученный откуда-то, содержание будет отображаться на веб-странице.


Клиент:Такой веб-браузер, который получает ресурсы сервера, отправляя запрос, называется клиентом.


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


Возьмите ключевые моменты и уточните: есть две темы,Веб-браузер действует как клиент, а один — как сервер.Веб-браузер получает ресурсы на сервере через указанный адрес доступа, а сервер возвращает связь в веб-браузер с использованием протокола HTTP.


Сеть основана на протоколе HTTP для связи. HTTP — это спецификация протокола передачи гипертекста (или, строго говоря, протокола передачи гипертекста), который завершает ряд рабочих процессов от клиента к серверу. Протокол относится к соглашению правил.


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


Так что же такое HTTP-протокол?


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



Появление HTTP.В 1989 году Интернетом владело несколько человек.Чтобы посвятить себя обмену знаниями между исследователями во всем мире, родился HTTP.Некоторые люди предложили идею обмена знаниями между исследователями которые находятся далеко друг от друга С помощью гипертекста, образованного взаимосвязанностью нескольких документов, WWW и World Wide Web могут быть связаны друг с другом.


Три технологии построения www:


SGML: стандартный обобщенный язык разметки

Стандартный универсальный язык разметки


HTML: язык гипертекстовой разметки

Язык гипертекстовой разметки


HTTP: протокол передачи гипертекста

Протокол передачи гипертекста


URL: Единый указатель ресурсов

Единый указатель ресурсов


  1. HTML с SGML в качестве языка разметки текста страницы;

  2. HTTP как протокол доставки документов;

  3. Указывает URL-адрес, по которому находится документ


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


Веб-клиент и сервер, веб-контент хранится на веб-сервере с использованием протокола HTTP, если HTTP-клиент отправляет запрос, сервер будет предоставлять данные в Интернете, клиент отправляет HTTP-запрос на сервер, а сервер ответ в HTTP Запрошенные данные отправляются обратно.


Вместе HTTP-клиенты и HTTP-серверы образуют основные компоненты World Wide Web.


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



URI и URL-адреса


У каждого ресурса веб-сервера есть имя, чтобы клиент мог выбрать нужный ему ресурс,URI, имя ресурса сервера, является универсальным идентификатором ресурса., URI подобен имени, подобно почтовому адресу в Интернете, это уникальный информационный ресурс идентификации и местоположения во всем мире.Существует две формы URI: URL и URN.


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


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



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



Многоуровневое управление TCP/IP

Семейство протоколов TCP/IP делится наПрикладной уровень, транспортный уровень, сетевой уровень, канальный уровень, физический уровень.Его можно разделить на 4 слоя или 7 слоев в зависимости от различных моделей.


TCP/IP разделен на 5 уровней, чем он ниже, тем ближе к оборудованию.


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


транспортный уровень,Этот уровень обеспечивает сквозную связь для приложений на двух хостах. Транспортный уровень имеет два транспортных протокола: TCP (протокол управления передачей) и UDP (протокол пользовательских дейтаграмм). ненадежный протокол или протокол без установления соединения.


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


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


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





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


Мы объясняем в соответствии с 4 уровнями, семейство протоколов TCP / IP делится на следующие уровни в соответствии с уровнями:Прикладной уровень, транспортный уровень, сетевой уровень, канальный уровень.


прикладной уровень,Прикладной уровень определяет коммуникационные действия при предоставлении пользователям служб приложений, таких как FTP, протокол передачи файлов и службы DNS, а протокол HTTP находится на прикладном уровне.


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


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


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


Приведенный выше контент слишком концептуален, поймите и поймите:


Как они общались друг с другом?




При использовании набора протоколов TCP/IP для сетевого взаимодействия он будет взаимодействовать с другой стороной в иерархическом порядке.Отправитель спустится с прикладного уровня, то есть прикладной уровень (HTTP-клиент), транспортный уровень (TCP), сетевой уровень (IP), канальный уровень (сеть),Принимающая сторона поднимается от уровня канала.


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


С картинки, чтобы увидеть текстовое содержание, я считаю, что каждый должен это понять.


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


И TCP, и UDP являются протоколами транспортного уровня, разница между ними заключается в следующем:


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


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


Преимущества многоуровневого TCP/IP


Если протокол для связи в Интернете всего один, и нужно изменить какое-то место, то нужно заменить все целиком, но после расслоения нужно заменить только измененный слой.



Трехстороннее рукопожатие TCP и четырехсторонняя волна

Пожалуйста, посмотрите на картинку, помните, что есть три стрелки, четыре диалоговых окна, вы можете запомнить формулу:


Три рукопожатия и четыре волны:



Схема трехстороннего рукопожатия:



Процесс трехстороннего рукопожатия:


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


Второе рукопожатие — это когда сервер, то есть получатель, получает SYN-сегмент клиента.Одновременно отправлять пакеты, помеченные SYN/ACK.


Третье рукопожатие заключается в том, что после того, как клиент получает пакет SYN/ACK от сервера,Отправьте пакет, помеченный ACK, на сторону сервера.


Приведенное выше объяснение будет лучше понято при совместном просмотре изображений и передаваемых между ними данных.


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


TCP, пожалуйста, запомните китайское название Transmission Control Protocol, это ориентированный на соединение, надежный, основанный на потоке байтов протокол связи транспортного уровня, заголовочное сообщение TCP, понимаете? Если вы не понимаете, вы можете Baidu.


[TCP/IP] TCP-заголовок

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



Давайте посмотрим на объяснение «пакета» в Baidu:


Понимание и роль сообщения

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

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



Заголовки TCP


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

порт назначения,Номер порта назначения, указывающий на удаленный порт


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


Порядковый номер, серийный номер


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


TCP имеет 6 представлений состояний:


SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)


Проанализируйте, почему TCP рукопожатия три раза

Во-первых, клиент, сервер и трехстороннее рукопожатие TCP:


Флаг TCP используется в процессе рукопожатия,СИН и АКК.


Состояние инициализации: клиент находится в закрытом состоянии, а сервер — в состоянии прослушивания.


Первое рукопожатие: клиент отправляетСообщение запроса отправляет порядковый номер синхронизации SYN=1 и инициализацию seq=x на сервер., сервер создает соединение из состояния инициализации, ждет клиента и подтверждает, что полученное состояние — SYN_Receive. В настоящее времяКлиент находится в состоянии ожидания SYN_Send.


Второе рукопожатие, сервер получаетПосле получения сообщения (SYN=1, seq=x)После получения запроса сообщение запроса становитсяПорядковый номер синхронизации SYN=1, порядковый номер инициализации seq=1, номер подтверждения ACK=1, ack=x+1, сервер находится в состоянии SYN_Receive,Статус отправителя: SYN_Send.


При третьем рукопожатии клиент получает пакет данных от сервера (после получения ответа), а затем отправляет порядковый номер синхронизации ack=y+1 и порядковый номер пакета данных seq=x+1 и ACK=1. пакет подтверждения в качестве ответа(Третье рукопожатие:ACK=1, seq=x+1, ack=y+1), клиент и сервер переходят в установленное состояние.


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


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


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


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


Служба DNS, отвечающая за разрешение доменного имени


Служба DNS расположена на прикладном уровне, как и протокол HTTP. Предоставляет услуги разрешения между доменными именами и IP-адресами. Протокол DNS предоставляет услуги для поиска IP-адресов по доменным именам или обратного поиска доменных имен по IP-адресам.


Связь между различными протоколами и протоколом HTTP



После того, как клиент и сервер установят TCP-соединение через трехстороннее рукопожатие, когда передача данных будет завершена, для отключения требуется четыре волны TCP.


Четыре волны выглядят следующим образом:



первая волна


Клиент устанавливает seq и ACK и отправляет сегмент FIN=1 на сервер. В настоящее время,(Первая волна, FIN=1, seq=u) Клиент входит в состояние FIN_WAIT, что указывает на то, что у клиента нет данных для отправки на сервер.


вторая волна


Сервер получает сегмент FIN, отправленный клиентом, и возвращает клиенту сегмент ACK.


Третья волна


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


четвертая волна


После того, как клиент получает сегмент FIN, отправленный сервером, он отправляет сегмент ACK на сервер, после чего клиент переходит в состояние TIME_WAIT. После того, как сервер получает сегмент ACK от клиента, он закрывает соединение. В это время, если клиент ждет 2MSL (имеется в виду максимальное время выживания сегмента в сети) и все еще не получает ответа, это означает, что сервер был нормально выключен, так что клиент может закрыть связь.


Единый идентификатор ресурса

URI — это аббревиатура от Uniform Resource Identifier, которая указывает единый формат для облегчения обработки различных типов ресурсов без указания указанного метода доступа к ресурсу в соответствии с контекстом.


URL-адрес (Uniform Resource Locator, Унифицированный указатель ресурсов), URL-адрес — это адрес веб-страницы, который необходимо ввести при доступе к веб-странице с помощью веб-браузера и т. д.


Ссылка: «Иллюстрированный HTTP»


----КОНЕЦ----


Друзья, которым понравилась эта статья, приглашаем обратить внимание на номер пабликапрограммист маленький серый, смотрите больше захватывающего контента