powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача про торренты
5 сообщений из 5, страница 1 из 1
Задача про торренты
    #36418652
Фотография Гусар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"N процессов, соединенных между собой (peered network), ширина канала ограничена сверху для каждого соединения. Существует набор файлов различного размера (относительно ширины канала), каждый процесс может иметь в своем распоряжении часть файлов, но известно что все файлы есть в сети. Любой из процессов имеет возможность запросить недостающий файл из набора у других процессов.

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

Я думаю так:
Пометка: ничего не сказано про пинг, поэтому весь алгоритм строится на основании ширины канала. Да и пинг имеет значение только для очень маленьких кусков. А качать нежелательно по маленьким кускам.
варианты - 1.файл уже тута, тогда качать не нада. Файл (полностью или частично не тута) - тогда нада качать.
Определяем источники так:
1.берем список серверов на которых есть части необходимого файла (либо все, либо первые скажем сто или десять).
2.Находим из них с максимальной скоростью отдачи.
3.Находим у этого сервака куски которых у нас нет (опять же либо сразу все либо первые скажем 10).
4.Начинаем качать.
5. Если канал забит, то расслабляемся и ждем пока скачаем часть (или динамически проверяем степень загрузки канала и переходим к пункту 6).
6.Если еще есть скорость то рекурсивно вызываем пункты 2-5 пока не забьем канал.
...
Рейтинг: 0 / 0
Задача про торренты
    #36418808
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто в тему-подумалось, что было бы хорошо, если бы источники анализировали распространность имеющегося у них файла и выдавали бы ему приоритет обратный при раздаче. Т.е. если записи "Дома 2" есть у всех, то не стоит отдавать весь канал, а вот если Ник Кейв есть только на этом компе, то ему можно будет дать приоритет повыше. Заодно думаю стоит анализировать и объем скачиваний, чтобы не вышло так, что этот файл у всех есть, но отдают его плохо, а качать хотят много. Думаю должен быть какой-то лимит раздача/скачивание 1.2/1, который должны поддерживать пиры.
Еще стоит сделать какой-то приоритет кусков при скачивании имхо-чем больше скачан кусок, тем меньший у него приоритет отдачи, Т.е. в идеале первый раз пир отдает по одному куску файла, не смотря на то, что качающих может бы больше. А то бывают случаи, когда в сети больше 100 пиров с почти полным файлом, но без одного куска.
...
Рейтинг: 0 / 0
Задача про торренты
    #36418940
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько мыслей.
Гусар
Я думаю так:
Пометка: ничего не сказано про пинг, поэтому весь алгоритм строится на основании ширины канала. Да и пинг имеет значение только для очень маленьких кусков. А качать нежелательно по маленьким кускам.

1) Ping имеет мало общего с шириной канала. Отклик - тоже. Сети передачи телевизионного сигнала могут работать на гигабитных скоростях но иметь лаг в 1-2 секунды.

2) Вообще, для таких задач характерно остуствтвие общей формулы или закона. Можно просто говорить что есть сеть агентов, которая образует некий ИИ. Каждый агент сам по себе предельно прост но в совокупности они все обеспечивают работу сети.

5. Если канал забит, то расслабляемся и ждем пока скачаем часть (или динамически проверяем степень загрузки канала и переходим к пункту 6).
6.Если еще есть скорость то рекурсивно вызываем пункты 2-5 пока не забьем канал.

3) Для балансировки скорости я-бы использовал только ограничение в количестве одновременно открытых сокетов для каждого Peer чтобы предовратить флуд сокетов. Рекурсию тоже надо включить в ограничение. Иначе мы можем получить несколько тысяч простаивающих без дела сокетов, хотя ширина канала будет еще не вычерпана.
...
Рейтинг: 0 / 0
Задача про торренты
    #36418972
Фотография Гусар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я предположил что всетаки ширина канала забьется 1-10 пирами, хотя конечно замечание имеет место быть.
...
Рейтинг: 0 / 0
Задача про торренты
    #36418975
Фотография Гусар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

1) Ping имеет мало общего с шириной канала. Отклик - тоже. Сети передачи телевизионного сигнала могут работать на гигабитных скоростях но иметь лаг в 1-2 секунды.

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

2) Вообще, для таких задач характерно остуствтвие общей формулы или закона. Можно просто говорить что есть сеть агентов, которая образует некий ИИ. Каждый агент сам по себе предельно прост но в совокупности они все обеспечивают работу сети.


ну так идею ИИ и надо предложить
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача про торренты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]