这是主要问题。
简单地,我开始在下面实现必要的代码作为原始套接字。套接字绑定到特定接口。
socketfd=socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL));
strncpy(ifopts.ifr_name,interfaceName,IFNAMSIZ-1);
ioctl(socketfd,SIOCGIFINDEX,&ifopts);
sll.sll_family=AF_INET;
sll.sll_ifindex=ifopts.ifr_ifindex;
sll.sll_protocol=htons(ETH_PALL);
bind(socketfd,&sll,sizeof(sll));
这是我的阅读方式,mtu大小为9000
while(true)
recvfrom(socketfd,buffer,9000,0,0,0);
在数据包上没有任何处理,我的速度约为150Mbit / sec。
这是我需要解决的问题。我意识到nload或ip -s链接显示了实际速率;但我无法达到大约6-7Gbit / sec的数字。
〜150Mbit / sec对我来说太荒谬了。我需要尽可能多地提高性能,而我只能使用一个CPU。如果您希望我可以共享它的结果,我将尝试使用PF_INET。
答案 0 :(得分:0)
这是答案。
谢谢。