如果这个问题太幼稚,我很抱歉,但我很困惑。我想发送 IPv6 jumbograms
(以便能够多播大小 > 64 KB 的数据包)。我已经能够成功地多播正常的 IPv6 UDP 数据包。
为了从 RFC 2675
发送巨型图,我知道我必须进行以下更改:
- 设置负载长度为0
- 将下一个 header 设置为逐跳
但是,我不知道如何在 c 套接字编程
中实现这些(调用哪些函数等)。我是否必须创建自定义 header ,或者是否有像 sendto
这样的函数可用于发送巨型图?
最佳答案
如果您正在制作自己的 header ,则可以使用原始套接字。如需更多信息,请输入 man -s7 raw
或 look here .请注意,您实际上需要以这种方式实现您自己的 IP 堆栈。
但是,我的理解是 linux 本身就支持 IPv6 jumbograms,所以你不需要费心。尝试 ifconfig lo mtu 100000
并在环回设备上进行一些测试以进行检查。
我怀疑问题可能是您的网络适配器和路径上的所有内容(端到端)也需要支持巨型图。
关于c - 在 c (linux) : How to change packet headers 中发送 ipv6 jumbograms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32685846/