发现最大数据包大小

发布于 2024-08-26 06:56:21 字数 461 浏览 5 评论 0原文

我正在开发一个与网络相关的项目,并使用 DTLS (TLS/UDP) 来保护通信。

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

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

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

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

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

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

非常感谢。

I'm working on a network-related project and I am using DTLS (TLS/UDP) to secure communications.

Reading the specifications for DTLS, I've noted that DTLS requires the DF flag (Don't Fragment) to be set.

On my local network if I try to send a message bigger than 1500 bytes, nothing is sent. That makes perfect sense. On Windows the sendto() reports a success but nothing is sent.

I obviously cannot unset the DF flag manually since it is mandatory for DTLS and i'm not sure whether the 1500 bytes limit (MTU ?) could change in some situations. I guess it can.

So, my question is : "Is there a way to discover this limit ?" using APIs ?

If not, what would be the lowest possible value ?

My software runs under UNIX (Linux/MAC OSX) and Windows OSes so different solutions for each OS are welcome ;)

Many thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

几度春秋 2024-09-02 06:56:21

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

There is a minimum MTU that must be supported - 576 bytes, including IP headers. So if you keep your packets below that, you don't have to worry about PMTU-D (that's what DNS does).

难以启齿的温柔 2024-09-02 06:56:21

您可能需要通过向目标发送一系列数据包大小来“自动调整”它,并查看哪些到达。认为二元搜索...

you probably need to 'auto tune' it by sending a range of packet sizes to the target, and see which arrive. think binary_search ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文