У меня вопрос по поводу ns3.Мы создаем 250 узлов в первом kvm с помощью csma , и взаимодействуем с другим kvm (через маршрутизатор) с помощью моста через мост и сокета udp.Но когда мы начали запускать программу, используйте команду linux "top", чтобы увидеть использование памяти, оно будет увеличиваться;и когда мы выводим m_unscheduledEvents
, ++ намного больше, чем -, что означает, что SendStuff()
увеличивается.И как мы можем решить вопрос об увеличении памяти?
Вот функция SendStuff()
:
void SendStuff (Ptr<Socket> sock, Ipv4Address dstaddr, uint16_t port)
{
uint8_t fill1[376]={...};;
Ptr<Packet> p = Create<Packet> (fill1, 376);
sock->SendTo (p, 0, InetSocketAddress (dstaddr,port));
unsigned int dest_IP;
dest_IP = start_ip + rand()%(range+1);
Simulator::Schedule (Seconds(scan_interval), &SendStuff, sock, Ipv4Address(dest_IP), port);
return;
}
И когда мы получаем пакет, мы вызываем эту функцию и постоянно отправляем пакеты:
Simulator::Schedule (Seconds(scan_interval), &SendStuff, socket, Ipv4Address(dest_IP), scan_port);
PS: при увеличении scan_interval
рост памяти замедлится.Когда мы расширим размер сетевого узла (диапазон dest_IP будет больше).Рост памяти будет быстрее ...
Спасибо!