RU2595752C2 - Многоканальные соединения в сеансах файловой системы - Google Patents
Многоканальные соединения в сеансах файловой системы Download PDFInfo
- Publication number
- RU2595752C2 RU2595752C2 RU2013125953/08A RU2013125953A RU2595752C2 RU 2595752 C2 RU2595752 C2 RU 2595752C2 RU 2013125953/08 A RU2013125953/08 A RU 2013125953/08A RU 2013125953 A RU2013125953 A RU 2013125953A RU 2595752 C2 RU2595752 C2 RU 2595752C2
- Authority
- RU
- Russia
- Prior art keywords
- server
- connection
- session
- client
- connections
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
Изобретение относится к средствам инициирования сеанса, предоставляющего возможность множественных соединений в файловой системе и принимающего транспортную информацию. Технический результат заключается в обеспечении выбора самого быстрого соединения. Принимают от приложения запрос на инициирование сеанса блока сообщений сервера, SMB, между клиентом и сервером. Выбирают первое средство транспортировки для отправки команд между клиентом и сервером. Устанавливают первое соединение через выбранное первое средство транспортировки. Привязывают установленное первое соединение к инициированному сеансу. Определяют одно или более доступных средств транспортировки, доступных для установления второго соединения между клиентом и сервером. Выбирают второе средство транспортировки для отправки команд между клиентом и сервером. Устанавливают второе соединение между клиентом и сервером, при этом это установление содержит отправку запроса от клиента серверу и этот запрос включает в себя флаг привязки, который указывает осуществить прикрепление второго соединения к сеансу SMB. Привязывают установленное второе соединение к инициализированному сеансу SMB и отправляют команду, принятую от приложения, через установленные соединения, привязанные к сеансу SMB. 2 н. и 13 з.п. ф-лы, 5 ил.
Description
УРОВЕНЬ ТЕХНИКИ
[0001] Существует множество технологий для совместного использования файлов, принтеров и других ресурсов между двумя компьютерами в сети. Например, одним сетевым протоколом прикладного уровня для совместного использования ресурсов является блок сообщений сервера (SMB). SMB используется MICROSOFT™ WINDOWS™ и другими операционными системами, чтобы предоставлять возможность двум компьютерам или другим ресурсам связываться, осуществлять доступ к ресурсам, указывать преднамеренный доступ к ресурсам (например, чтение, запись и т.д.), блокировать ресурсы и т.д. MICROSOFT™ WINDOWS™ Vista ввела SMB 2.0, который упростил набор команд SMB 1.0 и добавил множество других улучшений. MICROSOFT™ WINDOWS™ 7 и Server 2008 R2 ввели SMB 2.1, который добавил уступающие блокировки (oplock) и другие улучшения.
[0002] Большинство протоколов для удаленного совместного использования ресурсов предполагают соотношение "один к одному" между соединениями и сеансами. Сеанс представляет время жизни какого-либо одного запроса для выполнения доступа к ресурсу и последующий доступ к этому ресурсу до тех пор, пока соединение не будет завершено. Сеанс может также быть ассоциирован с конкретным участником безопасности и подтвержденными учетными данными безопасности, которые определяют действия, которые авторизованы в течение сеанса. Соединение может включать в себя протокол управления передачей (TCP) или другой тип соединения, по которому протоколы более высокого уровня типа SMB могут осуществлять связь, чтобы исполнять команды. SMB-сеанс типично подразумевает открытие TCP-соединения между источником запроса и адресатом запроса, отправку одной или более SMB-команд, чтобы получать доступ к целевому ресурсу, и затем закрытие сеанса.
[0003] Множество компьютеров сегодня соединены таким образом, что существует множество доступных соединений между компьютерами. Например, серверы центра обработки данных зачастую построены с двумя или более картами сетевого интерфейса (NIC), так что, если одна отказывает, сетевой трафик может быть отправлен через другую. Клиентские компьютеры могут включать в себя беспроводное сетевое соединение (Wi-Fi), Bluetooth-соединение, проводное Ethernet (например, локальную вычислительную сеть (LAN)) соединение и т.д. Серверные компьютеры могут включать в себя сеть хранения данных (SAN), соединения по стандарту Fibre Channel, проводной Ethernet и т.д. Некоторые или все из этих соединений могут обеспечивать связность с некоторыми или всеми такими же ресурсами.
[0004] К сожалению, информация о доступном соединении, как правило, недоступна приложению или протоколам уровня приложений, которые используют сеть. Приложение, которое запрашивает соединение с сервером, будет типично передавать всю ответственность за выбор устройства/протокола, по которому выполнять соединение, на более низкий сетевой уровень, и сетевой уровень будет создавать единственное соединение, чтобы выполнять команды приложения. Если соединение прерывается, приложение или сетевой уровень могут пытаться использовать другое соединение, устанавливая сеанс снова, или могут полагаться на вмешательство вручную, чтобы сделать это. Использование единственного соединения ведет к уязвимому соединению, которое прекращается, если соединение прерывается по какой-либо причине, и невозможно максимально использовать полную полосу пропускания, предоставляемую множественными сетями. Некоторые протоколы, типа сетевой файловой системы (NFS), включают в себя расширения параллелизации (например, pNFS), которые предоставляют возможность использования избыточных маршрутов передачи данных, чтобы улучшать пропускную способность, но они не предоставляют какой-либо информации более высоким уровням, которая может быть использована, чтобы управлять соединением. Другим примером является экспериментальный протокол Multipath TCP (MTPCP), который имеет специальную задачу, чтобы оставаться необнаруженным для более высоких уровней для обратной совместимости. Функция этих протоколов находится полностью вне управления более высоких уровней, и сетевой уровень может автоматически не выбирать самое быстрое соединение сам по себе или предоставлять наиболее эффективное использование соединений в целях обработки отказа, пропускной способности или других целях.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] В данном документе описывается информационная система с множественными соединениями, которая использует множество соединений, чтобы соединяться с ресурсом в одном сеансе файловой системы способом, который может управляться из протоколов выше транспортного уровня, таких как SMB-протокол прикладного уровня. Система может также предоставлять возможность совместного использования одного соединения множественными сеансами. Вводится концепция канала, чтобы представлять привязку конкретного сеанса к конкретному соединению. Сеансы могут быть привязаны к множественным соединениям, чтобы предоставлять возможность связи через множество средств транспортировки. Во время первоначального согласования сеанса, клиент и сервер могут определять, поддерживаются ли множество соединений между клиентом и сервером в сеансе. После установления первоначального соединения, дополнительные соединения могут быть установлены и привязаны к существующему сеансу. Множество соединений может быть использовано для обработки отказа и/или балансировки нагрузки. Информационная система с несколькими соединениями предоставляет протокол для обнаружения возможности установления нескольких каналов в сеансе. Протокол предоставляет информацию о доступных соединениях между двумя конкретными ресурсами, а также о том, поддерживает ли серверная сторона и клиентская сторона соединения несколько каналов в сеансе. Таким образом, информационная система с множественными соединениями предоставляет способ интеллектуального выбора и использования множественных соединений для единого сеанса на уровнях выше транспортного уровня.
[0006] Данная сущность предусмотрена для того, чтобы в упрощенной форме представить набор идей, которые дополнительно описываются ниже в подробном описании. Эта сущность не имеет намерением ни идентифицировать ключевые признаки или важнейшие признаки заявляемого предмета изобретения, ни использоваться так, чтобы ограничивать объем заявляемого предмета изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Фиг. 1 - это блок-схема, которая иллюстрирует компоненты информационной системы с множественными соединениями в одном варианте осуществления.
[0008] Фиг. 2 - это блок-схема последовательности операций, которая иллюстрирует обработку информационной системы с множественными соединениями, чтобы инициировать сеанс и принимать транспортную информацию, в одном варианте осуществления.
[0009] Фиг. 3 - это блок-схема последовательности операций, которая иллюстрирует обработку информационной системы с множественными соединениями, чтобы добавлять дополнительное соединение к ранее установленному сеансу, в одном варианте осуществления.
[0010] Фиг. 4 - это схема сетевого пакета, которая иллюстрирует установку множественных соединений с помощью информационной системы с множественными соединениями, в одном варианте осуществления.
[0011] Фиг. 5 - это блок-схема, которая иллюстрирует потенциальное соотношение "многие ко многим" между сеансами и соединениями, используя информационную систему с множественными каналами, в одном варианте осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0012] В данном документе описывается информационная система с множественными соединениями, которая использует множество соединений, чтобы соединяться с ресурсом в одном сеансе файловой системы способом, который может управляться из протоколов выше транспортного уровня в модели взаимодействия открытых систем (OSI), таких как SMB-протокол уровня приложений. Система может также предоставлять возможность совместного использования одного соединения множеством сеансов. Вводится концепция канала, чтобы представлять привязку конкретного сеанса к конкретному соединению. Сеансы могут быть привязаны к множественным соединениям, чтобы предоставлять возможность связи через несколько средств транспортировки. Во время первоначального согласования сеанса, клиент и сервер могут определять, поддерживается ли множество соединений между клиентом и сервером в сеансе. После установления первоначального соединения, дополнительные соединения могут быть установлены и привязаны к существующему сеансу. Множество соединений может быть использовано для обработки отказа и/или балансировки нагрузки. Информационная система с множественными соединениями предоставляет протокол для обнаружения возможности установления множественных каналов в сеансе. Протокол предоставляет информацию о доступных соединениях между двумя конкретными ресурсами, а также о том, поддерживает ли серверная сторона и клиентская сторона соединения множество каналов в сеансе.
[0013] Во время установления первоначального сеанса между клиентом и сервером (например, SMB-клиент и сервер), происходит согласование, чтобы указывать, что как клиент, так и сервер поддерживают множество соединений в сеансе. Это может включать в себя согласование версии протокола, которая предоставляет поддержку множественных соединений. Клиент может вызывать сообщение управления файловой системой (FSCTL) или другой интерфейс прикладного программирования (API), чтобы получать список транспортных интерфейсов сервера. В альтернативных вариантах осуществления клиент может запрашивать DNS-службу, чтобы получать больше информации о сетевых интерфейсах сервера и функциональных возможностях. Клиент может также находить локальные интерфейсы, ассоциированные с каждым IP-адресом сервера, и собирать дополнительную информацию о локальных интерфейсах, включающую в себя тип и скорость. Клиент может затем выбирать интерфейс для установления первоначального соединения. В некоторых вариантах осуществления клиент сначала устанавливает первоначальное соединение и затем использует это соединение для согласования информации с сервером относительно других доступных средств транспортировки. Для установки дополнительных каналов клиент может сортировать множество интерфейсов по типу и скорости, чтобы определять лучшие интерфейсы и устанавливать дополнительные каналы с помощью лучших интерфейсов. После того как клиент установил множество каналов, некоторые каналы, которые не находятся в числе лучших интерфейсов, могут необязательно быть разорваны (или просто не использоваться) в пользу использующихся каналов, которые классифицируются выше на основе типа и скорости. Таким образом, информационная система с множественными соединениями предоставляет способ интеллектуального выбора и использования множественных соединений для единого сеанса на уровнях выше транспортного уровня.
[0014] Фиг. 1 - это блок-схема, которая иллюстрирует компоненты информационной системы с множественными соединениями в одном варианте осуществления. Система 100 включает в себя компонент 110 инициирования сеанса, компонент 120 обнаружения канала, компонент 130 выбора канала, компонент 140 привязки, компонент 150 приема команды, компонент 160 маршрутизации команды и компонент 170 управления обработкой отказа. Каждый из этих компонентов описывается более подробно в данном документе.
[0015] Компонент 110 инициирования сеанса принимает запросы, чтобы инициировать сеанс между клиентом и сервером для совместного использования одного или более ресурсов. Например, компонент 110 может принимать запрос от приложения, работающего на клиенте, который идентифицирует сервер, с которым приложение хочет соединяться, чтобы осуществить доступ к файлам или другим ресурсам. Компонент 110 инициирования сеанса может принимать первоначальный SMB-запрос, такой как сообщение "Согласование", которое открывает связи между клиентом и сервером. Компонент 110 инициирования сеанса создает сеансы в ответ на запросы приложения и может предоставлять информацию о безопасности, такую как запрос аутентификационной информации пользователя, так что сервер может соблюдать какой-либо ограниченный сетевой доступ к ресурсам.
[0016] Компонент 120 обнаружения канала определяет одно или более средств транспортировки соединения, которые доступны для связи между клиентом и сервером. Клиенты и серверы могут быть соединены посредством множества средств транспортировки, таких как Ethernet и Wi-Fi, а также избыточных соединений одного и того же средства транспортировки, например два Ethernet NIC. Кроме того, некоторые средства транспортировки соединения могут поддерживать возможности, такие как удаленный прямой доступ к памяти (RDMA), которые влияют на скорость одного средства транспортировки соединения относительно другого. Компонент 120 обнаружения канала собирает этот тип информации и накапливает информацию для клиента для использования при выборе подходящего средства транспортировки. Компонент 120 может использовать первоначальное соединение с сервером, чтобы идентифицировать транспортные интерфейсы сервера и согласовывать множество каналов для соединений. Компонент 120 может также собирать информацию за пределами клиента и сервера, например, запрашивая у DNS-сервера информацию о типах соединения, доступных серверу.
[0017] Компонент 130 выбора канала выбирает одно или более средств транспортировки соединения из определенных доступных средств транспортировки соединения для привязки к сеансу между клиентом и сервером. В некоторых случаях клиент будет устанавливать первое соединение с сервером и затем при обнаружении того, что существует некоторое условие, будет использовать информацию, обнаруженную через первое соединение, для последующего установления дополнительных соединений с сервером. Например, условие может включать в себя обнаружение того, что клиент отправляет большой объем данных серверу, что займет длительное время через первоначальное соединение. Условие может также включать в себя определение того, что клиент имеет высокую оценку надежности для сеанса между клиентом и сервером, так что могут быть полезны избыточные соединения для обработки отказа. Компонент 130 выбора канала может быть модифицирован или сконфигурирован посредством приложения или конкретной реализации системы 100, чтобы выбирать соединения на основе задач и приоритетов, которые важны для конкретной реализации. Например, некоторые реализации могут поощрять создание соединений через самые быстрые транспортные соединения сначала, в то время как другие могут резервировать быстрые соединения для некоторых типов сетевого трафика и использовать более медленные или более низкие по приоритету соединения для других типов трафика.
[0018] Компонент 140 привязки ассоциирует выбранные средства транспортировки соединения с сеансом. Сеанс захватывает информацию об участнике безопасности, ассоциированном с конкретной последовательностью соединений между клиентом и сервером. Сеанс может также содержать другие метаданные, которые определяют функциональные возможности или команды, доступные для конкретных последовательностей передач данных. Привязка выбранного средства транспортировки соединения с сеансом делает это средство транспортировки соединения доступным для использования для этого сеанса, и может согласовывать какие-либо учетные данные безопасности или другой обмен с сервером, чтобы подготавливать соединение для использования с сеансом. Отметим, что точно так же как один сеанс может привязываться к множественным соединениям, множество сеансов могут также привязываться к конкретному соединению. Соединение предусматривает туннель, по которому происходят обмены данными между клиентом и сервером, в то время как сеанс придает каждой передаче данных семантический смысл в контексте того, чего прикладной уровень пытается достичь или что ему разрешено сделать.
[0019] Компонент 150 приема команды принимает одну или более команд, относящихся к сеансу между клиентом и сервером. Цель быть доступным для связи между клиентом и сервером предназначена для клиента, чтобы отправлять команды, чтобы осуществлять доступ к ресурсам. Например, клиент может отправлять запрос "открыть", чтобы открывать файл, или запрос "блокировать", чтобы предотвращать доступ других к файлу, пока клиент модифицирует файл. Компонент 150 приема команд принимает эти команды и вызывает компонент 160 маршрутизации команды, чтобы определять одно или более средств транспортировки, через которые нужно отправлять команду. В некоторых вариантах осуществления система 100 гарантирует, что ответ будет отправлен по тому же транспортному соединению, по которому соответствующий запрос был отправлен. Таким образом, маршрутизируя конкретную команду конкретному транспортному соединению, клиент может также выбирать то, как данные, относящиеся к запросу, будут возвращены клиенту. Для большого объема данных и изменяющихся скоростей соединения выбор соответственно может в значительной степени влиять на общую продолжительность операции.
[0020] Компонент 160 маршрутизации команды выбирает средство транспортировки соединения, привязанное к сеансу, по которому необходимо отправлять конкретную команду. Компонент 160 маршрутизации команды разделяет команды и использует множество средств транспортировки, чтобы выполнять команду, например, для извлечения больших файлов или отправки больших файлов. Компонент 160 может также выбирать быстрые средства транспортировки соединения для некоторых команд, в то же время выбирая более медленные или менее часто используемые средства транспортировки соединения для команд более низкого приоритета. Компонент 160 маршрутизации команды может также определять, что дополнительные доступные транспортные соединения должны быть привязаны к сеансу, например, при приеме запроса на передачу большого файла, что будет слишком медленно через существующие привязанные соединения. Компонент 160 маршрутизации команды может также обнаруживать надвигающееся обслуживание соединения или остановки работы и вызывать формирование дополнительных соединений, чтобы гарантировать надежность.
[0021] Компонент 170 управления обработкой отказа управляет отсоединением конкретного транспортного соединения от сеанса. Например, сетевой провод может быть отрезан, NIC может отказать, или другие условия могут вести к тому, что соединение, которое работало ранее, отсоединяется. Компонент 170 управления обработкой отказа определяет, доступны ли другие соединения, и может вызывать другие компоненты, такие как компонент 120 обнаружения канала, чтобы выбирать дополнительные каналы, и компонент 160 маршрутизации команд, чтобы маршрутизировать команды к неотсоединенному соединению. Компонент 170 управления обработкой отказа может также управлять повторением каких-либо команд, которые были запрошены по разъединенному средству транспортировки соединения, и ожидать ответов сервера через другое транспортное соединение, так что команды выполняются надежно несмотря на отказ. Таким образом, система 100 обеспечивает более высокую надежность.
[0022] Вычислительное устройство, на котором реализована информационная система с множественными соединениями, может включать в себя центральный процессор, память, устройства ввода (например, клавиатура и указательные устройства), устройства вывода (например, устройства отображения) и устройства хранения данных (например, накопители на дисках или другие энергонезависимые носители хранения данных). Память и устройства хранения данных являются считываемыми компьютером носителями данных, которые могут быть кодированы с помощью исполняемых компьютером инструкций (например, программных), которые реализуют или предоставляют систему. Кроме того, структуры данных и структуры сообщений могут быть сохранены или переданы через среду передачи данных, такую как сигнал на линии связи. Могут быть использованы различные линии связи, такие как Интернет, локальная вычислительная сеть, глобальная вычислительная сеть, коммутируемое соединение точка-точка, сотовая телефонная сеть и т.д.
[0023] Варианты осуществления системы могут быть реализованы в различных операционных окружениях, которые включают в себя персональные компьютеры, серверные компьютеры, карманные или переносные устройства, многопроцессорные системы, микропроцессорные системы, программируемую бытовую электронную аппаратуру, цифровые камеры, сетевые ПК, миникомпьютеры, универсальные компьютеры, распределенные вычислительные окружения, которые включают в себя любые из вышеперечисленных систем или устройств, телевизионные приставки, интегральные системы (SOC) и т.д. Компьютерные системы могут быть сотовыми телефонами, персональными цифровыми помощниками, интеллектуальными телефонами, персональными компьютерами, программируемой бытовой электронной аппаратурой, цифровыми камерами и т.д.
[0024] Система может также быть описана в общем контексте исполняемых компьютером инструкций, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Типично, функциональность программных модулей может быть объединена или распределена, как требуется в различных вариантах осуществления.
[0025] Фиг. 2 - это блок-схема последовательности операций, которая иллюстрирует обработку информационной системы с множественными соединениями, чтобы инициировать сеанс и принимать транспортную информацию, в одном варианте осуществления. Начиная в блоке 210, система принимает от приложения запрос, чтобы инициировать сеанс между клиентом и сервером. Приложение может включать в себя компоненты операционной системы или другие приложения на уровне служб, а также типичные клиентские приложения. Приложения и службы множества типов соединяются с сервером, чтобы совместно использовать файлы, принтеры или другие ресурсы. При приеме запроса система начинает настройку сеанса и может отправлять один или более пакетов серверу, чтобы согласовывать доступные диалекты сетевого протокола, используемого для связи между клиентом и сервером, а также, чтобы обнаруживать другие функциональные возможности клиента и сервера, чтобы обеспечивать совместимость. Во время этого процесса сервер может указывать, что он поддерживает сеансы с множественными соединениями, так что клиент может максимально использовать технологии, описанные в данном документе, чтобы увеличивать пропускную способность, улучшать обработку отказа и т.д.
[0026] Продолжая в блоке 220, система выбирает первоначальное средство транспортировки для отправки команд между клиентом и сервером. Система может по умолчанию выбирать один тип средства транспортировки для первого соединения, например Ethernet-соединение на первой NIC, или может осуществлять выбор на основе заданных приложением критериев. Критерии могут указывать выбор самого быстрого соединения, соединения с наивысшей пропускной способностью, наиболее надежного соединения или любые другие критерии, полезные приложению. Продолжая в блоке 225, клиент устанавливает первоначальное соединение с сервером. Поскольку клиент и сервер совместно используют информацию о доступных средствах транспортировки, клиент имеет возможность выбирать подходящее соединение для любого конкретного сеанса.
[0027] Продолжая в блоке 230, система определяет одно или более доступных средств транспортировки для установления второго соединения между клиентом и сервером. Система имеет как внутреннее, так и внешнее средство определения доступных средств транспортировки. Внешнее средство - это средство, которое находится за пределами соединения клиент/сервер, такое как опрос отдельного DNS-сервера, метаданные центра обработки данных или другая информация. Внутреннее средство - это средство, которое находится в пределах соединения между клиентом и сервером, такое как отправка запроса о возможностях или опрос, чтобы идентифицировать доступные устройства и средства транспортировки. Клиент может идентифицировать локальные средства транспортировки, опрашивая операционную систему клиента или опрашивая сервер через первоначальное соединение. Информационная система с множественными каналами составляет список доступных средств транспортировки и любых обнаруженных метаданных относительно средств транспортировки, которые могут помочь в определении того, при каких условиях использовать каждое средство транспортировки.
[0028] Продолжая в блоке 240, система устанавливает второе соединение через выбранное средство транспортировки. Например, если протоколом является SMB, то клиент может отправлять сообщение согласования через выбранное средство транспортировки, которое устанавливает SMB-соединение. Отдельные соединения могут проявлять себя, как они действуют в системах в настоящее время, с этапом привязки, объединяющим единичные соединения в единый сеанс. Установление соединения может подразумевать прохождение множественных пакетов вперед и назад между клиентом и сервером, чтобы выполнять какую-либо настройку соединения и сбор каких-либо метаданных, необходимых для использования соединения.
[0029] Продолжая в блоке 250, система привязывает установленное второе соединение к сеансу первоначального соединения. Привязка информирует систему о том, что сеанс связан с соединением, и что система может использовать соединение для отправки команд. Система может отслеживать, какие соединения к каким сеансам привязаны, так что когда сеансы закрываются или соединения разъединяются, система может выполнять надлежащую очистку. После того как сеансы, которые используют соединение, закончены, система может закрывать соединение. Аналогично, после того как разъединены все соединения, которые привязаны к сеансу, система может выполнять очистку сеанса.
[0030] Продолжая в блоке 260, система отправляет команду, принятую от приложения, через любое установленное соединение, привязанное к сеансу. Система может выбирать из множества таких соединений, чтобы выбирать соединение, подходящее к текущей команде. Система может учитывать полосу пропускания, задержку, текущую глубину очереди, мощность батареи (например, для мобильного устройства), приоритет или любые другие факторы, чтобы выбирать соединение для обработки команды. Система может также разделять команду, чтобы использовать множество соединений одновременно, чтобы ускорять операции. Продолжая в блоке 270, система принимает ответ на отправленную команду через то же средство транспортировки, которое используется для отправки команды. Принятый ответ может указывать, была ли команда успешно выполнена, может включать в себя запрошенные данные или любой другой ответ, определенный для конкретного запроса.
[0031] Продолжая в блоке 280 решения, если существует больше команд, или сеанс не был закрыт, тогда система циклически возвращается к блоку 260, чтобы отправлять больше команд, иначе система завершает работу. Система продолжает работать таким образом, отправляя команды, ассоциированные с сеансом, через доступные соединения. Если в какой-либо момент система определяет, что дополнительные соединения могут быть полезны для выполнения команд, тогда система может устанавливать и привязывать дополнительные соединения к сеансу для использования команд. После блока 280 эти этапы заканчиваются.
[0032] Фиг. 3 - это блок-схема последовательности операций, которая иллюстрирует обработку информационной системы с множественными соединениями, чтобы добавлять дополнительное соединение к ранее установленному сеансу, в одном варианте осуществления. Этапы на фиг. 3 могут выполняться после этапов на фиг. 2, после того как обнаружено конкретное условие или достигнуто пороговое значение для расширения сеанса с одного соединения до множественных соединений. Например, система может обнаруживать передачу большого файла, которая завершилась бы быстрее через множество соединений.
[0033] Начиная в блоке 310, система обнаруживает условие для установления дополнительного соединения для ранее установленного сеанса, который уже имеет по меньшей мере одно привязанное соединение между клиентом и сервером. Условие может включать в себя превышение пропускной способности существующих соединений, слишком высокую задержку на существующих соединениях, ожидание дополнительной полосы пропускания для предстоящей команды, запрашивающей или отправляющей большие данные, и т.д. При обнаружении условия система выполняет следующие этапы, чтобы добавлять дополнительные соединения к сеансу.
[0034] Продолжая в блоке 320, система выбирает дополнительное средство транспортировки из ранее обнаруженного списка средств транспортировки. Система может обнаруживать средства транспортировки посредством запроса возможностей к серверу, запрашивая DNS-информацию или посредством любого другого механизма для обнаружения способов соединения клиента и сервера. Система может сортировать доступные средства транспортировки и/или выбирать средство транспортировки на основе характеристик, принятых во время обнаружения. Например, система может предпочитать соединение с высокой пропускной способностью, соединение с высокой доступностью, соединение, которое в настоящий момент не используется, и т.д.
[0035] Продолжая в блоке 330, система устанавливает соединение через выбранное средство транспортировки. Установка соединения может включать в себя установку соединения транспортного уровня, например, через TCP/IP, а также согласование протокола сеанса, например, последовательность согласования SMB. Система может также обмениваться метаданными через установленное соединение, чтобы подтверждать тип соединения и принимать какую-либо информацию настройки для использования соединения (например, поддерживает ли соединение некоторые функции, такие как выборочные подтверждения приема и т.д.).
[0036] Продолжая в блоке 340, система привязывает вновь установленное соединение к существующему сеансу, так что сеанс имеет множество доступных соединений, из которых можно выбирать при отправке команд. Привязка может ассоциировать соединение, которое уже ассоциировано с другим сеансом, с текущим сеансом, так что оба сеанса могут максимально использовать соединение. Привязка также информирует сеанс о соединении, так что, если сеанс закрывается, логика управления сеансом может выполнять соответствующие этапы очистки, чтобы отвязывать и/или закрывать соединение.
[0037] Продолжая в блоке 350, система принимает команду на прикладном уровне, предназначенную для сервера, с которым существует теперь множество соединений. Приложение может запрашивать открытие файла, запрашивать печать на совместно используемом принтере или выполнять другое совместно разделяемое, удаленное использование ресурса. Операционная система или другой служебный код может предоставлять один или более интерфейсов прикладного программирования (API), посредством которых приложения могут вызывать систему, чтобы отправлять команды серверу.
[0038] Продолжая в блоке 360, система выбирает одно или более средств транспортировки среди вновь установленных соединений и одного или более предыдущих соединений, через которые можно отправлять принятую команду. Система может маршрутизировать команды соединению по умолчанию, пока один или более пороговых критериев не будут удовлетворены, таких как запрос большого объема данных. При приеме более крупного запроса система может выбирать соединение с более высокой пропускной способностью или разделять команду, чтобы использовать множество соединений, чтобы выполнять операцию, указанную посредством команды, быстрее. В качестве другого примера, система может обнаруживать, когда соединение ухудшается, и использовать альтернативные соединения в качестве способа плавной обработки отказа, прозрачной для приложения. После блока 360 эти этапы заканчиваются.
[0039] В некоторых вариантах осуществления информационная система с множественными соединениями предоставляет API файловой системы в операционной системе, посредством которого приложения или службы на клиенте могут запрашивать информацию о доступных сетевых интерфейсах удаленного сервера. Например, MICROSOFT™ WINDOWS™ использует управляющие сообщения файловой системы (FSCTL) для взаимодействия с одной или более файловыми системами. Система может добавлять сообщение, FSCTL_LMR_QUERY_TRANSPORT_INFO, которое является командой для запрашивания активных сетевых интерфейсов удаленного сервера. Одна структура, которую сервер может предоставлять в ответ на эту команду, включает в себя следующие элементы, описанные более подробно ниже: Next (4 байта), IfIndex (4 байта), Capability (4 байта), RssQueueCount (4 байта), LinkSpeed (8 байтов), SockAddr_Storage (128 байтов).
[0040] Элемент Next предоставляет смещение от начала текущей структуры до начала последующего выровненного до 8 байт сетевого интерфейса. Элемент Next устанавливается в ноль в качестве пустого ограничителя, когда больше нет дополнительных сетевых интерфейсов. Элемент IfIndex предоставляет числовой индекс для текущего сетевого интерфейса. Элемент Capability содержит флаги, которые указывают возможности текущего сетевого интерфейса, например, имеет ли интерфейс возможность RDMA или поддержки масштабирования приема (RSS). Элемент RssQueueCount указывает счетчик RSS-очереди для интерфейсов с поддержкой RSS. В некоторых случаях система использует глубину RSS-очереди в качестве подсказки относительно того, сколько соединений создавать с помощью конкретной NIC. Элемент LinkSpeed указывает скорость интерфейса в битах в секунду. Элемент SockAddr_Storage указывает адрес сетевого интерфейса для установления соединений с помощью интерфейса. Это поле может использовать хорошо известную структуру сокетов SOCKADDR_STORAGE.
[0041] Фиг. 4 - это схема сетевого пакета, которая иллюстрирует установку множественных соединений с помощью информационной системы с множественными соединениями, в одном варианте осуществления. В этом примере клиент 405 устанавливает множество соединений с сервером 495, отправляя следующие пакеты (или многопакетные сообщения). Клиент 405 отправляет первый запрос 410 согласования серверу 495. Сервер 495 отвечает ответом 420 согласования клиенту 405. Клиент 405 затем отправляет первый запрос 430 установки сеанса серверу 495. Сервер 495 отвечает ответом 440 установки сеанса клиенту 405. Установка сеанса может создавать множественные прохождения сигнала туда и обратно между клиентом и сервером. В этот момент, первый канал для сеанса устанавливается, и клиент может начинать отправку команд серверу с помощью сеанса. Затем (это может быть непосредственно или немного позже), клиент 405 решает установить второе соединение с сервером 495 для того же самого сеанса. Клиент 405 отправляет второй запрос 450 согласования через новое средство транспортировки серверу 495. Сервер 495 отвечает ответом 460 согласования клиенту 405. Клиент 405 затем отправляет второй запрос 470 установки сеанса серверу 495. В отличие от первого запроса 430 установки сеанса, этот запрос 470 может включать в себя флаг привязки, который указывает скрепление нового соединения с предыдущим сеансом. Сервер 495 отвечает ответом 480 установки сеанса клиенту 405. Эта установка сеанса также может создавать множественные прохождения сигнала туда и обратно между клиентом и сервером. В этот момент, оба соединения доступны клиенту для отправки команд серверу.
[0042] Фиг. 5 - это блок-схема, которая иллюстрирует потенциальное соотношение "многие ко многим" между сеансами и соединениями, использующими информационную систему с множественными каналами, в одном варианте осуществления. Схема включает в себя первый сеанс 510 и второй сеанс 520. Схема также включает в себя первое соединение 530 и второе соединение 540. Традиционно, каждый сеанс имеет соотношение "один к одному" с соединением, так что первый сеанс 510 должен бы быть только сеансом, использующим первое соединение 530, а второй сеанс 520 должен бы быть только сеансом, использующим второе соединение 540. С помощью технологий, описанных в данном документе, вводится концепция каналов, посредством которых каждый сеанс может использовать множество соединений и может даже совместно использовать соединения с другими сеансами. Таким образом, как показано, первый сеанс 510 привязывается к первому соединению 530 через первый канал 550. Первый сеанс 510 также привязывается ко второму соединению 540 через второй канал 560. Аналогично, второй сеанс 520 привязывается к первому соединению 530 через третий канал 570, и второй сеанс 520 привязывается ко второму соединению 540 через четвертый канал 580. Таким образом, любой сеанс может использовать любое соединение, как диктуется приложением или конкретными для реализации предпочтениями.
[0043] В некоторых вариантах осуществления информационная система с множественными соединениями не информирует приложение о доступных соединениях. Как отмечено в данном документе, система может быть реализована на уровне между приложениями и транспортным уровнем (например, TCP). Например, MICROSOFT™ WINDOWS™ предоставляет SMB-реализацию, которую приложения могут использовать. Система может выполнять технологии, описанные в данном документе, чтобы автоматически использовать множество средств транспортировки, когда они доступны, и обеспечивать приложения более высокой надежностью и производительностью автоматически, без ввода данных посредством приложения. Система может предоставлять возможность приложению конфигурировать то, разрешена ли функциональная возможность. Если функциональная возможность включена, система может автоматически подбирать средства транспортировки, через которые можно устанавливать соединения, и какие транспортные ресурсы использовать для различных команд от приложения. В других вариантах осуществления система может предоставлять больше управления приложению, так что приложение может устанавливать критерии для выбора каждого соединения или выполнять выбор самостоятельно.
[0044] Из упомянутого выше будет понятно, что конкретные варианты осуществления информационной системы с множественными соединениями были описаны в данном документе в целях иллюстрации, но могут быть выполнены различные модификации, не отклоняясь от сущности и объема изобретения. Следовательно, изобретение не ограничено ничем, кроме прилагаемой формулы изобретения.
Claims (15)
1. Реализуемый компьютером способ инициирования сеанса, предоставляющего возможность множественных соединений в файловой системе и принимающего транспортную информацию, способ содержит этапы, на которых:
принимают от приложения запрос на инициирование сеанса блока сообщений сервера, SMB, между клиентом и сервером;
выбирают первое средство транспортировки для отправки команд между клиентом и сервером;
устанавливают первое соединение через выбранное первое средство транспортировки;
привязывают установленное первое соединение к инициированному сеансу;
определяют одно или более доступных средств транспортировки, доступных для установления второго соединения между клиентом и сервером;
выбирают второе средство транспортировки для отправки команд между клиентом и сервером;
устанавливают второе соединение между клиентом и сервером, при этом это установление содержит отправку запроса от клиента серверу и этот запрос включает в себя флаг привязки, который указывает осуществить прикрепление второго соединения к сеансу SMB,
привязывают установленное второе соединение к инициализированному сеансу SMB;
и отправляют команду, принятую от приложения, через установленные соединения, привязанные к сеансу SMB,
при этом предшествующие этапы выполняются по меньшей мере одним процессором.
принимают от приложения запрос на инициирование сеанса блока сообщений сервера, SMB, между клиентом и сервером;
выбирают первое средство транспортировки для отправки команд между клиентом и сервером;
устанавливают первое соединение через выбранное первое средство транспортировки;
привязывают установленное первое соединение к инициированному сеансу;
определяют одно или более доступных средств транспортировки, доступных для установления второго соединения между клиентом и сервером;
выбирают второе средство транспортировки для отправки команд между клиентом и сервером;
устанавливают второе соединение между клиентом и сервером, при этом это установление содержит отправку запроса от клиента серверу и этот запрос включает в себя флаг привязки, который указывает осуществить прикрепление второго соединения к сеансу SMB,
привязывают установленное второе соединение к инициализированному сеансу SMB;
и отправляют команду, принятую от приложения, через установленные соединения, привязанные к сеансу SMB,
при этом предшествующие этапы выполняются по меньшей мере одним процессором.
2. Способ по п. 1, в котором прием запроса содержит прием запроса от приложения на доступ к файлу, сохраненному удаленно на сервере, с использованием протокола блока сообщений сервера (SMB).
3. Способ по п. 1, в котором прием запроса содержит установку сеанса и отправку одного или более пакетов серверу, чтобы согласовывать доступные диалекты сетевого протокола, используемого для связи между клиентом и сервером.
4. Способ по п. 1, в котором прием запроса содержит опрос сервера, чтобы определять, поддерживает ли сервер сеансы с множественными соединениями.
5. Способ по п. 1, в котором определение доступных средств транспортировки содержит опрос сервера системы доменных имен (DNS), чтобы идентифицировать один или более адресов сервера.
6. Способ по п. 1, в котором определение доступных средств транспортировки содержит опрос операционной системы клиента, чтобы идентифицировать доступные сетевые интерфейсы.
7. Способ по п. 1, в котором определение доступных средств транспортировки содержит запрос отправки запроса возможностей серверу, чтобы идентифицировать доступные сетевые интерфейсы на сервере.
8. Способ по п. 1, в котором выбор первоначального средства транспортировки содержит выбор на основе конкретных для приложения критериев, которые устанавливают предпочтения по соединениям приложения.
9. Способ по п. 1, в котором установка соединения содержит отправку сообщения согласования через выбранное средство транспортировки, которое устанавливает соединение по протоколу блока сообщений сервера (SMB).
10. Способ по п. 1, в котором привязка установленного соединения содержит подготовку соединения для использования сеансом для отправки команд от клиента серверу.
11. Способ по п. 1, в котором привязка установленного соединения содержит сохранение информации для очистки сеанса и/или соединения.
12. Способ по п. 1, в котором отправка команды содержит выбор из множественных привязанных соединений для того, чтобы выбирать одно или более соединений, подходящих для обработки текущей команды.
13. Компьютерная система для предоставления многоканальных соединений в сеансах файловой системы, система содержит:
процессор и память, сконфигурированные, чтобы исполнять инструкции программного обеспечения, осуществленные в следующих компонентах:
компонент инициирования сеанса, который принимает запросы, чтобы инициировать сеанс блока сообщений сервера, SMB, между клиентом и сервером для совместного использования одного или более ресурсов;
компонент обнаружения канала, который определяет одно или более средств транспортировки соединения, которые доступны для связи между клиентом и сервером;
компонент выбора канала, который выбирает первое средство транспортировки соединения из определенных доступных средств транспортировки соединения для установления первого соединения для привязки к сеансу SMB между клиентом и сервером и который дополнительно выбирает второе средство транспортировки соединения для установления второго соединения между клиентом и сервером, при этом это установление содержит отправку запроса от клиента серверу и этот запрос включает в себя флаг привязки, который указывает осуществить прикрепление второго соединения к сеансу SMB;
компонент привязки, который ассоциирует выбранные средства транспортировки соединения с сеансом SMB;
компонент приема команды, который принимает одну или более команд, относящихся к сеансу SMB между клиентом и сервером; и
компонент маршрутизации команды, который выбирает средство транспортировки соединения, привязанное к сеансу SMB, по которому необходимо отправлять конкретную команду.
процессор и память, сконфигурированные, чтобы исполнять инструкции программного обеспечения, осуществленные в следующих компонентах:
компонент инициирования сеанса, который принимает запросы, чтобы инициировать сеанс блока сообщений сервера, SMB, между клиентом и сервером для совместного использования одного или более ресурсов;
компонент обнаружения канала, который определяет одно или более средств транспортировки соединения, которые доступны для связи между клиентом и сервером;
компонент выбора канала, который выбирает первое средство транспортировки соединения из определенных доступных средств транспортировки соединения для установления первого соединения для привязки к сеансу SMB между клиентом и сервером и который дополнительно выбирает второе средство транспортировки соединения для установления второго соединения между клиентом и сервером, при этом это установление содержит отправку запроса от клиента серверу и этот запрос включает в себя флаг привязки, который указывает осуществить прикрепление второго соединения к сеансу SMB;
компонент привязки, который ассоциирует выбранные средства транспортировки соединения с сеансом SMB;
компонент приема команды, который принимает одну или более команд, относящихся к сеансу SMB между клиентом и сервером; и
компонент маршрутизации команды, который выбирает средство транспортировки соединения, привязанное к сеансу SMB, по которому необходимо отправлять конкретную команду.
14. Система по п. 13, в которой компонент инициирования сеанса дополнительно сконфигурирован, чтобы принимать запрос от приложения, работающего на клиенте, который идентифицирует сервер, с которым приложение хочет соединяться, чтобы осуществить доступ к файлам или другим ресурсам.
15. Система по п. 13, в которой компонент обнаружения канала дополнительно сконфигурирован, чтобы определять, поддерживает ли каждое средство транспортировки соединения удаленный прямой доступ к памяти (RDMA) и/или поддержку масштабирования приема (RSS).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/960,577 | 2010-12-06 | ||
US12/960,577 US8806030B2 (en) | 2010-12-06 | 2010-12-06 | Multichannel connections in file system sessions |
PCT/US2011/063613 WO2012078689A2 (en) | 2010-12-06 | 2011-12-06 | Multichannel connections in file system sessions |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2013125953A RU2013125953A (ru) | 2014-12-10 |
RU2595752C2 true RU2595752C2 (ru) | 2016-08-27 |
Family
ID=46163297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2013125953/08A RU2595752C2 (ru) | 2010-12-06 | 2011-12-06 | Многоканальные соединения в сеансах файловой системы |
Country Status (11)
Country | Link |
---|---|
US (1) | US8806030B2 (ru) |
EP (1) | EP2649531B1 (ru) |
JP (1) | JP5882353B2 (ru) |
KR (1) | KR101811087B1 (ru) |
CN (1) | CN102571756B (ru) |
AU (1) | AU2011338481B2 (ru) |
BR (1) | BR112013013794A8 (ru) |
CA (1) | CA2817051A1 (ru) |
MX (1) | MX2013006422A (ru) |
RU (1) | RU2595752C2 (ru) |
WO (1) | WO2012078689A2 (ru) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9258216B2 (en) * | 2009-12-23 | 2016-02-09 | Pismo Labs Technology Limited | Methods and systems for transmitting packets through network interfaces |
US9787501B2 (en) | 2009-12-23 | 2017-10-10 | Pismo Labs Technology Limited | Methods and systems for transmitting packets through aggregated end-to-end connection |
US10218467B2 (en) | 2009-12-23 | 2019-02-26 | Pismo Labs Technology Limited | Methods and systems for managing error correction mode |
US9160693B2 (en) | 2010-09-27 | 2015-10-13 | Blackberry Limited | Method, apparatus and system for accessing applications and content across a plurality of computers |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US9621402B2 (en) * | 2011-09-12 | 2017-04-11 | Microsoft Technology Licensing, Llc | Load balanced and prioritized data connections |
US9015809B2 (en) * | 2012-02-20 | 2015-04-21 | Blackberry Limited | Establishing connectivity between an enterprise security perimeter of a device and an enterprise |
US10432587B2 (en) * | 2012-02-21 | 2019-10-01 | Aventail Llc | VPN deep packet inspection |
US9231949B1 (en) * | 2012-08-10 | 2016-01-05 | Amazon Technologies, Inc. | Content delivery to user devices using server-initiated connections |
US9747386B1 (en) | 2012-08-10 | 2017-08-29 | Amazon Technologies, Inc. | User-perceived performance through browser hints |
CN102857504B (zh) * | 2012-09-06 | 2016-01-06 | 深信服网络科技(深圳)有限公司 | 网络优化方法及装置 |
US9641614B2 (en) | 2013-05-29 | 2017-05-02 | Microsoft Technology Licensing, Llc | Distributed storage defense in a cluster |
US10404520B2 (en) | 2013-05-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Efficient programmatic memory access over network file access protocols |
US20140379778A1 (en) * | 2013-06-20 | 2014-12-25 | Microsoft Corporation | Asynchronous transport setup and selection for interactive applications |
CN104301287B (zh) * | 2013-07-16 | 2020-03-31 | 中兴通讯股份有限公司 | 一种多对多会话的实现方法、网络节点、服务器及系统 |
JP6180225B2 (ja) * | 2013-08-08 | 2017-08-16 | キヤノン株式会社 | 携帯型デバイス及び通信制御方法 |
US9578109B2 (en) * | 2014-05-30 | 2017-02-21 | Apple Inc. | Long-lived MPTCP sessions |
US9838858B2 (en) | 2014-07-08 | 2017-12-05 | Rapidsos, Inc. | System and method for call management |
EP3195563B1 (en) | 2014-09-19 | 2021-12-15 | Rapidsos Inc. | Method for emergency call management |
JP6444125B2 (ja) * | 2014-10-07 | 2018-12-26 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
US9888064B2 (en) | 2015-02-11 | 2018-02-06 | International Business Machines Corporation | Load-balancing input/output requests in clustered storage systems |
US10129892B2 (en) * | 2015-06-01 | 2018-11-13 | Qualcomm Incorporated | Techniques to manage reverse channel audio sessions |
MX2018005568A (es) | 2015-11-02 | 2018-11-09 | Rapidsos Inc | Metodo y sistema de conciencia situacional para respuesta de emergencia. |
JP2019505117A (ja) | 2015-12-17 | 2019-02-21 | ラピッドエスオーエス,インク. | 効率的な緊急呼出のためのデバイス及び方法 |
WO2017112820A1 (en) * | 2015-12-22 | 2017-06-29 | Rapidsos, Inc. | Systems and methods for robust and persistent emergency communications |
US9986404B2 (en) | 2016-02-26 | 2018-05-29 | Rapidsos, Inc. | Systems and methods for emergency communications amongst groups of devices based on shared data |
EP3449653A4 (en) | 2016-04-26 | 2019-09-18 | Rapidsos Inc. | EMERGENCY COMMUNICATION SYSTEMS AND METHODS |
WO2017196753A1 (en) | 2016-05-09 | 2017-11-16 | Rapidsos, Inc. | Systems and methods for emergency communications |
US10861320B2 (en) | 2016-08-22 | 2020-12-08 | Rapidsos, Inc. | Predictive analytics for emergency detection and response management |
CN106790420B (zh) * | 2016-11-30 | 2019-11-26 | 华为技术有限公司 | 一种多会话通道建立方法和系统 |
US10334055B2 (en) | 2017-02-01 | 2019-06-25 | International Business Machines Corporation | Communication layer with dynamic multi-session management |
CN106953797B (zh) * | 2017-04-05 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种基于动态连接的rdma数据传输的方法与装置 |
EP3616175A4 (en) | 2017-04-24 | 2021-01-06 | Rapidsos, Inc. | MODULAR EMERGENCY COMMUNICATION FLOW MANAGEMENT SYSTEM |
CN107172048A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于smb协议的多通道实现方法及装置 |
CN107948158B (zh) * | 2017-11-27 | 2023-06-27 | 广东路得斯环境科技有限公司 | 一种处理高频率多并发的数据连接方法 |
EP3721402A4 (en) | 2017-12-05 | 2021-08-04 | Rapidsos Inc. | EMERGENCY MANAGEMENT SOCIAL MEDIA CONTENT |
EP3729785B8 (en) * | 2017-12-22 | 2022-08-10 | Nokia Technologies OY | Designs of an mptcp-aware load balancer and load balancer using the designs |
US10911547B2 (en) * | 2017-12-28 | 2021-02-02 | Dell Products L.P. | Systems and methods for SMB monitor dialect |
US10820181B2 (en) | 2018-02-09 | 2020-10-27 | Rapidsos, Inc. | Emergency location analysis system |
US20190320310A1 (en) | 2018-04-16 | 2019-10-17 | Rapidsos, Inc. | Emergency data management and access system |
EP3803774A4 (en) | 2018-06-11 | 2022-03-09 | Rapidsos, Inc. | SYSTEMS AND USER INTERFACES FOR EMERGENCY DATA INTEGRATION |
US11917514B2 (en) | 2018-08-14 | 2024-02-27 | Rapidsos, Inc. | Systems and methods for intelligently managing multimedia for emergency response |
WO2020172612A1 (en) | 2019-02-22 | 2020-08-27 | Rapidsos, Inc. | Systems & methods for automated emergency response |
US11146680B2 (en) | 2019-03-29 | 2021-10-12 | Rapidsos, Inc. | Systems and methods for emergency data integration |
AU2020254292A1 (en) | 2019-03-29 | 2021-11-04 | Rapidsos, Inc. | Systems and methods for emergency data integration |
US11228891B2 (en) | 2019-07-03 | 2022-01-18 | Rapidsos, Inc. | Systems and methods for emergency medical communications |
CN112422602B (zh) * | 2019-08-23 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 分布式协调服务的处理方法及装置、系统 |
CN111901386B (zh) * | 2020-06-30 | 2023-05-09 | 广东浪潮大数据研究有限公司 | 一种远端文件处理的方法、系统、设备及可读存储介质 |
CN114449025B (zh) * | 2020-10-16 | 2024-03-08 | 上海汽车集团股份有限公司 | 一种通信方法及系统 |
CN112689011B (zh) * | 2020-12-24 | 2023-05-26 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
US11330664B1 (en) | 2020-12-31 | 2022-05-10 | Rapidsos, Inc. | Apparatus and method for obtaining emergency data and providing a map view |
KR102668919B1 (ko) * | 2021-04-16 | 2024-05-27 | 한국과학기술원 | 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 |
CN114024998B (zh) * | 2021-11-11 | 2023-05-23 | 瑞斯康达科技发展股份有限公司 | 一种基于netconf协议的支持多会话的方法和装置 |
CN115328408B (zh) * | 2022-10-14 | 2023-01-03 | 联想凌拓科技有限公司 | 用于数据处理的方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5301280A (en) * | 1989-10-02 | 1994-04-05 | Data General Corporation | Capability based communication protocol |
EP1727056A2 (en) * | 2005-05-25 | 2006-11-29 | Microsoft Corporation | Data communication protocol |
RU2374790C2 (ru) * | 2004-03-16 | 2009-11-27 | Нокиа Корпорейшн | Улучшение режима пакетной передачи при запросе ресурсов коммутируемых каналов |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085234A (en) * | 1994-11-28 | 2000-07-04 | Inca Technology, Inc. | Remote file services network-infrastructure cache |
US5682478A (en) | 1995-01-19 | 1997-10-28 | Microsoft Corporation | Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server |
US6549934B1 (en) | 1999-03-01 | 2003-04-15 | Microsoft Corporation | Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client |
GB2358548B (en) * | 1999-05-18 | 2003-09-10 | Bob Tang | Methods for fast establishment of modem-to-modem data link via PSTN bypassing present lengthy modem negotiations |
US6470390B1 (en) * | 1999-06-29 | 2002-10-22 | Cisco Technology, Inc. | Method and apparatus for a dual connection communication session |
US6795851B1 (en) | 2000-06-19 | 2004-09-21 | Path Communications Inc. | Web-based client/server communication channel with automated client-side channel endpoint feature detection and selection |
US7174534B2 (en) | 2001-01-22 | 2007-02-06 | Symbol Technologies, Inc. | Efficient system and method for running and analyzing multi-channel, multi-modal applications |
US7219149B2 (en) * | 2003-06-12 | 2007-05-15 | Dw Holdings, Inc. | Versatile terminal adapter and network for transaction processing |
JP3703457B2 (ja) * | 2003-01-21 | 2005-10-05 | キヤノン株式会社 | アドレス通知方法、プログラム、及び、装置 |
US7698361B2 (en) * | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
US8316129B2 (en) * | 2005-05-25 | 2012-11-20 | Microsoft Corporation | Data communication coordination with sequence numbers |
US20060282545A1 (en) * | 2005-06-11 | 2006-12-14 | Arwe John E | Method and apparatus for application or protocol version negotiation |
US7526558B1 (en) * | 2005-11-14 | 2009-04-28 | Network Appliance, Inc. | System and method for supporting a plurality of levels of acceleration in a single protocol session |
EP2632109B1 (en) * | 2006-07-10 | 2017-05-10 | Solarflare Communications Inc | Data processing system and method therefor |
US7991830B2 (en) | 2007-02-28 | 2011-08-02 | Red Hat, Inc. | Multiple sessions between a server and multiple browser instances of a browser |
US9081902B2 (en) * | 2008-06-20 | 2015-07-14 | Microsoft Technology Licensing, Llc. | Generalized architecture to support representation of multi-transport devices |
US9219733B2 (en) | 2008-06-30 | 2015-12-22 | Microsoft Technology Licensing, Llc | Software-based aliasing for accessing multiple shared resources on a single remote host |
US8706887B2 (en) * | 2009-06-29 | 2014-04-22 | Sap Ag | Multi-channel sessions |
WO2011062596A1 (en) * | 2009-11-23 | 2011-05-26 | Hewlett-Packard Development Company, L.P. | Binding resources in a shared computing environment |
EP2569916B1 (en) * | 2010-05-09 | 2016-01-20 | Citrix Systems Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
-
2010
- 2010-12-06 US US12/960,577 patent/US8806030B2/en active Active
-
2011
- 2011-12-05 CN CN201110416650.0A patent/CN102571756B/zh active Active
- 2011-12-06 WO PCT/US2011/063613 patent/WO2012078689A2/en active Application Filing
- 2011-12-06 BR BR112013013794A patent/BR112013013794A8/pt not_active Application Discontinuation
- 2011-12-06 AU AU2011338481A patent/AU2011338481B2/en active Active
- 2011-12-06 RU RU2013125953/08A patent/RU2595752C2/ru not_active IP Right Cessation
- 2011-12-06 JP JP2013543291A patent/JP5882353B2/ja active Active
- 2011-12-06 CA CA2817051A patent/CA2817051A1/en not_active Abandoned
- 2011-12-06 EP EP11846068.2A patent/EP2649531B1/en active Active
- 2011-12-06 KR KR1020137014328A patent/KR101811087B1/ko active IP Right Grant
- 2011-12-06 MX MX2013006422A patent/MX2013006422A/es active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5301280A (en) * | 1989-10-02 | 1994-04-05 | Data General Corporation | Capability based communication protocol |
RU2374790C2 (ru) * | 2004-03-16 | 2009-11-27 | Нокиа Корпорейшн | Улучшение режима пакетной передачи при запросе ресурсов коммутируемых каналов |
EP1727056A2 (en) * | 2005-05-25 | 2006-11-29 | Microsoft Corporation | Data communication protocol |
Also Published As
Publication number | Publication date |
---|---|
KR20130126630A (ko) | 2013-11-20 |
US20120144019A1 (en) | 2012-06-07 |
JP5882353B2 (ja) | 2016-03-09 |
AU2011338481A1 (en) | 2013-05-30 |
MX2013006422A (es) | 2013-07-03 |
EP2649531B1 (en) | 2018-08-01 |
BR112013013794A8 (pt) | 2017-09-19 |
AU2011338481B2 (en) | 2016-09-29 |
EP2649531A2 (en) | 2013-10-16 |
US8806030B2 (en) | 2014-08-12 |
BR112013013794A2 (pt) | 2016-09-13 |
JP2014501978A (ja) | 2014-01-23 |
EP2649531A4 (en) | 2014-12-10 |
CN102571756A (zh) | 2012-07-11 |
RU2013125953A (ru) | 2014-12-10 |
WO2012078689A2 (en) | 2012-06-14 |
CN102571756B (zh) | 2016-03-23 |
WO2012078689A3 (en) | 2012-09-07 |
KR101811087B1 (ko) | 2017-12-20 |
CA2817051A1 (en) | 2012-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2595752C2 (ru) | Многоканальные соединения в сеансах файловой системы | |
US10932313B2 (en) | Wireless connection switching method and terminal | |
US6687758B2 (en) | Port aggregation for network connections that are offloaded to network interface devices | |
US9843522B2 (en) | Efficient mechanism to improve data speed between systems by MPTCP and MIMO combination | |
EP2803244B1 (en) | Methods and apparatus for establishing a tunneled direct link setup (tdls) session between devices in a wireless network | |
EP2538637A2 (en) | Multi-path transmission control protocol proxy service | |
CN109088799B (zh) | 一种客户端接入方法、装置、终端以及存储介质 | |
CN106411767A (zh) | 通过远程直接存储器访问的任意大小的传输操作 | |
JP2006190280A (ja) | バスの抽象化 | |
WO2023005747A1 (zh) | 数据传输方法、装置及分布式存储系统 | |
Hesmans et al. | An enhanced socket API for Multipath TCP | |
KR20140004653A (ko) | 제 3의 주체가 개시하는 원격 주체들 사이의 통신 | |
EP2260627B1 (en) | Transport independent architecture | |
US10291717B2 (en) | Prioritizing VDI sessions and redirected devices in software defined networks | |
JP4527523B2 (ja) | サーバ選択方法およびサーバ選択方式およびサーバおよびクライアント端末 | |
US8886701B1 (en) | Network based software agent to allow dynamic resource access | |
JPWO2015098003A1 (ja) | 通信端末の接続制御方法 | |
Papageorgiou et al. | Dynamic M2M device attachment and redirection in virtual home gateway environments | |
JP2015165632A (ja) | 情報転送装置、情報転送方法およびプログラム | |
US9391850B2 (en) | Method and apparatus for quality-of-service (QoS) management | |
WO2024113776A1 (zh) | 数据传输方法以及相关设备 | |
Al-Madani et al. | A novel mobility-aware data transfer service (MADTS) based on DDS standards | |
CN114553886A (zh) | 数据传输方法和通信装置 | |
CN116264563A (zh) | 一种视频流转发方法、装置、存储介质及电子设备 | |
WO2010010424A1 (en) | Transport independent multicast architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
HZ9A | Changing address for correspondence with an applicant | ||
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20191207 |