Имеем 2 клиент, для чистоты экперимента, они оба за проксями. Есть так же сервер. Оба клиента "зацеплены" к серверу. В какой-то момент один из клиентов хочет передать на второй немерянную кучу данных. Если делать это через сервер, то нагрузка на него будет немерянная, а вот можно ли сделать так, чтобы сервер как-то их соединил? Т.е., чтобы клиенты эти данные перекачивали уже между собой, без участия сервера.
Здравствуйте, CyberDemon, Вы писали:
CD>Имеем 2 клиент, для чистоты экперимента, они оба за проксями. Есть так же сервер. Оба клиента "зацеплены" к серверу. В какой-то момент один из клиентов хочет передать на второй немерянную кучу данных. Если делать это через сервер, то нагрузка на него будет немерянная, а вот можно ли сделать так, чтобы сервер как-то их соединил? Т.е., чтобы клиенты эти данные перекачивали уже между собой, без участия сервера.
Здравствуйте, CyberDemon, Вы писали:
CD>Имеем 2 клиент, для чистоты экперимента, они оба за проксями. Есть так же сервер. Оба клиента "зацеплены" к серверу. В какой-то момент один из клиентов хочет передать на второй немерянную кучу данных. Если делать это через сервер, то нагрузка на него будет немерянная, а вот можно ли сделать так, чтобы сервер как-то их соединил? Т.е., чтобы клиенты эти данные перекачивали уже между собой, без участия сервера.
ну еще от прокси зависит
например если прокся типа SOCKS5 с включенными серверными функциями — то легко
или , к примеру, если есть FTP прокси с возможностью active mode
то можно прикинуться FTP клиентом и сервером, но это уже изврат
ибо если расмотреть задачу в общем случае то она сводиться
к открытию слушающего сокета, который видно извне.
Здравствуйте, NeuroVirus, Вы писали:
NV>ну еще от прокси зависит NV>например если прокся типа SOCKS5 с включенными серверными функциями — то легко NV>или , к примеру, если есть FTP прокси с возможностью active mode NV>то можно прикинуться FTP клиентом и сервером, но это уже изврат NV>ибо если расмотреть задачу в общем случае то она сводиться NV>к открытию слушающего сокета, который видно извне.
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, NeuroVirus, Вы писали:
NV>>ну еще от прокси зависит NV>>например если прокся типа SOCKS5 с включенными серверными функциями — то легко NV>>или , к примеру, если есть FTP прокси с возможностью active mode NV>>то можно прикинуться FTP клиентом и сервером, но это уже изврат NV>>ибо если расмотреть задачу в общем случае то она сводиться NV>>к открытию слушающего сокета, который видно извне.
B>точно, хотя бы с одной стороны
Вот и дело то, что частный случай не прокатит, а "стандартная" прокся не позволит это. Вот я и интересуюсь, может есть какой-нить трик Похоже, надо будет сушить весла...
Здравствуйте, CyberDemon, Вы писали:
CD>Вот и дело то, что частный случай не прокатит, а "стандартная" прокся не позволит это. Вот я и интересуюсь, может есть какой-нить трик Похоже, надо будет сушить весла...
стандартная прокся, это как я понял "HTTP-proxy".
Не позволит, только туннелирование до сервака, который будет обслуживать обоих клиентов, т.е. всю работу будет выполнять сервак..
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, CyberDemon, Вы писали:
CD>>Вот и дело то, что частный случай не прокатит, а "стандартная" прокся не позволит это. Вот я и интересуюсь, может есть какой-нить трик Похоже, надо будет сушить весла...
B>стандартная прокся, это как я понял "HTTP-proxy". B>Не позволит, только туннелирование до сервака, который будет обслуживать обоих клиентов, т.е. всю работу будет выполнять сервак..
А сервак не хотелось бы задействовать. Ну, только в начале соединения клиентов. Т.е., типа он 2 ник свяжет, а дальше они сами пусть парятся.
А "стандартная" прокся.... Грубо говоря, есть самый обыкновенный юзер интернетный с одной стороны и с другой — они ничего не знают ни о каких файрволах, проксях и протоколах и хотят зацепиться друг с другом. Вот такие дела.
Т.е., я так понимаю, без постоянной работы сервера такое невозможно 100%, так ?
Здравствуйте, CyberDemon, Вы писали:
CD>А "стандартная" прокся.... Грубо говоря, есть самый обыкновенный юзер интернетный с одной стороны и с другой — они ничего не знают ни о каких файрволах, проксях и протоколах и хотят зацепиться друг с другом. Вот такие дела.
CD>Т.е., я так понимаю, без постоянной работы сервера такое невозможно 100%, так ?
ИМХО, нет
таких решений я не видел
логически рассудить:
есть человек в локалке, есть прокси сервер — это программа, которая является посредником в работе между сервером и клиентом.
Прокси сервер выполняет "просьбы" клиента в локалке. Просьбы такого типа: соедени меня с тем-то! Прокся соединяет и учавствует в обмене данным между клиентом и сервером. Под данными понимаются все данные выше сетевого уровня, т.е. без служебных заголовков.
(Это справедливо для проксей типа HTTP=proxy)
Дальше. Теперь есть два таких человека и две прокси. Один просит: соедени меня.. ээ.. с кем? только либо с проксёй второго либо с каким-то сервером. Для первого случая вторая прокся должна быть не совсем проксёй, а например НАТом, чтобы при коннекте форвардить и транслировать соединение на клиента локалки. Для второго случая, сервер сидит и ждёт когда к нему законнектятся два клиента из-за проксей и при их коннекте (возможно использовать какой-нибудь псевдо протокол, чтобы клиенты сообщили что их нужно соединить) начинает обмен мжду ними (аналогично проксе, только сам нкуда не коннектится)..
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, CyberDemon, Вы писали:
CD>>А "стандартная" прокся.... Грубо говоря, есть самый обыкновенный юзер интернетный с одной стороны и с другой — они ничего не знают ни о каких файрволах, проксях и протоколах и хотят зацепиться друг с другом. Вот такие дела.
CD>>Т.е., я так понимаю, без постоянной работы сервера такое невозможно 100%, так ?
B>ИМХО, нет B>таких решений я не видел B>логически рассудить: B>есть человек в локалке, есть прокси сервер — это программа, которая является посредником в работе между сервером и клиентом. B>Прокси сервер выполняет "просьбы" клиента в локалке. Просьбы такого типа: соедени меня с тем-то! Прокся соединяет и учавствует в обмене данным между клиентом и сервером. Под данными понимаются все данные выше сетевого уровня, т.е. без служебных заголовков. B>(Это справедливо для проксей типа HTTP=proxy)
B>Дальше. Теперь есть два таких человека и две прокси. Один просит: соедени меня.. ээ.. с кем? только либо с проксёй второго либо с каким-то сервером. Для первого случая вторая прокся должна быть не совсем проксёй, а например НАТом, чтобы при коннекте форвардить и транслировать соединение на клиента локалки. Для второго случая, сервер сидит и ждёт когда к нему законнектятся два клиента из-за проксей и при их коннекте (возможно использовать какой-нибудь псевдо протокол, чтобы клиенты сообщили что их нужно соединить) начинает обмен мжду ними (аналогично проксе, только сам нкуда не коннектится)..
B>Вот, так что.. суши вёсла
я думаю что очень сильно заморачиваться не надо и решить проблему следующим образом:
1) если хоть один не за файерволом/проксей надо попробовать объединить клиентов через этого "более продвинутого"
2) если объем передачи небольшой или привелегии достаточны — прокачать через сервак (ну если очень надо...)
3) в случае малых привелегий на объем, то вежливо извиниться "и предложить воспользоваться паблик FTP "