По сравнению с предыдущей версией сводки знаний об интервью в компьютерной сети, в этой версии добавлено, «как протокол TCP обеспечивает надежную передачу», включая повторную передачу по тайм-ауту, протокол остановки ожидания, скользящее окно, управление потоком, контроль перегрузки и т. д., а также некоторый существующий контент. , добавил.
1. Каковы структуры и функции каждого уровня OSI и TCP/IP?
Архитектура пятиуровневого протокола
При изучении компьютерных сетей мы обычно применяем компромиссный метод, то есть нейтрализуем преимущества OSI и TCP/IP и принимаем архитектуру только с пятиуровневыми протоколами, которая одновременно кратка и понятна.
В сочетании с ситуацией в Интернете, сверху вниз, очень краткое введение в роль каждого слоя.
1 прикладной уровень
Задача прикладного уровня (application-layer) состоит в том, чтобы выполнить конкретное сетевое приложение посредством взаимодействия между прикладными процессами.Протокол прикладного уровня определяет правила связи и взаимодействия между прикладными процессами (процессами: программами, работающими на хосте). Для разных сетевых приложений требуются разные протоколы прикладного уровня. В Интернете существует множество протоколов прикладного уровня, таких какСистема доменных имен DNS, который поддерживает приложения World Wide WebHTTP-протокол, который поддерживает электронную почтуSMTP-протоколи Т. Д. Мы называем блок данных, с которым взаимодействует прикладной уровень, сообщением.
система доменных имен
Система доменных имен (Domain Name System, аббревиатура DNS, доменное имя переводится как доменное имя) является основной службой Интернета.Являясь распределенной базой данных, которая может сопоставлять доменные имена и IP-адреса друг с другом, она может облегчить людям доступ к Интернету Не нужно запоминать строки IP, которые могут быть напрямую прочитаны машинами. (Энциклопедия Baidu) Например: веб-сайт компании может рассматриваться как ее онлайн-портал, а доменное имя эквивалентно ее домашнему адресу.Обычно в доменном имени используется название компании или аббревиатура. Например, доменное имя корпорации Microsoft, упомянутое выше, и подобное: доменное имя корпорации IBMwww.ibm.com, доменное имя Oraclewww.oracle.com, доменное имя Ciscowww.cisco.comЖдать.
HTTP-протокол
Протокол передачи гипертекста (HTTP) является наиболее широко используемым сетевым протоколом в Интернете. Все документы WWW (World Wide Web) должны соответствовать этому стандарту. Первоначально HTTP был разработан для обеспечения возможности публикации и получения HTML-страниц. (Энциклопедия Байду)
2 транспортных уровня
Основная задача транспортного уровня — предоставить общий сервис передачи данных для связи между двумя хост-процессами.. Прикладной процесс использует эту службу для передачи пакетов прикладного уровня. «Универсальный» означает, что он не нацелен на конкретное сетевое приложение, но несколько приложений могут использовать одну и ту же службу транспортного уровня. Поскольку хост может запускать несколько потоков одновременно, транспортный уровень имеет функцию мультиплексирования и демультиплексирования. Так называемое мультиплексирование означает, что несколько процессов прикладного уровня могут одновременно использовать услуги нижнего транспортного уровня.В отличие от демультиплексирования и мультиплексирования, транспортный уровень доставляет полученную информацию соответствующим процессам на прикладном уровне выше.
Транспортный уровень в основном использует следующие два протокола.
- Протокол управления передачей TCP(Протокол управления передачей) -- предоставляетсяориентированный на соединениеиз,надежныйСервис передачи данных.
- Протокол пользовательских данных UDP(Протокол пользовательских дейтаграмм) -- Предоставляетсянет соединения, служба передачи данных с максимальной эффективностью (Надежность передачи данных не гарантируется).
Ключевые особенности UDP
- UDP не требует установления соединения;
- UDP использует доставку с наилучшими усилиями, т.е. надежная доставка не гарантируется, поэтому хосту не нужно поддерживать сложное состояние канала (в нем много параметров);
- UDP ориентирован на сообщения;
- UDP не контролирует перегрузку, поэтому перегрузка сети не снизит скорость отправки хоста-источника (полезно для приложений реального времени, таких как прямые трансляции, видеоконференции в реальном времени и т. д.);
- UDP поддерживает интерактивную связь «один к одному», «один ко многим», «многие к одному» и «многие ко многим»;
- Заголовок UDP невелик, всего 8 байтов, что меньше 20-байтового заголовка TCP.
Ключевые особенности TCP
- TCP ориентирован на соединение. (Так же, как и при звонке, вам нужно набрать номер, чтобы установить соединение, прежде чем звонить, и повесить трубку, чтобы разорвать соединение после завершения звонка);
- Каждое соединение TCP может иметь только две конечные точки, и каждое соединение TCP может быть только двухточечным (один к одному);
- TCP обеспечивает надежную доставку услуг. Данные, передаваемые по TCP-соединению, безошибочны, не теряются, не дублируются и поступают последовательно;
- TCP обеспечивает полнодуплексную связь. TCP позволяет приложениям на обеих сторонах связи отправлять данные в любое время. Оба конца соединения TCP оснащены буфером отправки и буфером приема, которые используются для временного хранения данных, передаваемых между двумя сторонами;
- Ориентирован на байтовые потоки. «Поток» в TCP относится к последовательности байтов, поступающих в процесс или исходящих из него. Значение «ориентированного на поток байтов» заключается в том, что, хотя взаимодействие между приложением и TCP представляет собой один блок данных за раз (разных размеров), TCP рассматривает только данные, переданные приложением, как серию неструктурированных потоков байтов. .
3 сетевых слоя
Сетевой уровень отвечает за предоставление коммуникационных услуг для различных узлов в сети с коммутацией пакетов.При отправке данных сетевой уровень инкапсулирует сегменты или пользовательские дейтаграммы, сгенерированные транспортным уровнем, в пакеты и пакеты для передачи. В архитектуре TCP/IP, поскольку сетевой уровень используетIP-протокол, поэтому группировку также называютIP-датаграмма, именуемыйДейтаграмма.
Обратите внимание:Не путайте «пользовательскую дейтаграмму UDP» на транспортном уровне с «IP-дейтаграммой» на сетевом уровне.. Кроме того, независимо от того, какой уровень единицы данных, он обычно может быть представлен как «пакет».
Другой задачей сетевого уровня является выбор подходящего маршрута, чтобы пакеты, передаваемые с транспортного уровня узла-источника, могли найти узел-получатель через маршрутизаторы на сетевом уровне.
Здесь подчеркивается, что слово «сеть» в сетевом уровне больше не является той конкретной сетью, о которой мы обычно говорим, а относится к названию третьего уровня в модели архитектуры компьютерной сети.
Интернет состоит из большого количества разнородных сетей, соединенных между собой маршрутизаторами. Протокол сетевого уровня, используемый в Интернете, представляет собой Интернет-протокол без установления соединения (Intert Prococol) и множество протоколов маршрутизации, поэтому сетевой уровень Интернета также называетсяИнтернет-уровеньилиIP-уровень.
4 Канальный уровень
Канальный уровень часто называют просто канальным уровнем. Передача данных между двумя хостами всегда осуществляется по сегментному каналу, что требует использования специального протокола канального уровня.При передаче данных между двумя соседними узламиКадр сборки IP-датаграммы, который канальный уровень передает от сетевого уровня., передает кадры по каналу между двумя соседними узлами. Каждый кадр включает в себя данные и необходимую управляющую информацию (такую как информация о синхронизации, адресная информация, контроль ошибок и т. д.).
При приеме данных управляющая информация позволяет приемнику узнать, с какого бита кадр начинается и где он заканчивается. Таким образом, после получения кадра канальный уровень может извлечь из него часть данных и передать ее сетевому уровню. Управляющая информация также позволяет приемнику обнаруживать ошибки в принятом кадре. Если обнаружена ошибка, канальный уровень просто отбрасывает ошибочный кадр, чтобы не тратить ресурсы сети впустую, продолжая передачу по сети. Если необходимо исправить ошибки при передаче данных на канальном уровне (то есть канальный уровень должен не только обнаруживать, но и исправлять ошибки), то для исправления ошибок используется надежный протокол передачи. Такой подход усложняет протокол на канальном уровне.
5 Физический уровень
Единицей данных, передаваемых на физическом уровне, является бит.Роль физического уровня заключается в реализации прозрачной передачи битовых потоков между соседними компьютерными узлами и максимально возможном устранении различий между конкретными средами передачи и физическими устройствами.Уровень канала передачи данных выше него не должен учитывать, что является конкретной средой передачи сети. «Прозрачная передача потока битов» означает, что поток битов, передаваемый реальной схемой, не изменился, и цепь кажется невидимой для передаваемого потока битов.
Наиболее важным и известным из различных протоколов, используемых в Интернете, является TCP/IP. Термин TCP/IP, который сейчас часто упоминают, не обязательно относится к двум конкретным протоколам TCP и IP, но часто относится ко всему семейству протоколов TCP/IP, используемых в Интернете.
в заключении
Выше у нас есть предварительное представление о пятиуровневой архитектуре компьютерных сетей, а схема семиуровневой архитектуры прилагается ниже для обобщения. Источник изображения:blog.CSDN.net/Яо Пэн_200…
Два TCP, три рукопожатия и четыре волны (завсегдатаи интервью)
Для точной доставки данных в пункт назначения протокол TCP использует стратегию трехэтапного рукопожатия.
Комическая иллюстрация:
Источник изображения: "Иллюстрированный HTTP"
Простая схема:
- Клиент — отправить пакет с флагом SYN — одно рукопожатие — сервер
- Сервер – Отправка пакета с флагом SYN/ACK – Двустороннее рукопожатие – Клиент
- Клиент — отправить пакет с флагом ACK — трехстороннее рукопожатие — сервер
Почему три рукопожатия
Целью трехстороннего рукопожатия является установление надежного канала связи.Когда дело доходит до связи, это просто отправка и получение данных, а основная цель трехстороннего рукопожатия - подтвердить, что отправка и получение себя и другой стороны является нормальным.
Первое рукопожатие: Клиент ничего не может подтвердить; Сервер подтверждает, что другая сторона отправляет нормально
Второе рукопожатие: Клиент подтверждает: отправляет и принимает нормально, другая сторона отправляет и получает нормально Сервер подтверждает: принимает нормально, другая сторона отправляет нормально
Третье рукопожатие: Клиент подтверждает: он отправляет и получает нормально, другая сторона отправляет и получает нормально; Сервер подтверждает: он отправляет и получает нормально, а другая сторона отправляет и получает нормально
Таким образом, трехстороннее рукопожатие может подтвердить, что функции двойной передачи, отправки и получения работают нормально, что необходимо.
Зачем возвращать SYN
SYN, отправленный получателем обратно отправителю, должен сообщить отправителю, что информация, которую я получил, действительно является сигналом, который вы отправили.
SYN передан, зачем еще передавать ACK
Правильная связь между двумя сторонами должна заключаться в том, что информация, отправляемая друг другу обеими сторонами, верна. SYN передается, что доказывает, что с каналом от отправителя к получателю проблем нет, но канал от получателя к отправителю также нуждается в сигнале ACK для проверки.
SYN — это сигнал квитирования, используемый TCP/IP для установления соединения. Когда между клиентом и сервером устанавливается нормальное сетевое соединение TCP, клиент сначала отправляет сообщение SYN, сервер использует ответ SYN-ACK, чтобы указать, что он получил сообщение, и, наконец, клиент отправляет ACK (Подтверждение [ Китайский перевод: символ подтверждения, При передаче данных - символ управления передачей, отправляемый принимающей станцией на передающую станцию. Он указывает, что полученные данные были получены без ошибок. ]) ответ на сообщение. Таким образом, между клиентом и сервером может быть установлено надежное TCP-соединение, и данные могут передаваться между клиентом и сервером.
Для отключения TCP-соединения требуются «четыре волны»:
- Клиент — отправляет FIN, который закрывает передачу данных от клиента к серверу.
- Сервер — получает этот FIN, отправляет обратно ACK, подтверждая, что порядковый номер равен полученному порядковому номеру плюс 1. Как и SYN, FIN будет занимать порядковый номер
- Сервер - закрывает соединение с клиентом, отправляет клиенту FIN
- Клиент - отправляет обратно подтверждение сообщения ACK и устанавливает порядковый номер подтверждения равным полученному порядковому номеру плюс 1.
Зачем махать четыре раза
Любая из сторон может отправить уведомление об освобождении соединения после завершения передачи данных и перейти в полузакрытое состояние после подтверждения другой стороной. Когда у другой стороны нет данных для повторной отправки, выдается уведомление об освобождении соединения, и TCP-соединение полностью закрывается после подтверждения другой стороной.
Например: A и B разговаривают по телефону, после того, как разговор подходит к концу, A говорит: «Мне нечего сказать», B отвечает: «Я знаю», но B может что-то сказать, A не может просить B следовать Завершите вызов в своем собственном ритме, чтобы B мог снова говорить, Барабара, и, наконец, B говорит: «Я закончил», A отвечает «понял», поэтому вызов завершен.
Вышеизложенное носит более общий характер, и рекомендуется более подробная статья:blog.CSDN.net/where overspeed/art IC…
Три различия между протоколами TCP и UDP
UDP не нужно устанавливать соединение перед передачей данных, а удаленному хосту не нужно давать никаких подтверждений после получения UDP-пакета. Хотя UDP не обеспечивает надежной доставки, в некоторых случаях UDP действительно является наиболее эффективным способом работы (обычно используется для обмена мгновенными сообщениями), например: голос QQ, видео QQ, прямая трансляция и т. д.
TCP предоставляет услуги, ориентированные на соединение. Соединение должно быть установлено перед передачей данных, а соединение должно быть разорвано после завершения передачи данных. TCP не предоставляет услуги широковещательной или многоадресной рассылки. Поскольку TCP должен предоставлять надежные, ориентированные на соединение транспортные услуги (надежность TCP отражается в том факте, что TCP имеет три рукопожатия для установления соединения перед передачей данных, а также механизмы подтверждения, окна, повторной передачи и управления перегрузкой во время передачи данных). После передачи данных соединение будет разорвано для экономии системных ресурсов), что неизбежно добавляет много накладных расходов, таких как подтверждение, управление потоком, таймеры и управление соединением. Это не только делает заголовок блока данных протокола намного больше, но и отнимает много ресурсов процессора. TCP обычно используется в таких сценариях, как передача файлов, отправка и получение почты и удаленный вход в систему.
Как протокол TCP обеспечивает надежную передачу
- Данные приложения разбиваются на фрагменты, которые, по мнению TCP, лучше всего подходят для отправки.
- TCP нумерует каждый отправленный пакет, получатель сортирует пакеты и передает упорядоченные данные на прикладной уровень.
- Контрольная сумма:TCP сохранит контрольную сумму своего заголовка и данных. Это сквозная контрольная сумма для обнаружения любых изменений в передаваемых данных. Если в контрольной сумме полученного сегмента есть ошибка, TCP отбрасывает сегмент и не подтверждает получение сегмента.
- Принимающая сторона TCP отбрасывает повторяющиеся данные.
- управление потоком:Каждая сторона соединения TCP имеет буферное пространство фиксированного размера, и получатель TCP позволяет отправителю отправлять только те данные, которые может вместить буфер получателя. Когда получатель слишком поздно обрабатывает данные отправителя, он может предложить отправителю снизить скорость отправки, чтобы предотвратить потерю пакетов. Протокол управления потоком, используемый TCP, представляет собой протокол скользящего окна переменного размера. (TCP использует скользящее окно для управления потоком)
- Контроль перегрузки:Когда сеть перегружена, уменьшите отправку данных.
- перестать ждать соглашениеЭто также обеспечивает надежную передачу.Его основной принцип заключается в том, чтобы прекращать отправку каждый раз, когда отправляется пакет, и ждать подтверждения другой стороны. Отправить следующий пакет после получения подтверждения.Тайм-аут повторной передачи:Когда TCP отправляет сегмент, он запускает таймер и ожидает, пока пункт назначения подтвердит получение сегмента. Если подтверждение не может быть получено вовремя, сегмент будет отправлен повторно.
перестать ждать соглашение
- Протокол остановки-ожидания предназначен для обеспечения надежной передачи, его основной принцип заключается в том, чтобы прекратить отправку каждого пакета и дождаться подтверждения другой стороны. Отправить следующий пакет после получения подтверждения;
- В протоколе ожидания с остановкой, если получатель получает дубликат пакета, он отбрасывает пакет, но также отправляет подтверждение;
1) Безошибочное состояние:
Отправитель отправляет пакет, получатель получает его в течение заданного времени и отвечает подтверждением, отправитель отправляет снова.
2) Состояние ошибки (тайм-аут повторной передачи):
Тайм-аут повторной передачи в протоколе с остановкой ожидания означает, что до тех пор, пока подтверждение не будет получено в течение определенного периода времени, ранее отправленный пакет будет передан повторно (считается, что только что отправленный пакет потерян). Следовательно, каждый раз при отправке пакета необходимо устанавливать таймер тайм-аута, а время его повторной передачи должно быть больше, чем среднее время приема-передачи данных при передаче пакета. Этот метод автоматической повторной передачи часто называютАвтоматический повтор запроса ARQ. Кроме того, если в протоколе «стоп-и-ожидание» получен дубликат пакета, пакет отбрасывается, но одновременно отправляется подтверждение.Непрерывный протокол ARQМожет улучшить использование канала. Отправка поддерживает окно отправки, и все пакеты, находящиеся в окне отправки, могут отправляться непрерывно, не дожидаясь подтверждения другой стороны. Получатель обычно использует кумулятивные подтверждения для отправки подтверждения последнему пакету, прибывшему по порядку, указывая на то, что все пакеты в этом местоположении пакета были получены правильно.3) Потеря подтверждения и подтверждение с опозданием
-
подтвердить потерянный: Подтверждающее сообщение потеряно во время передачи
Когда A отправляет сообщение M1, а B получает его, B отправляет сообщение подтверждения M1 к A, но оно теряется во время передачи. Но А не знает, что по истечении тайм-аута А повторно передает сообщение М1, а Б предпринимает следующие две меры после повторного получения сообщения:- Это дублированное сообщение M1 отбрасывается и не доставляется на верхний уровень.
- Отправьте сообщение с подтверждением А. (Это не будет считаться, что оно было отправлено, и оно не будет отправлено повторно. Если А может повторить передачу, это доказывает, что подтверждающее сообщение Б потеряно).
-
подтвердить поздно: Сообщение подтверждения передается с опозданием
A отправляет сообщение M1, B получает и отправляет подтверждение. Если сообщение с подтверждением не получено в течение периода ожидания, A повторно передает сообщение M1, но B все еще получает и продолжает отправлять сообщение с подтверждением (B получил 2 копии M1). В это время A получает подтверждающее сообщение, отправленное B во второй раз. Затем отправьте другие данные. Через некоторое время A получил подтверждающее сообщение для M1, отправленное B в первый раз (A также получил 2 подтверждающих сообщения). Обработка заключается в следующем:- Получив дубликат подтверждения, А напрямую отбрасывает его.
- Получив дубликат M1, B напрямую отбрасывает дубликат M1.
Протокол автоматического повторного запроса ARQ
Тайм-аут повторной передачи в протоколе с остановкой ожидания означает, что до тех пор, пока подтверждение не будет получено в течение определенного периода времени, ранее отправленный пакет будет передан повторно (считается, что только что отправленный пакет потерян). Следовательно, каждый раз при отправке пакета необходимо устанавливать таймер тайм-аута, а время его повторной передачи должно быть больше, чем среднее время приема-передачи данных при передаче пакета. Этот режим автоматического повторения часто называют автоматическим ARQ запроса на повторение.
преимущество:Простой
недостаток:низкое использование канала
Непрерывный протокол ARQ
Непрерывный протокол ARQ улучшает использование канала. Отправитель поддерживает окно отправки, и все пакеты в пределах окна отправки могут отправляться непрерывно, не дожидаясь подтверждения другой стороны. Получатель обычно принимает кумулятивное подтверждение и отправляет подтверждение последнему пакету, прибывшему по порядку, указывая, что все пакеты до этого пакета были получены правильно.
преимущество:Коэффициент использования канала высок и прост в реализации, даже если подтверждение потеряно, повторная передача не требуется.
недостаток:Информация обо всех пакетах, которые получатель принял корректно, не может быть отражена отправителю. Например: отправитель отправляет 5 сообщений, а третье посередине теряется (№3), в это время получатель может отправить подтверждения только первым двум. Отправитель не может знать местонахождение последних трех пакетов и должен повторно передать все последние три пакета. Это также называется Go-Back-N, что означает, что ему нужно вернуться, чтобы повторно передать N сообщений, которые уже были отправлены.
раздвижное окно
- TCP использует механизм скользящего окна для реализации управления потоком.
- Скользящее окно — это метод управления потоком. В ранней сетевой связи две взаимодействующие стороны не учитывали перегрузку сети для прямой отправки данных. Поскольку никто не знает о состоянии перегрузки сети и отправляет данные одновременно, промежуточные узлы блокируют и отбрасывают пакеты, и никто не может отправлять данные, поэтому для решения этой проблемы существует механизм скользящего окна.
- В TCP для управления передачей используется скользящее окно Размер скользящего окна означает, какой объем буфера есть у приемника для приема данных. Отправитель может использовать размер скользящего окна, чтобы определить, сколько байтов данных следует отправить. Когда скользящее окно равно 0, отправитель, как правило, больше не может отправлять дейтаграммы, за исключением двух случаев, один из которых предназначен для отправки срочных данных, например, позволяющих пользователю завершить запущенный процесс на удаленной машине. Другая ситуация заключается в том, что отправитель может послать 1-байтовую дейтаграмму, чтобы проинформировать получателя о том, что нужно повторно указать следующий байт, который он хочет получить, и размер скользящего окна отправителя.
управление потоком
- TCP использует скользящие окна для управления потоком.
- Управление потоком предназначено для управления скоростью отправки отправителя и обеспечения того, чтобы у получателя было время для приема.
- Поле окна в сообщении подтверждения, отправленном получателем, может использоваться для управления размером окна отправителя, тем самым влияя на скорость отправки отправителем. Если в поле окна установлено значение 0, отправитель не может отправлять данные.
контроль перегрузки
В определенный момент, если спрос на ресурс в сети превышает доступную часть этого ресурса, производительность сети ухудшится. Такая ситуация называется запором. Контроль перегрузки предназначен для предотвращения ввода слишком большого количества данных в сеть, чтобы маршрутизаторы или каналы в сети не были перегружены. Управление перегрузкой исходит из того, что сеть может выдержать существующую сетевую нагрузку. Управление перегрузкой — это глобальный процесс, в котором участвуют все хосты, все маршрутизаторы и все факторы, связанные с ухудшением производительности передачи по сети. Напротив, управление потоком часто представляет собой управление трафиком «точка-точка» и представляет собой сквозную проблему. Все, что делает управление потоком, — это регулирует скорость, с которой отправитель отправляет данные, чтобы у получателя было время их получить.
Для управления перегрузкой отправитель TCP поддерживаетОкно перегрузки (cwnd)переменная состояния. Размер окна контроля перегрузки зависит от степени загруженности сети и изменяется динамически. Отправитель позволяет своему окну отправки быть меньшим из окна перегрузки и окна приема получателя.
Управление перегрузкой TCP использует четыре алгоритма, а именно:медленный старт,предотвращение перегрузки,быстрая ретрансляцияибыстрое восстановление. На сетевом уровне маршрутизаторы также могут применять соответствующие стратегии отбрасывания пакетов (такие как активное управление очередями AQM), чтобы уменьшить вероятность перегрузки сети.
- Медленный старт:Идея алгоритма медленного старта заключается в том, что когда хост начинает отправлять данные, если сразу в сеть вводится большое количество байтов данных, это может вызвать перегрузку сети, потому что соответствие сети еще неизвестно. Опыт показал, что лучший метод — сначала зондировать, то есть постепенно увеличивать окно отправки от малого до большого, то есть постепенно увеличивать значение окна перегрузки от малого до большого. Начальное значение cwnd равно 1, и после каждого раунда распространения cwnd удваивается.
- Предотвращение перегрузки:Идея алгоритма предотвращения перегрузки заключается в медленном увеличении окна перегрузки cwnd, то есть увеличении отправляемого cwnd на 1 каждый раз, когда проходит время приема-передачи RTT.
- Быстрая ретрансляция и быстрое восстановление:В TCP/IP быстрая повторная передача и восстановление (FRR) — это алгоритм управления перегрузкой, который быстро восстанавливает потерянные пакеты. Без FRR, если пакет потерян, TCP будет использовать таймер, требующий приостановки передачи. Во время этой паузы новые или дублированные пакеты не отправляются. При использовании FRR, если получатель получает сегмент вне очереди, он немедленно отправляет дубликат подтверждения отправителю. Если передатчик получает три повторяющихся подтверждения, он предполагает, что сегменты данных, указанные в подтверждении, отсутствуют, и немедленно повторно передает эти недостающие сегменты данных. С FRR нет задержки из-за пауз, необходимых при повторных передачах. Быстрая повторная передача и восстановление (FRR) работает наиболее эффективно при потере отдельных пакетов. Это не очень хорошо работает, когда за короткий промежуток времени теряется несколько пакетов данных.
5. Введите url-адрес в браузере -> процесс отображения главной страницы (интервью регуляров)
Baidu, кажется, любит этот вопрос больше всего.
Откройте веб-страницу, какие протоколы будут использоваться на протяжении всего процесса
Источник изображения: "Иллюстрированный HTTP"
Шесть кодов состояния
Связь между различными протоколами и протоколом HTTP
Как правило, интервьюеры будут использовать такие вопросы, чтобы проверить ваше понимание системы знаний о компьютерных сетях.
Источник изображения: "Иллюстрированный HTTP"
Длинное соединение восемь HTTP, короткое соединение
Короткие соединения используются по умолчанию в HTTP/1.0. То есть каждый раз, когда клиент и сервер выполняют HTTP-операцию, устанавливается соединение, которое разрывается при завершении задачи. Когда веб-страница определенного HTML или другого типа, к которой обращается клиентский браузер, содержит другие веб-ресурсы (такие как файлы JavaScript, файлы изображений, файлы CSS и т. д.), каждый раз, когда встречается такой веб-ресурс, браузер будет заново создавать сеанс HTTP.
Начиная с HTTP/1.1, постоянные соединения используются по умолчанию для поддержания характеристик соединения. Используя протокол HTTP с длинным подключением, эта строка кода будет добавлена в заголовок ответа:
Connection:keep-alive
В случае использования длительного соединения при открытии веб-страницы TCP-соединение, используемое для передачи HTTP-данных между клиентом и сервером, не будет закрыто, при повторном обращении клиента к серверу он продолжит использовать установленное связь. . Keep-Alive не сохраняет соединение вечно, у него есть время сохранения, которое можно установить в другом серверном ПО (например, в Apache). Реализация постоянного соединения требует, чтобы и клиент, и сервер поддерживали постоянные соединения.
Длинное соединение и короткое соединение протокола HTTP по существу представляют собой длинное соединение и короткое соединение протокола TCP.
——«Что такое длинные соединения HTTP и короткие соединения? 》
напиши в конце
Обзор часто задаваемых вопросов о компьютерных сетях
- ① Трехстороннее рукопожатие TCP и четырехсторонняя волна,
- ②Введите URL-адрес в браузере -> процесс отображения домашней страницы
- ③Разница между HTTP и HTTPS
- ④Разница между протоколами TCP и UDP
- ⑤ Общие коды состояния.
предположение
Я настоятельно рекомендую всем прочитать книгу "Иллюстрированный HTTP". В этой книге немного страниц, но содержание очень существенное. Используется ли она для систематического овладения некоторыми знаниями в области сетей или просто для того, чтобы справиться с интервью, она очень полезна. . Некоторые из приведенных ниже статей предназначены только для справки. Когда я изучал этот курс на втором курсе, мы использовали учебник «Компьютерные сети, седьмое издание» (под редакцией Се Сижэня).
Рекомендации по документации с открытым исходным кодом
Java-Guide: Руководство, которое охватывает основные знания, которые необходимо освоить большинству Java-программистов. Оно постепенно совершенствуется шаг за шагом. Мы с нетерпением ждем вашего участия.
Адрес на гитхабе:GitHub.com/snail Climb/…
Ссылаться на:
Если ты расцветешь, ветерок придет. Добро пожаловать в мою общедоступную учетную запись WeChat: «Руководство по прохождению интервью на Java», теплую общедоступную учетную запись WeChat. В официальном аккаунте много информации, отвечайте на ключевое слово "1" и может увидите то, что хотите!