URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84536
[ Назад ]

Исходное сообщение
"tcp packets ppp0"

Отправлено Anatoly , 17-Мрт-09 17:52 
Господа, добрый день.

Есть проблема, а как решить непонятно.
Linux машина с 2.6 ядром.

Имеется интерфейс ppp0: (поднят через pppd)

ppp0    Link encap:Point-to-Point Protocol  
          inet addr:192.168.101.1  P-t-P:192.168.101.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1        
          RX packets:8 errors:1 dropped:0 overruns:0 frame:0                
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0              
          collisions:0 txqueuelen:3                                        
          RX bytes:95 (95.0 b)  TX bytes:97 (97.0 b)

Необходимо установить интервал отправки пакетов.
Например жестко установить, что интервал между пакетами на интерфейсе ppp0 равен 1 секунде.
Такое вообще возможно сделать?

Перекопал pppd, ifconfig и параметры ядра (proc / sysctl)...
Ничего...

Спасибо!


Содержание

Сообщения в этом обсуждении
"tcp packets ppp0"
Отправлено Anatoly , 17-Мрт-09 19:39 
Может сделать что-то типа:

#!/bin/sh

INT001=ppp0
TC=`which tc`

$TC qdisc del dev $INT001 root
$TC qdisc add dev $INT001 root handle 1: htb default 1
$TC class add dev $INT001 parent 1: classid 1:1 htb rate 1kbit
$TC class add dev $INT001 parent 1:1 classid 1:2 htb rate 1kbit
$TC filter add dev $INT001 parent 1:0 protocol ip handle 1 fw flowid 1:2

iptables -t mangle -A POSTROUTING -o $INT001 -j MARK --set-mark 1
iptables -t mangle -A POSTROUTING -o $INT001 -j RETURN


"tcp packets ppp0"
Отправлено Aatoly , 22-Мрт-09 14:20 
Так и не нашел решения... :-(

"tcp packets ppp0"
Отправлено PavelR , 22-Мрт-09 20:09 
>Так и не нашел решения... :-(

позвольте полюбопытствовать, зачем такие извращения потребовались ?


"tcp packets ppp0"
Отправлено Anatoly , 23-Мрт-09 14:00 
>позвольте полюбопытствовать, зачем такие извращения потребовались ?

Канал по которому идет туннель, очень слабый и специфичный.
И при сильной интенсивности передачи пакетов по нему - начинаются потери.
После некоторых испытаний, я пришел к выводу:
Пакеты должны идти с интервалом не меньше 1.5 секунды.

Для реализации этого можно:
0) В необходимом софте, программно изменить протокол. (на стороне клиента и сервера)
Но это откровенно гемор...
1) Научить интерфейс (ppp0) копить очередь и держать межпакетный интервал.
2) Научить сам pppd копить очередь и держать межпакетный интервал.

Я прекрасно понимаю, что это очень медленно. Но там этого вполне хватит.
Главное - сократить потери.