【问题标题】:How to implement options (hop-by-hop) within an IP header, specifically IPv6?如何在 IP 标头中实现选项(逐跳),特别是 IPv6?
【发布时间】:2016-09-12 21:44:58
【问题描述】:

总的来说,我对网络编程还很陌生,到目前为止,我已经使用 UDP 完成了一些应用程序。

1.) 谁真正将标头添加到数据报,操作系统 TCP/IP 堆栈?

2.) 如果我想使用扩展来影响 IPv6 标头中的内容,有哪些步骤?这是否发生在我的 UDP 应用程序中?我需要使用原始套接字吗?

我可以漫不经心地告诉我的数据报它是目标 IP 地址和端口,它最终出现在报头中,但我很天真,不了解发生这种情况的过程。

我尝试对此进行研究,但找不到太多信息,并且相信我可能不知道如何正确提出我的问题。

【问题讨论】:

    标签: network-programming udp stack ipv6


    【解决方案1】:

    对于最常见的用例,操作系统提供了创建和解析 IP 数据包的功能。如果您想做“特殊”的事情,例如添加额外的扩展标头,您通常需要手动完成所有操作。

    操作系统通常还需要管理员/root 访问权限才能这样做,以防止普通用户做他们不应该做的事情。

    【讨论】:

    • 我有管理员/根权限。关于添加逐跳扩展标头,我是否需要原始套接字?我需要图书馆吗?我主要是在寻找实现思路。
    • 如果您的操作系统没有为您提供所需的 API,那么您将需要原始套接字。我建议您使用库来解析和创建原始数据包,因为编写自己的 IP 堆栈容易出错。
    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 2014-11-20
    • 2017-05-25
    • 2017-04-06
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 2022-07-20
    相关资源
    最近更新 更多