Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

Как лучше реализовать пересылку пакетов   Найти похожие ветки 

 
user51   (2007-04-03 16:22) [0]

Как лучше реализовать пересылку пакетов.
Есть офис подключенный к интернету через ДСЛ модем,
там есть 10 компов на каждом стоит прога стороннего производителя (шейпер) и слушает порт.У меня клиет шейпера соответственно. Причем виден мною только сам модем компы напрямую не видны у них своя внутрення сеть, но я могу включить перенаправление портов- все что получает модем по какому нибудь порту пересылать на один какойто комп.  Надо допустим подсоединистя к любому компу и соответственно управлять и снимать данные шейпера. Мысль сделать прогу на одном компе чтоб она слушала порт клиента шейпера и посылала полученные пакеты на выбранный комп в серверную часть шейпера и наоборот что получила с серверной части на клиент на моем компе. Как лучше реализовать пересылку пакетов или может другие варианты есть ?


 
Сергей М. ©   (2007-04-03 16:29) [1]


> Как лучше реализовать пересылку пакетов


Почтой.
Или - еще лучше - фельдегерской службой.


> Мысль сделать прогу


Вот админ-то обрадуется)


 
user51   (2007-04-03 16:29) [2]

я и есть админ


 
Сергей М. ©   (2007-04-03 16:43) [3]


> я и есть админ
>


Ай малацца)

Ну и нахрена тебе, "админу", прогописательством заниматься ?


 
SlymRO ©   (2007-04-03 17:02) [4]

1. VPN настрой на сервере и выбрось его концы наружу (500UDP и еще что-то) конекся наздоровие
2. Аля прокси, но тады нужен клиент к прокси
3. Пользовать готовый socks прокси, если программа поддерживает


 
user51   (2007-04-03 17:53) [5]

СПАСИБО  БУДУ ВАШИ ВАРИАНТЫ ИЗУЧАТЬ

в моей реализации
Использую ctNonBlocking ServerSocket ClientSocket
ClientSocket соединяется с нужной серверной частью шейпера внутри офиса
ServerSocket слушает порт к которому я подсоединяюсь клиентской частью со своего компа. И соответсвено все полученные пакеты тупо пересылают друг другу   ClientSocket <--> ServerSocket
но иногда происходит склеивание пакетов
серверверная часть  шейпера  шлет клиентской пакеты по 2400 байт
но иногда склеивает два в один и получается один 4800
и клиентская шейпера часть виснет. Как избежать склеивания ?

numread_client_most:=clientSocket_most.Socket.ReceiveBuf(sbuf_tmp_client_most,cl ientSocket_most.Socket.ReceiveLength);
if ServerSocket_most.Socket.ActiveConnections > 0 then
ServerSocket_most.Socket.Connections[0].Sendbuf(sbuf_tmp_client_most,numread_cli ent_most);

NumRead_server_most:=Socket.ReceiveBuf(sbuf_tmp_server_most,Socket.ReceiveLength );
if ClientSocket_most.Socket.Connected then
ClientSocket_most.socket.sendbuf(sbuf_tmp_server_most,NumRead_server_most);


 
SlymRO ©   (2007-04-04 06:34) [6]

Судя по всему ты остановился на 2 варианте...
user51   (03.04.07 17:53) [5]
2400 байт

MTU 1500 (не думаю что больше 2400)... пакет не может быть больше MTU
Как избежать склеивания ?
никак


 
Сергей М. ©   (2007-04-04 08:20) [7]


> user51   (03.04.07 17:53) [5]


> клиентская шейпера часть виснет


Значит там ошибка в транспортном алгоритме.


> Как избежать склеивания ?


Никак. TCP - поточный протокол, на транспортном уровне в нем нет никаких пакетов, есть только информационный поток.


> sendbuf


Это - функциональный метод.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
1-1189776177
AndrewK
2007-09-14 17:22
2007.12.09
Настраиваемый TToolBar


11-1180165434
Vladimir Kladov
2007-05-26 11:43
2007.12.09
Версия 2.63


15-1194418999
Ламот
2007-11-07 10:03
2007.12.09
Помогите пожалуйста разобраться со строчкой.


11-1180584972
Ned
2007-05-31 08:16
2007.12.09
Как узнать версию Windows?


15-1194608090
Piter
2007-11-09 14:34
2007.12.09
Пятница? Вася Пупкин?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский