Bluetooth MTU

来源:互联网 发布:f盘文件显示无数据 编辑:程序博客网 时间:2024/05/16 06:12

 

最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据报小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

 

在网络上如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。

 

蓝牙也一样,如果蓝牙发送方设备的MTU 值比接受端设备的MTU大, 大的数据包就会被拆开来传送,蓝牙传输速度就会降低. 蓝牙的MTU 值是在L2CAP(逻辑链路控制层)中定义的.

蓝牙官方推荐的值是最小48字节,默认672字节.

 

但是实际情况与是一些蓝牙设备特别是PC设备将MTU的默认值设的很高,

这样如果蓝牙设备接受端还是使用672字节的默认值,则PC类发送方设备数据传送到接受端速度就会显得很慢.

为了获得高的传输速度,接受端不得不牺牲内存为代价,将默认的MTU值也改大.

 

经过测试:

从VAIO笔记本传送1MB的文件到PXA板子上.

如果板子端 MTU值是 672
我们只能得到20KB(1MB/50s)的速度

 

而将板子端MTU值改为 60000
我们就可以得到75KB(1MB/13s)的速度了

 

相差还是很大的! 付出的代价是蓝牙数据接受端每个L2CAP连接的内存消耗增加了!

 

 

原创粉丝点击