РАЗДЕЛЕНИЕ ПОТОКА ДАННЫХ ДЛЯ УВЕЛИЧЕНИЯ СКОРОСТЕЙ ПЕРЕДАЧИ ДАННЫХ
DIVISION OF DATA FLOW TO INCREASE DATA TRANSMISSION SPEEDS

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Эта заявка является частичным продолжением заявки США №13/613230, поданной 13 сентября 2012 г. с названием "Разделение потока данных для увеличения скоростей передачи данных".
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Изобретение относится к способу и связанному с ним устройству для разделения потока данных на множество пакетов данных и для использования более чем одного канала связи для передачи пакетов данных для оптимизации надежности и скорости связи с учетом различных потребностей.
УРОВЕНЬ ТЕХНИКИ
[0003] Передача информации обычно представляет собой длительный процесс с малой гибкостью. Соответственно, существует потребность в устранении по меньшей мере некоторых вышеописанных недостатков и ограничений.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0004] Первый аспект относится в целом к способу, включающему в себя: получение первых данных первым интерфейсным устройством, содержащим компьютерный процессор; разделение компьютерным процессором первых данных на множество пакетов данных; хранение компьютерным процессором множества пакетов данных в одном или нескольких буферах данных, содержащихся в первом интерфейсном устройстве; передачу компьютерным процессором первой группы пакетов данных из множества пакетов данных к первому сетевому узлу, коммуникационно связанному с первым интерфейсным устройством, при этом от первого сетевого узла передают первую подгруппу пакетов данных первой группы пакетов данных ко второму интерфейсному устройству по первой сети связи, связанной с первым сетевым узлом, причем первая подгруппа пакетов данных не включает в себя все пакеты данных первой группы пакетов данных, и причем первый сетевой узел содержит первое множество коммуникационно соединенных устройств связи; и передачу компьютерным процессором второй группы пакетов данных из множества пакетов данных к первому устройству связи, коммуникационно соединенному с первым интерфейсным устройством, при этом вторую группу пакетов данных передают от первого устройства связи ко второму интерфейсному устройству по второй сети связи, связанной с первым устройством связи, причем второе интерфейсное устройство хранит первую подгруппу пакетов данных и вторую группу пакетов данных во внутреннем буфере данных, при этом первая подгруппа пакетов данных отличается от второй группы пакетов данных, первое устройство связи отличается от первого множества коммуникационно соединенных устройств связи, и первая сеть связи отличается от второй сети связи.
[0005] Второй аспект относится в целом к интерфейсному устройству, содержащему компьютерный процессор, соединенный с машиночитаемым запоминающим устройством, содержащим инструкции, при выполнении которых компьютерным процессором реализуется способ, включающий в себя: получение компьютерным процессором первых данных; разделение компьютерным процессором первых данных на множество пакетов данных; хранение компьютерным процессором множества пакетов данных в одном или нескольких буферах данных, содержащихся в первом интерфейсном устройстве; передачу компьютерным процессором первой группы пакетов данных из множества пакетов данных к первому сетевому узлу, коммуникационно соединенному с первым интерфейсным устройством, причем от первого сетевого узла передают первую подгруппу пакетов данных первой группы пакетов данных ко второму интерфейсному устройству по первой сети связи, связанной с первым сетевым узлом, при этом первая подгруппа пакетов данных не включает в себя все пакеты данных первой группы пакетов данных, причем первый сетевой узел содержит первое множество коммуникационно соединенных устройств связи; и передачу компьютерным процессором второй группы пакетов данных из множества пакетов данных к первому устройству связи, коммуникационно соединенному с первым интерфейсным устройством, при этом вторую группу пакетов данных передают от первого устройства связи ко второму интерфейсному устройству по второй сети связи, связанной с первым устройством связи, причем второе интерфейсное устройство хранит первую подгруппу пакетов данных и вторую группу пакетов данных во внутреннем буфере данных, при этом первая подгруппа пакетов данных отличается от второй группы пакетов данных, первое устройство связи отличается от первого множества коммуникационно соединенных устройств связи и первая сеть связи отличается от второй сети связи.
[0006] Третий аспект относится в целом к программному продукту, содержащему машиночитаемое устройство хранения, хранящее машиночитаемый программный код, содержащий алгоритм, при выполнении которого компьютерным процессором интерфейсного устройства реализуется способ, включающий в себя: получение компьютерным процессором первых данных; разделение компьютерным процессором первых данных на множество пакетов данных; хранение компьютерным процессором множества пакетов данных в одном или нескольких буферах данных, содержащихся в первом интерфейсном устройстве; передачу компьютерным процессором первой группы пакетов данных из множества пакетов данных к первому сетевому узлу, коммуникационно соединенному с первым интерфейсным устройством, причем от первого сетевого узла передают первую подгруппу пакетов данных первой группы пакетов данных ко второму интерфейсному устройству по первой сети связи, связанной с первым сетевым узлом, при этом первая подгруппа пакетов данных не включает в себя все пакеты данных первой группы пакетов данных, и причем первый сетевой узел содержит первое множество коммуникационно связанных устройств связи; и
передачу компьютерным процессором второй группы пакетов данных из множества пакетов данных к первому устройству связи, коммуникационно соединенному с первым интерфейсным устройством, при этом вторую группу пакетов данных передают от первого устройства связи ко второму интерфейсному устройству по второй сети связи, связанной с первым устройством связи, причем второе интерфейсное устройство хранит первую подгруппу пакетов данных и вторую группу пакетов данных во внутреннем буфере данных, при этом первая подгруппа пакетов данных отличается от второй группы пакетов данных, первое устройство связи отличается от первого множества коммуникационно соединенных устройств связи, и первая сеть связи отличается от второй сети связи.
[0007] Четвертый аспект относится в целом к способу, включающему в себя: получение первым интерфейсным устройством, содержащим компьютерный процессор, множества потоков данных; назначение компьютерным процессором, на основе заданных условий, каждого потока данных из множества потоков данных отдельному устройству связи из множества устройств связи, причем множество устройств связи коммуникационно соединено с первым интерфейсным устройством, а каждое устройство связи из множества устройств связи связано с отдельной сетью связи из множества сетей связи; передачу компьютерным процессором первого потока данных из множества потоков данных к первому устройству связи из множества устройств связи, при этом первый поток данных передают от первого устройства связи ко второму интерфейсному устройству по первой сети связи из множества сетей связи, связанных с первым устройством связи; и передачу компьютерным процессором второго потока данных из множества потоков данных ко второму устройству связи из множества устройств связи, причем второй поток данных передают от второго устройства связи ко второму интерфейсному устройству по второй сети связи из множества сетей связи, связанных со вторым устройством связи, при этом первый поток данных отличается от второго потока данных, первое устройство связи отличается от второго устройства связи и первая сеть связи отличается от второй сети связи.
[0008] Пятый аспект относится в целом к способу, включающему в себя: получение первым интерфейсным устройством, содержащим компьютерный процессор, множества потоков данных; назначение компьютерным процессором, на основе заданных условий, каждого потока данных из множества потоков данных устройству связи из множества устройств связи, причем множество устройств связи коммуникационно соединено с первым интерфейсным устройством, и причем каждое устройство связи из множества устройств связи связано с отдельной сетью связи из множества сетей связи; передачу компьютерным процессором первого потока данных из множества потоков данных к первому устройству связи из множества устройств связи, при этом первый поток данных передают от первого устройства связи ко второму интерфейсному устройству по первой сети связи из множества сетей связи, связанных с первым устройством связи; и передачу компьютерным процессором первого потока данных ко второму устройству связи из множества устройств связи, причем второй поток данных передают от второго устройства связи ко второму интерфейсному устройству по второй сети связи из множества сетей связи, связанных со вторым устройством связи, при этом первое устройство связи отличается от второго устройства связи и первая сеть связи отличается от второй сети связи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Некоторые варианты осуществления изобретения будут описаны подробно со ссылками на нижеследующие чертежи, на которых одинаковыми ссылочными позициями обозначены одинаковые элементы и на которых:
на фиг. 1 изображен вариант осуществления системы для обеспечения интерфейсов для доступа ко множеству имеющихся соединений передачи данных,
на фиг. 2 изображен альтернативный вариант осуществления системы в соответствии с фиг. 1, позволяющей одному устройству быть связанным с другим устройством и совместно с ним использовать сетевое соединение,
на фиг. 3 изображен вариант осуществления алгоритма, подробно описывающего последовательность операций, реализуемых системами, показанными на фиг. 1 и 2,
на фиг. 4 изображен вариант осуществления алгоритма, подробно описывающего последовательность операций, реализуемых системами, показанными на фиг. 1 и 2,
на фиг. 5 изображен альтернативный вариант осуществления системы для обеспечения интерфейсов для доступа ко множеству имеющихся соединений передачи данных, включающих в себя сетевые узлы для передачи и/или получения данных;
на фиг. 6 изображен альтернативный вариант осуществления системы для объединение соединений как если бы они содержали одно соединение,
на фиг. 7 изображен вариант осуществления алгоритма, подробно описывающего последовательность операций, реализуемых системами, выполняющими объединение соединений как если бы они содержали одно соединение,
на фиг. 8 изображен вариант осуществления компьютерного устройства, используемого для обеспечения возможности доступа интерфейсов ко множеству доступных соединений передачи данных.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0010] Нижеследующее подробное описание вариантов осуществления раскрытых устройства и способа поясняется на примерах, не имеющих ограничительного характера, со ссылками на чертежи. Несмотря на то, что показаны и подробно описаны конкретные варианты осуществления настоящего изобретения, следует понимать, что возможны различные изменения и модификации, выполненные без выхода за границы объема изобретения, который ограничен приложенной формулой изобретения. Объем настоящего изобретения ни в коей мере не ограничен количеством входящих в него компонентов, их материалами, формой, относительным расположением и т.д., и раскрыт просто в виде примерных вариантов осуществления настоящего изобретения.
[0011] В качестве вступления к подробному описанию следует отметить, что используемые в этом описании и в приложенной формуле изобретения формы единственного числа включают ссылки на формы множественного числа, если из контекста явно не следует иное.
[0012] На фиг. 1 показан вариант осуществления системы 2 для обеспечения доступа интерфейсов 4а и/или 4b к множеству доступных соединений для передачи данных. Система 2 может использовать любое количество соединений из множества доступных соединений для передачи данных синхронно и/или по требованию для получения максимальных скорости/качества передачи данных на основе различных параметров устройств и параметров, определяемых пользователем. Варианты осуществления системы 2 могут обеспечивать объединение каждого доступного соединения (или сети) в единый интерфейс передачи данных (например, интерфейсы 4а и/или 4b), содержащий приблизительную величину суммы всех объединенных соединений (например, объединенная пропускная способность всех соединений/сетей), беспроблемное восстановление после отказа соединения, установку приоритетов использования соединения на основе быстродействия, надежности, стоимости и т.д., установку приоритетов маршрутизации при передаче данных на основе быстродействия, надежности и т.д., и безопасный обмен сообщениями и данными.
[0013] В вариантах осуществления система 2, показанная на фиг. 1, может содержать устройства 8 и 10, интерфейсы 4а и 4b, устройства 12а…12n сетевого соединения, сети 15а…15n, и дополнительную сеть 22 (например, сеть Интернет). Устройства 8 и 10 могут включать в себя, среди прочего, настольные компьютеры, ноутбуки, мобильные телефоны, планшетные компьютеры, карманные цифровые компьютеры (PDA), серверы, мэйнфреймовые компьютеры, кабельные модемы, беспроводные маршрутизаторы и т.д. Устройства 8 и 10 могут содержать интерфейсы связи, связанные с различными технологиями передачи данных, такие как, среди прочего, проводные соединения, беспроводные интерфейсы локальной сети LAN (802.11а, b, g, n), интерфейсы сверхвысокочастотного диапазона, интерфейсы спутниковой передачи данных, интерфейсы сотовой беспроводной связи (например, CDMA, 3G, 4G и т.д.), интерфейсы коротковолновой радиосвязи и т.д. Устройство 8 может быть соединено с интерфейсом 4а (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 4а может быть внешним по отношению к устройству 8, как показано на фиг. 1. В других вариантах осуществления интерфейс 4а может быть расположен внутри устройства 8. В вариантах осуществления интерфейс 4а может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. Интерфейс 4а может содержать множество внутренних буферов 7а и 7b для хранения пакетов данных до передачи и для обеспечения резервной копии для передаваемых пакетов данных, которые не были получены целевым устройством. Устройство 10 может быть соединено с интерфейсом 44 (с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 4b может быть внешним по отношению к устройству 10, как показано на фиг. 1. В других вариантах осуществления интерфейс 4b может быть расположен внутри устройства 10. Интерфейс 4b может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. В вариантах осуществления интерфейс 4b может содержать множество внутренних буферов 8а и 8b для хранения пакетов данных до передачи и для обеспечения резервной копии передаваемых пакетов данных, которые не были получены целевым устройством. В вариантах осуществления интерфейс 4а может быть соединен с устройством 12а сетевого соединения посредством линии 6а. Аналогично, в вариантах осуществления интерфейс 4а может быть соединен с устройством 12b сетевого соединения посредством линии 6b. В вариантах осуществления интерфейс 4а может быть соединен с устройством 12с сетевого соединения посредством линии 6с. В вариантах осуществления интерфейс 4а может быть соединен с устройством 12n сетевого соединения посредством линии 6n. Линии 6а…6n могут включать в себя беспроводные или проводные линии.
[0014] Варианты осуществления устройства 12а…12n сетевого соединения могут включать в себя устройства соединения любого типа, включая, среди прочего, антенну спутниковой связи, точку беспроводного доступа, мобильный телефон, карманный цифровой компьютер и т.д. В вариантах осуществления устройство 12а сетевого соединения может быть соединено с интерфейсом 4b посредством сети 15а. В вариантах осуществления сети 15а могут содержать сетевое устройство 14а, соединяющее устройство 12а сетевого соединения с интерфейсом 4b посредством линий 7а и 17а. В вариантах осуществления сети 15а могут включать в себя сети любого типа, включая, среди прочего, сеть спутниковой связи и т.д. В вариантах осуществления сетевое устройство 14а может включать в себя сетевые устройства любого типа, включая, среди прочего, спутник и т.д. В вариантах осуществления устройство 12а сетевого соединения может быть соединено с интерфейсом 4b посредством сети 15а. В вариантах осуществления сети 15а могут содержать сетевое устройство 14b, соединяющее устройство 12b сетевого соединения с интерфейсом 4b посредством линий 7b и 17b. В вариантах осуществления сети 15b могут включать в себя сети любого типа, включая, среди прочего, сеть кабельного телевидения и т.д. В вариантах осуществления сетевое устройство 14b может включать в себя сетевые устройства любого типа, включая, среди прочего, кабельный модем и т.д. В вариантах осуществления устройство 12 с сетевого соединения может быть соединено с интерфейсом 4b посредством сети 15с. В вариантах осуществления сети 15с могут содержать сетевое устройство 14с, соединяющее устройство 12с сетевого соединения с интерфейсом 4b посредством линий 7с и 17с. В вариантах осуществления сети 15с могут включать в себя сети любого типа, включая, среди прочего, сеть сотовой связи и т.д. В вариантах осуществления сетевое устройство 14 с может включать в себя сетевые устройства любого типа, включая, среди прочего, вышку/инфраструктуру телефонной сотовой связи и т.д. В вариантах осуществления устройство 12n сетевого соединения может быть соединено с интерфейсом 4b посредством сети 15n. В вариантах осуществления сети 15n могут содержать сетевое устройство 14n, соединяющее устройство 12n сетевого соединения с интерфейсом 4b посредством линий 7n и 17n. В вариантах осуществления сети 15n могут включать в себя сети любого типа, включая, среди прочего, сеть телефонной сотовой связи (то есть сеть, отличающуюся от сети 15с, или подобную ей) и т.д. В вариантах осуществления сетевое устройство 14n может включать в себя сетевые устройства любого типа, включая, среди прочего, вышку/инфраструктуру телефонной сотовой связи (то есть устройство, отличающееся от устройства 14с, или подобное ему) и т.д.
[0015] На фиг. 1 показан вариант осуществления системы 2, иллюстрирующий файл/поток А1 данных, разделенный (например, демультиплексированный) на пакеты A…G данных (устройством 8) и переданный к интерфейсу 4а для передачи к интерфейсу 4b и устройству 10. Как вариант, файл/поток А1 данных может быть непосредственно передан устройством 8 к интерфейсу 4а и разделен на пакеты A…G данных (интерфейсом 4а, в режиме реального времени) для передачи к интерфейсу 4b и устройству 10. Каждый пакет, несколько пакетов, или по меньшей мере один из пакетов A…G могут быть сохранены в одном или нескольких буферах 11а и 11b данных, являющихся внутренними по отношению к интерфейсу 4а, перед передачей к интерфейсу 4b. Например, пакеты A…G могут быть сохранены в буферах 11а и 11b данных для обеспечения передачи пакетов данных A…G. Кроме того, пакеты A…G данных могут быть сохранены в буферах 11а и 11b данных так, чтобы любой пакет A…G мог быть передан снова, если он не был получен целевым устройством (например, интерфейсом 4b). Каждый пакет, несколько пакетов, или по меньшей мере один из пакетов A…G (или некоторые из пакетов A…G данных) могут быть переданы к любому устройству 12а…12n сетевого соединения для передачи к любой сети 15а…15n. Передача различных пакетов данных файла данных (например, данных файла А1) к различным сетям может обеспечивать объединение пропускной способности множества сетей. Объединение пропускной способности множества сетей может обеспечивать очень быструю передачу большого файла/потока данных к месту назначения. При получении пакетов A…G данных интерфейсом 4b они могут быть сохранены в одном или нескольких внутренних буферах 8а и 8b данных, переданы к устройству 10 и объединены (например, мультиплексированы) обратно в один файл/поток А1 данных. Как вариант, пакеты A…G данных могут быть получены, сохранены и объединены обратно в один файл/поток А1 данных интерфейсом 4b, при этом этот один файл/поток А1 данных может быть передан к устройству 10. В вариантах осуществления вышеупомянутые процессы разделения/объединения данных могут быть выполнены в противоположном направлении, от устройства 10 к устройству 8. В следующем примере 1 описан один из вариантов выполнения сценария (обеспечиваемого системой 2) передачи множества пакетов данных через множество сетей.
Пример 1
[0016] Файл/поток А1 данных разделяют на множество пакетов A…G данных для передачи к интерфейсу 4а. Интерфейс 4а хранит пакеты A…G данных (во внутренних буферах 11а и 11b данных) и передает: пакет А данных к сети 15а посредством устройства 12а сетевого соединения; пакеты В, D, и F данных - к сети 15b посредством устройства 12b сетевого соединения; пакеты С и Е данных - к сети 15с посредством устройства 12с сетевого соединения; и пакет G данных - к сети 15n посредством устройства 12n сетевого соединения. Пакеты A…G данных принимают посредством интерфейса 4b (сохраняют во внутренних буферах 8а и 8b) и передают к устройству 10. Устройство 10 объединяет пакеты A…G обратно в файл/поток А1 данных.
[0017] В соответствии с фиг. 1, в вариантах осуществления система 2 может обеспечивать, посредством интерфейса 4а и/или 4b, одну функцию или комбинацию следующих функций:
1) объединение множества источников доступной пропускной способности (то есть связанных с сетями 15а…15n) для устройства (например, устройства 8 и/или 10) посредством множества интерфейсных компонентов (например, устройств 12а…12n сетевого соединения) по проводным или беспроводным соединениям;
2) восстановление после отказа соединения (то есть резервное копирование) пропускной способности устройства (например, одного из устройств 12а…12n сетевого соединения). Например, при отказе одного соединения или при сбое в инфраструктуре может быть немедленно использовано, без потери соединения, другое соединение или инфраструктура;
3) процесс совместного использования пропускной способности множеством пользователей;
4) процесс облегчения одной критической точки для сетевых соединений. Одна критическая точка может быть связана с клиентскими аппаратными средствами, клиентским программным обеспечением, локальными сетевыми аппаратными/программными средствами, Интернет-провайдером (ISP) и т.д.;
5) процесс обеспечения безопасной связи между пользователем и серверами или пользователем и дополнительными пользователями; и
6) процесс обеспечения наилучшей маршрутизации пути переноса данных к конечным пользователям.
[0018] В вариантах осуществления система 2 может обеспечивать одновременное использование множества доступных сетевых интерфейсов устройством с сетевым доступом (например, устройствами 8 и 10), тем самым обеспечивая одновременное использование множества доступной сетевой инфраструктуры и связанной с ней пропускной способности. Кроме того, в вариантах осуществления система 2 может обеспечивать использование устройством с сетевым доступом сетевых интерфейсов, которые не содержатся в данном устройстве, для получения доступа к дополнительным сетевым ресурсам. В связи с этим, в вариантах осуществления система 2 может обеспечивать возможность использования любым устройством с сетевым доступом инфраструктуры и пропускной способности любого другого устройства с сетевым доступом.
[0019] Кроме того, в вариантах осуществления система 2 может обеспечивать для устройства с сетевым доступом получение доступа и использование инфраструктуры и пропускной способности множества дополнительных устройств с сетевым доступом в виде одного сетевого интерфейса для (родительского) устройства с сетевым доступом, если множество дополнительных устройств с сетевым доступом находятся в пределах диапазона передачи данных посредством физического или беспроводного соединения.
[0020] Кроме того, в вариантах осуществления система 2 может обеспечивать множество протоколов/типов передачи данных, которые будут использованы в максимальной степени (например, WiFi, 3G, 4G, CDMA, СВЧ-диапазон и т.д.). Например, в вариантах осуществления система 2 может модифицировать множество независимых, с точки зрения доступности для (родительского) устройства с сетевым доступом, протоколов/типов передачи данных. В вариантах осуществления система 2 может обеспечивать объединение устройством с сетевым доступом всей доступной пропускной способности всех располагаемых и доступных сетевых интерфейсов, чтобы генерировать большую пропускную способность для устройства при выгрузке и загрузке. В вариантах осуществления система 2 может обеспечивать автоматическое переключение (например, без потери сетевого соединения) устройства с сетевым доступом на интерфейс, доступный для устройства с сетевым доступом, если основной интерфейс этого устройства перестал работать на аппаратном, программном или сетевом уровне. Например, если ноутбук имеет сетевой интерфейс WiFi и мобильный телефон со связанным или согласованным тарифным планом, при этом в работе сетевого интерфейса WiFi происходит сбой (например, сбой в работе аппаратной карты ноутбука, неполадки в работе драйвера аппаратной карты, сбой в работе беспроводного маршрутизатора, интернет-провайдера и т.д.), то ноутбук может автоматически начать использовать связанный или соответствующий мобильный телефон для своего доступа к сети.
[0021] В соответствии с фиг. 1, в вариантах осуществления система 2 может обеспечивать устройству с сетевым доступом средство для получения доступа к сети Интернет (или к любой сети передачи данных) через любые каналы с локальным доступом или комбинацию доступных локальных каналов. В вариантах осуществления система 2 может обеспечивать одному устройству с сетевым доступом одновременный доступ ко всем доступным инфраструктурам и использование их в максимальной степени, а также автоматический выбор наилучшего сочетания сетевых интерфейсов и связанных инфраструктур (для улучшения рабочих характеристик), с учетом пользователя и назначенных системных правил (например, использование процесса опроса). Например, если первая инфраструктура поставщика услуг работает плохо или дает сбой, то система 2 может автоматически уменьшить зависимость от связанной сети, переключившись (без потери Интернет-соединения) к другой сети. В вариантах осуществления система 2 может автоматически определять, какие доступные каналы могут быть использованы в максимальной степени на основе рабочих характеристик канала для передачи данных к устройству с сетевым доступом и от него. Если единственная ISP-инфраструктура дает сбой или ее производительность падает, то в вариантах осуществления система 2 может автоматически корректировать использование канала передачи данных для обеспечения самых лучших рабочих характеристик для устройства с сетевым доступом. В вариантах осуществления система 2 может также автоматически выбирать один или несколько каналов для их использования в максимальной степени и для передачи объема данных через каждый канал, через часть каналов, или по меньшей мере через один канал.
[0022] Более того, в вариантах осуществления система 2 может обеспечивать для устройства с сетевым доступом повышение производительности сети путем преодоления ограничений ресурсов пропускной способности (коэффициента нагрузки, быстродействия, доступности и т.д.), предписанных ISP, обеспечивая возможность соединения одного устройства (например, интерфейса 4а и/или 4b) с другими устройствами посредством проводных или беспроводных соединений, которые совместно используют одни и те же ресурсы ISP. В вариантах осуществления интерфейсы 4а и/или 4b могут использовать ресурсы пропускной способности всех подключенных устройств или некоторых из них. Поэтому, если устройство X (то есть устройство использующее интерфейс 4а и/или 4b) соединено с n другими устройствами в той же самой инфраструктуре ISP и для каждого устройства выделены z ресурсов ISP, устройство X может получать доступ приблизительно к (n⋅z) ресурсам пропускной способности. Кроме того, интерфейс 4а и/или 4b может обеспечивать использование всеми соединенными устройствами всех совместно используемых ресурсов пропускной способности (то есть ресурсов, объединенных в пул).
[0023] Кроме того, в вариантах осуществления система 2 может позволять пользователю выбирать определенный коэффициент нагрузки для пропускной способности. Например, если у пользователя есть доступ через различные сетевые интерфейсы и другие локальные устройства к четырем соединениям сетевой инфраструктуры (например, к сетям 15а…15n), то пользователь может выбрать максимальный коэффициент нагрузки для пропускной способности (например, объединить всю доступную пропускную способность для полного ее использования), использовать одно любое соединение в качестве основного соединения и использовать любые оставшиеся соединения только для резервного копирования (восстановления после сбоя) пропускной способности, или может использовать любую комбинацию этих вариантов. Кроме того, пользователь может использовать все каналы или сети для обеспечения высокопроизводительного (например, 20 МБ или больше) соединения для загрузки.
[0024] В вариантах осуществления система 2 может обеспечивать одноранговое совместное использование ресурсов и коммуникаций непосредственно, без сетевого вмешательства. Оба конца однорангового соединения могут использовать n интерфейсов соединения и получать преимущества производительности и безопасности всей системы, тем самым обеспечивая инфраструктуру интернет-типа без серверов.
[0025] В вариантах осуществления система 2 может быть непосредственно соединена с компьютером, мобильным телефоном, домашним/рабочим модемом или беспроводным маршрутизатором и т.д., при этом объединенная пропускная способность может быть использована в максимальной степени всеми компьютерами/устройствами, соединяющимися с такой сетью. Например, четыре телефона могут быть связаны или согласованы с домашним беспроводным маршрутизатором, причем все устройства, соединенные с маршрутизатором, могут использовать все преимущества системы (например, безопасность, пропускную способность и т.д.).
[0026] В вариантах осуществления система 2 динамически оценивает доступные каналы (связанные с устройствами 12а…12n сетевого соединения и сетями 15а…15n) для того, чтобы передавать каждый пакет данных с использованием комбинации данных, связанных с: текущим состоянием/статусом для каждого существующего канала, объединенным/хронологическим набором данных, связанных с каждым каналом, и с анализом текущей очереди для каждого канала (например, каждый канал может содержать очередь пакетов данных, ожидающих передачи). В вариантах осуществления система 2 может периодически анализировать каждый канал, несколько каналов, или по меньшей мере один из доступных каналов в отношении задержки и пропускной способности. Применительно к передаче различных пакетов данных файла данных (например, данных 511) в различных сетях могут быть оценены дополнительные характеристики. Эти характеристики могут включать в себя, среди прочего, характеристику пропускной способности, характеристику частоты отбрасывания пакетов, характеристику ошибок, характеристику ожидания, характеристику изменения задержки пакетов, и характеристику поступления поврежденных данных. Характеристика пропускной способности определяет скорость передачи битов (то есть максимальную пропускную способность), которая может быть обеспечена в определенном канале передачи данных. Характеристика уровня отбрасывания пакетов определяет множество переданных пакетов, которые не прибывают к месту назначения. Характеристика ошибок определяет поврежденные пакеты, которые отбрасываются по пути к их месту назначения. Характеристика ожидания в отношении какого-либо пакета определяет время, прошедшее до доставки этого пакета к месту назначения. Характеристика изменения задержки (то есть разброс по времени) пакетов определяет разницу в задержке (или ожидании) между пакетами в одном канале. Результаты анализа могут быть добавлены к объединенному набору данных, связанных с каждым каналом, с несколькими каналами, или по меньшей мере с одним из каналов для текущего сеанса, а также в хронологическом аспекте по множеству прошлых сеансов (например, с использованием идентификатора (ID) мобильного устройства, ID учетной записи мобильного телефона, идентифицируемого соединения беспроводной сети и т.д.). Канал передачи может быть выбран на основе текущего состояния и хронологических рабочих характеристик этого канала в определенных интервалах. Например, выбор канала может быть основан на проверке текущего состояния, средней пропускной способности/задержки/надежности (b/I/r) за последние 5 секунд, среднего значения b/I/r за последние 5 минут, среднего значения b/I/r для текущего сеанса, среднее значения b/I/r за все время работы со взвешенными оценками для каждого набора данных, используемых для выбора, и т.д. Если все доступные каналы имеют низкую надежность, система 2 может передавать продублированные пакеты по множеству каналов для повышения вероятности успешной передачи пакетов, если доступная пропускная способность позволяет поддерживать надлежащую производительность. Надежность в наборе параметров b/I/r в целом определяется следующим образом: канал, поддерживающий стабильную и непрерывную устойчивость соединения (по сравнению с каналом, в котором связь часто теряется даже всего лишь на несколько миллисекунд), стабильность времени ожидания в условиях широкого диапазона времени ожидания; стабильность в условиях нестабильной доступности пропускной способности с течением времени; способ ISP для пакетной передачи и т.д. Результат анализа текущих и хронологических параметров b/I/r для каждого канала, нескольких каналов, или по меньшей мере для одного из доступных каналов может быть объединен с текущей длиной очереди для каждого канала, нескольких каналов, или по меньшей мере одного из каналов. Анализ может обеспечивать генерирование окончательного решения для канала передачи для следующего пакета или группы пакетов. Например, в вариантах осуществления система 2 не может передавать пакет(ы) в самую короткую очередь, если значение b/I/r настолько низко, что система 2 решает, что пакет прибудет к своему месту назначения с большей вероятностью скорее через более надежный канал с более длинной очередью. Поэтому, в вариантах конструкции система 2 может обеспечивать присвоение различных приоритетов различным пакетам или типам пакетов таким образом, чтобы пакеты с более низким приоритетом были отправлены по каналам с более низкой пропускной способностью. Кроме того, в вариантах осуществления система 2 может обеспечивать преднамеренную передачу продублированных пакетов по множеству каналов, если один канал является ненадежным.
[0027] Кроме того, в вариантах осуществления система 2 может использовать хронологические данные, связанные с одним или несколькими каналами, для определения стратегий ускоренной передачи, используемых разными сетями поставщиков услуг или аппаратным/программным интерфейсом. Например, стратегия ускоренной передачи может включать в себя компанию, обеспечивающую очень большую пропускную способность (свыше установленной) в течение первого времени (например, 10 или 20 секунд) загрузки и затем регулирующую пропускную способность, доступную пользователю. Поскольку система 2 определяет стратегии ускоренной передачи для различных каналов, она может адаптировать свой собственный процесс принятия решений для передачи данных по доступным каналам, чтобы в максимальной степени использовать стратегии ускоренной передачи. Например, если система 2 определяет, что первое соединение обеспечивает очень высокую пропускную способность в течение 20 секунд после соединения канала, не используемого в течении 1 минуты, она может обеспечивать использование этого канала только в течение 20 секунд каждую минуту. При таком сценарии, если у пользователя есть три доступных канала, для каждого из которых используется подобная стратегия ускоренной передачи, то система 2 может попытаться использовать только канал быстрой передачи путем циклической передачи через упомянутые 3 канала, если система 2 решает, что такое решение является лучшим для максимального повышения общих рабочих характеристик. Кроме того, в вариантах осуществления система 2 может выполнять тесты для установления стратегий ускоренной передачи в неиспользуемых каналах.
[0028] В вариантах осуществления система 2 может обеспечивать способ определения пропускной способности и задержки канала. Надежность соединения может быть определена общей способностью канала поддерживать активное с течением времени соединение между конечными точками (например, интерфейсами 4а и 4b) системы. В вариантах осуществления система 2 может вычислять краткосрочную и долгосрочную пропускную способность, задержку и надежность для обеспечения возможности определения системой 2 степени устойчивости канала и динамического назначения каналу пакетов или групп пакетов. В одном из вариантов осуществления изобретения, чем дольше используется канал (в определенном сеансе и в хронологическом аспекте), тем большую возможность имеет система 2 для оптимального использования этого канала и выработки рациональной стратегии использования канала. Кроме того, система 2 может анализировать физическое местоположение (например, местоположение, определенное посредством GPS) для исследования канала или хронологических данных. Например, телефонное соединение в первом доме может включать в себя надежное соединение, в то время как телефонное соединение во втором доме (в другом географическом местоположении) может включать в себя менее надежное соединение. Поэтому, два различных соединения могут быть оценены по-разному.
[0029] В вариантах осуществления система 2 может содержать ряд буферов (например, внутренних по отношению к интерфейсам 4а и 4b), чтобы перемещать данные от исходного статического или потокового источника данных к каналам передачи (интерфейс 4а) и повторно компилировать данные в точке получения (интерфейс 4b). Например, в вариантах осуществления система 2 может обеспечивать следующий процесс использования буфера:
1) система 2 может обеспечивать определение буферами данных текущей объединенной производительности системы 2;
2) набор данных, эквивалентный производительности системы 2 за заданный промежуток времени (например, 2 секунды, 200 мс и т.д.), перемещают в буфер передачи;
3) система 2 может определять количество пакетов, чтобы назначать их индивидуально каждому буферу канала на основе значения b/I/r каждого канала, текущей очереди и уровня логики всей системы (например, известных стратегий ускоренной передачи, хронологической оценки и т.д.); и
4) пакеты могут назначаться, а упомянутый процесс может повторяться до тех пор, пока не будут переданы все данные.
[0030] На фиг. 2 изображен альтернативный вариант осуществления системы 2а, обеспечивающий возможность устройству 224а осуществлять связь и использовать сетевую связь совместно с устройством 224b. В вариантах осуществления система 2а может обеспечивать согласование (коммутирование/соединение) любого устройства с сетевым доступом (например, устройства 224а) с любым другим устройством с сетевым доступом (например, устройством 224b) посредством физического соединения (например, кабельного соединения USB), беспроводного соединения, соединения Bluetooth, или дополнительного соединения любого типа для передачи локальных данных, которое может гарантировать, что одно из соответствующих устройств (или все устройства) поддерживает сигнал данных и/или речевой сигнал. В вариантах осуществления система 2а может содержать автономную систему ISP/поставщика услуг, обеспечивающую возможность соединения любого устройства (например, сотового телефона) с любым другим устройством независимо от конкретных технологий или поставщика услуг, связанного с устройством. Например, сотовый телефон, связанный с сетью, принадлежащей первой компании, может быть соединен с сотовым телефоном, связанным с сетью, принадлежащей второй (другой) компании. Как вариант, сотовый телефон, связанный с сетью, принадлежащей первой компании/сети, может быть соединен с сотовым телефоном, связанным с той же самой сетью.
[0031] В вариантах осуществления система 2а может содержать одно или более устройств 224а и 224b, один или более интерфейсов 202а, 202b и 202с, одну или более сетей 210а и 210b и устройство 224с. Каждый интерфейс 202а, 202b и 202с может содержать множество буферов, как это было описано относительно интерфейсов 4а и 4b, показанных на фиг. 1. В вариантах осуществления устройства 224а, 224b и 224с могут включать в себя, среди прочего, настольные компьютеры, ноутбуки, мобильные телефоны, планшетные компьютеры, карманные цифровые компьютеры (PDA), серверы, мэйнфреймовые компьютеры, кабельные модемы, беспроводные маршрутизаторы и т.д. В вариантах осуществления устройства 224а, 224b и 224с могут содержать один или более интерфейсов связи, относящихся к различным технологиям передачи данных, например, среди прочего, беспроводные интерфейсы локальной сети LAN (802.11а, b, g, n), интерфейсы сверхвысокочастотного диапазона, интерфейсы спутниковой передачи данных, интерфейсы сотовой беспроводной связи (например, CDMA, 3G, 4G и т.д.), интерфейсы коротковолновой радиосвязи и т.д. В вариантах осуществления устройство 224а может быть соединено с интерфейсом 202а (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 202а может быть внешним по отношению к устройству 224а, как показано на фиг. 2. В других вариантах осуществления интерфейс 202а может быть расположен внутри устройства 224а. В вариантах осуществления интерфейс 202а может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. В вариантах осуществления устройство 224b может быть соединено с интерфейсом 202b (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 202b может быть внешним по отношению к устройству 224b, как показано на фиг. 2. В других вариантах осуществления интерфейс 202b может быть расположен внутри устройства 224b. В вариантах осуществления интерфейс 202b может включать в себя аппаратный интерфейс, программный интерфейс, или любое их сочетание. В вариантах осуществления устройство 224с может быть соединено с интерфейсом 202с (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 202 с может быть внешним по отношению к устройству 224с, как показано на фиг. 2. В других вариантах осуществления интерфейс 202с может быть расположен внутри устройства 224с. В вариантах осуществления интерфейс 202с может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. В вариантах осуществления устройство 224а может быть соединено с устройством 224b посредством линии 220 (беспроводной или проводной). В вариантах осуществления устройство 224а может быть соединено с сетью 210а посредством линии 218а. В вариантах осуществления сеть 210а может содержать сетевое устройство 214а, соединяющее устройство 224а с интерфейсом 202с посредством линии 212а. В вариантах осуществления сеть 210а может включать в себя сети любого типа, включая, среди прочего, сеть сотовой связи, сеть спутниковой связи и т.д. В вариантах осуществления сетевое устройство 214а может включать в себя сетевые устройства любого типа, включая, среди прочего, вышку сотовой связи, спутник и т.д. В вариантах осуществления устройство 224b может быть соединено с сетью 210b посредством линии 218а. Кроме того, в вариантах осуществления устройство 224b может быть соединено с сетью 210а посредством линии 218с. В вариантах осуществления сеть 210b может содержать сетевое устройство 214b, соединяющее устройство 224b с интерфейсом 202с посредством линии 212с. В вариантах осуществления сеть 210b может включать в себя сети любого типа, включая, среди прочего, сеть сотовой связи, сеть спутниковой связи и т.д. В вариантах осуществления сеть 210а и сеть 219b могут быть образованы одной и той же сетью либо различными сетями. В вариантах осуществления сетевое устройство 214b может включать в себя сетевые устройства любого типа, включая, среди прочего, вышку сотовой связи, спутник и т.д.
[0032] В соответствии с фиг. 2, в вариантах осуществления система 2а может обеспечивать процесс автоматической коммутации сетей, если в одной из сетей возникают проблемы. Например, если сеть 210а отключается (например, выходит из строя вследствие ее повреждения) во время связи между устройствами 224а и 224с, то система 2а может автоматически использовать соединение между устройствами 224а и 224b (посредством интерфейсов 202а и 202b и линии 220). Соединение между устройствами 224а и 224b обеспечивает возможность устройству 224а связываться с устройством 224с путем использования сети 210b, связанной с устройством 224b. Кроме того, вышеупомянутый процесс может дополнительно обеспечивать увеличение потока данных путем увеличения сетевого трафика, если сеть 210а работает с пропускной способностью меньше оптимальной.
[0033] На фиг. 3 показан вариант осуществления алгоритма, подробно описывающего последовательность операций, реализуемых системой 2, показанной на фиг. 1, или системой 500, показанной на фиг. 5, для обеспечения возможности получения интерфейсами доступа к множеству доступных соединений передачи данных. На этапе 300 первое интерфейсное устройство (например, интерфейсное устройство 4а на фиг. 1) может получать данные (например, от компьютера через Интернет). Данные могут включать в себя статические данные или поток данных. На этапе 302 первое интерфейсное устройство может разделять (то есть демультиплексировать) файл данных на один или несколько пакетов данных. На этапе 304 первый интерфейс может дополнительно опрашивать множество независимых сетей связи (например, сетей 15…15n на фиг. 1), определять производительность/надежность/текущее состояние сети и просматривать хронологические данные соединения для различных атрибутов передачи. Например, первый интерфейс дополнительно может определять, среди прочего, сетевой трафик, качество передачи данных по сети, доступность сети, хронологические данные, относящиеся к предыдущим соединениям, и т.д. На этапе 308 первое интерфейсное устройство может передавать пакеты данных внутренним буферам. Например, пакеты данных могут быть переданы буферу (буферам) передачи и буферу повторной передачи. На этапе 310 пакеты данных могут быть сохранены в указанных буферах на основе результатов анализа, выполняемого на этапе 304. На этапе 312 различные пакеты данных (множества пакетов данных) могут быть переданы через различные сети (множество независимых сетей связи) на основе результатов анализа, выполняемого на этапе 304. В качестве первого примера, каждая сеть, несколько сетей или по меньшей мере одна из сетей передают определенный (один) пакет данных. В качестве второго примера, каждая сеть, несколько сетей или по меньшей мере одна из сетей передают определенную группу пакетов данных. Как вариант, пакеты данных могут быть далее разделены на группы подпакетов и переданы через сетевой узел (сетевые узлы) (включающий (включающие) множество коммуникационно соединенных устройств, используемых в качестве активных электронных устройств, присоединенных к сети) и/или через дополнительные устройства и сети. Сетевой узел может содержать узел сети. На этапе 314 передаваемые пакеты данных или подпакеты могут быть получены вторым интерфейсным устройством (например, интерфейсным устройством 4b на фиг. 1) и могут быть сохранены в одном или нескольких внутренних буферах. На этапе 318 второе интерфейсное устройство может объединять пакеты данных и/или подпакеты (тем самым повторно генерируя файл данных). На этапе 320 определяют (автоматически или вручную), все ли переданные пакеты данных и/или подпакеты были получены вторым интерфейсным устройством. Если на этапе 320 определено, что некоторые переданные пакеты данных и/или подпакеты не были получены вторым интерфейсным устройством, то на этапе 324 переданные пакеты данных и/или подпакеты могут быть запрошены повторно, если было определено, что канал функционировал со сбоями (например, отключен телефонный канал, отключен сигнал Wi-Fi и т.д.). В этом случае система 2 может повторно запросить все пакеты данных и/или подпакеты, которые были назначены отключенному каналу и находились в процессе передачи. Если система 2 не обнаружит каких-либо рассоединенных линий, она определяет установленный период затраченного времени и передает поток данных/пакеты к клиентской программе. Если недостающие пакет(ы) и/или подпакеты прибывают в более позднее время, система 2 может передавать недостающие пакет(ы) и/или подпакеты непосредственно по мере их прибытия. Если клиентская программа (то есть конечная программа, использующая недостающий пакет (недостающие пакеты)) решит, что требуется недостающий пакет данных и/или подпакеты, то она автоматически повторно запрашивает недостающие данные через систему 2, при этом этапы 300-320 будут выполнены повторно. На повторном этапе 318 передача воспроизводимого потока данных задерживается, если: (а) пакет данных пропущен или (b) более поздний пакет данных прибывает по тому же самому каналу, по которому ожидался недостающий пакет. Вследствие этого недостающий пакет считается потерянным и клиентской программе передают повторно объединенные пакеты/поток данных. Если пакет данных не прибывал в течение периода, превышающего период ожидания (как это определено системой 2) назначенного канала, то пакет считается потерянным и система продолжает работать без него. Например, если система 2 определяет, что канал X имеет период ожидания 75 миллисекунд, и пакет А прибывает во второе интерфейсное устройство и пакет В (следующий пакет, ожидаемый системой 2 по каналу X) не прибывает по истечении периода ожидания 75 миллисекунд, то система 2 считает, что пакет В потерян, и продолжает функционировать намеченным образом. Если определено (клиентской программой), что необходим недостающий пакет данных, то клиентская программа повторно запрашивает пакет, при этом требуемый пакет повторно обрабатывается системой 2. Если на этапе 320 определено, что все переданные пакеты данных были получены вторым интерфейсным устройством, то этап 300 может быть выполнен повторно для нового файла или потока данных. Этапы 318 и 320 могут быть выполнены в любом порядке.
[0034] На фиг. 4 показан вариант осуществления алгоритма, подробно описывающего последовательность процессов, реализуемых показанной на фиг. 2 системой 2а, для обеспечения связи устройства с дополнительным устройством и совместного с ним использования сетевого соединения. На этапе 400 первое устройство связи может обеспечивать и/или использовать первое соединение между первым устройством связи и вычислительным устройством посредством первой сети связи. На этапе 402 первое устройство связи может передавать данные (например, голос, текст, видео и т.д.) к вычислительному устройству по первой сети связи. На этапе 404 первое устройство связи может определять, было ли отключено первое соединение. Если на этапе 404 первое устройство связи определяет, что первое соединение не было отключено, то процесс передачи данных продолжается с выполнением этапа 402. Если на этапе 404 первое устройство связи определяет, что первое соединение было отключено, то на этапе 408 может быть обеспечено и/или использовано второе соединение между первым устройством связи и вторым устройством связи. Второе устройство связи может быть соединено с вычислительным устройством (например, посредством второй сети связи, отличающейся от первой сети связи, или посредством первой сети связи). На этапе 410 первое устройство связи может передавать оставшуюся часть данных к вычислительному устройству посредством второго устройства связи. Оставшаяся часть данных содержит часть первых данных, которая не была передана к вычислительному устройству по сети связи вследствие того, что первое соединение было неработоспособно.
[0035] На фиг. 5 изображен альтернативный вариант осуществления системы 500 для обеспечения интерфейсов 504а и/или 504b для доступа к множеству имеющихся соединений передачи данных, включая сетевые узлы 518а…518n для передачи и/или получения данных. Сетевой узел определен в данном документе как точка соединения, точка распределения или конечная точка связи. Сетевой узел может включать в себя активное электронное устройство, присоединенное к сети, и способен обеспечивать передачу, прием или перенаправление информации по каналу связи. Многоузловая сеть может содержать устройства, соединенные между собой беспроводным соединением, проводным соединением, или соединением, образованным сочетанием упомянутых соединений. Например, два соседних месторасположения могут быть соединены оптическим, коаксиальным, или кабелем Ethernet, а также с помощью беспроводных технологий. Сетевой узел может содержать узел сети.
[0036] Система 500 может использовать любое количество соединений из множества доступных соединений для передачи данных синхронно и/или по требованию для получения максимальных скоростей/качества передачи данных, с учетом различных устройств и параметров, определяемых пользователем. В вариантах осуществления система 500 может обеспечивать объединение каждого доступного соединения (или сети) в один интерфейс передачи данных (например, интерфейсы 504а и/или 504b), содержащий приблизительную величину суммы всех объединенных соединений или больший указанной величины (например, объединенная пропускная способность всех соединений/сетей), беспроблемное восстановление после отказа соединения, установку приоритетов использования соединения на основе быстродействия, надежности, стоимости и т.д., установку приоритетов маршрутизации при передаче данных на основе быстродействия, надежности и т.д. и безопасный обмен сообщениями и данными.
[0037] В вариантах осуществления система 500, показанная на фиг. 5, может содержать устройства 508 и 510, интерфейсы 504а и/или 504b, сетевые узлы 518а…518n, сети 515а…515n, а также устройства 523а…523n и 531а…531n сетевого соединения. Устройства 508 и 510 могут включать в себя, среди прочего, настольные компьютеры, ноутбуки, мобильные телефоны, планшетные компьютеры, карманные цифровые компьютеры (PDA), серверы, мэйнфреймовые компьютеры, кабельные модемы, беспроводные маршрутизаторы и т.д. Устройства 508 и 510 могут содержать интерфейсы связи, связанные с различными технологиями передачи данных, такие как, среди прочего, проводные соединения, беспроводные интерфейсы локальной сети LAN (802.11а, b, g, n), интерфейсы сверхвысокочастотного диапазона, интерфейсы спутниковой передачи данных, интерфейсы сотовой беспроводной связи (например, CDMA, 3G, 4G и т.д.), интерфейсы коротковолновой радиосвязи и т.д. Устройство 508 может быть соединено с интерфейсом 504а (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 504а может быть внешним по отношению к устройству 508, как показано на фиг. 1. В других вариантах осуществления интерфейс 504а может быть расположен внутри устройства 508. В вариантах осуществления интерфейс 504а может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. Интерфейс 504а может содержать множество внутренних буферов для хранения пакетов данных до передачи и для обеспечения резервной копии передаваемых пакетов данных, которые не были получены целевым устройством. Устройство 510 может быть соединено с интерфейсом 504b (с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 504b может быть внешним по отношению к устройству 510, как показано на фиг. 1. В других вариантах осуществления интерфейс 504b может быть расположен внутри устройства 510. Интерфейс 504b может включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. В вариантах осуществления интерфейс 504b может содержать множество внутренних буферов для хранения пакетов данных до передачи и для обеспечения резервной копии передаваемых пакетов данных, которые не были получены целевым устройством. В вариантах осуществления интерфейс 504а может быть соединен с устройствами 523а…523n, 531а…531n и 535 сетевого соединения посредством линий 517а…517n и 539а…539n. Аналогично, в вариантах осуществления интерфейс 504b может быть соединен с устройствами 523а…523n, 531а…531n и 535 сетевого соединения посредством линий 517а…517n и 539а…539n.
[0038] В вариантах осуществления устройства 523а…523n, 531а…531n, и 535 сетевого соединения могут включать в себя устройства соединения любого типа, включая, среди прочего, антенну спутниковой связи, точку беспроводного доступа, мобильный телефон, карманный цифровой компьютер, мостовую антенну, маршрутизатор и т.д.
[0039] Как показано на фиг. 1, варианты осуществления системы 500 иллюстрируют файл/поток 511 данных, разделенный (например, демультиплексированный) на пакеты А…М данных (при помощи устройства 508) и переданный к интерфейсу 504а для передачи к интерфейсу 504b и устройству 510. Как вариант, файл/поток 511 данных может быть непосредственно передан устройством 508 к интерфейсу 504а и разделен на пакеты А…М данных (интерфейсом 504а в режиме реального времени) для передачи к интерфейсу 504b и устройству 510. Каждый пакет, несколько пакетов, или по меньшей мере один из пакетов А…М могут быть сохранены в одном или нескольких буферах данных, являющихся внутренними по отношению к интерфейсу 504а, перед передачей к интерфейсу 504b. Например, пакеты А…М могут быть сохранены в буферах данных для обеспечения передачи пакетов данных А…М. Кроме того, пакеты А…М данных могут быть сохранены в буферах данных так, чтобы любой из пакетов А...М мог быть передан снова, если он не был получен целевым устройством (например, интерфейсом 504b). Каждый пакет, несколько пакетов, или по меньшей мере один из пакетов А…М (или некоторые из пакетов А…М данных) могут быть переданы к любому устройству 523а…523n, 531а…531n и 535 сетевого соединения для передачи к любой из сетей 515а…515n. Передача различных пакетов данных файла данных (например, данных 511) к различным сетям может обеспечивать объединение пропускной способности множества сетей, как это было описано выше в отношении фиг. 1. Применительно к передаче различных пакетов данных файла данных (например, данных 511) в различных сетях могут быть оценены дополнительные характеристики. Эти характеристики могут включать в себя, среди прочего, характеристику пропускной способности, характеристику уровня отбрасывания пакетов, характеристику ошибок, характеристику ожидания, характеристику изменения задержки пакетов и характеристику поступления поврежденных данных. Характеристика пропускной способности определяет скорость передачи битов (то есть максимальную пропускную способность), которая может быть обеспечена в определенном канале передачи данных. Характеристика уровня отбрасывания пакетов определяет множество переданных пакетов, которые не прибывают к месту назначения. Характеристика ошибок определяет поврежденные пакеты, которые отбрасываются по пути к их месту назначения. Характеристика ожидания в отношении какого-либо пакета определяет время, прошедшее до доставки этого пакета к его месту назначения. Характеристика изменения задержки (то есть разброс по времени) пакетов определяет разницу в задержке (или ожидании) между пакетами в одном канале. Например, если пакеты А, С, и Е передают по каналу 1, причем пакет А прибывает в течение 20 мс, пакет С прибывает в течение 200 мс, а пакет Е прибывает в 75 мс, то считается, что канал 1 имеет большое изменение ожидания пакетов. Характеристика поступления поврежденных данных определяет пакеты, переданные по тому же каналу и прибывающие в поврежденном виде.
[0040] Система 500 обеспечивает соединение сетевых узлов 518а…518n с n другими сетевыми узлами посредством проводных или беспроводных соединений. Кроме того, каждый сетевой узел может быть соединен с интернет-шлюзом, предоставляемым интернет-провайдером или другим соединением, которое выходит в локальную сеть. Вышеупомянутое соединение позволяет любому устройству с доступом в Интернет, соединенному с любой проводной или беспроводной точкой доступа, использовать в пределах сети любой интернет-шлюз, соединенный с сетью, и сопоставленную систему, объединенную с сетью, тем самым позволяя любому устройству с доступом в Интернет использовать одновременно множество входных каналов для обеспечения объединения пропускной способности и/или восстановления после сбоя или других характеристик, оптимизированных с учетом соединения.
[0041] Система 500 обеспечивает:
1. Пакеты А-М, которые необходимо передавать от устройства 508 к интерфейсу 504а.
2. Интерфейс 504а для соединения с любым устройством 523а…523n, 531а…531n и 535 сетевого соединения посредством любой линии 539а…539n и для передачи любого количества пакетов к каждому устройству 523а…523n, 531а…531n и 535 сетевого соединения.
3. Любой сетевой узел 518а…518n для дальнейшего разделения пакетов А…М на подпакеты.
4. Любой сетевой узел 518а…518n для передачи пакетов А…М (или связанных подпакетов) через любые другие сетевые узлы 518а…518n, соединенные непосредственно со связанным сетевым узлом, с учетом заранее определенного маршрута, устанавливаемого системой 500 до того как пакеты покинут интерфейс 504а. Кроме того, каждый сетевой узел 518а…518n может передавать пакеты А-М к любому другому соединенному сетевому узлу с учетом оценки в режиме реально времени или в режиме, близком к реальному времени, доступных маршрутов к внешним шлюзам, оцененной производительности связей и путей внутренней сети, и производительности шлюзов. Система 500 может оценивать маршруты от каждой сетевой точки доступа ко всем интернет-шлюзам, доступным в пределах сети, и назначать каналы в пределах сети для каждого присоединенного устройства с доступом в Интернет (например, устройств 523а…523n, 531а…531n и 535 сетевого соединения) с учетом оценки наиболее эффективного пути к интерфейсу 504b.
5. Маршруты, заранее определяемые во время установки соединения или в каждом из сетевых узлов 518а…518n при поступлении пакетов. Система 500 может непрерывно оценивать каждую линии от сетевого узла к сетевому узлу и каждое сочетание линий, чтобы определить каждый возможный доступный канал, проходящий от сети к интерфейсу 504b, и производительность каждого из этих каналов.
6. Потоки пакетов, которые будут разделены в любом сетевом узле для передачи к другим сетевым узлам или к внешнему шлюзу.
7. Пакеты, которые будут разделены в любом сетевом узле для повышения производительности.
[0042] В вариантах осуществления система 500 может обеспечивать, посредством интерфейса 504а и/или 504b, одну из следующих функций или комбинацию этих функций:
1. Пользователь может соединяться с сетью Интернет через интегрированную в сеть точку доступа. Соединение с системой 500 обеспечивает связь от интерфейса 504а с доступными каналами через сетевой узел к интерфейсу 504b. Кроме того, передается информация о качестве каждого канала, оцененное системой 500 во время инициации системы на устройстве с доступом в Интернет, либо оцененное в режиме реального времени или в режиме, близком к реальному времени.
2. Система пользователя инициирует пакетную передачу к локальному интерфейсу. Для пакетов, передаваемых к сетевому соединению, соединенному с интерфейсом 504а:
система 500 может назначать пакеты каждому сетевому каналу с учетом производительности/доступности каждого сетевого канала. Назначение канала может происходить на соединенном с сетью Интернет устройстве, сетевом маршрутизаторе, который соединен с соединенным с Интернетом устройством посредством проводного или беспроводного соединения, и т.д. Выбор канала/пути может иметь место в начальной точке подключения или может осуществляться независимо в каждом сетевом узле. Каждый сетевой узел может осуществлять передачу одного или нескольких пакетов через свой связанный интернет-шлюз или к присоединенному сетевому узлу.
[0043] На фиг. 6 изображен альтернативный вариант осуществления системы 600 для объединения соединений в пул с формированием как бы единого соединения. Объединение соединений в пул может включать в себя:
1. Назначение потока данных программы (например, сеанса видео-чата) для использования в течение всего времени одного определенного существующего соединения/сокета (например, только соединения Wi-Fi), если одно определенное существующее соединение/сокет включает в себя самый надежный канал. Дополнительные потоки данных программ (например, электронной почты) назначают с использованием других существующих соединений/сокетов.
2. Назначение всех потоков данных программ наилучшему имеющемуся указанному единственно существующему соединению/сокету в любой заданный момент времени.
[0044] Кроме того, система 600 обеспечивает процесс передачи продублированных данных через множество каналов, чтобы гарантировать доставку пакетов или улучшить скорость доставки пакетов. Система 600 может передавать идентичные потоки данных или дублировать пакеты посредством двух или более каналов, чтобы гарантировать доставку, тем самым уменьшая потребность в повторной передаче данных, если пакеты не прибывают или прибывают слишком поздно. Кроме того, система 600 может определять приоритет пакетов (например, важные и не важные пакеты). Например, пакет с речевыми данными, отправленными по ip-видеовызову, будет с точки зрения синхронизации/скорости передачи более важным, чем пакет, связанный с электронной почтой. Система 600 может передавать двойные пакеты по недостаточно используемым (с точки зрения использования пропускной способности) каналам для увеличения производительности. Кроме того, система 600 может определять период ожидания для передачи неприоритетных данных.
[0045] В вариантах осуществления система 600, показанная на фиг. 6, может включать в себя устройства 612а…612n и 610, интерфейсы 604а…604n и 605, сети 615а…615n, а также устройства 623а…623n и 635 сетевого соединения. Устройства 612а…612n и 610 могут включать в себя, среди прочего, настольные компьютеры, ноутбуки, мобильные телефоны, планшетные компьютеры, карманные цифровые компьютеры (PDA), серверы, мэйнфреймовые компьютеры, кабельные модемы, беспроводные маршрутизаторы и т.д. Устройства 612а…612n и 610 могут содержать интерфейсы связи, относящиеся к различным технологиям передачи данных, такие как, среди прочего, проводные соединения, беспроводные интерфейсы локальной сети LAN (802.11а, b, g, n), интерфейсы сверхвысокочастотного диапазона, интерфейсы спутниковой передачи данных, интерфейсы сотовой беспроводной связи (например, CDMA, 3G, 4G и т.д.), интерфейсы коротковолновой радиосвязи и т.д. Устройство 612а может быть соединено с интерфейсом 604а (то есть с помощью беспроводных технологий или через проводное соединение). В вариантах осуществления интерфейс 604а может быть внешним по отношению к устройству 612а, как показано на фиг. 6. В других вариантах осуществления интерфейс 604а может быть расположен внутри устройства 612а. Устройства 612а…612n и 610 могут быть соответственно соединены с интерфейсами 604а...604п и 605 (то есть с помощью беспроводных технологий или через проводное соединение). Интерфейсы 604а…604n и 605 могут быть внешними по отношению к устройствам 612а…612n и 610. В вариантах осуществления интерфейсы 604а…604n и 605 могут включать в себя аппаратный интерфейс, программный интерфейс, виртуальный интерфейс, или любое их сочетание. Интерфейсы 604а…604n и 605 могут содержать множество внутренних буферов для хранения пакетов данных перед передачей пакетов данных и для обеспечения резервной копии для передаваемых пакетов данных, которые не были получены целевым устройством. В вариантах осуществления интерфейсы 604а…604n и 605 могут быть соединены с устройствами 612а…612n и 610 посредством линий 617а…617n. Аналогично, в вариантах осуществления интерфейс 604b может быть соединен с устройствами 612а…612n и 610 сетевого соединения посредством линий 617а…617n.
[0046] Система 600 обеспечивает пул соединений, позволяющий каждому запросу на установку соединения от клиентского компьютера (или от другого устройства с возможностью соединения с Интернетом) использовать один доступный канал для одного соединения. В этом случае клиентским компьютером выполняется запрос и система 600 определяет наилучший имеющийся канал для назначения запроса на основе заданных условий, таких как доступность канала (например, пропускная способность, задержка и т.д.), текущее использование канала, надежность канала с хронологической точки зрения, тип и приоритет данных, которые будет передавать через канал конечное устройство (например, передача по UDP против передачи по TCP, передача в реальном времени против передачи файлов и т.д.). Кроме того, каждый запрос на установление соединения может быть связан с одним каналом на время соединения или на время работы канала, что позволяет одному устройству использовать множество доступных каналов. Например, каждая вкладка в браузере или каждое окно браузера могут быть назначены одному независимому каналу, в то время как приложение видео-чата может быть назначено другому независимому каналу, а приложение FTP может быть назначено еще одному отдельному каналу и т.д. Система 600 позволяет одному или нескольким задействованным устройствам совместно использовать любые доступные каналы, причем система 600 определяет наилучшее использование доступных каналов для каждого запроса. Каждая клиентская машина может быть подсоединена посредством беспроводного или проводного соединения по схеме «главный/подчиненный» или по одноранговой схеме.
[0047] Более того, в вариантах осуществления система 600 содержит устройства 612а, 612n и 612b (все в одной сети Wi-Fi), соединенные друг с другом через устройство 635 (то есть через локальную точку доступа Wi-Fi), которое соединено с Интернетом через модем и ISP, а также с беспроводной сетью через сетевые антенны. Устройства 612b и 612с соединены непосредственно друг с другом через прямое Wi-Fi подключение. Каждое устройство 612b, 612с и 612n может иметь независимые соединения с провайдерами услуг сотовой связи. Устройство 312а запрашивает отдельное соединение для приложения А (например, приложения для организации видеоконференций), приложения В (например, соединение браузера) и приложения С (например, загрузка файла). Для каждого соединения система 600 определяет лучший канал для назначения запроса на установку соединения с учетом типа передаваемых данных и устойчивости различных каналов, доступных для системы 600. Для каждого соединения устройство 612а интерфейса назначает канал. Канал может содержать одну двухточечную линии, причем на каждом участке передачи оценивается и модифицируется путь. Как вариант, канал может содержать канал от конечной точки к конечной точке, зависящий от установки системы 600. Кроме того, система 600 может быть спроектирована с архитектурой «главный/подчиненный» так, чтобы одно устройство в системе функционировало как ведущее устройство по отношению ко всем соединенным устройствам и координировало оценку канала и назначение. Как вариант, система 600 может быть спроектирована с одноранговой архитектурой, где каждое устройство в системе может обеспечивать оценку канала, назначение канала, включая беспроблемное восстановление после отказа, и выполнение других системных задач.
[0048] На фиг. 7 изображен вариант осуществления алгоритма, подробно описывающего последовательность операций, реализуемых системой 600, показанной на фиг. 6, с выполнением объединения соединений и формированием как бы единого соединения. На этапе 700 первое интерфейсное устройство получает множество потоков данных. На этапе 704 каждый поток данных назначают отдельному устройству связи из множества устройств связи. Устройства связи коммуникационно соединены с первым интерфейсным устройством, при этом каждое устройство связи связано с сетью связи из множества сетей связи. На этапе 704 первый поток данных из множества потоков данных передают к первому устройству связи. Первый поток данных передают от первого устройства связи ко второму интерфейсному устройству по первой сети связи, связанной с первым устройством связи. На этапе 708 второй поток данных передают ко второму устройству связи из множества устройств связи, причем второй поток данных передают от второго устройства связи ко второму интерфейсному устройству по второй сети связи из множества сетей связи, связанных со вторым устройством связи. Первый поток данных отличается от второго потока данных. Первое устройство связи отличается от второго устройства связи и первая сеть связи отличается от второй сети связи. Как вариант, на этапе 708 первый поток данных передают ко второму устройству связи из множества устройств связи. Первый поток данных передают от второго устройства связи ко второму интерфейсному устройству по второй сети связи из множества сетей связи, связанных со вторым устройством связи. Первое устройство связи отличается от второго устройства связи. Первая сеть связи отличается от второй сети связи.
[0049] На фиг. 8 показан вариант осуществления компьютерного устройства 90, используемого в вариантах осуществления системы 2, показанной на фиг. 1, вариантах осуществления системы 2а, показанной на фиг. 2, вариантах осуществления системы 500, показанной на фиг. 5, и вариантах осуществления системы 600, показанной на фиг. 6, для обеспечения возможности получения интерфейсами доступа ко множеству доступных соединений передачи данных. В вариантах осуществления вычислительная система 90 может содержать процессор 91, устройство 92 ввода данных, соединенное с процессором 91, устройство 93 вывода, соединенное с процессором 91, и запоминающие устройства 94 и 95, каждое из которых соединено с процессором 91. Устройство 92 ввода данных может быть, среди прочего, клавиатурой, мышью, микрофоном и т.д. Устройство 93 вывода может быть, среди прочего, принтером, плоттером, монитором, экраном сотового телефона, дисплеем планшета, магнитной лентой, съемным жестким диском, гибким диском и т.д. Запоминающие устройства 94 и 95 могут быть, среди прочего, жестким диском, гибким диском, магнитной лентой, оптическим запоминающим устройством, например, компакт-диском (CD) или цифровым видеодиском (DVD), динамической оперативной памятью (DRAM), постоянным запоминающим устройством (ROM) и т.д. Запоминающее устройство 95 содержит машинный код 97. Машинный код 97 включает в себя код, доступный интерфейсам для получения доступа ко множеству доступных соединений передачи данных. Процессор 91 выполняет машинный код 97. Запоминающее устройство 94 содержит входные данные 96. Входные данные 96 включают в себя вводимые данные, запрашиваемые машинным кодом 97. Устройство 93 вывода отображает выходные данные от машинного кода 97. Одно запоминающее устройство либо оба запоминающих устройства 94 и 95 (или одно либо несколько дополнительных запоминающих устройств, не показанных на фиг. 8) могут содержать машинный код и могут использоваться в качестве носителя для использования в компьютере (или машиночитаемого носителя, или устройства для хранения программы), содержащего код машиночитаемой программы, воплощенный на данном носителе, и/или содержащего другие данные, сохраненные на данном носителе, причем машиночитаемый код программы включает в себя машинный код 97. В целом, компьютерный программный продукт (или, как вариант, продукт производства) вычислительной системы 90 может содержать носитель для использования в компьютере (или устройство хранения программы).
[0050] Несмотря на то что на фиг.8 вариант осуществления вычислительной системы 90 показан в виде определенной конфигурации аппаратного и программного обеспечения, может использоваться любая конфигурация аппаратного и программного обеспечения, известная среднему специалисту, для достижения целей, указанных выше в отношении упомянутой вычислительной системы 90, показанной на фиг. 5. Например, запоминающие устройства 94 и 95 могут быть частями одного запоминающего устройства, а не отдельными запоминающими устройствами.
[0051] Несмотря на то что данное описание приведено применительно к конкретным вариантам осуществления изобретения, изложенным выше, специалисту очевидно, что возможно множество альтернатив, модификаций и вариаций. Соответственно, предпочтительные варианты осуществления настоящего изобретения, изложенные выше, являются иллюстративными и не имеют ограничительного характера. Могут быть сделаны многочисленные изменения изобретения, без отступления от сущности и объема правовой охраны изобретения, которые определены нижеследующей формулой изобретения. Формула изобретения покрывает весь объем правовой охраны изобретения и не ограничена конкретными примерами, описанными в приведенном выше описании.