Прошу помочь мне решить такую проблему:
Имеется радиосвязь на расстоянии 45км с помощью точек доступа DWL-900AP+ в режиме моста. Из-за того, что в протоколе 802.11в на котором они работают, время ожидания пакетов, подтверждающих прием фиксировано и составляет 78мкс (а это меньше времени распространения радиосигнала) в канале возникает много дублирующих IP пакетов в результате никому не нужной повторной передачи. Есть много решений, но я остановился на этом:
Нужно написать небольшую программку, которая бы выбрасывала лишние пакеты. Пакеты на ее вход должны направляться из FORWARD после проверки определенных условий в результате действия QUEUE (что-то такое, сейчас точно не помню), а затем должны двигаться дальше по цепочке.
В программе нужно организовать стек на приблизительно 256 4-х байтных чисел. После поступления пакета на порт программы нужно проверить наличие его индивидуального номера (АСК ???) в стеке. Если его нет, то пакет пропускается дальше по цепочке, а его номер заносится в стек и проверяется следующий пакет. Если он есть, то пакет уничтожается и проверяется следующий пакет. Все это должно работать в Mandrake 9.1.
В случае удачи моя благодарность вам будет безгранична (в пределах 1000р , высланных по указанному вами адресу).
Аналогичные письма я разошлю еще в несколько адресов, поэтому во избежание дублирования перед началом работы потребуйте у меня подтверждения. Я с удовольствием приму любые сырые варианты и протестирую их. Исходный код с подробными комментариями обязателен. (И инструкции по установке, я новичок в линуксе).
Пожалуйста, не оставьте без внимания мою просьбу! Задача только на первый взгляд кажется простой.Виктор
>Прошу помочь мне решить такую проблему:
> Имеется радиосвязь на расстоянии 45км с помощью точек доступа DWL-900AP+
>в режиме моста.
ничего себе! это ж почти мировой рекорд! какие антенны брал? :)Из-за того, что в протоколе 802.11в на котором
>они работают, время ожидания пакетов, подтверждающих прием фиксировано и составляет 78мкс
>(а это меньше времени распространения радиосигнала) в канале возникает много дублирующих
>IP пакетов в результате никому не нужной повторной передачи. Есть много
>решений, но я остановился на этом:
> Нужно написать небольшую программку, которая бы выбрасывала лишние пакеты.
такая программка уже давно есть! стек TCP/IP называется! :)
протокол TCP содержит в себе функцию удаления дублирующих пакетов...
>ничего себе! это ж почти мировой рекорд! какие антенны брал? :)
Усилителей нет, антенны самодельные 3.6м и 1.2м.>такая программка уже давно есть! стек TCP/IP называется! :)
>протокол TCP содержит в себе функцию удаления дублирующих пакетов...
Почему она не работает и как ее включить? У меня завышенный в 10 - 20 раз трафик гуляет по всей локалке и в инете по-моему нигде не фильтруется. Когда дублирующие пакеты доходят до порта, там они, понятно, уничтожаются. А до этого считаются везде и забивают каналы.Может еще кто знает как поправить ПО DWL-900AP+, чтобы увеличить время ожидания АСК или вообще вырубить АСК?
>Почему она не работает и как ее включить? У меня завышенный в
>10 - 20 раз трафик гуляет по всей локалке и в
>инете по-моему нигде не фильтруется. Когда дублирующие пакеты доходят до порта,
>там они, понятно, уничтожаются. А до этого считаются везде и забивают
>каналы.как вариант в этом направлении - поставить на оба конца канала по рутеру, чтобы из локалок как можно меньше в него лезло.
а еще можно какой-нибудь vpn поставить на канал, который все в TCP туннелирует... правда, производительности это не прибавит, но дубликаты пакетов будут убиваться уже внутри...
>а еще можно какой-нибудь vpn поставить на канал, который все в TCP
>туннелирует... правда, производительности это не прибавит, но дубликаты пакетов будут убиваться
>уже внутри...это, кстати, увеличит нарузку на канал, трафика то больше будет
а фильтрация увеличит нагрузку на CPU машины где фильтруется.проц заапгрейдить проще :)
>Усилителей нет, антенны самодельные 3.6м и 1.2м.
А можно как нибудь на чертежи антенн взглянуть?
>>Усилителей нет, антенны самодельные 3.6м и 1.2м.
>А можно как нибудь на чертежи антенн взглянуть?Да самодельное все. Не чертежи - наброски. Да и конструкция обычная. Парабола из оцинкованой зверосетки на сварном каркасе из водопроводных труб. Вес - 160кг. (3.6м) Сварить может только сварщик очень высокой квалификации, допуски маленькие.
это надо писать модуль к iptables по хорошему, чтобы было что то вроде
iptables -I DORWARD 1 --duplicated -j DROP
но если готового нигде нет, то 1000р за написание это как то смешно просто...
>это надо писать модуль к iptables по хорошему,
Это по-хорошему. А через QUEUE мне кажется будет проще. Сама програмка будет в несколько строк. Тому, кто там лазил - проще чем высморкаться. Но таких наверное не найдется - область мало истоптаная. А остальным в плюсе спортивный интерес и повышение квалификации. Не только деньгами все меряется. Удовольствие от того что решил задачу, за которую побоялись взяться другие тоже чего-нибудь стоит.
Короче, когда с деньгами не очень, философия утешает..
ну, если производительность интересует не особо, то да, 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, если вдруг не знаешь..
принцип:
считаем и запоминаем crc16 проходящих пакетов
если в течение 1-2 секунд приходит пакет с повторяющимся crc, то он отбрасывается.на быстрых линках могут быть ложные срабатывания, когда разные пакеты но один crc (всего 16 бит ведь) и тогда надо переделать под микросекунды...
Ура!!! Наконец дело сдвинулось с места! Спасибо, cdr! Есть в инете живые люди. Сегодня уже поздно, завтра после работы поставлю нужный пакет, повожусь сам и буду задавать вопросы. А что это за формат, который нужно вырезать?Виктор.
>А что это за формат, который
>нужно вырезать?это результат работы команды
uuencode -m dupkill.c.gz dupkill.c.gz
Спасибо, cdr, программа работает, нагрузки на Celeron 1700 я не заметил.
>>>Усилителей нет, антенны самодельные 3.6м и 1.2м.
>>А можно как нибудь на чертежи антенн взглянуть?
>Да самодельное все. Не чертежи - наброски. Да и конструкция обычная. >Парабола из оцинкованой зверосетки на сварном каркасе из водопроводных >труб. Вес - 160кг. (3.6м) Сварить может только сварщик очень высокой >квалификации, допуски маленькие.И все-таки очень интересно взглянуть хотя бы на наброски.
Или может порекомендуете источники, которыми пользовались при
изготовлении антенн (литературу, сайты, формулы для расчета ...).Между антеннами прямая видимость?
Заранее благодарен.
>Или может порекомендуете источники, которыми пользовались при
>изготовлении антенн (литературу, сайты, формулы для расчета ...).
>
>Между антеннами прямая видимость?
Видимость прямая. Книга "Антенно-фидерные устройства" А.Л.Драбкин, В.Л.Зузенко, А.Г.Кислов Москва, "Советское радио", 1974
Но там все чересчур подробно. Таблицу в экселе высылаю почтой
>Видимость прямая. Книга "Антенно-фидерные устройства" А.Л.Драбкин, В.Л.Зузенко, А.Г.Кислов Москва, "Советское радио", 1974
>
>Но там все чересчур подробно. Таблицу в экселе высылаю почтойСпасибо.