Настройка производительности сетевых адаптеров

Работаем с Jumbo Frame

Исторически размер данных кадра протокола Ethernet – это 1.5КБ, что в сумме со стандартным заголовком составляет 1518 байт, а в случае транкинга 802.1Q – 1522 байт. Соответственно, этот размер оставался, а скорости росли – 10 Мбит, 100 Мбит, 1 Гбит. Скорость в 100 раз выросла – а размер кадра остался. Непорядок. Ведь это обозначает, что процессор в 100 раз чаще “дёргают” по поводу получения нового кадра, что объём служебных данных также остался прежним. Совсем непорядок.

Идея jumbo frame достаточно проста – увеличить максимальный размер кадра. Это повлечёт огромное количество плюсов:

  • Улучшится соотношение служебных и “боевых” данных – ведь вместо, допустим, 4х IP-пакетов можно отправить один.
  • Уменьшится число переключений контекста – можно будет реже инициировать функцию “пришёл новый кадр”.
  • Можно соответствующим образом увеличить размеры PDU верхних уровней – пакета IP, датаграммы UDP, сегмента TCP – и получить соответствующие преимущества.

Данная технология реализуема только на интерфейсах со скоростями 1 гбит и выше. Если Вы включите jumbo frames на уровне сетевого адаптера, а после согласуете скорость в 100 мбит, то данная настройка не будет иметь смысла.

Во избежание каши: PDU – это название элемента данных на разных уровня модели OSI. На первом это будет бит, на втором – кадр или ячейка (в ряде ситуаций и пакет), на третьем – пакет или датаграмма, на четвёртом – датаграмма или сегмент. MTU – это максимальное количество байт полезной нагрузки (поэтому про MTU первого уровня говорить не принято – примерно как про Западный и Восточный полюсы Земли). MSS – это максимальный размер одного “кусочка” tcp-сессии – сегмента.

Для увеличения максимального размера кадра есть достаточно технологических возможностей – например, длина кадра хранится в поле размером в 2 байта, поэтому менять формат кадра 802.3 не нужно – место есть. Ограничением является логика подсчёта CRC, которая становится не очень эффективна при размерах >12К, но это тоже решаемо.

Фундаментально неверное мнение – что jumbo frame – это “разрешение на обработку кадров специальной длины”. Вызвано тем, что в настройках сетевых адаптеров обычно выбирается размер jumbo-кадра из фиксированных – 4088, 9014, 16K. По сути, включение jumbo просто снимает верхнее ограничение на приём кадров, у которых в поле “размер” число больше 1500. Если jumbo frame не поддерживаются, такие кадры просто отбрасываются. А данные стандартные числа в настройках сетевого адаптера – это ограничение на формируемый для отправки кадр. Нужно оно, потому что не все коммутаторы поддерживают произвольную длину (ведь эта поддержка требует пропорционально увеличить кадровые буферы). В реальности подавляющее большинство коммутаторов поддерживает размер кадра в 9К, выставлять значение 4088 нет особого смысла.

Самый простой способ – выставить у адаптера данный параметр в 9014 байт. Это является тем, что сейчас “по умолчанию” называется jumbo frame и шире всего поддерживается.

Внимательный читатель уже заметил, что когда речь идёт о 1.5К данных, кадр получается 1518 байт, а когда про 9К – 9014. Как же так получается? Да очень просто – по причине раздолбайства укоренилась чуть разная логика подсчёта. Когда считают обычный кадр, то его делят на 3 части – header(14 байт)-data(до 1500 байт)-trailer(который CRC – 4 байта), а когда jumbo – то считают математическую сумму длины заголовка (который тоже 14 байт) и данных (которые до 9000 байт), а CRC не учитывают. Отсюда и бардак.

Есть ли у данной технологии минусы? Есть. Первый – в случае потери кадра из-за обнаружения сбоя в CRC Вы потеряете в 6 раз больше данных. Второй – появляется больше сценариев, когда будет фрагментация сегментов TCP-сессий. Вообще, в реальности эта технология очень эффективна в сценарии “большие потоки не-realtime данных в локальной сети”, учитывайте это. Копирование файла с файл-сервера – это целевой сценарий, разговор по скайпу – нет. Замечу также, что протокол IPv6 более предпочтителен в комбинации с Jumbo frame.

Как включить Jumbo frame в Windows

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

