Надо задавать скорость, с которой выдаются эти пары. Сделал это через задержки. Примерно так:
Код: Выделить всё
sendto(fd,&buf1,len1...
usleep(delay1);
sendto(fd,&buf2,len2...
usleep(delay2);
И ещё надо добавлять шум в эти сигналы. Он задаётся через опцию -N:
Код: Выделить всё
case 'N': nois2=(nois=atoi(optarg))/2; break;
Код: Выделить всё
if(nois) {
for(i=0;i<n;i++)
buf[i]+=(random()%nois-nois2);
}
Программа, принимающая эти пакеты, считает их число за секунду и таким образом можно контролировать скорость передачи.
Сначала я запускал программу имитации на ноутбуке (Debian 11, процессор Ryzen 5 3500U)
Потом перенесли эту программу на стационарный компьютер (Ubuntu Jammy Jellyfish, процессор i5 13400)
Странность.
Если запускаю программу на ноутбуке, скорость получается (в парах пакетов в секунду) примерно 2450 без шума и 2150 с шумом)
А если запускаю на стационарном (который, по идее, мощнее), то получается примерно 2750 без шума и 1750 с шумом,
Кто "виноват" в том, что добавление шума на более мощном компьютере снижает быстродействие программы гораздо больше?
Начальник предположил, что Ubuntu. Но мне это кажется странным.