Куда бы вы ни пошли, вы должны помнить, что прошлое фальшиво, память — это бесконечная дорога, всех прошлых пружин уже нет, и даже самая цепкая и неистовая любовь — лишь мимолетный миг в конце мимолетной реальности. -Маркес
Эта статья была включена в мой GitHub, и все желающие могут пометить ее звездочкой и задать вопрос.
GitHub.com/Midu-Specialties/…
Будьте внимательны, не теряйтесь ❤️❤️❤️
Зашел на форум и увидел пост.В заголовке было сказано,что он изучает сетевые модели.Люди часто упоминали о проблеме залипания пакетов TCP.Улыбнулся. В этой теме много дискуссий. Теперь, когда вы это видите, позвольте мне, кстати, объяснить эту проблему. Также рассматриваются проблемы с TCPкомпьютерная сетьОдин из наиболее важных пунктов знаний винтервьюКонечно, это необходимо,РаботаТакже часто встречаются проблемы, связанные с ним. Дядя долго не только говорит о точках знаний сети сети, но и другие баллы внутренних знаний часто будут занимать каждому.Подписывайтесь на меня, не пропустите замечательный контент 💕Вы можете без проблем подписаться, выполнив поиск Long Yue Twelve в WeChat.
сетевая модель
Многоуровневая модель компьютерной сети в основном включает в себя семиуровневую модель OSI, пятиуровневую модель TCP/IP и четырехуровневую модель. интерфейсный слой.
Семиуровневая модель OSI описана в учебниках, а пятиуровневая модель TCP/IP является наиболее широко используемой моделью сетевой архитектуры в повседневной жизни. Изучая сетевые знания, вы также должны усвоить ключевые моменты для изучения и понять семиуровневую модель.
Как видно из вышеуказанного слоя, TCP - это концепция, которая существует в транспортном слое. Но TCP имеет два значения, один относится к протоколу TCP, а другое - это общее название семьи протокола TCP. В частности, IP или ICMP, TCP или UDP, Telnet или FTP и HTTP являются все протоколами TCP / IP.
Почему слой TCP?
TCP — это протокол, относящийся к транспортному уровню, а уровень TCP, о котором я говорил, относится к транспортному уровню, который должен быть унифицирован.
** Основная функция транспортного уровня — обеспечение связи между приложениями. ** В одном предложении понятно, что делает уровень TCP.
Как существуют данные уровня TCP?
определение ПТС,TCP — это надежный протокол потоковой передачи, ориентированный на соединение.Концепции часто представляют собой сильно сжатые классические понятия, такие как это предложение, описывающее установление TCP-передачи, методы передачи и характеристики.ориентированный на соединениеЭто означает, что для передачи двух приложений необходимо заранее установить ссылку, эта ссылка является нашим VIP-каналом, который обеспечивает беспрепятственный переход между двумя приложениями.пиринговыйПередача инфекции.建立链接的过程就是面试常考的трехстороннее рукопожатиепроцесс.
трехстороннее рукопожатиеипомахал четыре разаЭто будет проанализировано в последующих статьях.Если вы хотите узнать больше, не забудьте подписаться на меня и выполнить поиск в WeChat.Лун Юэ ДвенадцатьПодписывайтесь без опаски.
потоковоеГоворя о методах передачи данных, взаимодействие данных на уровне TCP является потоковым.Что такое потоковое? Поток можно понимать как поток воды, а поток воды не имеет границ.
надежныйОтносится к характеристикам передачи данных TCP.Надежность означает, что данные, которые вы отправляете, должны быть максимально максимальными, чтобы позволить другой стороне получить их. TCP обеспечивает надежность передачи, механизм «управления порядком» или «управления повторной передачей». Кроме того, «управление потоком (управление потоком)», «управление перегрузкой» и множество функций, таких как улучшение использования сети. В частности, как обеспечить надежность сообщения с помощью этих механизмов. В последующих статьях тоже будет соответствующая статья, не напоминайте обращать на меня внимание.
По определению мы четко знаем, что данные TCP — это поток байтов. TCP для отправки блоков данных является точным названием длясегмент данных. Взаимодействие между приложением и TCP осуществляется по одному сегменту данных за раз (разного размера), и TCP рассматривает только данные, переданные приложением, как сериюнеструктурированныйизБайтовый поток. TCP не знает смысла передаваемого потока байтов.
TCP не гарантирует, что сегмент данных, полученный приложением-получателем, и сегмент данных, выданный приложением-отправителем, имеет соответствующий размер (например, приложение-отправитель передает в TCP-отправителя всего 10 сегментов данных, но TCP-получатель может только использовать 4 сегмента данных для доставки полученного потока байтов вышестоящему приложению). Поток байтов, полученный приложением-получателем, должен точно совпадать с потоком байтов, отправленным приложением-отправителем.
На этом уровне идет речь о концепции пакета?
-
Кадр данных (кадр): это информационная единица, начальная точка и точка назначения которой являются уровнем канала передачи данных.
-
Пакет: это также единица информации, источником и пунктом назначения которой являются сетевой уровень.
-
Дейтаграмма: обычно относится к единице информации на сетевом уровне, источник и пункт назначения которой используют сетевые службы без установления соединения.
-
Сегмент (сегмент): обычно относится как к начальной точке, так и к целевому уровню транспортировки информационных блоков.
-
Сообщение (сообщение): относится к начальной точке и назначению выше сетевого уровня (часто слой приложения) информационного элемента.
-
Элемент (ячейка) — это фрагмент информации фиксированной длины, источником и получателем которого являются уровень канала передачи данных.
Элементы обычно используются в средах коммутации, таких как сети с асинхронным режимом передачи (ATM) и коммутируемыми мультимегабитными службами данных (SMDS).
Единица данных относится ко многим единицам информации. Обычно используемыми блоками данных являются блок служебных данных (SDU) и блок данных протокола (PDU).
SDU — это передача информации между двумя уровнями на одной машине. PDU — это информация каждого уровня на машине-отправителе, которая отправляется на соответствующий уровень на машине-получателе (для связи между теми же уровнями).
Пакет: базовая единица инкапсуляции, которая проходит через плоскость декомпозиции сетевого уровня и уровня канала передачи данных. Обычно пакет сопоставляется с кадром, но есть исключения: когда уровень канала данных выполняет разделение или объединяет несколько пакетов в кадр.
PDU уровня канала передачи данных называется кадром. PDU сетевого уровня называется пакетом. TCP называется Segment (сегмент данных), UDP называется Datagram.
Дейтаграмма может быть инкапсулирована в один или несколько пакетов, форма передачи в кадре передачи канального уровня и пакетные данные. Кадр, работающий на втором этаже, передает кадр данных канального уровня, содержащий пакет данных, и соответствующее увеличение информации MAC-адреса уровня 2; пакеты, работающие на трех уровнях, передается пакет сетевого уровня, пакеты данных, содержащие текст и добавьте IP-адрес и другую передачу информации, используя три уровня.
Почему мы все еще говорим о интервьюере и придерживаемся проблеме пакетов TCP?
Из приведенного выше легко увидеть, что сначала передача на уровне TCP является потоковой, и пакеты не отправляются. Во-вторых, пакет данных — это понятие, существующее на сетевом уровне. Тогда почему вы говорите о проблеме липких пакетов TCP?
Студенты, которые изучали сеть сверху вниз, знают, что приложение сначала отправляет свои данные через сокет. Прикладной уровень доставляет структурированные данные в TCP, а структурированные данные передаются на уровень TCP.
поток, самая большая проблема в том, что нет границы, никакая граница не заставит данные склеиваться, это слипание называетсялипкий мешок. Конечно, некоторые студенты спросят, почему бы не назвать это липким сегментом? это. . .
Опишите, что такое липкий пакет.
Прилипшие пакеты TCPЭто означает, что несколько пакетов данных, отправленных отправителем, склеиваются в один пакет при получении получателем.Из приемного буфера за заголовком следующего пакета данных сразу следует конец предыдущего пакета данных.
В каких случаях возникает липкий пакет?
TCP этоконцы с концамипередается, пока доступно TCP-соединениемультиплексиз. Что такое повторное использование? Мультиплексирование заключается в том, что соединение может использоваться несколькими процессами на хосте.
**1.** Проблема с липкими пакетами, вызванная мультиплексированием соединений TCP.
Если соединение не мультиплексировано и предоставляется только двум сквозным процессам, это формат данных, согласованный между передатчиком данных и отправителем, ноНесколько процессовИспользуя TCP-соединение, на этот размного разных структурДанные поступают в потоковую передачу TCP, и граничная сегментация обязательно будет выглядеть так.
Если вы используете tcp для отправки данных каждый раз, соединение устанавливается с другой стороной, а затем соединение закрывается после того, как две стороны отправят часть данных, так что не будет проблемы с липкими пакетами.
Проблема мультиплексирования соединений будет объяснена позже в серии статей о TCP. Так что поторопись и следуй за мной 😆 чтобы не потеряться, поиск в WeChatЛун Юэ Двенадцать, вы можете подписаться без беспокойства.
** 2. ** По умолчанию, потому что TCP использует алгоритм Nagle, который может вызвать проблемы с пакетным пакетом задач.
Алгоритм Нейгла в основном делает две вещи: 1) следующий пакет отправляется только тогда, когда подтверждается предыдущий пакет; 2) несколько небольших пакетов собираются и отправляются вместе, когда приходит подтверждение.
Несколько пакетов собираются в один сегмент данных и отправляются наружу.Если нет хорошей граничной обработки, при распаковке возникнет проблема с залипанием пакетов.
**3.** Проблема залипания пакетов, вызванная слишком большими пакетами данных.
Например, размер сообщения в байтах в буфере процесса приложения превышает размер буфера отправки, что может вызвать проблему с залипанием пакетов. Поскольку сообщение было разделено, возможно, что часть сообщения была отправлена и другая сторона приняла его, но другая часть могла быть просто помещена в буфер отправки сокета для дальнейшей передачи, что напрямую приводит к последняя часть принятия, которая непосредственно приводит к липкости.Проблемы с упаковкой возникают.
**4.**Управление потоком, управление перегрузкой также может привести к залипанию пакетов.
**5.** Получатель не получает вовремя пакеты из буфера, что приводит к приему нескольких пакетов.
Большинство людей знаютАлгоритм Nagle,Получатель не обрабатывает вовремяПроблема с липким мешком, вызванная двумя ситуациями, но дядя Лонг должен напомнить вам, что другие ситуации также очень распространены, и интервьюер также очень любит задавать вопросы.Если вы можете ответить на другие три, вероятность прохождения собеседования намного выше.
Как решить проблему с липким пакетом?
1.Алгоритм НэглаПроблема вызвана, и алгоритм должен быть соответствующим образом закрыт для сценария приложения.
2. Есть два основных способа справиться с другими ситуациями:
-
последовательность хвостового маркера. Границы пакетов представлены специальными идентификаторами, такими как \n\r, \t или некоторыми скрытыми символами.
-
Тег заголовка получается шаг за шагом. Добавьте к заголовку сообщения TCP, чтобы указать длину данных.
-
Когда прикладной уровень отправляет данные, они отправляются с фиксированной длиной.
Эта статья включает в себя много ключевых знаний о компьютерных сетях и не дает ясности, но эта статья предназначена для того, чтобы каждый понял проблему прилипающих пакетов TCP, а другие проблемы будут обновлены позже.Следуйте за мной, не пропустите замечательный контент.