Logo

dev-resources.site

for different kinds of informations.

Обнаружение потери пакетов

Published at
6/7/2024
Categories
mac
aps
Author
spimodule
Categories
2 categories in total
mac
open
aps
open
Author
9 person written this
spimodule
open
Обнаружение потери пакетов

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

01 Контроль несущей

Обнаружение несущей является распространенным методом обнаружения потери пакетов, и CSMA/CA разработан на основе определения несущей. CSMA/CA также можно рассматривать как механизм повторной передачи. Этот механизм используется Wi-Fi и ZigBee, которые мы часто используем. Перед отправкой сообщения устройство связи на короткое время откроет прием. В течение этого короткого периода времени беспроводное устройство определит наличие других мешающих сигналов в том же диапазоне частот. Например, когда устройство ZigBee выполняет определение несущей, оно должно не только определять, есть ли передача по Wi-Fi или Bluetooth. сигналы, но и есть ли другие ZigBee, передающие сигналы. Если сигнал помех исходит от Wi-Fi или Bluetooth, устройство ZigBee определит, превышает ли его собственная мощность. Если мощность не превышает его собственную, оно преодолеет ее. он решительно отбросит пакет, и если устройство ZigBee встретит другие устройства ZigBee, независимо от того, имеет ли другая сторона большую мощность, чем он сам, будет активно отбрасывать пакеты, то есть позволять другим идти первыми.

02 Механизм реагирования

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

Семиуровневая модель OSI

Давайте все же возьмем в качестве примера механизм ответа ZigBee. Модель OSI ZigBee имеет механизм ответа, который в настоящее время ограничен уровнем MAC (уровень канала передачи данных) и уровнем APS (транспортный уровень). Но в реальных приложениях механизмы реагирования часто добавляются на прикладной уровень. Ответ уровня MAC является самым быстрым, также называется MAC-ACK и обычно автоматически генерируется аппаратным обеспечением беспроводного приемопередатчика ZigBee. Принимающее устройство отправляет кадр данных ZigBee в виде широковещательной рассылки через 120 микросекунд после его получения. В то же время MAC-ACK также является самым коротким кадром в ZigBee: длина кадра составляет всего 5 байт, а общая длина — 11 байт, включая преамбулу кадра и кадр синхронизации. Согласно скорости передачи данных ZigBee 250 кбит/с, каждый байт занимает 32 микросекунды, а время заполнения кадра MAC-ACK составляет 352 микросекунды. Это означает, что после отправки кадра MAC отправитель получит MAC-ACK, соответствующий кадру MAC, через 120+352=472 микросекунды. Аналогично, уровень MAC ZigBee также предусматривает, что если отправитель не получит соответствующий MAC-ACK в течение 540 микросекунд, это будет считаться потерей пакета.

MAC-ACK отправляется посредством широковещательной рассылки. Во-первых, он может уменьшить поле адреса в кадре MAC-ACK, уменьшить длину кадра и сократить время заполнения кадра ACK. Отправитель может определить, является ли он собственным, на основе кадра. порядковый номер в кадре MAC-ACK; во-вторых, MAC-ACK использует широковещательную рассылку, которая также может напоминать другим устройствам ZigBee о том, что они обмениваются данными. Если другие устройства ZigBee в это время также выполняют прослушивание несущей, они могут активно избегать этого. устройство связи. На уровне MAC ZigBee контроль несущей и MAC-ACK представляют собой двунаправленные подходы, которые могут обеспечить точность обнаружения потери пакетов. Кроме того, широковещательные сообщения ZigBee не будут генерировать MAC-ACK.

Диверсифицированный механизм обнаружения потери пакетов

Помимо механизма ответа на уровне MAC, ZigBee также имеет механизмы ответа на транспортном и прикладном уровнях. ZigBee представляет собой ячеистую сеть с несколькими переходами, и передача на уровне MAC может соответствовать только передаче с одним переходом, поэтому ZigBee также отвечает на транспортном уровне, также называемом APS-ACK. Отправитель ZigBee передает сообщение получателю ZigBee, которое пересылается несколькими узлами маршрутизатора ZigBee. После получения сообщения принимающая сторона отправит APS-ACK отправляющей стороне по тому же пути маршрутизации. Когда отправляющая сторона получает APS-ACK, она считает, что отправленное сообщение достигло принимающей стороны. Если отправитель не получит APS-ACK через 6 секунд (значение по умолчанию), данные будут считаться потерянными.

