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

Исходное сообщение
"Нужно программку, которая бы выбрасывала лишние пакеты."

Отправлено Shuliga , 16-Окт-03 21:19 
Прошу помочь мне решить такую проблему:
  Имеется радиосвязь на расстоянии 45км с помощью точек доступа DWL-900AP+ в режиме моста. Из-за того, что в протоколе 802.11в на котором они работают, время ожидания пакетов, подтверждающих прием фиксировано и составляет 78мкс (а это меньше времени распространения радиосигнала) в канале возникает много дублирующих IP пакетов в результате никому не нужной повторной передачи. Есть много решений, но я остановился на этом:
  Нужно написать небольшую программку, которая бы выбрасывала лишние пакеты. Пакеты на ее вход должны направляться из FORWARD после проверки определенных условий в результате действия QUEUE (что-то такое, сейчас точно не помню), а затем должны двигаться дальше по цепочке.
  В программе нужно организовать стек на приблизительно 256 4-х байтных чисел. После поступления пакета на порт программы нужно проверить наличие его индивидуального номера (АСК ???) в стеке. Если его нет, то пакет пропускается дальше по цепочке, а его номер заносится в стек и проверяется следующий пакет. Если он есть, то пакет уничтожается и проверяется следующий пакет. Все это должно работать в Mandrake 9.1.
  В случае удачи моя благодарность вам будет безгранична (в пределах 1000р , высланных по указанному вами адресу).
  Аналогичные письма я разошлю еще в несколько адресов, поэтому во избежание дублирования перед началом работы потребуйте у меня подтверждения. Я с удовольствием приму любые сырые варианты и протестирую их. Исходный код с подробными комментариями обязателен. (И инструкции по установке, я новичок в линуксе).
  Пожалуйста, не оставьте без внимания мою просьбу! Задача только на первый взгляд кажется простой.

  Виктор


Содержание

Сообщения в этом обсуждении
"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Михаил , 19-Окт-03 18:37 
>Прошу помочь мне решить такую проблему:
>  Имеется радиосвязь на расстоянии 45км с помощью точек доступа DWL-900AP+
>в режиме моста.
ничего себе! это ж почти мировой рекорд! какие антенны брал? :)

Из-за того, что в протоколе 802.11в на котором
>они работают, время ожидания пакетов, подтверждающих прием фиксировано и составляет 78мкс
>(а это меньше времени распространения радиосигнала) в канале возникает много дублирующих
>IP пакетов в результате никому не нужной повторной передачи. Есть много
>решений, но я остановился на этом:
>  Нужно написать небольшую программку, которая бы выбрасывала лишние пакеты.
такая программка уже давно есть! стек TCP/IP называется! :)
протокол TCP содержит в себе функцию удаления дублирующих пакетов...


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 19-Окт-03 19:27 
>ничего себе! это ж почти мировой рекорд! какие антенны брал? :)
Усилителей нет, антенны самодельные 3.6м и 1.2м.

>такая программка уже давно есть! стек TCP/IP называется! :)
>протокол TCP содержит в себе функцию удаления дублирующих пакетов...
Почему она не работает и как ее включить? У меня завышенный в 10 - 20 раз трафик гуляет по всей локалке и в инете по-моему нигде не фильтруется. Когда дублирующие пакеты доходят до порта, там они, понятно, уничтожаются. А до этого считаются везде и забивают каналы.

Может еще кто знает как поправить ПО DWL-900AP+, чтобы увеличить время ожидания АСК или вообще вырубить АСК?


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Михаил , 20-Окт-03 15:14 
>Почему она не работает и как ее включить? У меня завышенный в
>10 - 20 раз трафик гуляет по всей локалке и в
>инете по-моему нигде не фильтруется. Когда дублирующие пакеты доходят до порта,
>там они, понятно, уничтожаются. А до этого считаются везде и забивают
>каналы.

как вариант в этом направлении - поставить на оба конца канала по рутеру, чтобы из локалок как можно меньше в него лезло.
а еще можно какой-нибудь vpn поставить на канал, который все в TCP туннелирует... правда, производительности это не прибавит, но дубликаты пакетов будут убиваться уже внутри...


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено qq , 20-Окт-03 17:34 

>а еще можно какой-нибудь vpn поставить на канал, который все в TCP
>туннелирует... правда, производительности это не прибавит, но дубликаты пакетов будут убиваться
>уже внутри...

это, кстати, увеличит нарузку на канал, трафика то больше будет
а фильтрация увеличит нагрузку на CPU машины где фильтруется.

проц заапгрейдить проще :)



