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的缓存位置(缓存网络结构)。如果你多次更改界面,考虑到复杂性,它会影响到某个地方。在这两者之间,我只是写下我的话,可能根本没有关系。