如何设置don't fragment (DF) flag 在socket上?
我们尝试设置 DF (don't fragment flag) 用于发送UCP 数据库包
我想尝试 使用setsockopt() 但是不能找到
你可以使用 setsockopt() call, 通过使用IP_DONTFRAG选项:
int val = 1;
setsockopt(sd, IPPROTO_IP, IP_DONTFRAG, &val, sizeof(val));
int val = IP_PMTUDISC_DO;
setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val));
对于linux, 它似乎你必须使用之IP_MTU_DISCOVER 使用之IP_PMTUDISC_DO,
或者IP_PMTUDISC_DONT to turn it off
int val = IP_PMTUDISC_DO;
setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val));
我还没有测试过这个, 只是查看了头文件
至于是否有其他方法可以设置DF标志:
我在程序中找不到 设置 "force DF flag"的地方, 但tcpdump 建议它是,有没有其他方法可以设置?
IP_MTU_DISCOVER: 设置或者 接收 socket的 Path MTU Discovery 设置。
当启用时, Linux 执行 Path MTU Discovery 作为定义在RFC 1191 在这个socke
如何设置don't fragment (DF) flag 在socket上? (实际模拟路径 MTU 发现)
最新推荐文章于 2024-07-23 08:53:10 发布