Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 发现最大数据包大小_Windows_Unix_Networking_Udp_Mtu - Fatal编程技术网

Windows 发现最大数据包大小

Windows 发现最大数据包大小,windows,unix,networking,udp,mtu,Windows,Unix,Networking,Udp,Mtu,我正在从事一个与网络相关的项目,我正在使用DTLS(TLS/UDP)来保护通信安全 在阅读DTL规范时,我注意到DTL需要设置DF标志(不要分段) 在我的本地网络上,如果我尝试发送大于1500字节的消息,则不会发送任何内容。这很有道理。在Windows上,sendto()报告成功,但未发送任何内容 显然,我无法手动取消设置DF标志,因为它是DTL的必需标志,我不确定1500字节限制(MTU?)在某些情况下是否会改变。我想可以 所以,我的问题是:“有没有办法发现这个限制?”使用API 如果不是,最

我正在从事一个与网络相关的项目,我正在使用DTLS(TLS/UDP)来保护通信安全

在阅读DTL规范时,我注意到DTL需要设置DF标志(不要分段)

在我的本地网络上,如果我尝试发送大于1500字节的消息,则不会发送任何内容。这很有道理。在Windows上,sendto()报告成功,但未发送任何内容

显然,我无法手动取消设置DF标志,因为它是DTL的必需标志,我不确定1500字节限制(MTU?)在某些情况下是否会改变。我想可以

所以,我的问题是:“有没有办法发现这个限制?”使用API

如果不是,最低可能值是多少

我的软件在UNIX(Linux/MAC OSX)和Windows操作系统下运行,因此欢迎为每个操作系统提供不同的解决方案;)


非常感谢。

您可能需要通过向目标发送一系列数据包大小来“自动调整”它,并查看哪个到达。想想二进制搜索…

您可能需要通过向目标发送一系列数据包大小来“自动调整”它,并查看哪个到达。想想二进制搜索…

必须支持最小MTU-576字节,包括IP头。因此,如果您将数据包保持在该值以下,则不必担心PMTU-D(DNS就是这样做的)。

必须支持最小MTU—576字节,包括IP头。因此,如果您将数据包保持在该值以下,就不必担心PMTU-D(DNS就是这样做的)。

谢谢,但我希望有一些“标准”的方法来做到这一点。我真的不想重新发明MTU路径发现。谢谢,但我希望有一些“标准”的方法来做到这一点。我真的不想重新发明MTU路径发现。你是在推出自己的DTLS实现还是什么?RFC建议他们应检查“所需碎片和DF设置”错误,并相应地修改估计的MTU。不,我不会使用自己的DTLS实现。我正在使用OpenSSL。我需要让MTU在发送数据包之前对数据包进行分段。所以,我需要一种方法来确保我的数据包足够小,不会被丢弃。您是在运行自己的DTLS实现还是什么?RFC建议他们应检查“所需碎片和DF设置”错误,并相应地修改估计的MTU。不,我不会使用自己的DTLS实现。我正在使用OpenSSL。我需要让MTU在发送数据包之前对数据包进行分段。所以,我需要一种方法来确保我的数据包足够小,不会被丢弃。我不知道最小的帧大小。我想我别无选择,只能把我的帧分成576字节的部分。谢谢你@ereOn:请记住,它是576字节的IP数据包-因此包括IP和UDP报头,以及每个数据包的DTLS开销。我不知道最小帧大小。我想我别无选择,只能把我的帧分成576字节的部分。谢谢你@ereOn:请记住,它是576字节的IP数据包,因此包括IP和UDP报头,以及每个数据包DTLS开销。