Я использую omnet ++ - 5.4.1, veins-4.7.1 и sumo-0.25.0 для имитации передачи кадра автомобиля.
О поведении EDCA в слое mac в WAVE, в моемПонимание времени ожидания для отправки можно получить с помощью следующих вычислений.
время ожидания = AIFS [AC] + откат
AIFS [AC] = SIFS + AIFSN [AC] * длина неряшливости
Однако в функции startContent Mac 1609_4.cc она записывается следующим образом:
if (idleTime > possibleNextEvent) {
DBG_MAC << "Could have already send if we had it earlier" << std::endl;
//we could have already sent. round up to next boundary
simtime_t base = idleSince + DIFS;
possibleNextEvent = simTime() - simtime_t().setRaw((simTime() - base).raw() % SLOTLENGTH_11P.raw()) + SLOTLENGTH_11P;
}
Даже во время моделирования передача выполняется без ожидания времени, рассчитанного сразу после того, как запрос на передачу произошел.
Как описано выше, считается, что операция исходного EDCA (CSMA / CA) не была выполнена, и занятость канала не определяется.
Я недостаточно понимаю об этомСлой Mac?Пожалуйста, дайте мне знать, если я пропустил некоторую информацию.
Спасибо.