"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено andreyn , 26-Окт-03 20:52 
>Усилителей нет, антенны самодельные 3.6м и 1.2м.
А можно как нибудь на чертежи антенн взглянуть?

"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 26-Окт-03 21:42 
>>Усилителей нет, антенны самодельные 3.6м и 1.2м.
>А можно как нибудь на чертежи антенн взглянуть?

Да самодельное все. Не чертежи - наброски. Да и конструкция обычная. Парабола из оцинкованой зверосетки на сварном каркасе из водопроводных труб. Вес - 160кг. (3.6м) Сварить может только сварщик очень высокой квалификации, допуски маленькие.


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено cdr , 19-Окт-03 19:58 
это надо писать модуль к iptables по хорошему, чтобы было что то вроде
iptables -I DORWARD 1 --duplicated -j DROP
но если готового нигде нет, то 1000р за написание это как то смешно просто...



"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 19-Окт-03 20:27 
>это надо писать модуль к iptables по хорошему,
Это по-хорошему. А через QUEUE мне кажется будет проще. Сама програмка будет в несколько строк. Тому, кто там лазил - проще чем высморкаться. Но таких наверное не найдется - область мало истоптаная. А остальным в плюсе спортивный интерес и повышение квалификации. Не только деньгами все меряется. Удовольствие от того что решил задачу, за которую побоялись взяться другие тоже чего-нибудь стоит.
Короче, когда с деньгами не очень, философия утешает..

"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено cdr , 19-Окт-03 23:36 
ну, если производительность интересует не особо, то да, libipq тут поможет..
и в общем ты прав, было прикольно немного отвлечся и написать эту прогу..
можешь протестить...

компилится:
gcc -o dupkill dupkill.c -lipq
естественно у тебя должен стоять девелоперский пакет для iptables (не знаю как в мандряке зовется, наверное что то типа iptables-devel...)

ну и собственно файлик:
*** CUT HERE ***
begin-base64 644 dupkill.c.gz
H4sICPPqkj8AA2R1cGtpbGwuYwC1Vm1v2zYQ/hz9ikuKrpKr2HK3FUHSZOgy
pwjmJJ6bANu6TKAlyiIsU5pEJU4L//fdkZJsWW0xYJs+WDLJe+65dw56Vg9u
Y1FAkIYc8P1uMu5bvYH1TMggKXHtTSJkuRpIriKRKJ7347PW5kxkfw3Mq71V
qFCktGQ9C3kkJIcf7y7eX/4+glfed0eWNRgosUSdEh5jEcSgYg4ZCxZcIRlZ
iJDnPISwzBIRMMXBzpKygCEUPIAlW/WdBven6c3k9vJqBEPLKlFyLlEwSeUc
SINis4R/8FZDD5/7k60jRZzmqCwPhq/tZjGIWQ69WRm5SE1BwqWDMoViSgTw
kAqkJLhdqLwMFKDRfsxkmHDoxS6J9mBZzB3rkwWgdzOe52lu0+JJvRZyFE+f
Kkk7Njt8JZQ9xO+1ZZHmJRPSpg+WzwO34tXDPw81PO4Rr7LQ8m0L0IAPlb/v
9fbnGLflGne0lxtHohtwPYZTDRLkHKNS2+C5MLnwL69Ht5WZEdj7sWPtkbNi
96AjceAYOGNAhVlw5S8xEVECLie/+Oc3k9/8ydvzn0e3bp09G/xK9A14bT01
Sq0iTD9Zey09SCQkHTrKFa6LMCfWXgcY6NlCJ1mNvFc8CoV5a9PqkhcFm3Nf
PWXcRljHgU+VbMAKDtfjq/fv/NF0ejM9tvZwI8pyjF+EujDPcxcOpjzg4gH9
rRMGKkB4Hv4hD1wU2TO5MyfjijkeMmpONNoMWS2Q07ZKdOBV5bxjIlMBmBIj
DF9Bb1l5hGDNjoYl8/A85gLumwJZHp5l7ClJWejiZ8gU801t0EFdyadb5YYy
92ZLRLYHp6eAQrSNvl1mGKLAqTjRMxgAS5L0EXMtYEnVBQrsCHlazuPmWCdX
HngeikBRKDU9bZkItbu00PWF//b8fDTB9MEMvb4bjyvCa/3LE/QTEjT8z7ok
D5vWQnT/BREwZAhulwo9VTIchHmaaa97q+e/GlbPQ2goVdmAB1xaczs+7Ri3
8XE7NtC19eT/8PO2cSwIeKb+K/M6hVq7eacTVNwP2pViDq/rgsFBwspEfaE0
7+RCpo+yqUkq8n1kugO5pmazpmmGzVV38q83/JyrMpfg6Y4/wDlM0YE0gvPp
eUFvrAk4OpwJVWsu+oCjud2Z0Vu+ieur71/TeEOki4TNjyFmhR6qehdmnEsc
rMusVDz8AS6lUAIVPEHEMFE0MA2UBs6vz2IeeAb2ii34FmKEbYqheKGIsUbQ
83GJx/wGx6Y1M7F2iJMTSKV0YaF9RYC21PpAYlTRIPx4+ZJqT7c13LJbIA5I
7UojujCiCxQ9wtdG0GRLAN/AcLNk8LwVD2dHR9++8sbwJ505O4OhiY+OZlVF
2yLmTHPE2vxuYiGpwrSFtPNZpw6ruJPkXRbSFYdBXkopTFQBx4u5Fc2eFC/0
RPf6fWy6h8N7wEyqEsjSZ0qNEJJgH290XCPgRC+TEEOPftbhFh/xiErhI8/T
PkxyfkhAFmRpoQ7x1hXiqVQTsFPJXxQ6YRK+5FI5dDvE2wx6eokgRA6vbvhT
WBCVMiBBKFLAbDVq5QtFmkMEQgs0SWzuCd4g4U6XEV8xAj+2utcNM3i8sSmh
qqJo8vrohYjr2Ycvl65ncxU7sH8Ko5uLJrhG3viEUtGmngI7QjqC6/o2QSKI
kuZiLiRLSMoxs9jGk52y28LuUHebdKmfr90uP1caZupiQnqrqHrGTblop+gL
VjevHK16pwK1pbvFhao7xbXJX5uUU8bJewfLhmjcN/Vx5NSJXbWwDlPT0KZm
lyKPDYI62heyud3W/um1XDuuYmC3pZ2t8Hjj6qJnritr62/HvtE79QwAAA==
====
*** END CUT ***

