По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетевой экосистеме. Давайте посмотрим, как вы можете выявить и устранить задержку в сети.  Любое действие, которое требует использование сети, например, открытие веб-страницы, переход по ссылке, открытие приложения или игра в онлайн-игру, называется активностью. Активность пользователя – это запрос, а время отклика веб-приложения – это время, которое требуется для ответа на этот запрос.  Временная задержка также включает в себя время, которое сервер тратит на выполнение запроса. Таким образом, временная задержка определяется как круговой путь – время для записи, обработки и получения пользователем запроса, где он уже декодируется.  Понятие «низкое значение задержки» относится к относительно недлительным временным задержкам при передаче данных. А вот длительные задержки, или чрезмерные задержки, не слишком приветствуются, так как они ухудшают процесс взаимодействия с пользователем.  Как исправить задержку в сети? На просторах Интернета есть большое количество инструментов и программных средств, которые могут помочь в анализе и устранении неполадок в сети. Некоторые из них платные, некоторые бесплатные. Впрочем, есть инструмент под названием Wireshark – бесплатное приложение с общедоступной лицензией, которое используется для перехвата пакетов данных в режиме реального времени. Wireshark – это самый популярный и самый часто используемый в мире анализатор сетевых протоколов. Это приложение поможет вам перехватывать сетевые пакеты и отображать их детальную информацию. Вы можете использовать эти пакеты для проведения анализа в режиме реального времени или в автономном режиме после того, как сетевые пакеты уже будут перехвачены. Это приложение поможет вам исследовать сетевой трафик под микроскопом, фильтруя и углубляясь в него в попытках найти корень проблемы. Оно помогает с сетевым анализом, и, как следствие, с сетевой безопасностью.  Что может вызывать задержку в сети? Есть несколько основных причин медленного сетевого подключения. Вот некоторые из них: Большая задержка Зависимости приложений Потеря пакетов Перехватывающие устройства Нерациональные размеры окон В данной статье мы рассмотрим каждую из вышеприведенных причин задержки в сети, а также посмотрим, как можно решить эти проблемы с помощью Wireshark. Проверка с помощью Wireshark Большая задержка Понятие «большая задержка» подразумевает время, которое требуется для передачи данных от одной конечной точки к другой. Влияние большой задержки на передачу данных по сети очень велико. На приведенной ниже диаграмме в качестве примера показано время кругового пути при загрузке файла по пути с высокой задержкой. Время задержки кругового пути часто превышает одну секунду, что является недопустимым.  Перейдите к разделу Wireshark Statistics. Выберите опцию TCP stream graph. Выберите Round Trip time graph, чтобы посмотреть, сколько времени необходимо для загрузки файла.  Wireshark используют для расчета времени кругового пути для того, чтобы определить, это ли является причиной плохой работы коммуникационной сети протокола управления передачей (TCP - Transmission Control Protocol). TCP используется для разных целей, например, для просмотра веб-страниц, передачи данных, протокола передачи файлов и многого другого. В большинстве случаев операционную систему можно настроить так, чтобы на каналах с большой задержкой она работала более эффективно, особенно когда хосты используют Windows XP. Зависимости приложений Некоторые приложения имеют зависимости, то есть они зависят от каких-то других приложений, процессов или от обмена данными с хостом. Допустим, что ваше приложение – это база данных, и оно зависит от подключения к другим серверам, которое необходимо для получения элементов базы данных. В таком случае слабая производительность на этих «других серверах» может негативно повлиять на время загрузки локального приложения.  Рассмотрим, например, просмотр веб-страниц при условии, что целевой сервер ссылается на несколько других веб-сайтов. Например, чтобы загрузить главную страницу сайта  www.espn.com , вы должны сначала посетить 16 хостов, которые обеспечивают главную страницу рекламой и наполнением.  На приведенной выше картинке показано окно «HTTP/Load Distribution» в Wireshark. В нем отображается список всех серверов, которые использует главная страница сайта  www.espn.com .  Потеря пакетов Потеря пакетов – это одна из самых часто встречающихся проблем в сети. Потеря пакетов происходит, когда пакеты данных неправильно доставляются от отправителя к получателю через Интернете. Когда пользователь посещает некий веб-сайт и начинает загружать элементы сайта, потерянные пакеты вызывают повторную передачу, что увеличивает скорость загрузки веб-файлов и замедляет при этом общий процесс загрузки.  Более того, потеря пакетов оказывает крайне негативное влияние на приложение, когда оно использует протокол TCP. Когда TCP-соединение обнаруживает потерянный пакет, то скорость передачи данных автоматически снижается, чтобы компенсировать сетевые проблемы.  Потом скорость постепенно восстанавливается до более приемлемого уровня до следующего потерянного пакета, что снова приведет к существенному снижению скорости передачи данных. Загрузка объемных файлов, которая должна была легко проходить по сети, если бы не было потерянных пакетов, теперь заметно страдает от их наличия.  Что это значит – «пакет потерян»? Это неоднозначный вопрос. Если программа работает через протокол TCP, то потеря пакетов может быть обнаружена двумя способами. В первом варианте получатель отслеживает пакеты по их порядковым номерам и, таким образом, может обнаружить отсутствующий пакет. В таком случае клиент делает три запроса на этот отсутствующий пакет (двойное подтверждение), после чего он отправляется повторно. Во втором варианте потерянный пакет обнаруживает отправитель, когда понимает, что получатель не подтвердил получение пакета данных, и по истечении времени ожидания отправляет пакет данных повторно.  Wireshark указывает, что произошла перегрузка сети, а многократные подтверждения провоцируют повторную передачу проблематичного трафика, который выделен цветом. Большое количество продублированных подтверждений указывают на то, что пакет(ы) были потеряны, а также на существенную задержку в сети.  Для того, чтобы повысить производительность сети, важно определить точное место потери пакетов. Когда Wireshark обнаружил потерю пакетов, он начинает перемещаться по пути следования пакетов до тех пор, пока не найдет место их потери пакетов. На данный момент мы находимся «у истоков» точки потери пакетов, поэтому знаем, на чем нужно сосредоточиться при отладке.  Перехватывающие устройства Сетевые перехватчики – это связующие устройства, такие как коммутаторы, маршрутизаторы и брандмауэры, которые заняты выбором направления передачи данных. При потере пакетов эти устройства необходимо проверить, потому что они могли стать причиной утери.  Задержка может возникнуть при работе этих связующих устройств. Например, если установлен приоритет трафика, то дополнительная задержка может возникнуть в потоке с низким уровнем приоритета.  Неэффективные размеры окон Вдобавок к операционной системе Windows, в сетях TCP/IP есть и другие «окна». Скользящее окно Окно получателя Окно отслеживания перегрузок сети Все эти окна совместно отражают производительность сети на основе протокола TCP. Давайте посмотрим, что из себя представляет каждое из этих окон, и определим, как они влияют на пропускную способность сети.  Скользящее окно Скользящее окно используется для широковещательной передачи последующих TCP-сегментов по сети по мере подтверждения данных. Как только отправитель получает подтверждение о том, что получатель получил переданные фрагменты данных, скользящее окно расширяется. До тех пор, пока в сети не обнаружатся потерянные данные, передавать можно достаточно большие объемы данных. При потере пакета скользящее окно сжимается, так как сеть уже не может справиться с таким большим объемом данных.  Окно получателя Окно получателя TCP-стека – это пространство буфера. Когда данные получены, они сохраняются в этом буферном пространстве до тех пор, пока приложение их не перехватит. Окно получателя начинает заполняться, когда приложение не успевает принимать данные, что приводит к сценарию «нулевого окна». Когда получатель объявляет о состоянии «нулевого окна», вся передача данных на хост должна быть остановлена. Пропускная способность падает до нуля. Метод масштабирования окна (RFC 1323) позволяет хосту увеличить размер окна получателя и снизить вероятность наступления сценария «нулевого окна».  На приведенной выше картинке продемонстрирована 32-секундная задержка сетевого соединения из-за сценария «нулевого окна». Окно отслеживания перегрузок сети Окно отслеживания перегрузок сети определяет максимально возможный объем данных, с которым может справиться сеть. На это значение влияют следующие факторы: скорость передачи пакетов отправителя, количество потерянных пакетов в сети и размер окна получателя. В процессе корректной работы сети окно постоянно увеличивается до тех пор, пока передача данных не завершится или пока она не достигнет «потолка», установленного работоспособностью сети, возможностями передачи отправителя или размером окна получателя. Каждое новое соединение запускает процедуру согласования размера окна заново.  Рекомендации для хорошей работоспособности сети Изучите, как можно использовать Wireshark в качестве меры первой помощи, чтобы можно было быстро и эффективно находить источник низкой производительности Определите источник задержки в сети и по возможности сократите ее до приемлемого уровня Найдите и устраните источник потери пакетов Проанализируйте размер окна передачи данных и по возможности уменьшите его Проанализируйте производительность перехватывающих устройств для того, чтобы посмотреть, увеличивают ли они задержку или, возможно, отбрасывают пакеты Оптимизируйте приложение, чтобы оно могло передавать большие объемы данных и, если это возможно, извлекать данные из окна получателя  Заключение В данной статье мы рассмотрели самые основные причины проблем с производительностью сети. Но есть один немаловажный фактор, который просто нельзя упускать, - это непонимание того, как работает передача данных по сети. Wireshark предоставляет визуализацию сети так же, как рентген или компьютерная томография, которая предоставляет визуализацию человеческого тела для точной и быстрой диагностики. Wireshark стал критически важным инструментом, который способен помочь в обнаружении и диагностике проблем в сети.  А теперь проверьте и устраните проблемы с производительностью своей сети с помощью нескольких фильтров и инструментов Wireshark.
img
Перед началом, советуем почитать материал про плоскость управления. Топология - это набор связей (или ребер) и узлов, которые описывают всю сеть. Обычно топология описывается и рисуется как граф, но она также может быть представлена в структуре данных, предназначенной для использования машинами, или в дереве, которое обычно предназначено для использования людьми. Топологическую информацию можно обобщить, просто сделав так, чтобы пункты назначения, которые физически (или виртуально) соединены на расстоянии нескольких прыжков, казались непосредственно присоединенными к локальному узлу, а затем удалив информацию о связях и узлах в любой маршрутной информации, переносимой в плоскости управления, с точки суммирования. Рисунок 4 иллюстрирует эту концепцию. Изучение топологии Казалось бы, достаточно просто узнать о топологии сети: изучить подключенные каналы передачи данных. Однако то, что кажется простым в сетях, часто оказывается сложным. Изучение локального интерфейса может рассказать вам о канале, но не о других сетевых устройствах, подключенных к этому каналу. Кроме того, даже если вы можете обнаружить другое сетевое устройство, работающее с той же плоскостью управления по определенному каналу, это не означает, что другое устройство может вас обнаружить. Таким образом, необходимо изучить несколько вопросов. Обнаружение других сетевых устройств Если маршрутизаторы A, B и C подключены к одному каналу, как показано на рисунке 5, какие механизмы они могут использовать для обнаружения друг друга, а также для обмена информацией о своих возможностях? Первое, что следует отметить в отношении сети, показанной в левой части рисунка 5, - это то, что интерфейсы не соответствуют соседям. Фактические отношения соседей показаны в правой части рисунка 5. У каждого маршрутизатора в этой сети есть два соседа, но только один интерфейс. Это показывает, что плоскость управления не может использовать информацию об интерфейсе для обнаружения соседей. Должен быть какой-то другой механизм, который плоскость управления может использовать для поиска соседей. Ручная настройка - одно из широко распространенных решений этой проблемы. В частности, в плоскостях управления, предназначенных для перекрытия другой плоскости управления, или плоскостях управления, предназначенных для построения отношений соседства через несколько маршрутизируемых переходов по сети, ручная настройка часто является самым простым доступным механизмом. С точки зрения сложности, ручная настройка очень мало добавляет к самому протоколу. Например, нет необходимости в какой-либо форме многоадресного объявления соседей. С другой стороны, ручная настройка соседей требует настройки информации о соседях, что увеличивает сложность с точки зрения конфигурации. В сети, показанной на рисунке 5, маршрутизатор A должен иметь отношения соседства, настроенные с помощью B и C, маршрутизатор B должен иметь отношения соседства, настроенные с помощью A и C, а маршрутизатор C должен иметь отношения соседства, настроенные с помощью A и B. Даже если настройка соседей автоматизирована, ручная настройка углубляет и расширяет поверхности взаимодействия между плоскостями управления и контроля. Определение соседей из маршрутных объявлений - это решение, которое когда-то было широко распространено, но стало менее распространенным. В этой схеме каждое устройство периодически объявляет информацию о доступности и / или топологии. Когда маршрутизатор впервые получает информацию о маршрутизации от другого устройства, он добавляет удаленное устройство в локальную таблицу соседей. Пока соседнее устройство продолжает отправлять информацию о маршрутизации на регулярной основе, отношения между соседями будут считаться активными или активными. При выводе соседей из объявлений о маршрутизации важно иметь возможность определить, когда сосед вышел из строя (чтобы информация о достижимости и топологии, полученная от соседа, могла быть удалена из любых локальных таблиц). Наиболее распространенный способ решения этой проблемы - использование пары таймеров: таймера задержки или отключения и таймера обновления или объявления. Пока сосед отправляет обновление или объявление в пределах таймера отключения или задержки, он считается включенным или активным. Если весь "мертвый" период проходит без получения каких-либо обновлений, сосед считается "мертвым", и предпринимаются некоторые действия, чтобы либо проверить информацию о топологии и доступности, полученную от соседа, либо он просто удаляется из таблицы. Нормальная взаимосвязь между таймером отключения и таймером обновления составляет 3× - таймер отключения установлен на трехкратное значение таймера обновления. Следовательно, если сосед не отправляет три подряд обновления или объявления, таймер бездействия активируется и начинает обработку неработающего соседа. Явные приветствия являются наиболее распространенным механизмом обнаружения соседей. Пакеты приветствия передаются на основе таймера приветствия, и сосед считается "мертвым", если приветствие не получено в течение интервала таймера ожидания или объявления. Это похоже на таймеры dead и update, используемые для вывода соседей из объявлений маршрутизации. Приветствия обычно содержат информацию о соседней системе, такую как поддерживаемые возможности, идентификаторы уровня устройства и т. д. Централизованная регистрация - это еще один механизм, который иногда используется для обнаружения и распространения информации о соседних устройствах. Каждое устройство, подключенное к сети, будет отправлять информацию о себе в какую-либо службу и, в свою очередь, узнавать о других устройствах, подключенных к сети, из этой централизованной службы. Конечно, эту централизованную службу нужно каким-то образом обнаружить, что обычно осуществляется с помощью одного из других упомянутых механизмов. Обнаружение двусторонней связи В плоскостях управления с более сложными процессами формирования смежности - особенно протоколами, которые полагаются на приветствия для формирования отношений соседства - важно определить, могут ли два маршрутизатора видеть друг друга (осуществлять двустороннюю связь), прежде чем формировать отношения. Обеспечение двусторонней связи не только предотвращает проникновение однонаправленных каналов в таблицу пересылки, но также предотвращает постоянный цикл формирования соседей - обнаружение нового соседа, построение правильных локальных таблиц, объявление о доступности новому соседу, тайм-аут ожидания hello или другую информацию, удаление соседа или поиск нового соседа. Существует три основных варианта управления двусторонним подключением между сетевыми устройствами. Не утруждайте себя проверкой двусторонней связи. Некоторые протоколы не пытаются определить, существует ли двусторонняя связь между сетевыми устройствами в плоскости управления, а скорее предполагают, что сосед, от которого принимаются пакеты, также должен быть доступен. Перенос списка доступных соседей, услышанных на линии связи. Для протоколов, которые используют приветствия для обнаружения соседей и поддержания работоспособности, перенос списка доступных соседей по одному и тому же каналу является распространенным методом обеспечения двусторонней связи. Рисунок 6 иллюстрирует это. На рисунке 6 предположим, что маршрутизатор A включен раньше B. В этом случае: A отправит приветствия с пустым списком соседей, поскольку он не получил приветствия от любого другого сетевого устройства по каналу. Когда B включен, он получит приветствие A и, следовательно, включит A в список соседей, которые он слышал в своих hello пакетах. Когда A получает приветствие B, он, в свою очередь, включает B в свой список "услышанных" соседей в своих пакетах приветствия. Когда и A, и B сообщают друг о друге в своих списках соседей, которые "слышно от", оба маршрутизатора могут быть уверены, что двустороннее соединение установлено. Этот процесс часто называют трехсторонним рукопожатием, состоящим из трех шагов: A должен послать привет B, чтобы B мог включить A в свой список соседей. B должен получить приветствие A и включить A в свой список соседей. A должен получить приветствие B с самим собой (A) в списке соседей B. Положитесь на базовый транспортный протокол. Наконец, плоскости управления могут полагаться на базовый транспортный механизм для обеспечения двусторонней связи. Это необычное решение, но есть некоторые широко распространенные решения. Например, протокол Border Gateway Protocol (BGP), опирается на протокол управления передачей (TCP), чтобы обеспечить двустороннюю связь между спикерами BGP. Определение максимального размера передаваемого блока (MTU) Для плоскости управления часто бывает полезно выйти за рамки простой проверки двусторонней связи. Многие плоскости управления также проверяют, чтобы максимальный размер передаваемого блока (MTU) на обоих интерфейсах канала был настроен с одинаковым значением MTU. На рисунке 7 показана проблема, решаемая с помощью проверки MTU на уровне канала в плоскости управления. В ситуации, когда MTU не совпадает между двумя интерфейсами на одном канале, возможно, что соседние отношения сформируются, но маршрутизация и другая информация не будут передаваться между сетевыми устройствами. Хотя многие протоколы имеют некоторый механизм для предотвращения использования информации о результирующих однонаправленных каналах при вычислении путей без петель в сети, все же полезно обнаруживать эту ситуацию, чтобы о ней можно было явным образом сообщить и исправить. Протоколы плоскости управления обычно используют несколько методов, чтобы либо явно обнаружить это условие, либо, по крайней мере, предотвратить начальные этапы формирования соседей. Протокол плоскости управления может включать локально настроенный MTU в поле в пакетах приветствия. Вместо того чтобы просто проверять наличие соседа во время трехстороннего рукопожатия, каждый маршрутизатор может также проверить, чтобы убедиться, что MTU на обоих концах линии связи совпадает, прежде чем добавлять новое обнаруженное сетевое устройство в качестве соседа. Другой вариант - добавить пакеты приветствия к MTU локального интерфейса. Если дополненный пакет приветствия максимального размера не получен каким-либо другим устройством в канале связи, начальные этапы отношений соседства не будут завершены. Трехстороннее рукопожатие не может быть выполнено, если оба устройства не получают пакеты приветствия друг друга. Наконец, протокол плоскости управления может полагаться на базовый транспорт для регулирования размеров пакетов, чтобы коммуникационные устройства могли их принимать. Этот механизм в основном используется в плоскостях управления, предназначенных для наложения какой-либо другой плоскости управления, особенно в случае междоменной маршрутизации и виртуализации сети. Плоскости управления наложением часто полагаются на обнаружение MTU пути (Path MTU) для обеспечения точного MTU между двумя устройствами, подключенными через несколько переходов. Сам размер MTU может оказать большое влияние на производительность плоскости управления с точки зрения ее скорости сходимости. Например, предположим, что протокол должен передавать информацию, описывающую 500 000 пунктов назначения по многопоточному каналу с задержкой 500 мс, и для описания каждого пункта назначения требуется 512 бит: Если MTU меньше 1000 бит, для плоскости управления потребуется 500 000 циклов туда и обратно для обмена всей базой данных доступных пунктов назначения, или около 500 000 × 500 мс, что составляет 250 000 секунд или около 70 часов. Если MTU составляет 1500 октетов или 12000 битов, плоскости управления потребуется около 21000 циклов туда и обратно для описания всей базы данных доступных пунктов назначения, или около 21000 × 500 мс, что составляет около 175 минут. Важность сжатия такой базы данных с использованием какого-либо оконного механизма для сокращения числа полных обходов, необходимых для обмена информацией о достижимости, и увеличения MTU вполне очевидна. Далее почитайте материал о том, как происходит обнаружение соседей в сетях.
img
Сложная терминология в некоторых темах, касающихся IT, иногда заводит в тупик. Простой и понятный процесс может быть описан очень комплексным языком, из-за чего, даже после изучения темы, могут остаться вопросы. Это касается и контейнеризации. В рамках этой темы ответим на вопрос - в чем разница между LXC, LXD и LXCFS. О LXC LXC (Linux Containers) представляет собой интерфейс в пользовательской среде, функция которого - сдерживать ядро Linux. Имея в активе эффективный API и набор простых инструментов, LXC дает пользователю возможность администрировать любые использующиеся контейнеры. Важные характеристики Текущая версия LXC задействует ряд функций ядра, чтобы обеспечить контейнеризацию следующих процессов: namespaces (ipc, uts, mount, pid); профиль AppArmor (та же SELinux); правила Seccomp; Chroots (задействуя pivot _root); потенциал ядра; группы контроля (CGroups). Как правило, контейнеры LXC обычно воспринимаются пользователями как нечто усредненное между Chroot и VM. Эта технология нацелена на то, чтобы создать среду, аналогичную стандартно установленной Linux, но сделать это без необходимости в дополнительном ядре. Компоненты Ниже в списке, несколько актуальных компонентов LXC: liblxc; языковые привязки для AP (Python (2 и 3 ), Lua, Go, Ruby, Haskell); стандартные инструменты администрирования контейнеров; готовые варианты контейнеров; LXD - решение для LXC LXD (Linux Container Daemon) является базирующимся на LXC гипервизором контейнеров. Основные части LXD: системный daemon (lxd); клиент LXC; плагин (nova-compute-lxd); REST API предоставляется демоном в локальном или сетевом режиме. Эффективная утилита управления, клиент командной строки, отличается своей интуитивностью и простотой. Именно с помощью него реализовано управление каждым контейнером. Клиент обрабатывает подключение одновременно к разному количеству контейнеров, отображает уже созданные и создает новые. Есть возможность их перемещения в процессе функционирования. Упомянутый плагин “превращает” все LXD-host в вычислительные узлы, которые работают для поддержки контейнеров, а не VM. Преимущества Основные преимущества LXD: обеспечение безопасности (контейнеры не обладают привилегированностью, ресурсы ограничиваются и так далее.) любой масштаб использования; интуитивность (простое управление через ввод в командной строке); образ-ориентированность (использование надежных образов, вместо шаблонов); возможность активной миграции; Связь с LXC LXD не является новой версией LXC, скорее, он использует ее как базу. Чтобы администрирование контейнеров стало еще проще, LXD задействует LXC, влияя на библиотеку последней. Также во взаимодействии участвует прослойка, написанная на Go. Таким образом, LXD является, по сути, альтернативой LXC с расширенными возможностями (отличный пример - управление через сеть). LXCFS: настройка контейнеризации LXCFS - это небольшая архитектура файлов в среде пользователя, которая способна оптимизировать работу ядра Linux. LXCFS включает в себя: файлы, которые монтируются над оригинальными аналогами и предоставляют CGroup-совместимые значения; дерево cgroupfs, функционирующее в независимости от контейнеров. Архитектура представляет из себя простой код, созданный в C. Задача, которую необходимо было решить - запуск контейнера systemdпод базовым пользователем с параллельным запуском systemd внутри контейнера, с целью взаимодействовать с cgroups. Если говорить простым языком, цель создания этой архитектуры - ощущение активного контейнера, как независимой системы. Так в чем же разница? Сравнивать LXC, LXD, LXCFS не имеет смысла, так как они не представляют из себя 3 разных продукта с одинаковым функционалом. Грубо можно описать их как программу, дополнение к ней и патч, который позволяет среде пользователя адаптироваться под ее нужды.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59