V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feng32
V2EX  ›  程序员

Linux 下用户态程序如何使用 SO_TXTIME 属性指定报文的发送时间?

  •  
  •   feng32 · 2022-09-15 18:45:38 +08:00 · 667 次点击
    这是一个创建于 560 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Intel(R) Ethernet Controller I210 and other NICs provide the LaunchTime feature which enables frames to be transmitted at specific times. In Linux, this hardware feature is enabled through the SO_TXTIME sockopt and ETF qdisc.
    

    曾看到一段这样的描述,但是网络上相关的资料太少了。尝试在内核源码中找相关线索,无果

    按照我目前的理解,这个功能应该是内核通过 getsockopt / setsockopt API 暴露给用户态程序的。但是这对 TCP 传输来说似乎没有意义,适用场景大概是 UDP / ICMP / RAW socket 等传输

    2 条回复    2022-09-16 08:56:09 +08:00
    pagxir
        1
    pagxir  
       2022-09-16 00:47:20 +08:00 via Android
    你的使用 sendmsg 的 api ,然后在 msghdr 指定 scm_txtime 。然后 queue 也需要配置
    julyclyde
        2
    julyclyde  
       2022-09-16 08:56:09 +08:00
    times 是次数( times 本身的复数形式)还是时间(多个 frames 各自的 time )呀?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1065 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:59 · PVG 02:59 · LAX 11:59 · JFK 14:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.