Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
setsockopt中的SO_BINDTODEVICE导致的缓存效果_C_Linux_Sockets_Networking_Setsockopt - Fatal编程技术网

setsockopt中的SO_BINDTODEVICE导致的缓存效果

setsockopt中的SO_BINDTODEVICE导致的缓存效果,c,linux,sockets,networking,setsockopt,C,Linux,Sockets,Networking,Setsockopt,通过SO\u BINDTODEVICEsocket选项,我们可以将套接字设置为一个网络接口,如果我们使用两个NIC卡,并且如果我们想将套接字设置为一个NIC卡,那么SO\u BINDTODEVICE将有所帮助 如果我们通过SO_BINDTODEVICE在setsockopt中将套接字设置为eth1,那么套接字将通过eth1接口发送和接收所有数据包 这就是到目前为止我对so_BINDTODEVICE选项的理解,有一个关于so_BINDTODEVICE的声明 您可以多次调用BINDTODEVICE以

通过
SO\u BINDTODEVICE
socket选项,我们可以将套接字设置为一个网络接口,如果我们使用两个NIC卡,并且如果我们想将套接字设置为一个NIC卡,那么SO\u BINDTODEVICE将有所帮助

如果我们通过
SO_BINDTODEVICE
setsockopt
中将套接字设置为eth1,那么套接字将通过eth1接口发送和接收所有数据包

这就是到目前为止我对so_BINDTODEVICE选项的理解,有一个关于so_BINDTODEVICE的声明

您可以多次调用BINDTODEVICE以使套接字更改 接口,但由于 在内核中缓存效果


这意味着什么,我不明白,这是关于连接的LAN网络的缓存表(路由表),请解释

这是关于“内核中的缓存效果”,没有比这更具体的。实际上,这意味着“您可能不应该在同一个套接字上调用它两次”可能真正的原因是在声明中说得太多了。我可以考虑SMP的情况,其中对于每个接口,分配了多个队列用于连接处理,这些队列与特定的CPU相关联。这可以有效地利用每个CPU的缓存位置(缓存网络结构)。如果你多次更改界面,考虑到复杂性,它会影响到某个地方。在这两者之间,我只是写下我的话,可能根本没有关系。