【发布时间】:2016-10-26 04:31:08
【问题描述】:
来自linux套接字manpage:
SO_PRIORITY
将所有数据包的协议定义优先级设置为 在这个套接字上发送。 Linux 使用此值对网络进行排序 queues:优先级较高的数据包可能会被优先处理 取决于所选的设备排队规则。
这是使用:
int optval=7 // valid values are in the range [1,7]
// 1- low priority, 7 - high priority
setsockopt(socket, SOL_SOCKET, SO_PRIORITY, &optval, optlen)
说,这个过程有:
一种。 10 个低优先级套接字(优先级=4),来自 socket_1 - socket_10,
湾。 1 个高优先级套接字 (priority=7) - socket_11
以下场景会发生什么:
send():进程在socket_1-socket_10和socket_11上发送多个消息,socket_11上的 IMO 消息将优先于通过socket_1-@ 发送的消息987654332@。recv():如果上述所有套接字都收到多个消息,socket_11在读取消息时是否比socket_1-socket_10获得更高的优先级?有没有办法使用
lsof、netstat等工具从命令行测量套接字优先级?
【问题讨论】:
-
优先级仅与发送数据包有关。你引用的文件是这样说的。所以对
recv()的影响为零。
标签: linux sockets tcp network-programming