问题标签 [mtu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 从外围设备请求新的 mtu 后如何在 android (Central) 上获取 MTU
我在 TI cc2650 上开发了一个 Android 应用程序和另一个应用程序。这是一个BLE应用程序。在这个应用程序中,SP 充当中央设备,CC2650 充当外围设备。
一开始,在android端发现服务并订阅我从cc2650读取值的特性后,我正在调用requestMtu(myDesiredNewMtu)
,之后cc2650用ATT_MtuUpdatedEvt
协商的MTU响应事件,然后在android端我得到带有最终 MTU 值和状态(通常是成功)的回调onMtuChanged()
。BluetoothGattCallback
但是对于目前的情况,我希望 CC2650 开始 MTU 协商。所以我从 CC2650 发送ATT_ExchangeMTUReq
了所需的 MTU,发生的情况是 android 响应“好的,新的 MTU 很好,让我们使用它(ATT_ExchangeMTURsp与协商的 MTU)”但随后callback
androidonMtuChanged()
上的没有被调用!
所以我不知道最终协商的 MTU 是什么?
networking - 错误的 MTU 大小 - 我应该期待什么问题?
我正在配置几个网络接口,我注意到一些软件客户端在 9000 处声明巨型帧,而在 9216 处声明巨型帧。我将所有接口上的所有内容都设置为 9216。
一切似乎都很好。但是,如果 MTU 在某些设备上配置错误,我应该期待什么样的网络问题?
sql-server - MS SQL 数据包大小停留在 590 字节?
不久前,我发现我的 MS SQL 服务器以 590 字节的数据包发送数据,将大响应分成大约 30-50 个单独的数据包,如Wireshark 截图所示。
我尝试更改max packet size
为 1500,但即使在重新启动服务器后,它对 tcp 数据包的实际大小也没有影响。我试图进行一些诊断,我发现了什么:
- 问题不在于客户端或服务器的 MTU。
- 数据包路径上没有 MTU 小于 1500 字节的设备。
ping -l -f 1472
从服务器到任何客户端的命令都是成功的。- 服务器和客户端之间的 TCP 连接几乎总是有 1024 字节的窗口大小。
所以,一个问题 - 为什么max packet size
不影响实际的网络数据包大小?我对不正确的硬件或操作系统设置没有想法。可能是 MS SQL Server 本身的问题?有没有人遇到过类似的问题?
运行 Windows Server 2008 R2 Enterprise 的服务器。
客户端 - Windows 7。
udp - 如果我的 udp 包大于 mtu 会发生什么
如果我的 udp 包大于 mtu 会怎样?假设我的包是512字节,封装后是572字节。在传输过程中,一些中间节点将它的 mtu 大小固定为 512 字节,那么会发生什么?我的包裹会被丢弃吗?
一般来说,适合大多数网络情况的 udp 包的最佳大小是多少?
android - 请求 MTU 在 Nougat 中不起作用
我正在开发与 BLE 设备通信的应用程序。我可以轻松地在特性上写入 20 个字节,但是当它超过 20 个字节时就会产生问题。我正在使用
mBluetoothGatt.requestMtu(512);
成功后写特征。
这在棉花糖和棒棒糖中运行良好。但它在牛轧糖(三星 Galaxy s6)中不起作用。
node.js - Nodejs UDP套接字发送数组大于MTU大小
我目前正在使用 Nodejs 通过 Wiznet820io 向 Arduino 发送 UDP 数据包。我已经成功地发送了小字节数组(长度为 500 字节),但是当我尝试发送大于 1470 字节的字节数组时,我在 Arduino 上什么也得不到。我做了一些研究,并确定由于 MTU 大小限制,它默默地失败了。
因此,我尝试将数据数组拆分为多个不超过 1470 字节的数组,并通过基本的 for 循环发送它们。然而,当我这样做时,我注意到只有第一个数据包会被发送出去,除非我在发送下一个数据包之前等待大约 10 毫秒。我相信这是由于发送函数试图在先前的数据发送之前发送数据,但是,我的理解可能是错误的。延迟会显着降低服务器的速度,这在我尝试流式传输视频时是一个问题。
是否有使用 dgram.send 通过 UDP 流解析和发送数据包的正确方法?我对为什么只检索到第一个数据包的理解是否正确?我是套接字新手,所以任何帮助都会很棒:D
干杯
史蒂夫
android - 如何在 RxAndroidBle 中获得更大的 MTU?
我正在尝试在自定义 BLE 外围设备和使用 RxAndroidBle (1.4.1) 实现的 Android 通信库之间创建数据传输。我让它与默认的 MTU(23 字节)一起使用,因此 Android 当时只传输 20 字节。通信使用 23 的 MTU,但我们真的想要更快的通信。
我们的设备支持 DLE,并在通信开始时请求更大的 158 字节 MTU,几乎所有手机都能获得它。完成后,设备开始发送最多 155 个字节的数据。因此,设备-> 移动通信速度相当快,而且运行良好。然而,在 Android 端,RxAndroidBle 的 getMtu() 调用总是返回 23(即使库和测试应用程序是使用 minsdk = 21 构建的,在 Android 7.1.1 上运行)。我尝试在建立连接后添加对RxBleConnection.requestMtu(512)的调用,但这导致没有回调并且getMtu()仍然返回 23。
我只是在createNewLongWriteBuilder上粗暴地调用setMaxBatchSize(155)并看看会发生什么。结果是更快的沟通,没有任何问题!(我在设备日志中确认我们当时确实获得了 >20 字节)但是,如果设备不支持大 MTU,为了避免令人不快的意外,我真的希望库使用实际的 MTU 值,而不是“大猜测”。
那么,在 RxAndroidBle 中获取当前 MTU 的实际方法是什么?是否有阻止它工作的错误或什么?
android - 是否可以永久更改android中的MTU值
我有一个根设备并在我的手机上使用静态 IP 地址。我正在尝试使用以下命令更改 MTU 值:
但是当我重新启动手机时,值会重置为默认 mtu(1500)。有没有办法永久更改该值,以便自定义值在手机重启或 WIFI 服务重启时持续存在。
networking - 为什么 WebRTC 选择 RTP 最大数据包大小为 1200 字节?
通过研究 WebRTC 资源,我想知道为什么开发人员选择最大 RTP 数据包大小为 1200 字节。它在 media/engine/constants.cc 中定义为 kVideoMtu 变量。
谢谢。
java - Android/Java - android 端是否有必要请求 MTU 更新?
我为 BLE 设备编写了固件,接收数据包时需要 40 个字节。
我的问题是:我的 android 设备是否需要接收事件“onMtuChanged()”才能发送超过 23 个字节?换句话说,这个回调是否允许我的设备发送超过 23 个字节?
其次,有没有办法让我在 android 内部设置 MTU 大小,这样我就不必请求 MTU 交换?我的 BLE 设备在接收到数据(网状网络的一部分)后断开连接,因此我每次发送数据时都必须交换 MTU 请求。它大大减慢了传输速度。