【问题标题】:How to Enable Timestamp Option in IP Header如何在 IP 标头中启用时间戳选项
【发布时间】:2017-05-25 08:57:15
【问题描述】:

我正在设计一个基于 UDP 的应用层协议。其中一项要求是接收方应仅保留最新的数据报。

因此,如果发送了数据报 A,然后发送了数据报 B,但先接收到了数据报 B,则应用程序在接收到数据报 A 时应将其丢弃。

实现这一点的一种方法是在 UDP 数据包的数据部分中存储一个计数器。每次发送数据报时,计数器都会递增。

我还注意到 IP 选项包含一个看起来适合此任务的时间戳选项。

我的问题是(在类似 BSD 的套接字的上下文中):

  1. 如何在发送端启用此选项?
  2. 如何在接收方读取此字段?

【问题讨论】:

    标签: sockets networking network-programming udp ip


    【解决方案1】:

    您可以使用 setsockopt() 使用选项级别 IPPROTO_IP 并指定选项名称来设置 IP 选项。参见 Unix/Linux IP 文档,例如参见 here。读取 IP 标头选项通常需要使用 RAW 套接字,而后者通常需要 root 权限。不建议(尝试)使用 IP 选项,因为它可能并不总是受支持,因为它很少使用(无论是在发起系统还是在它通过的系统)。

    【讨论】:

      猜你喜欢
      • 2014-01-31
      • 2014-09-18
      • 2016-09-12
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多