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

Но учтите, что я запустил торрент-клиент и предположим, что я завершил загрузку файла. Я собираюсь заполнить файл и поделиться с другими сейчас.

1) Разве это не означает «загрузка»? который делает недействительным дело выше?

2) Если это «загрузка», не является ли это «соединением / несколькими открытыми извне подключениями к моей частной сети, то есть торрент-клиент требует переадресации портов», а не запросом, который мы сделали?

  In short, who launches the connection during upload process? 

2 ответа2

1

Посев торрентов больше не требует переадресации портов. Есть много продвинутых методов, чтобы «обойти» NAT, например NAT Hole Punching. Естественно, большинству из них нужна полностью связанная третья сторона для взаимных переговоров.

При этом в простейшем случае с переадресованным портом удаленная сторона инициирует соединение.

Вы также должны иметь в виду, что загрузка и выгрузка - это всего лишь вопрос перспективы. Это, конечно, совершенно не связано с NAT и еще много чего. Если вы загружаете что-то с сервера, сервер загружает что-то вам. TCP-соединения работают в обоих направлениях: отправлять и получать данные как на локальном, так и на удаленном конце.

0

Загрузка работает следующим образом, независимо от используемой техники.

Сначала у вас есть клиент и сервер. Сервер просто прослушивает любой входящий сигнал.

Клиент подключается к серверу, говоря: «Привет, я хочу использовать тебя». Сервер отвечает: «конечно, продолжайте и начните соединение с этим портом» (клиент теперь становится отправителем, а не начальным заданием сервера).

Клиент инициирует команду, сообщающую серверу, что он хочет загрузить что-нибудь, скажем ... файл.

Сервер принимает и готовится принять файл.

Теперь клиент начинает отправку файла так, как это делает TCP/IP: отправка 1 пакета в ожидании ответа от сервера, что он его получил, затем отправка следующих 2, ожидание ответа и т.д. Этот процесс продолжается до файл был передан. Этот этап рассматривается как загрузка с точки зрения клиента и загрузка с точки зрения сервера.

В торренте это работает так же. Сначала вы загружаете файл с разных клиентов, которые загружают свои данные вам, затем вы начинаете загрузку с других клиентов, и они скачивают с вас.

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

Обратите внимание, что с помощью торрента вы не начинаете загрузку после завершения загрузки, а скорее, как только у вас есть что предложить. Допустим, вы загрузили 10 КБ файла размером 1 МБ, тогда кто-то другой уже может загрузить эти 10 КБ от вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .