根据这里的表格,它说 MTU = 1500 字节,有效载荷部分是 1500 - 42 字节或 1458 字节(<- 这实际上是错误的!)。现在最重要的是您必须添加 IPv4 和 UDP 标头,它们是 28 个字节(20 个 IP + 8 个 UDP)。这使我的最大可能应用程序消息为 1430 字节!但是通过在互联网上查找这个数字,我看到的是 1472。我在这里计算错误吗?
我想知道的是我可以通过网络发送的最大应用程序消息,而不会产生碎片风险。它绝对不是 1500,因为它包括帧头。有人可以帮忙吗?
令人困惑的是 PAYLOAD 实际上可以大到 1500 字节,这就是 MTU。那么现在有效载荷为 1500 的线内尺寸是多少?从该表中,它可以大到 1542 字节。
所以我可以发送的最大应用程序消息是 1472 (1500 - 20 (ip) - 8 (udp)) 最大线径为 1542。当事情实际上很简单时,事情会变得如此复杂,这让我感到惊讶。而且我不知道如果表上写的是 1542,那么有人是如何想出数字 1518 的。
当我将 telnet 与 rlwrap 一起使用时,似乎无法杀死客户端。我在这里遗漏了什么还是我真的必须用 kill 命令终止进程?
我正在尝试使用 ifconfig 在我的环回接口上打开广播。它目前是这样写的:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
Run Code Online (Sandbox Code Playgroud)
如您所见,没有广播地址!:( :( :(
我在 OS/X 上试过这个,但没有用,也没有给出任何错误或反馈:
ifconfig lo0 broadcast 127.255.255.255
Run Code Online (Sandbox Code Playgroud)
有上师会知道吗?
我有一台发送一个数据包的服务器。我有两个客户端与服务器在同一台机器上运行。我需要他们拿起数据包,而不必强迫服务器发送两次。
我想让一台服务器在同一台机器上发送广播 UDP 数据包和另外两个客户端,接收它们。我能以某种方式做到这一点吗?我会使用什么 IP 地址?
@gravyface 给了我希望,但我尝试过:
他们都没有工作!:(
OBS:我正在使用 REUSE_ADDR 和 SO_BROADCAST 选项。
我需要在两台机器之间做一个延迟测试,基本上是一个乒乓包测试。我想知道这两台机器之间最快的连接是什么。我想我的选择是:
我试图通过类似于 BufferedOutputStream 的缓冲 FileChannel 尽可能快地写入文件。我想知道每次写入调用应该使用的最佳数据块是什么以最大化带宽?我在 Ubuntu Linux 上。