Jump to content

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


Recommended Posts

Posted

Имеется радиосвязь на расстоянии 45км с помощью точек доступа DWL-900AP+ в режиме моста. Из-за того, что в протоколе 802.11в на котором они работают, время ожидания пакетов, подтверждающих прием фиксировано и составляет 78мкс (а это меньше времени распространения радиосигнала) в канале возникает много дублирующих IP пакетов в результате никому не нужной повторной передачи. Есть много решений, но я остановился на этом:

Нужно написать небольшую программку, которая бы выбрасывала лишние пакеты. Пакеты на ее вход должны направляться из FORWARD после проверки определенных условий в результате действия QUEUE (что-то такое, сейчас точно не помню), а затем должны двигаться дальше по цепочке.

В программе нужно организовать стек на приблизительно 256 4-х байтных чисел. После поступления пакета на порт программы нужно проверить наличие его индивидуального номера (АСК ???) в стеке. Если его нет, то пакет пропускается дальше по цепочке, а его номер заносится в стек и проверяется следующий пакет. Если он есть, то пакет уничтожается и проверяется следующий пакет. Все это должно работать в Mandrake 9.1.

В случае удачи моя благодарность вам будет безгранична (в пределах 1000р ,

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

Пожалуйста, не оставьте без внимания мою просьбу! Задача не так проста как

кажется. Я создаю локальную сеть масштаба маленького города пока водиночку и на свои средства. Проблемы - как из рога изобилия, помогите решить хотя бы одну из них.

 

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

 

Виктор.

Posted

ты по всем веткам нераскидывай топики...

просто уже неприятно что одна и таже месага на разных неположеных местах валяеться на hub.ru за такое стали банить юзверя и удалять все!!! топики..

Posted

если на концах линии стоят унихи,

я бы попробовал поднять ppp поверх udp.

на freebsd штатный ppp (не путать с pppd) это умеет,

на радиолинках такая схема работает хорошо. плюс еще шифрование можно включить или компрессю или еще чего.

Posted

дык , товарисч Ленин завещал - делится , делится и еще раз делится.., или поносил - дай другому поносить.. )) как кому нравится

Posted

Маленькой прикладной программкой, написанной cdr. Пакеты на нее направляются из iptables с помощью QUEUE. В локалке трафик снизился почти в 8 раз и существенно - в радиоканале

Posted

Не знаю какой результат работы данной программы

Но IMHO это только програмный вариант закрыть глаза на дублирование пакетов в канале .

Ты просто убиваеш данные пакеты - и они не доходять до статистики .

 

Намного интереснее было бы уничтожить саму причину появление битых пакетов а именно

разобраться в причине появления их в радиоканале ....

Posted

Да вроде и ежу понятно посылаеться пакет... и врубаеться таймер.. который 78мсек отсчитывает и если подтверждение не пришло то опять посылает пакет.. на коротких линках все клсс.. пакет и подтверждение успели прийти за это время.

А что твориться на длинных линках? Пакет идет в одну сторону на это надо время + обработка получателем+ время "хода" подтверждения (~= времени прохождения самого пакета с инфой).. итого мы имеем время больше 78мсек и точка отправитель посылает еще один пакет.. на приемной стороне точка приняла пакет и послала подтверждение, тут на голову сваливаеться второй пакет (т.к. точка включена врежиме бриджа то она не смотрит что внутри пакета, а там какраз и стоит индефекатор TCP) но точки пофиг так как даные верны (совпадают контрольные суммы) то даные(два одинаковых пакета) попадают в комп.. билинг скорее всего считает методом подсчета пакетов(на iptables) а обработка одинаковый пакетов идет на более высоком уровне.. так что два одинаковых пакета подсчитались, а уровнем выше один из них отбрасываеться..

1) путь решения. поправить билинг. :)

2) прикомпилить этот модуль

3) найти и изменить настройки этого таймера.. тоесть подсчитать- пересчитать время и установить новое значение...

1и 2рой пункт имеют один серьезный недостаток!!! пакеты "лишние" все равно ходят!! и при этом загружают не нужными пакетами канал, и без того худой..(скорости канала мало не бывает :) )

Программеры и люди которые хорошо знают потрашик линуха найдите этот таймер!!! и сделайте прогу чтобы можно было менять время тайм-аута :)

shuliga- вынеси предложение в opennet.ru может они и с этим справяться?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.