Включение сетевой карты, в том числе с помощью BIOS

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

  1. Для включения/выключения сетевого контроллера при помощи БИОСа нужно, разумеется, войти в BIOS при помощи клавиш «Delete», «F2» и других, в зависимости от прошивки программы. Клавиши для входа в BIOS от производителей
  2. Затем пройти в подраздел «Integrated Peripherals», где настраиваются все встроенные устройства компьютера. Если там нет сетевой карты — то она может быть в «Onboard devices». Переходим в подраздел «Integrated Peripherals» с помощью стрелок, нажимаем на нем «Enter»
  3. Наконец, надо включить «Onboard LAN Controller» — это означает включение самой карты. В пункте «Onboard LAN Controller» выставляем значение «Enabled»

Для включения беспроводного сетевого адаптера на ноутбуках есть комбинация «Fn+F12», хотя некоторые производители делают специальную клавишу для этой функции.

Настройка

В сетевых подключениях на значок «Ethernet» нажмите правой кнопкой мыши, выберите «Свойства».

Нажмите на «Протокол Интернета версии 4 (TCP/IPv4)» или «IP версии 4 (TCP/IPv4)». На нем должна стоять галочка, если ее нет — поставьте. Нажмите «Свойства».

Поставьте переключатель на «Использовать следующий IP-адрес», поля станут доступными для ввода. В них можно будет указать IP-адрес, маску подсети, основной шлюз, предпочитаемый и альтернативный адреса DNS-серверов.

Выбор параметров

В зависимости от задачи адреса будут разные, рассмотрим самый частый вариант — зайти на роутер.

  • IP-адрес зависит от модели роутера, к примеру, если у вас оборудование фирмы D-Link, адрес роутера — «192.168.0.1». Вам нужно последнюю цифру заменить на любую из диапазона от 2 до 254, к примеру — 5. Получится адрес: «192.168.0.5». Если адрес роутера «192.168.1.1», то IP-адрес будет «192.168.1.5». Адрес роутера часто пишут с тыльной стороны оборудования, если не найдете, поищите в интернете по запросу: основной шлюз «модель вашего роутера».
  • Маска подсети прописывается автоматом после ввода IP-адреса: «255.255.255.0».
  • Основной шлюз — адрес самого роутера, распространенные варианты: «192.168.0.1» и «192.168.1.1».

Пример параметров под D-Link и ZyXEL.

D-Link ZyXEL
IP-адрес 192.168.0.5 192.168.1.5
Маска подсети 255.255.255.0 255.255.255.0
Основной шлюз 192.168.0.1 192.168.1.1

Если у вас есть адреса DNS-серверов — вписывайте их, в остальных случаях можно воспользоваться публичными DNS Google: предпочитаемый DNS-сервер — «8.8.8.8», альтернативный — «8.8.4.4». Поставьте галочку на пункте «Подтвердить параметры при выходе», итоговые настройки:

Нажмите «ОК», если сразу не получится открыть интерфейс роутера — перезагрузите компьютер.

macOS

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

Нажмите на значок интернета на верхней панели справа, рядом с часами, затем на «Открыть настройки сети». В зависимости от типа подключения выберите параметр слева: сетевое (Ethernet) или беспроводное (Wi-Fi).

Для подключения по кабелю в «Конфигурация IPv4» выберите «Вручную», впишите IP-адрес, маску подсети и основной шлюз (маршрутизатор).

Чтобы прописать адреса DNS-серверов нажмите «Дополнительно», выберите «DNS», нажмите + в поле «DNS-серверы». Нажмите «ОК», затем «Применить».

Для Wi-Fi — сразу нажмите «Дополнительно», для IP-адреса, маски и шлюза выберите «TCP/IP», для адреса DNS-сервера — «DNS». Параметры DNS настраиваются так же, как и по кабелю.

После внесения изменений нажмите «Применить», параметры сети изменятся.

Выводы, в статье описал:

  1. случаи, когда нужно прописывать сетевые параметры вручную;
  2. как зайти в настройки сетевого адаптера в зависимости от системы;
  3. где и какие параметры указать при конфигурации.

Источник

