Network programming 如何在IP报头(特别是IPv6)中实现选项(逐跳)?

Network programming 如何在IP报头(特别是IPv6)中实现选项(逐跳)?,network-programming,udp,stack,ipv6,Network Programming,Udp,Stack,Ipv6,一般来说,我对网络编程相当陌生,到目前为止,我已经使用UDP开发了一些应用程序 1.)谁实际向数据报(操作系统TCP/IP堆栈)添加了头 2.)如果我想使用扩展影响IPv6标头中的内容,步骤是什么?这是否发生在我的UDP应用程序中?我需要使用原始插座吗 我可以漫不经心地告诉我的数据报它的目的地IP地址和端口,它最终会出现在报头中,但我很天真,不理解这是如何发生的 我试图对此进行研究,但找不到太多,我相信可能我不知道如何正确地提问。对于最常见的用例,操作系统提供了创建和解析IP数据包的功能。如果你

一般来说,我对网络编程相当陌生,到目前为止,我已经使用UDP开发了一些应用程序

1.)谁实际向数据报(操作系统TCP/IP堆栈)添加了头

2.)如果我想使用扩展影响IPv6标头中的内容,步骤是什么?这是否发生在我的UDP应用程序中?我需要使用原始插座吗

我可以漫不经心地告诉我的数据报它的目的地IP地址和端口,它最终会出现在报头中,但我很天真,不理解这是如何发生的


我试图对此进行研究,但找不到太多,我相信可能我不知道如何正确地提问。

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


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

我有管理员/root权限。关于添加逐跳扩展头,我需要原始套接字还是不需要?我需要图书馆吗?我主要是寻找实现的想法。如果你的操作系统没有提供你想要的API,那么你需要原始套接字。我建议您使用库来解析和创建原始数据包,因为编写自己的IP堆栈容易出错。