如何在IP标头

时间:2017-01-10 18:46:12

标签: sockets networking network-programming udp ip

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

因此,如果发送数据报A然后发送数据报B,但是首先收到数据报B,则应用程序在收到数据报时应该丢弃数据报A.

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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