Отключение сетевой карты

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

  1. Откройте «Диспетчер устройств», открыв окно «Выполнить» и введя в нём следующее: «mmc devmgmt.msc». В окне «Открыть» вводим команду «mmc devmgmt.msc», нажимаем «Enter»
  2. Найдите раздел «Сетевые адаптеры». Щелкаем дважды по разделу «Сетевые адаптеры»
  3. Выберите вашу плату, кликните по ней правой кнопкой мыши и выберите команду «Отключить».

    Кликаем по плате правой кнопкой мыши и выбираем команду «Отключить»

При этом отключение произойдёт сразу же, не нужно даже будет делать перезагрузку ОС.

Работаем с управлением RWND (autotuninglevel)

Данный параметр тесно связан с описаным ранее параметром WSH – Window Scale Heuristic. Говоря проще, включение WSH – это автоматическая установка данного параметра, а если хотите поставить его вручную – выключайте WSH.

Параметр определяет логику управление размером окна приёма – rwnd – для TCP-соединений. Если Вы вспомните, то размер этого окна указывается в поле заголовка TCP, которое называется window size и имеет размер 16 бит, что ограничивает окно 2^16 байтами (65536). Этого может быть мало для текущих высокоскоростных соединений (в сценариях вида “с одного сервера по IPv6 TCPv6-сессии и десятигигабитной сети копируем виртуалку” – совсем тоскливо), поэтому придуман RFC 1323, где описывается обходной способ. Почему мало? Потому что настройка этого окна по умолчанию такова:

  • Для сетей со скоростью менее 1 мегабита – 8 КБ (если точнее, 6 раз по стандартному MSS – 1460 байт)
  • Для сетей со скоростью 100 Мбит и менее, но более 1 Мбит – 17 КБ (12 раз по стандартному MSS – 1460 байт)
  • Для сетей со скоростью выше 100 Мбит – 64 КБ (максимальное значение без поддержки RFC 1323)

Способ обхода, предлагаемый в RFC 1323, прост и красив. Два хоста, ставящих TCP-сессию, согласовывают друг с другом параметр, который является количеством бит, на которые будет сдвинуто значение поля windows size. То есть, если они согласуют этот параметр равный 2, то оба из них будут читать это поле сдвинутым “влево” на 2 бита, что даст увеличение параметра в 2^2=4 раза. И, допустим, значение этого поля в 64К превратится в 256К. Если согласуют 5 – то поле будет сдвинуто “влево” на 5 бит, и 64К превратится в 2МБ. Максимальный поддерживаемый Windows порог этого значения (scaling) – 14, что даёт максимальный размер окна в 1ГБ.

Как настраивается RWND в Windows

Существующие варианты настройки этого параметра таковы:

  • – фиксируем значение по умолчанию (для гигабитного линка это будет 64K), множитель – нуль. Это поможет, если промежуточные узлы (например, старое сетевое оборудование) не понимает, что значение окна TCP – это не поле window size, а оно, модифицированное с учётом множителя scaling.
  • – оставляем автонастройку, значение множителя – не более 8.
  • – оставляем автонастройку, значение множителя – не более 2.
  • – оставляем автонастройку, значение множителя – не более 4.
  • – оставляем автонастройку, значение множителя – до 14.

Ещё раз – если Вы включите WSH, он сам будет подбирать “максимальный” множитель, на котором достигается оптимальное качество соединения. Подумайте перед тем, как править этот параметр вручную.

Работаем с Dead Gateway Detection

Данный механизм – один из самых смутных. Я лично слышал вариантов 5 его работы, все из которых были неправильными. Давайте разберёмся.

Первое – для функционирования этого механизма надо иметь хотя бы 2 шлюза по умолчанию. Не маршрутов, вручную добавленых в таблицу маршрутизации через route add например, а два и более шлюза.

Второе – этот механизм работает не на уровне IP, а на уровне TCP. Т.е. по сути, это обнаружение повторяющихся ошибок при попытке передать TCP-данные, и после этого – команда всему IP-стеку сменить шлюз на другой.

