gpt4 book ai didi

c - 如何通过 UDP 套接字设置以太网服务等级?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:12 24 4
gpt4 key购买 nike

除了 IP header 中的 DSCP 字段外,我还想设置 Class of Service我的 UDP 数据包的以太网帧 header 中的字段,以确保网络硬件以正确的优先级处理我的数据包。

当使用 UDP 套接字(使用 SOCK_DGRAM 类型创建)时,这是否可能,或者此功能是否只能通过原始以太网套接字(使用 SOCK_RAW 类型创建)使用?

最佳答案

某些操作系统允许您使用带有IP_TOSSO_PRIORITY 选项的setsockopt() 来访问相关的IP 字段Type of Service,但是有些需要 root 才能这样做。

我不知道有什么方法可以从 SOCK_DGRAM 级别访问以太网帧头。我不希望这样在一般情况下工作,因为 IP 级别独立于链路级别运行。换句话说,UDP/IP 套接字无法知道任何给定的数据报是否会以以太网、环回、火线、USB 或其他某种链接类型结束。

一个更好的地方可能是界面设置。例如,Solaris 允许您使用 ifconfig 设置 CoS。我不确定 Linux 是否有等价物。为避免所有流量共享相同的 CoS,您可以使用调整后的 CoS 创建一个接口(interface)别名,然后将您的套接字绑定(bind)到该别名。

但首先要考虑的是您的网络硬件是否真正关注这些字段。

关于c - 如何通过 UDP 套接字设置以太网服务等级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com