Коэффициент потери пакетов в VEINS/Omnet++

Я новичок в VEINS/Omnet++, пробую различные методы подавления широковещательной рассылки и хотел бы рассчитать коэффициент потери пакетов. Я предполагаю, что мне нужно использовать эту формулу:

Коэффициент потери пакетов = Общее число потерянных пакетов/Отправленных пакетов

Но поскольку некоторые узлы отправляют 0 пакетов, есть ли простой способ указать это в файле конфигурации Omnet++ .anf или, может быть, в VEINS без ручной настройки? В противном случае, если какой-либо узел отправляет пакет 0, все графики отображаются как бесконечность.

Благодарю вас!


person user629034    schedule 25.10.2017    source источник


Ответы (1)


Это не дает прямого ответа на ваш вопрос, но я бы предостерег от использования этого уравнения в моделировании, когда не все узлы могут отправлять одинаковое количество пакетов или куда отправляются широковещательные рассылки. Каждый пакет, отправленный в виде широковещательной рассылки, потенциально может быть получен многими другими узлами, а это означает, что даже при моделировании, при котором отправляется только 1 пакет, также может быть зафиксировано 7 успешных приемов и 5 потерянных пакетов. Ваше уравнение рассчитывало бы уровень потерь как 5/1 = 500%, тогда как я бы нашел более разумным уровень 5/12 = 42%.

В качестве побочного эффекта расчета коэффициента потерь как «сбой/(успех+сбой)» вам не нужно будет уделять особое внимание узлам, которые не отправляли/не получали пакеты.

person Christoph Sommer    schedule 25.10.2017
comment
Благодарю вас! Просто для подтверждения - в ВЕНАх SentPackets == успешные приемы - правильно? - person user629034; 26.10.2017
comment
Нет! То, что пакет был отправлен, не означает, что он был успешно получен. Если вы хотите узнать, сколько пакетов было получено, проверьте одну из метрик, в названии которой есть «получено». Вы можете найти обзор в исходном коде github.com/sommer/veins/blob/veins-4.6/src/veins/modules/mac/ - person Christoph Sommer; 27.10.2017
comment
Спасибо, доктор Соммер. Прошу прощения за путаницу, но я имел в виду SentPackets с точки зрения отправителя. Как я понял, ReceiveBroadcasts означает, что этот узел получил столько же широковещательных сообщений от других узлов, но кроме SentPackets — нужно ли мне реализовывать пользовательскую схему подтверждения для точного расчета коэффициента потери пакетов в VEINS? Большое тебе спасибо. Пожалуйста, дайте мне знать, если я должен рассмотреть это как отдельный вопрос. - person user629034; 28.10.2017
comment
Вы можете увидеть увеличение счетчика SentPackets здесь: ="nofollow noreferrer">github.com/sommer/veins/blob/veins-4.6/src/veins/modules/mac/ — это означает, что метрика подсчитывает, сколько пакетов было отправлено на канал - не сколько пакетов было успешно получено. Обратите внимание, что Veins 4.6 также подсчитывает количество кадров, которые были обнаружены уровнем MAC, но не могут быть декодированы. Исходя из этого (и количества обнаруженных и успешно декодированных, т. е. полученных - кадров), вы также можете рассчитать коэффициент потерь. - person Christoph Sommer; 29.10.2017