Как же будет работать этот механизм? Логика достаточно проста. Стартовые условия – механизм включен и параметр TcpMaxDataRetransmissions настроен по-умолчанию, то есть равен 5. Допустим, что у нас на данный момент есть 10 tcp-подключений.

  1. На каждое подключение создаётся т.н. RCE – route cache entry – строчка в кэше маршрутов, которая говорит что-то вида такого “все соединения с IP-адреса X на IP-адрес Y ходят через шлюз Z, пересчитывать постоянно это не нужно, потому что полностью обрабатывать таблицу маршрутизации ради 1го пакета – уныло и долго. Ну, этакий Microsoft’овский свичинг L3 типа CEF.
  2. Соединение N1 отправляет очередной сегмент TCP-сессии. В ответ – тишина. Помер.
  3. Соединение N1 отправляет тот же сегмент TCP-сессии, уже имея запись, что 1 раз это не получилось. В ответ – опять тишина. Нет ACK’а. И этот сегмент стал героем.
  4. Соединение N1 нервничает и отправляет тот же сегмент TCP-сессии. ACK’а нет. Соединение понимает, что так жить нельзя и делает простой вывод – произошло уже 3 сбоя отправки, что больше, чем половина значения TcpMaxDataRetransmissions , которое у нас 5. Соединение объявляет шлюз нерабочим и заказывает смену шлюза.
  5. ОС выбирает следующий по приоритету шлюз, обрабатывает маршрут и генерит новую RCE-запись.
  6. Счётчик ошибок сбрасывается на нуль, и всё заново – злополучный сегмент соединения N1 опять пробуют отправить.

Когда такое происходит для более чем 25% соединений (у нас их 10, значит, когда такое случится с 3 из них), то IP-стек меняет шлюз по-умолчанию. Уже не для конкретного TCP-соединения, а просто – для всей системы. Счётчик количества “сбойных” соединений сбрасывается на нуль и всё готово к продолжению.

Примечание: Если шлюз последний, и ниже его в списке никого нет, опять берётся первый.

Как настроить Dead Gateway Detection в Windows

Для настройки данного параметра нужно управлять тремя значениями в реестре, находящимися в ключе:

Все они имеют тип 32bit DWORD и следующую логику настройки:

  • TcpMaxDataRetransmissions – Количество повторных передач TCP-сегментов. От этого числа берётся критерий “Более половины”.
  • TcpMaxConnectRetransmissions – То же самое, но для повторных попыток подключения, а не передачи сегментов данных.
  • EnableDeadGWDetect – Включён ли вообще алгоритм обнаружения “мёртвого” шлюза. Единица – включён, нуль – отключен.

Общий доступ

Настройка этих сетевых параметров отвечает за доступ к компьютеру из сети. Чтобы сюда попасть надо в разделе Сеть и Интернет выбрать свой адаптер (WiFi или Ethernet) и кликнуть на значок «Изменение расширенных параметров общего доступа». Откроется вот это окно:

Здесь Вы можете видит настройки сетевых параметров доступа для нескольких профилей: Частная, Гостевая или все сети. Выбираете тот, у которого в конце стоит пометка (текущий профиль). Первым идёт Сетевое обнаружение. Он отвечает за то, видно ли Ваш ПК из сети или нет. Если Вы подключены к локальной сети дома или на работе, то лучше его оставить включенным. А вот когда комп подключен к сети Интернет напрямую, то для избежания угроз и атак, обнаружение лучше отключить. Следующим идёт Общий доступ к Файлам и принтерам. Если он включен, то к принтеру, который подсоединён к Вашему ПК, сможет подключиться и использовать любой желающий. Для домашней сети это не играет роли, а вот в корпоративной или общественной лучше будет его отключить. Последний параметры — Подключение домашней группы. Он отвечает за гостевой доступ из сети к компьютеру. Если Вы разрешаете Windows управлять подключениями, то доступ будет осуществляться через учётную запись Гость . В домашней сети это удобнее. Для других — лучше использовать учётные записи пользователей, чтобы кто угодно не смог к Вам зайти. Сохраняем изменения.

Это основные сетевые параметры Windows 10, отвечающие за работу сети и подключение компьютера к Интернету.

Иногда при подключении интернета или использовании ресурсов локальной сети возникают проблемы. Могут вылезать ошибки подключения, получения IP адресов или конфигурации сетевого оборудования. Внутри компьютера или ноутбука, функцией подключения к локальной или глобальной сети, занимается сетевой адаптер. В статье мы как раз и поговорим про настройку сетевого адаптера для улучшения связи в интернете. Инструкция будет ходовая для всех версий Windows 7, 8 и 10.

Работаем с Checksum offload IPv4/IPv6/UDP/TCP