Системы ZigBee обычно открывают только интерфейсы для уровня приложений. Наиболее распространенным интерфейсом, открытым для уровня приложений, является интерфейс обнаружения, называемый «Подтверждение данных AF», который сочетает в себе потерю пакетов уровня MAC (включая потерю пакетов MAC-ACK и потерю пакетов низкого уровня). такую ​​информацию, как потеря пакетов контроля несущей), потеря пакетов сетевого уровня и потеря пакетов транспортного уровня. Приложение верхнего уровня ZigBee может узнать, потеряно ли отправленное в данный момент сообщение.

Ответ уровня приложения

Обнаружение потери пакетов на уровне MAC и транспортном уровне относится к потере пакетов системного уровня. Другой тип потери пакетов — это потеря пакетов на прикладном уровне. Например, диммер отправляет команду «отрегулировать яркость до 50%» на устройство кондиционирования воздуха. Какой будет результат выполнения этой команды, если пакеты не потеряются? Должно быть, кондиционер выполнит «Отрегулировать яркость на 50%», но у кондиционера есть только температура, но нет яркости, а это означает, что эта команда отправляется на цель, которую не следует отправлять. В настоящее время для решения этой проблемы необходим ответ прикладного уровня. Например, после того, как кондиционер получит сообщение «Отрегулируйте яркость на 50%», он может ответить на передающую сторону ответом прикладного уровня «Смотри ясно, что я не лампочка».

mac Article's
30 articles in total
Favicon
Scan Your Linux Disk and Visualize It on Mac with GrandPerspective
Favicon
Build a Mac Tool to Fix Grammar Using TypeScript, OpenAI API, and Automator
Favicon
install guile to mac
Favicon
Why is CPU usage more than 100% in Mac activity monitor?
Favicon
How to create Mac GUI applications in SPVM?
Favicon
Mac Mini M4 Storage Upgrade: NAS vs SSD upgrade – Complete Solution
Favicon
Unlock 1 Billion NYC Taxi Rides: A Step-by-Step Guide
Favicon
Cómo usar aplicaciones de Windows en Mac
Favicon
Run lunarvim in a devcontainer
Favicon
Making Your Docker Network Reachable In MacOS
Favicon
How I cleaned my MacBookPro 2015 and released 50Gb of disk space
Favicon
Sharing My Experience (Mac Users): Time to Get Rid of the Mouse with Homerow and Aerospace
Favicon
Python Project Creation on Mac OS X
Favicon
How To Solve The Problem of the Vanishing PDF Form Data
Favicon
Obsidian - How to create Daily note every day, even if I don't open it
Favicon
🍏 If I Got a New Mac, Here's What I'd Install First as a DevOps Engineer 🧑‍💻
Favicon
Run Flux.1 on M3 Mac with Diffusers
Favicon
Top Project Management Software for Mac Users: What to Choose
Favicon
Unlock Your Mac’s Full Potential: 8 Game-Changing Apps to Supercharge Your Productivity
Favicon
How I build simple Mac apps using Go
Favicon
Vagrant and VMWare Fusion in Mac M1
Favicon
Обнаружение потери пакетов
Favicon
TIL you can create keyboard shortcuts to switch between a specific desktop
Favicon
Solving frequent MacBook problems
Favicon
zsh: command not found ui5 tooling.
Favicon
Best OLM To PST Converter Software - 2024
Favicon
How To Import Mail from Mac Outlook to Windows Outlook? – Solved
Favicon
How to setup Mac for development in 2024. (Ruby on Rails and NodeJS)
Favicon
Docker Build with Mac
Favicon
How to Add VSCode path to Mac path permanently

Featured ones: