减少通过UDP传输数据时的响应时间

哈Ha!在本文中,我想谈谈解决Embox比GNU / Linux更好地解决的常见问题之一。这是对通过以太网协议传输的数据包的响应时间。如您所知,通过网络进行数据传输的主要特征是带宽,而GNU / Linux对此做得很好。但是,要减少接收/发送单个网络数据包所需的时间,则会出现问题。尤其是,客户使用了带Linux的DE0-Nano-SoC板,在此板的帮助下,我想通过网络控制某个对象。网络拓扑是点对点的,没有路由器和集线器。根据控制模型,反应时间应小于100μs,并且在基于Linux的情况下,仅可能达到500μs。


DE0 Nano SoC套件


为了估算传输时间,我们创建了一个由两个主机组成的架子。


GNU/Linux, — DE0-Nano-SoC Kit Embox. FPGA HPS (Hard Processing System, .. ARM), . , UDP- :


while (1) {
    char buf[BUFLEN];

    recvfrom(s, buf, BUFLEN);    
    sendto(s, buf, BUFLEN);
}

, DE0-Nano-SoC.


, :


for (int i = 0; i < N; i++) {
    char buf_tx[BUFLEN], buf_rx[BUFLEN];
    sprintf(buf_tx, "This is packet %d\n", i);

    time_t time_begin = time_now();

    sendto(s, buf_tx, BUFLEN);
    recvfrom(s, buf_rx, BUFLEN);

    time_t time_end = time_now();

    if (memcmp(buf_tx, buf_rx, sizeof(buf))) {
            printf("%d: Buffer mismatch\n", i);
    }

    if (time_end - time_begin > TIME_LIMIT) {
            printf("Slow answer #%d: %d\n", i, time_end - time_begin);
    }
}

, .


Github.


, , :


  • UART — ,
  • -O2
  • - PL310 ( )

500 000 ( ) :


Avg: 4.52ms
Min: 3.12ms
Max: 12.24ms

, , — . , Linux . , .


, ? , .


, - , , ? — .


, ethernet- — USB-, 100/, .


1 :


Avg: 0.08ms
Min: 0.07ms
Max: 4.31ms

Linux


Linux. -: arm-linux-gnueabihf-gcc server.c -O2. ELF :


Avg: 0.77ms
Min: 0.74ms
Max: 5.31ms

, Embox "" 9 , !



, "", , .


, , , UDP- .


, UDP-.


, UDP . , . . :


int net_tx(...) {
    if (is_udp_packet()) {
        timestamp2 = timer_get();
        memcpy(packet[UDP_OFFT],
            &timestamp1,
            sizeof(timestamp1));
        memcpy(packet[UDP_OFFT + sizeof(timestamp2)],
            &timestamp2,
            sizeof(timestamp2));
        ...
    }
}

, , , Embox.



Avg: 8673
Min: 6191 
Max: 11950

, ( ) 25%, (Avg: 0.08ms Max: 4.31ms). ( , , , ), . , , 25%.


, ?




— Linux, .


?


, — :


nice -n -20 ./client


— , , .


— round robin , chrt:


chrt --rr 99 ./client


— . ( , .. ).



Embox , 10 . , , . , Linux, - bpfilter.


- — embox-devel@googlegroups.com, -, .


All Articles