Данная пачка технологий крайне проста. Эти настройки снимают с CPU задачи проверки целостности полученых данных, которые (задачи, а не данные) являются крайне затратными. То есть, если Вы получили UDP-датаграмму, Вам, по сути, надо проверить CRC у ethernet-кадра, у IP-пакета, и у UDP-датаграммы. Всё это будет сопровождаться последовательным чтением данных из оперативной памяти. Если скорость интерфейса большая и трафика много – ну, Вы понимаете, что эти, казалось бы, простейшие операции, просто будут занимать ощутимое время у достаточно ценного CPU, плюс гонять данные по шине. Поэтому разгрузки чексумм – самые простые и эффективно влияющие на производительность технологии. Чуть подробнее про каждую из них:

IPv4 checksum offload

Сетевой адаптер самостоятельно считает контрольную сумму у принятого IPv4 пакета, и, в случае, если она не сходится, дропит пакет.

Бывает продвинутая версия этой технологии, когда адаптер умеет сам проставлять чексумму отправляемого пакета. Тогда ОС должна знать про поддержку этой технологии, и ставить в поле контрольной суммы нуль, показывая этим, чтобы адаптер выставлял параметр сам. В случае chimney, это делается автоматически. В других – зависит от сетевого адаптера и драйвера.

IPv6 checksum offload

Учитывая, что в заголовке IPv6 нет поля checksum, под данной технологией обычно имеется в виду “считать чексумму у субпротоколов IPv6, например, у ICMPv6”. У IPv4 это тоже подразумевается, если что, только у IPv4 субпротоколов, подпадающих под это, два – ICMP и IGMP.

TCPv4/v6 checksum offload

Реализуется раздельно для приёма и передачи (Tx и Rx), соответственно, считает чексуммы для TCP-сегментов. Есть тонкость – в TCPv6 чексумма считается по иной логике, нежели в UDP.

Общие сведения для всех технологий этого семейства

Помните, что все они, по сути, делятся на 2 части – обработка на адаптере принимаемых данных (легко и не требует взаимодействия с ОС) и обработка адаптером отправляемых данных (труднее и требует уведомления ОС – чтобы ОС сама не считала то, что будет посчитано после). Внимательно изучайте документацию к сетевым адаптерам, возможности их драйверов и возможности ОС.

Ещё есть заблуждение, гласящее примерно следующее “в виртуалках всё это не нужно, ведь это все равно работает на виртуальных сетевухах, значит, считается на CPU!”. Это не так – у хороших сетевых адаптеров с поддержкой VMq этот функционал реализуется раздельно для каждого виртуального комплекта буферов отправки и приёма, и в случае, если виртуальная система “заказывает” этот функционал через драйвер, то он включается на уровне сетевого адаптера.

Как включить IP,UDP,TCP checksum offload в Windows

Включается в свойствах сетевого адаптера. Операционная система с данными технологиями взаимодействует через минипорт, читая настройки и учитывая их в случае формирования пакетов/датаграмм/сегментов для отправки. Так как по уму это всё реализовано в NDIS 6.1, то надо хотя бы Windows Server 2008.

Auto Disable PHY (PowerSaving)

  • Disabled : No disable PHY when disconnected
  • Re-Link, Battery : auto disable PHY when disconnected and using battery
  • Re-Link, Battery or AC : auto disable PHY when disconnected

Q. What is Auto Disable PHY? Why have this feature? Who requires to use this feature? A. This feature is for power consumption.

When users change the setting to Enabled and the network cable is unplugged, the driver will automatically disable PHY. To use this feature, user MUST enable Auto Disable Gigabit first. Because gigabit link establishment takes longer time, driver needs user disable gigabit to reduce the linking time.

PS.

If both of them enabled, the linking time will be increased but power consumption reduced. The linking time about 5 seconds.

