我在同一实例中使用SOCK_DGRAM在两个进程之间发送数据。考虑到客户端和服务器场景。因此,我以1000-2000 pps的高速率向服务器发送udp数据包,并在客户端实现了MSG_ERR_QUEUE以检查任何udp数据包发送是否被拒绝。所以我看到一些udp数据包被拒绝,检查b从错误队列接收数据包,并看到icmp错误消息“ no route to host”之类的错误消息。我的套接字send和recv buf大小为4MB
当我检查时,rmem_max为32MB,udp的wmem_max为32 MB。 当我检查netstat -anus时,我看到了很多数据包接收错误。
我的问题是我们正在向服务器发送udp数据包(只有一些数据包被内核拒绝,所以这不是校验和问题)。对于此场景,我是否看不到内核产生主机icmp错误的路由?我可以通过增加缓冲区来解决此问题吗?此数据包会收到哪些错误(例如通过内核udp堆栈从客户端到服务器的出站数据包)适用?
centos 7