скорми это дело uudecode, если вдруг не знаешь..


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено cdr , 20-Окт-03 00:07 
принцип:
считаем и запоминаем crc16 проходящих пакетов
если в течение 1-2 секунд приходит пакет с повторяющимся crc, то он отбрасывается.

на быстрых линках могут быть ложные срабатывания, когда разные пакеты но один crc (всего 16 бит ведь) и тогда надо переделать под микросекунды...


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 20-Окт-03 00:35 
Ура!!! Наконец дело сдвинулось с места! Спасибо, cdr! Есть в инете живые люди. Сегодня уже поздно, завтра после работы поставлю нужный пакет, повожусь сам и буду задавать вопросы. А что это за формат, который нужно вырезать?

Виктор.


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено cdr , 20-Окт-03 09:25 
>А что это за формат, который
>нужно вырезать?

это результат работы команды
uuencode -m dupkill.c.gz dupkill.c.gz



"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 25-Окт-03 02:45 
Спасибо, cdr, программа работает, нагрузки на Celeron 1700 я не заметил.

"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено v3625 , 06-Янв-04 12:43 
>>>Усилителей нет, антенны самодельные 3.6м и 1.2м.
>>А можно как нибудь на чертежи антенн взглянуть?
>Да самодельное все. Не чертежи - наброски. Да и конструкция обычная. >Парабола из оцинкованой зверосетки на сварном каркасе из водопроводных >труб. Вес - 160кг. (3.6м) Сварить может только сварщик очень высокой >квалификации, допуски маленькие.

И все-таки очень интересно взглянуть хотя бы на наброски.
Или может порекомендуете источники, которыми пользовались при
изготовлении антенн (литературу, сайты, формулы для расчета ...).

Между антеннами прямая видимость?

Заранее благодарен.


"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено Shuliga , 07-Янв-04 01:31 
>Или может порекомендуете источники, которыми пользовались при
>изготовлении антенн (литературу, сайты, формулы для расчета ...).
>
>Между антеннами прямая видимость?
Видимость прямая. Книга "Антенно-фидерные устройства" А.Л.Драбкин, В.Л.Зузенко, А.Г.Кислов Москва, "Советское радио", 1974
Но там все чересчур подробно. Таблицу в экселе высылаю почтой

"Нужно программку, которая бы выбрасывала лишние пакеты."
Отправлено v3625 , 08-Янв-04 08:01 
>Видимость прямая. Книга "Антенно-фидерные устройства" А.Л.Драбкин, В.Л.Зузенко, А.Г.Кислов Москва, "Советское радио", 1974
>
>Но там все чересчур подробно. Таблицу в экселе высылаю почтой

Спасибо.