Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.14;
Скачать: CL | DM;

Вниз

Преимущества нескольких соединений (TCP или UDP ) над одним   Найти похожие ветки 

 
kami ©   (2009-04-24 23:22) [0]

Вопрос сугубо теоретический, может быть даже лучше было бы его разместить в "Прочее".
Имеются 2 программы - клиент и сервер.
Само собой, они обмениваются информацией (протокол, думаю, не важен, но для примера возьмем ТСР).
Информация представляет собой независимые друг от друга данные.
Как лучше (и почему, т.е. imho не предлагать :) ) сделать сам процесс обмена - заводить на каждый тип передаваемых данных отдельное TCP соединение, или же "запихать" все в одно?
Будем считать, что код передачи (и приема, само собой) будет "идеален", в том числе - в случае единственного TCP-соединения данные на приемном конце нормально "распараллеливаются".

Конкретно интересует общая пропускная способность канала связи в этих 2-х режимах с учетом того, что других задач сетевая_карта/модем/что_там_еще_ не выполняет.

Навеяно реальной задачей и менеджерами закачек типа FlashGet.


 
Сергей М. ©   (2009-04-24 23:26) [1]

Смесь кислого с зеленым ..


 
ТД   (2009-04-24 23:29) [2]


> и менеджерами закачек типа FlashGet.

это как же навеяло то?


 
kami ©   (2009-04-24 23:38) [3]

> Смесь кислого с зеленым

Сергей, Ваше мнение непререкаемо, но хотелось бы уточнить: что и с чем намешано?
Вроде старался не делать миксов...
Упростив, попробую спросить так:
В каком случае скорость обмена будет быстрее - по нескольким TCP соединениям или по одному?


> [2] ТД   (24.04.09 23:29)
> это как же навеяло то?

Да вот именно так и навеяло. Чем-то же руководствовались создатели FlashGet, устраивая многопоточную закачку даже для 1 файла.
А мне нужно сделать закачку данных. Разных. С одного сервера. Одновременно.
Вот и думаю, как эта закачка будет проходить быстрее.


 
kami ©   (2009-04-24 23:39) [4]

> В каком случае скорость обмена будет быстрее

Опять не так выразился.
ОБЩАЯ (совокупная, etc...) скорость обмена.


 
ТД   (2009-04-24 23:45) [5]


> kami ©   (24.04.09 23:39) [4]
> ОБЩАЯ (совокупная, etc...) скорость обмена.

обмена чем?

зы
> Чем-то же руководствовались создатели FlashGet, устраивая
> многопоточную закачку даже для 1 файла.

руководствовались узким каналом источника в одно рыло


 
kami ©   (2009-04-24 23:46) [6]

> [5] ТД   (24.04.09 23:45)
> обмена чем?

Данными по TCP соединению(ям).


> узким каналом источника в одно рыло

Чье рыло?


 
Сергей М. ©   (2009-04-24 23:47) [7]


> kami ©   (24.04.09 23:38) [3]



> что и с чем намешано?


"Намешаны" прикладные и транспортные протоколы с пропускной способностью канала


 
kami ©   (2009-04-25 00:22) [8]

> [7] Сергей М. ©   (24.04.09 23:47)
> "Намешаны" прикладные и транспортные протоколы с пропускной
> способностью канала

Есть такое, терминология хромает.

> [5] ТД   (24.04.09 23:45)
> узким каналом источника в одно рыло

Только сейчас, кажется, понял - т.е. множественное соединение во FlashGet использовалось только из-за ограничения сервером скорости передачи в каждое соединение?

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


 
Сергей М. ©   (2009-04-25 00:31) [9]


> что будет быстрее и "параллельнее" работать


Про "быстроту" можно даже не заикаться - она определяется OSI-уровнями с 1-го по 2-й. Можно сюда и 3-й отнести, если на сцену выступают шейперы ..

А вот про "параллельность" можно и позаикаться - это уже имеет непосредственное отношение к прикладной задаче ..

Ну вот для начала попытайся сравнить, скажем, активный и пассивный режимы FTP ..


 
kami ©   (2009-04-25 01:02) [10]

> [9] Сергей М. ©   (25.04.09 00:31)
> она определяется OSI-уровнями с 1-го по 2-й

Ну, на физический и канальный уровень я и не замахиваюсь :)
Т.е. с точки зрения быстроты обмена без разницы, какой вариант будет выбран. ?


> А вот про "параллельность" можно и позаикаться

В первом случае параллельность передачи я отдаю на откуп системе (вот тут и под-вопрос, а грамотно ли Win распараллелит?), во втором - контролирую сам, + могу задействовать приоритетность передачи данных.

Попробовал поискать про различия FTP режимов. Или я не туда смотрю (подкиньте ссылку?), или их отличие только в порядке установления соединения по порту данных. В итоге - все равно получается 2 TCP соединения, и после их установления становится фиолетово от кого к кому оно устанавливалось.


 
Anatoly Podgoretsky ©   (2009-04-25 11:29) [11]

> kami  (25.04.2009 1:02:10)  [10]

Вообще интересует если дыры в передачи, например длительная обработка данных.
Без дыр один поток быстрее. FlashGet именно из этого исходит, забить дыры передачей.



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

Текущий архив: 2009.06.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1239222604
Юрий
2009-04-09 00:30
2009.06.14
С Днём рождения ! 9 апреля 2009 четверг


1-1211343260
Julia
2008-05-21 08:14
2009.06.14
TJvInterpreterProgram


2-1240762612
Ramil
2009-04-26 20:16
2009.06.14
Фильтрация подстановочных полей


2-1240598762
buzb
2009-04-24 22:46
2009.06.14
Как разместить компонент над всеми остальными


15-1239274951
Гектор
2009-04-09 15:02
2009.06.14
Почему не работает функция sql