PPPD через последовательный порт, хорошие результаты iperf, плохой реальный битрейт (scp / streaming) - PullRequest
0 голосов
/ 29 мая 2020

Моя цель - иметь TCP / IP-соединение между двумя устройствами, которые связаны друг с другом с помощью радиопередатчиков, подключенных к каждому устройству через последовательный порт. Их максимальный битрейт теоретически составляет 500 кбит / с. Мне удалось установить sh такое соединение с помощью pppd:

pppd crtscts noauth lock 172.100.0.1:172.100.0.2 /dev/ttyUSB0 460800

Он работает нормально, я могу sh переходить от одного к другому. Я запустил iperf3 (сервер: iperf3 -s, клиент: iperf3 -c 172.100.0.1). Результат был:

Connecting to host 172.100.0.1, port 5201
[  4] local 172.100.0.2 port 33740 connected to 172.100.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  56.2 KBytes   460 Kbits/sec    0   12.4 KBytes
[  4]   1.00-2.00   sec  70.4 KBytes   577 Kbits/sec    0   15.8 KBytes
[  4]   2.00-3.00   sec   129 KBytes  1.05 Mbits/sec    0   21.5 KBytes
[  4]   3.00-4.00   sec  78.8 KBytes   645 Kbits/sec    0   25.0 KBytes
[  4]   4.00-5.00   sec  90.3 KBytes   739 Kbits/sec    0   29.2 KBytes
[  4]   5.00-6.00   sec   113 KBytes   931 Kbits/sec    0   34.3 KBytes
[  4]   6.00-7.00   sec  21.2 KBytes   174 Kbits/sec    0   34.5 KBytes
[  4]   7.00-8.00   sec  39.2 KBytes   321 Kbits/sec    0   34.5 KBytes
[  4]   8.00-9.00   sec  54.9 KBytes   450 Kbits/sec    0   34.5 KBytes
[  4]   9.00-10.00  sec  29.6 KBytes   243 Kbits/sec    0   34.5 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   683 KBytes   559 Kbits/sec    0             sender
[  4]   0.00-10.00  sec   621 KBytes   509 Kbits/sec                  receiver

iperf Done.

двунаправленные тесты с -d дали аналогичные результаты.

Однако, когда я пытаюсь скопировать файл (сгенерированный с использованием dd if=/dev/urandom of=~/randfile bs=1M count=1, я получаю очень повторяемые результаты ~ 20-25 КБ / с (ниже MPU, ниже скорость передачи), более чем в 2 раза хуже, чем у iperf3:

scp ~/randfile user@ip:/path
100% 1024KB  20.3KB/s   00:50

У вас есть идеи, что может вызвать такую ​​разницу? Я попробовал потоковое видео и результаты были примерно такими же, я достиг 150 кбит / с с UDP, я не смог заставить работать 200 кбит / с. Я попробую SLIP, который должен иметь меньшие накладные расходы, чем pppd.

EDIT

результат pppstats device1 :

pppstats -r -v
      IN   PACK VJCOMP VJTOSS NON-VJ  RATIO  UBYTE  |      OUT   PACK VJCOMP VJSRCH VJMISS  RATIO  UBYTE
 1980812  17773   9606      0    968   1.15 1595821  |  6156633  34099  18485    480     13   3.69 5387948

устройство2:

pppstats -r -v
      IN   PACK VJCOMP VJTOSS NON-VJ  RATIO  UBYTE  |      OUT   PACK VJCOMP VJSRCH VJMISS  RATIO  UBYTE
 6155869  34092  18485      0   7687   3.69 5387156  |  1979984  17762   9606    422     14   1.15 1594949
...