Я хотел бы использовать своего интернет-провайдера только для загрузки, а мое мобильное соединение 4G - только для загрузки. Это потому, что скорость загрузки моего интернет-провайдера низкая, но загрузка в порядке, и моя загрузка 4G великолепна и бесплатна (я только плачу за загрузки).
Итак, один ПК, два подключения: интернет-провайдер для загрузки и 4G для загрузки. При этом я буду платить так же, как сегодня, но увеличу свою загрузку с 0,1 Мбит / с до примерно 60 Мбит / с.
networking
download
isp
upload
FreddyJoe
источник
источник
Ответы:
Несмотря на то, что практически невозможно разделить загрузку и загрузку между соединениями (как подробно описано в других ответах), возможен обходной путь вручную.
Вы можете управлять подключением по умолчанию, переключая его в зависимости от задачи, которую вы хотите запустить. Соединение по умолчанию в Windows - это первый подключенный интерфейс, его порядок рассчитывается по метрике (которая имеет тенденцию устанавливать беспроводное соединение над кабелем)
Вы можете легко переопределить метрику вручную в дополнительных настройках сетевых подключений: Как изменить подключение по умолчанию в Windows . (Должно работать так же с XP до 8.1 с незначительными или без различий)
Большинство современных программ используют соединение по умолчанию, предоставляемое системой, после того, как соединение установлено, оно будет (должно) сохраняться на нем. Обычно это означает, что программа будет использовать соединения, которые были установлены по умолчанию во время запуска. Переключив соединение по умолчанию перед открытием соединения, вы можете переключать соединение в зависимости от задачи и одновременно сохранять оба соединения открытыми.
Имейте в виду, что некоторые программы (например, менеджеры загрузки / выгрузки) будут открывать соединения для каждой задачи, а не для каждой сессии, поэтому ваш пробег может отличаться.
источник
Это невозможно. Подтверждения являются неотъемлемой частью протокола управления передачей. Если вы четко разделите входящие и исходящие данные между двумя интерфейсами, вы по сути отключите компонент подтверждения протокола.
TCP - это протокол, ориентированный на установление соединения, который означает, что соединение устанавливается и поддерживается до тех пор, пока прикладные программы на каждом конце не завершат обмен сообщениями. Он определяет, как разбить данные приложения на пакеты, которые могут доставлять сети, отправлять пакеты и принимать пакеты с сетевого уровня, управлять управлением потоком и, поскольку он предназначен для обеспечения безошибочной передачи данных, обрабатывать повторную передачу отброшенных или искаженных пакетов. а также подтверждение всех пакетов, которые приходят. В коммуникационной модели взаимодействия открытых систем (OSI) TCP охватывает части уровня 4, транспортного уровня и части уровня 5, сеансового уровня.
Маршрутизаторы могут реализовывать балансировку сетевой нагрузки между отдельными интерфейсами, но это обычно работает с хешированием. Это означает, что соединение устанавливается на заданном интерфейсе на основе алгоритма хеширования и поддерживается на этом интерфейсе до его завершения. Даже с дорогими маршрутизаторами каждый интерфейс должен поддерживать установленное соединение до завершения.
Дополнение: Это может быть возможно, но объем реализации делает его непрактичным. Кроме того, даже если вам удастся разгрузить весь свой трафик на мобильный модем, как вы думаете, сколько времени пройдет до того, как провайдер обновит ваши условия обслуживания? Там, вероятно, где-то уже есть политика добросовестного использования. Вот требования.
http://lartc.org/howto/lartc.rpdb.multiple-links.html
https://sandilands.info/sgordon/address-spoofing-with-iptables-in-linux
Если вы хотите увеличить провайдера, изучите асимметричную маршрутизацию с BGP.
источник
Можно использовать оба доступа в Интернет, чтобы разделить загрузку / выгрузку, но всегда только для каждого соединения. Таким образом, одно TCP (или UDP) соединение может проходить только по одной ссылке. Это упоминается и в другом ответе - для исходящих пакетов TCP вы должны получать пакеты подтверждения, и они должны проходить через тот же интерфейс.
Вы можете вручную изменить таблицу маршрутизации, например, перед выполнением большой загрузки на YouTube, чтобы перенаправить весь трафик YouTube через Интернет с более быстрой скоростью загрузки, а затем изменить ее обратно. Но это будет сложно, так как YouTube использует много разных IP-адресов (маршрутизация работает по IP, а не по именам хостов). Но для некоторых FTP-серверов компании это может быть выполнимо.
Это верно для любого домашнего доступа в Интернет, где вам предоставляется IP-адрес от вашего провайдера. Таким образом, на первом интернет-провайдере вы получаете, например, IP 1.2.3.4, но на сотовый телефон вы получаете IP вашего оператора телефонной сети, например 5.6.7.8. Все соединение (исходящие и входящие данные) должно идти только с одним из этих IP-адресов.
Для коммерческого и серверного хостинга в Интернете вы можете получить один IP-адрес, который не зависит от интернет-провайдера, и, следовательно, вы можете использовать больше интернет-соединений одновременно.
источник
Вам понадобится оверлейное (туннельное) соединение, которое поддерживает разные конечные точки для восходящего и нисходящего трафика. Единственный протокол, который мне известен, который изначально поддерживает это LISP (протокол разделения идентификатора локатора). Если вы найдете ближайшего к вам интернет-провайдера LISP, вы сможете приобрести у него услугу в дополнение к вашим текущим соединениям. Это, вероятно, не будет бесплатным, хотя.
источник
С технической точки зрения, эта возможность встроена во все сети, построенные на основе IP (у вас должен быть общедоступный IP-адрес), и активируется только путем изменения таблицы маршрутизации на стороне клиента. Скорее всего, трафик, предназначенный для собственной локальной сети провайдера, продолжит отправляться через этот интерфейс, а весь остальной трафик будет проходить через шлюз по умолчанию.
«Исходный» IP-адрес, который должен совпадать для подтверждения и все остальное работает, выбирается на основе сокета, через который передаются данные, и, за исключением необычного случая сокета с ограниченным интерфейсом, вообще не имеет ничего общего с интерфейсом, используемым для переноса данных. (Вопреки комментариям о том, что исходящий сетевой интерфейс выбирается по IP-адресу источника, на самом деле влияние имеет только таблица маршрутизации).
Однако тот факт, что маршрутизация зависит только от адреса назначения, использовался в злонамеренных целях (спуфинг пакетов является важным компонентом атак отражения), поэтому большинство операторов настроили свои маршрутизаторы для реализации фильтрации обратного пути и отбрасывания пакетов там, где исходный IP адрес не соответствует пути, так как они считаются поддельными.
Если у вас нет общедоступного IP-адреса, то в дополнение к фильтрации обратного пути уровень NAT / PAT будет препятствовать этому (ваш исходный IP-адрес, используемый вашим компьютером, будет бессмысленным в другой сети и не будет правильно переписать, если пакет не выходит через маршрутизатор NAT / PAT).
Фактически для больших многосетевых сетей асимметричная маршрутизация происходит. Важно отметить, что большинство реализаций фильтрации обратного пути требуют, чтобы существовал маршрут, соответствующий интерфейсу, куда поступил пакет; он не должен быть предпочтительным (тот, который имеет наименьшую стоимость).
Таким образом, «все», что вам нужно сделать, - это убедить вашего интернет-провайдера (включая их вышестоящих поставщиков) либо (а) отключить фильтрацию обратного пути, либо (б) установить не предпочтительный маршрут. Этого не произойдет, основные маршрутизаторы не могут обрабатывать три миллиарда маршрутов, чтобы иметь один для каждого уникального публичного IP-адреса. Таким образом, очень редко иметь маршруты для любого блока, меньшего, чем / 20, за исключением внутреннего доступа к провайдеру, где существуют маршруты для всех локальных подсетей.
источник
Короткий ответ таков: в 95% случаев это невозможно, а ваш соответствует этим 95%.
Во-первых, позвольте мне сказать, что не имеет смысла говорить о маршрутизации загрузки и выгрузки отдельно, потому что даже интенсивные задачи загрузки требуют, чтобы некоторые пакеты передавались обратно к источнику, т.е. любая загрузка требует некоторого потока выгрузки (это менее верно для UDP, чем для ПТС, но это не важно).
Если бы мы передавали загрузку соединения для загрузки в основном через сетевой адаптер, отличный от того, который использовался для части загрузки, источник загрузки мог бы видеть, что ответы на его пакеты исходят с другого IP-адреса, чем тот, на который он установлен. отправка пакетов; это базовая функция безопасности, позволяющая игнорировать пакеты, относящиеся к данному соединению, но исходящие от стороннего адреса. Следовательно, часть разговора будет удалена, а соединение прервется. Это не имеет ничего общего с провайдерами и их услугами: это происходит даже между двумя устройствами в одной локальной сети, если один из них пытается подключиться к IP-адресу, используя в одном соединении два разных NICS (следовательно, два разных IP) ,
Это причина, по которой мы говорим о соединениях, а не о загрузке / загрузке. Но тогда можно переформулировать ваш вопрос следующим образом: могу ли я иметь компьютер с двумя сетевыми картами, подключенными к сети, использовать две сетевые карты для двух разных соединения, скажем медленное соединение для медленной, утомительной работы, такой как электронная почта, и быстрое соединение для быстрого процесса, такого как загрузка веб-страницы?
Краткий ответ на этот правильно поставленный вопрос: в Windows * Nix (включая MacOS) и Android нет. В Linux да, вы можете.
Причина, по которой вы не можете сделать это в Windows (любой версии), * Nix и Android, заключается в том, что любая таблица маршрутизации может иметь только один шлюз по умолчанию (* т.е. * адрес, на который вы отправляете все пакеты, не предназначенные для вашей локальной сети), и эти Операционные системы могут обрабатывать только одну таблицу маршрутизации: следовательно, один шлюз.
Вместо этого, чтобы распределить разные приложения по разным интерфейсам, вам нужны две разные функциональности: одна - возможность двух одновременно запускать две таблицы маршрутизации, а вторая - возможность привязывать приложения к любой из таблиц маршрутизации. На момент написания этой статьи эти возможности были только у ядра Linux (световых лет впереди конкурентов). Ядро * Nix частично компенсирует это за счет разумного использования своего брандмауэра pfsense, однако не достигает полного результата.
Возможность одновременного запуска двух таблиц маршрутизации (так называемая политика маршрутизации или маршрутизация на основе источника ) означает, что пакеты маршрутизируются по-разному в зависимости от их IP-адреса. Это чрезвычайно полезная функция, если вы строите маршрутизатор.
Однако, чтобы использовать разные сетевые карты (и, следовательно, IPS) в зависимости от приложения, вам нужны сетевые пространства имен , функция ядра Linux, которая позволяет вам создать отдельную оболочку со своим собственным сетевым стеком. Теперь процессы, выполняющиеся внутри этой отдельной оболочки, будут маршрутизироваться в соответствии с таблицей маршрутизации пространства имен сети, а не основного компьютера.
Это, конечно, форма виртуализации, хотя и более слабая, чем, скажем, контейнер Linux, не говоря уже о виртуальной машине. Но это реальный способ, с помощью одного компьютера, направлять различные процессы через разные интерфейсы.
Подводя итог, можно сказать, что в Linux (и только в Linux) вы можете запустить отдельное сетевое пространство имен, которое, например, подключено через VPN к вашему рабочему месту, так что вы получаете доступ к своим рабочим ресурсам, и, если вы запускаете Firefox, вы, кажется, находитесь на своем рабочем месте, и в то же время запускаете Google Chrome за пределами сетевого пространства имен и, таким образом, кажетесь (на Chrome) базирующимся дома.
источник
Разделение связанных подключений между различными поставщиками возможно только в том случае, если у вас есть один IP-адрес, доступный / маршрутизируемый от обоих поставщиков. Этот IP-адрес обычно предоставляется вам как часть большего блока адресов через BGP. И если бы у вас это было, вы могли бы сделать это с BGP, используя функцию, называемую предварительным ожиданием пути и правилами локальных предпочтений в BGP.
Даже если бы вы могли заключить такое соглашение между вашим провайдером и вашим оператором сотовой связи, чтобы ваш IP-адрес был доступен через обе сети, это, вероятно, будет стоить вам больше, чем вы платите сейчас за оба соединения.
Если, с другой стороны, вы на самом деле спрашиваете, можно ли отдать предпочтение соединению 4G для сеанса преимущественно загрузки, например, при загрузке файлов с помощью ftp / sftp или http. И для нормального просмотра веб-страниц, чтобы трафик использовал ваш провайдер, я думаю, что ответ может быть. Но для того, чтобы, возможно, работать, вам нужно было бы классифицировать сеанс как загружаемый или загружаемый. Поскольку ftp и http и другие протоколы могут использоваться в равной степени для выгрузки или загрузки, вы не можете определить это по номеру порта. Таким образом, единственная альтернатива - смотреть на поток данных. На этом этапе решение было бы принято, поскольку данные уже передаются. Так что это не может быть автоматизировано.
Итак, в вашем случае. NO. (по крайней мере, если вы не на обочине).
источник
Вам нужен хост, которым вы управляете, доступный через оба соединения.
Установите два VPN-туннеля для этого хоста, каждый из которых будет проходить с другого интерфейса на вашей стороне. Если у вас есть это, это как два кабеля Ethernet. Вы можете использовать связывание, чтобы использовать их вместе как кабель большего размера, а затем попытаться передать трафик через него.
Теперь я не знаю, достигли ли вы от этого большой производительности (задержка мобильной сети намного выше, чем у вашей широкополосной сети, что может вызвать проблемы), но вы должны попробовать и посмотреть.
источник