저는 OMNeT ++ 시뮬레이터를 통해 Veins 프레임 워크로 작업하고 있으며 일부 노드가 수신 된 모든 패킷을 잃는 이상한 상황에 직면 해 있습니다.
모두를 맥락에 맞추기 위해 100 개 노드 (25 개 노드의 4 개 흐름)를 시뮬레이션하고, 모두 커버리지 아래 (분명히) 초당 10 개의 패킷을 전송합니다. 노드가 네트워크에 들어가는 순간 (예 : SUMO에 의해 생성됨)에 따라 일부 (일반적으로 1 개이지만 2, 3, 4 일 수 있음)는 모든 패킷이 손실 된 것으로 표시되는 모드 (SNIRLostPackets ) 다른 패킷이 이미 수신되는 동안 패킷을 수신 할 때 (NIC가 이미 다른 프레임에 동기화되어있는 결정자에 따라).
숨겨진 노드가없고 발신자가 각각의 프레임을 보내는 순간 (둘 다 채널이 유휴 상태로 표시됨) 서로를 보지 않는 한 802.11에서는 발생하지 않을 것입니다. 맞습니까?
따라서이 동작은 전혀 예상되지 않으며 최종 손실 패킷 통계를 파괴합니다. 전송 및 간섭 범위의 전송 전력을 조정했지만 아무것도 변경되지 않았습니다.
그것을 무시하는 것은 너무 자주 발생하며 누군가이 행동을 경험했는지 그리고 어떻게 해결되었는지 알고 싶습니다.
감사합니다
(OK, 분명히 문제는 패킷이 수신 (수신 시작)되는 특수한 경우에 발생하지만 수신이 끝날 때 노드가 TX 상태로 변경되었습니다.
그런 다음 패킷은 "보내는 동안 수신 됨"으로 표시되지만 노드는 이미이 프레임을 다음 올바른 수신으로 표시했습니다. 그래서 그것은 끝없이 모든 수신을 버립니다.
버그로 보이며 가능한 해결 방법은 다음 줄을 추가하는 것입니다.
if (!frame->getWasTransmitting()){
curSyncFrame = 0;
}
의 processSignalEnd
함수 (Decider80211p 파일)은 "내부 (frame->getWasTransmitting() || phy11p->getRadioState() == Radio::TX)
"케이스.
노드가 수신하는 동안 패킷을 보내지 않아야하므로 이것이 발생해야하는지 아닌지 확실하지 않습니다.
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다