iOS 11 L2CAP throughput test

Hi,


Is anyone know how to use L2CAP channel and transmission throughput will as same as the throughput in document of Apple WWDC 2017?


In 712_whats_new_in_core_bluetooth.pdf, it shows

L2CAP + EDL throughput is 197 kps

L2CAP + EDL + 15ms Int. throughput is 394 kps


In our test, we use three iPhone

1. iPhone SE

2. iPhone 7

3. iPhone 6


All test is transmit 1 Mbytes data by L2CAP channel

  • iPhone SE send data to iPhone 7 tooks 168 seconds (throughput ~ 47.6 kps)
  • iPhone 7 send data to iPhone SE tooks 157 seconds (throughput ~ 50.9 kps)
  • iPhone SE send data to iPhone 6 tooks 219 seconds (throughput ~ 36.5 kps)

We will send data when we get the callback of Stream.Event.hasSpaceAvailable, and write data code like this

l2capCh?.outputStream?.write($0, maxLength: toWriteData.count)

toWriteData.count is start from 1000000 to 0

We will read data when we get the callback of Stream.Event.hasBytesAvailable

We did not put any delay or sleep bettween read/write data.

So, is there any other parameter or other methods can make our transmission throughput more close to 197 kps?

Thank you.

* Updated


We alos test iPhone 7 vs iPhone 7 plus


iPhone 7 plus >> iPhone 7 tooks 58 seconds (throughput ~ 137.9 kps) [It is more close to 197 kps]

iPhone 7 >> iPhone 7 plus tooks 97 seconds (throughput ~ 82.4 kps)


But we still don't know why iPhone 7 send data to iPhone 7 plus is more slowly...

I'm trying to replicate this throughput test you have, but whenever I call `peripheral.openL2CAPChannel(psmValue)` I get a Core Bluetooth unknown error, any ideas?

iOS 11 L2CAP throughput test
 
 
Q