Настройка производительности для обработки пакетов с низкой задержкой

Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Обычно это время измеряется в микросекундах. Для сравнения время передачи пакетов на длинные дистанции обычно измеряется в миллисекундах (это на порядок дольше). Эта настройка не сокращает время прохождения пакета.

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

  • В BIOS компьютера установите значение High Performance (Высокая производительность) и отключите C-состояния. Однако имейте в виду, что это зависит от системы и BIOS, и некоторые системы обеспечивают большую производительность, если операционная система управляет электропитанием. проверить и настроить параметры управления питанием можно в Параметры или с помощью команды powercfg . Дополнительные сведения см. в разделе Параметры Powercfg Command-Line.

  • Установите в операционной системе профиль управления электропитанием Высокая производительность.

    Примечание

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

  • Включить статические разгрузки. Например, включите контрольные суммы UDP, контрольные суммы TCP и отправку параметров большой разгрузки (LSO).

  • Если трафик проходит через несколько потоков, например при получении многоуровневого трафика многоадресной рассылки, включите RSS.

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

  • Обрабатывайте прерывания сетевого адаптера и DPC на основном процессоре, который совместно использует процессорный кэш с ядром, которое используется программой (пользовательским потоком), обрабатывающей пакет. Для передачи процесса конкретным логическим процессорам можно использовать настройку фиксации ЦП вместе с настройкой RSS. Использование одного ядра для прерываний, DPC и пользовательского потока ведет к снижению производительности из-за увеличения нагрузки, поскольку ISR, DPC и поток будут конкурировать за ядро.

Синтаксис запросов

Рассмотрим синтаксис некоторых функций, которые мы будем использовать в нашей инструкции. Проверять все наши запросы можно в веб-интерфейсе прометеуса на странице /graph.

irate или rate

В Prometheus значения для счетчиков всегда возрастают, но как правило, нам нужно знать изменение значения за определенный момент времени. Запрос будет выглядеть так:

irate(<запрос на выборку метрики>)

Среднее значение по условию, например:

avg by (instance)

… среднее для каждого инстанса.

Среднее значение всех значений для метрик в указанном интервале.

avg_over_time(<запрос на выборку метрики>)

Функция суммирует полученные результаты:

sum(<запрос на получение значений>)

Отображает время в формате UNIX TIME.

time()

count

Считает количество значений:

count(<запрос на получение значений>)

Вместе с by значения могут фильтроваться:

count(<запрос на получение значений>) by (<по какому показателю>)

Арифметические операции

1. С полученными числовыми данными можно выполнять различные математические операции. Например, если мы получим значения времени в секундах, то можно его перевести в часы:

<полученное время> / 60

Или наоборот

<полученное время> * 60

2. Полученный остаток от процентного показателя вычистяется по формуле:

100 — <полученный процент>

ARP-запрос

Протокол ARP позволяет автоматически определить МАК-адрес компьютера по его IP-адресу. Протокол работает в режиме запрос-ответ.

Компьютер, который хочет узнать МАК-адрес по известному IP-адресу, направляет ARP запрос “У кого IP 192.168.10.43?” Запрос отправляется на широковещательный МАК-адрес (FF:FF:FF:FF:FF:FF).

И этот запрос получают все компьютеры в сети. Тот компьютер, который узнал в запросе свой IP-адрес подготавливает и отправляет ARP ответ. В ответ включается IP-адрес компьютера (IP:192.168.10.43) и его МАК-адрес (MAC: 54:BE:F7:88:15:47).

Отправитель ARP запроса получает ответ, извлекает из него МАК-адрес и использует его для передачи данных по технологии канального уровня.

Формат ARP-запроса

ARP разрабатывался, как протокол общего назначения с возможностью применять его не только в Ethernet и не только для IP-адресов. Поэтому в начале ARP пакета идет служебная информация, которая позволяет определить с каким типом сетевого оборудования и с каким протоколом сетевого уровня мы работаем.

  • Первое поле “тип сети”, говорит о том, какое оборудование мы используем в сети, 1 — соответствует Ethernet.
  • Второе поле “тип протокола” в нем указывается протокол сетевого уровня 2048 означает IP.
  • Дальше идет “длина локального адреса”, в нашем случае МАК-адреса 6 байт, “длина глобального адреса в нашем случае IP-адреса” 4 байта.
  • Следующее поле код операции, 1 — соответствует ARP запросу, а 2 — ARP ответу.
  • Затем идет полезная информация о локальных (1С:75:08:D2:49:45) и глобальных адресах (192.168.10.15). Указывается МАК-адрес и IP-адрес отправителя, для того, чтобы получатель знал, кому отправлять ответ.
  • Глобальный адрес получателя (192.168.10.43).
  • Локальный адрес получателя неизвестен (00:00:00:00:00:00)

Формат ARP-ответа

Формат ARP ответа точно такой же, только в поле “операция” стоит значение 2 и адрес, который мы ищем находится в поле локальный адрес отправителя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector