Курсовая работа: Пиринговые сети. Понятие и виды
· Поиска источников ed2k хэша
· Поиска ed2k хэша на ключевые слова в названиях файла
· Нахождения комментариев и оценки для файлов (хэша)
· Оказания услуг узлам, находящимся за файерволом (Low ID)
Заметим, что Кад сеть не используется, чтобы фактически передать файлы через Р2Р сети. Вместо этого, когда начинается передача файлов, подключения клиентов происходят напрямую друг с другом (используя стандартные IP-сети).
Как и во всех децентрализованных сетях, Kad не требует официальных или общих серверов. Как таковая, она не может быть отключена с закрытием набора ключевых узлов. Однако, поскольку постоянные узлы связываются друг с другом, она может уделять больше нагрузки на отдельные машины по сравнению с централизированной сетью.
Единственная вещь, которая нужна для соединения с этой сетью — IP и порт любого клиента, уже подключённого к сети. Это называется Boot Strap (самонастройка).
Как только происходит соединение с сетью, клиент запрашивает других клиентов, чтобы определить, может ли он свободно с ними соединиться. Этот процесс похож на определение HighID/LowID на серверах.
Если вы можете свободно соединяться, вам дается ID (высокий, HighID) и получаете статус open в Кад сети. Если вы не можете соединяться свободно, вы получаете статус firewalled (соответственно LowID).
2.3 BitTorrent
BitTorrent (букв. англ. «битовый поток») — пиринговый (P2P) сетевой протокол Коэна для кооперативного обмена файлами через Интернет.
Файлы передаются частями, каждый torrent-клиент, получая (закачивая) эти части, в это же время отдаёт (подкачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.
Первый torrent-клиент «BitTorrent» был создан программистом Брэмом Коэном на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года. Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Принцип работы протокола
Перед началом скачивания клиент подсоединяется к трекеру, сообщает ему свой адрес и хэш-сумму запрашиваемого файла, на что в ответ клиент получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о ходе процесса и получает обновлённый список адресов.
Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера, который лишь регулярно обновляет информацию о подключившихся к обмену клиентах и другую статистическую информацию. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Неправильная настройка NAT или файрвола могут этому помешать.
При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент, посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента и оповещает всех присоединённых пиров о наличии у него этого сегмента.
Каждый клиент имеет возможность временно блокировать отдачу другому клиенту (англ. choke ). Это делается для более эффективного использования канала отдачи. Кроме того, при выборе — кого разблокировать, предпочтение отдаётся пирам, которые сами передали этому клиенту много сегментов. Таким образом, пиры с хорошими скоростями отдачи поощряют друг друга по принципу «ты — мне, я — тебе».
Общие особенности
· Отсутствие очередей на скачивание.
· Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
· Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
· Скачанные фрагменты становятся немедленно доступны другим клиентам.
· Контролируется целостность каждого фрагмента.
· В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).
Протоколы и порты
Клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969.
Клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881—6889.
Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт.
DHT-сеть в BitTorrent-клиентах использует протокол UDP.
Кроме того, протокол UDP используется UDP-трекерами (не поддерживается всеми клиентами и не является официальной частью протокола) и для соединения клиентов друг с другом через UDP NAT Traversal (используется только в клиенте BitComet и не является официальной частью протокола).
Файл метаданных
Для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию:
· URL трекера;