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

Вниз

Преимущества нескольких соединений (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
2-1240660353
Nameziz
2009-04-25 15:52
2009.06.14
Save/Load Tlist


2-1240809337
Elun
2009-04-27 09:15
2009.06.14
Проблема с типизованным файлом!


15-1239046670
Nic
2009-04-06 23:37
2009.06.14
Автовыравнивающаяся табличка html


1-1211356137
Vlad Oshin
2008-05-21 11:48
2009.06.14
Как бы сделать лог действий в виде перечисления компонент


4-1210672933
Nil
2008-05-13 14:02
2009.06.14
Прочитать состояние вывода LPT порта через usbprint.sys





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский