KR101811087B1 - 파일 시스템 세션 내 다중채널 연결 - Google Patents

파일 시스템 세션 내 다중채널 연결 Download PDF

Info

Publication number
KR101811087B1
KR101811087B1 KR1020137014328A KR20137014328A KR101811087B1 KR 101811087 B1 KR101811087 B1 KR 101811087B1 KR 1020137014328 A KR1020137014328 A KR 1020137014328A KR 20137014328 A KR20137014328 A KR 20137014328A KR 101811087 B1 KR101811087 B1 KR 101811087B1
Authority
KR
South Korea
Prior art keywords
connection
server
session
transport
client
Prior art date
Application number
KR1020137014328A
Other languages
English (en)
Other versions
KR20130126630A (ko
Inventor
퀴보 주
데이비드 엠 크루세
매튜 조지
밍동 샹 (게리)
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20130126630A publication Critical patent/KR20130126630A/ko
Application granted granted Critical
Publication of KR101811087B1 publication Critical patent/KR101811087B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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

전송 계층(transport layer) 위의 프로토콜로부터 제어가능한 방식으로 하나의 파일 시스템 세션에서 리소스로 연결하기 위해 다수의 연결을 사용하는 다중-연결(multi-connection) 정보 시스템이 본 명세서에서 서술된다. 이 시스템은 또한 하나의 연결이 다수의 세션에 의해 공유되도록 한다. 다수의 트랜스포트 상에서 통신을 가능하게 하기 위해 다수의 연결에 세션이 바운딩될 수 있다. 세션의 초기 협상 동안, 클라이언트 및 서버는 세션 내에서 클라이언트 및 서버 간에 다수의 연결이 지원되는지 여부를 판정한다. 초기 연결을 수립한 후, 부가적 연결이 수립되고 기존의 세션에 바운딩될 수 있다. 다수의 연결은 대체작동 및/또는 로드 밸런싱을 위해 사용될 수 있다. 다중-연결 정보 시스템은 두 개의 특정 리소스 간 이용가능한 연결에 관한 정보 및 세션 내에 다수의 채널을 수립하기 위한 능력을 발견하기 위한 프로토콜을 제공한다.

Description

파일 시스템 세션 내 다중채널 연결{MULTICHANNEL CONNECTIONS IN FILE SYSTEM SESSIONS}
네트워크 상의 두 컴퓨터 간에 파일들, 프린터들 및 다른 리소스(resource)들을 공유하기 위한 여러 가지 기술들이 존재한다. 예컨대, 리소스들을 공유하기 위한 애플리케이션 계층(application-layer) 네트워크 프로토콜의 한 가지가 서버 메시지 블록(Server Message Block: SMB)이다. 두 컴퓨터 또는 다른 리소스들로 하여금 통신하는 것, 리소스로의 액세스(access)를 요청하는 것, (예컨대, 판독, 기록 등과 같이) 의도하는 리소스 액세스를 지정하는 것, 리소스들을 잠그는 것(lock) 등을 할 수 있도록 MICROSOFT TM WINDOWS TM 및 다른 운영 시스템(operating system)들에 의해 SMB가 사용된다. MICROSOFT TM WINDOWS TM Vista는 SMB 2.0을 도입하였는데, 이는 SMB 1.0의 커맨드 세트(command set)를 단순화하고 다른 많은 향상된 점들을 더하였다. MICROSOFT TM WINDOWS TM 7 및 Server 2008 R2는 SMB 2.1을 도입하였는데, 이는 기회적 잠금(opportunistic locking: oplocks) 및 다른 향상된 점들을 더하였다.
리소스의 원격 공유를 위한 프로토콜 대부분은 연결과 세션 간 일대일 관계(one-to-one relationship)를 상정한다. 세션(session)은 소정의 리소스를 액세스하기 위한 임의의 하나의 요청(request), 그리고 연결이 종료될 때까지의 그 리소스에 대한 후속 액세스로 된 일생(lifetime)을 나타낸다. 세션은 또한 특정 보안 주체(security principal) 및 그 세션 동안 인가된 액션(action)들을 판정하는 유효성-검증된 보안 크리덴셜(validated security credential)들과 연관될 수 있다. 연결(connection)은 전송 제어 프로토콜(Transmission Control Protocol: TCP) 또는 SMB와 같은 더 높은 레벨의 프로토콜이 커맨드(command)들을 수행하기 위해 통신할 수 있는 다른 종류의 연결을 포함할 수 있다. SMB 세션은 요청의 소스(source) 및 요청의 타겟(target) 간 TCP 연결을 개방하는 것(opening), 타겟 리소스를 액세스하기 위해 하나 이상의 SMB 커맨드를 송신하는 것 및 이어서 세션을 닫는 것(closing)을 통상 수반한다.
오늘날 많은 컴퓨터가 그 컴퓨터들 사이에 다수의 이용가능한 연결이 있는 방식으로 연결된다. 예컨대, 데이터센터 서버는 종종 둘 이상의 네트워크 인터페이스 카드(Network Interface Card: NIC)로 구축되어 하나가 작동하지 않더라도 네트워크 트래픽이 다른 것을 거쳐 송신될 수 있다. 클라이언트 컴퓨터는 무선 네트워크 연결 (Wi-Fi), 블루투스 연결, 유선식 이더넷(wired Ethernet) (예컨대, 로컬 영역 네트워크(Local Area Network: LAN)) 연결 등을 포함할 수 있다. 서버 컴퓨터는 파이버 채널(Fibre Channel) 및 유선식 이더넷 등을 통한 저장 영역 네트워크(storage area network: SAN), 연결을 포함할 수 있다. 이러한 연결들의 일부 또는 전부는 동일한 리소스들의 일부 또는 전부로의 연결성을 제공할 수 있다.
유감스럽게도, 그러한 이용가능한 연결 정보는 네트워크를 사용하는 애플리케이션 또는 애플리케이션 계층 프로토콜이 일반적으로 이용할 수 있지 않다. 서버로의 연결을 요청하는 애플리케이션은 그러한 연결을 만들고자 거치는 디바이스/프로토콜을 선택할 모든 책임을 더 낮은 레벨의 네트워크 계층에 통상적으로 넘기며, 그 네트워크 계층은 애플리케이션의 커맨드를 수행하기 위해 하나의 연결을 만들 것이다. 연결이 고장 나면, 애플리케이션이나 네트워크 계층은 세션을 다시 셋업하는 것에 의해 다른 연결을 시도할 수 있거나 수동 개입(manual intervention)을 수반하여 그렇게 할 수 있다. 하나의 연결을 사용하는 것은 그 연결이 어떠한 이유에서든 고장 나면 종료되는(terminated) 취약한 연결로 이어지고, 다수의 네트워크에 의해 제공되는 총 대역폭(aggregate bandwidth)을 지렛대로 삼아 이익을 거둘 수 없다. 네트워크 파일 시스템(Network File System: NFS)과 같은 몇몇 프로토콜은 스루풋(throughput)을 개선하기 위해 데이터로의 여분의 경로를 사용하는 것을 감안하는 병렬 확장(parallel extension)(예컨대, pNFS)을 포함하나, 이들은 연결을 관리하는 데 사용될 수 있는 더 높은 레벨로의 정보는 아무것도 제공하지 않는다. 또 다른 예는 백워드 호환성(backwards compatibililty)을 위해 더 높은 계층에 대해서는 검출되지 않은 채로 남아 있는 특정 목적을 갖는 MPTCP(Multipath TCP) 프로토콜이다. 이러한 프로토콜들의 기능은 더 높은 계층의 제어로부터 완전히 벗어나고, 네트워크 계층은 스스로 가장 빠른 연결을 자동적으로 선택하거나 대체작동(failover), 스루풋 또는 다른 목적을 위한 연결의 가장 효율적인 사용을 제공하지 못할 수 있다.
SMB 애플리케이션 계층 프로토콜과 같은 전송 계층(transport layer) 위의 프로토콜로부터 제어가능한 방식으로 하나의 파일 시스템 세션에서 리소스로 연결하기 위해 다수의 연결을 사용하는 다중-연결(multi-connection) 정보 시스템이 본 명세서에서 서술된다. 이 시스템은 또한 하나의 연결이 다수의 세션에 의해 공유되도록 할 수 있다. 특정 세션을 특정 연결에 바인딩(binding)하는 것을 나타내기 위해 채널의 개념이 도입된다. 세션들은 다수의 트랜스포트(transport) 상에서의 통신을 가능하게 하기 위해 다수의 연결에 바인딩될 수 있다. 세션의 초기 협상(negotiation) 동안, 클라이언트 및 서버는 세션 내에서 클라이언트와 서버 간에 다수의 연결이 지원되는지 여부를 판정할 수 있다. 초기 연결을 수립(establishing)한 후, 부가적 연결이 수립되고 기존의 세션에 바인딩될 수 있다. 다수의 연결은 대체작동 및/또는 로드 밸런싱(load balancing)을 위해 사용될 수 있다. 다중-연결 정보 시스템은 세션 내에 다수의 채널을 수립하는 능력(capability)을 발견(discovering)하기 위한 프로토콜을 제공한다. 그러한 프로토콜은, 두 개의 특정 리소스 간 이용가능한 연결에 관하여, 또한 그 연결의 서버 측 및 클라이언트 측이 세션 내에서 다수의 채널을 지원하는지 여부에 관하여도 마찬가지로, 정보를 제공한다. 이와 같이, 다중-연결 정보 시스템은 전송 계층 위의 계층들에서 하나의 세션을 위한 다수의 연결을 지능적으로 선택하고 사용하는 방식을 제공한다.
이 요약은 이하 발명의 상세한 설명에서 추가적으로 서술되는 개념들 중 선택된 것을 단순화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 발명 대상(subject matter)의 중요 특징 또는 필수적 특징을 식별시키고자 의도되지 않고, 청구된 발명 대상의 범주를 제한하기 위해 사용되는 것으로 의도되지도 않는다.
도 1은, 일 실시예에서, 다중-연결 정보 시스템의 컴포넌트(component)들을 도시하는 블록 다이어그램(block diagram)이다.
도 2는, 일 실시예에서, 세션을 개시하고 트랜스포트 정보를 수신하기 위한 다중-연결 정보 시스템의 프로세싱을 도시하는 플로우 다이어그램(flow diagram)이다.
도 3은, 일 실시예에서, 이전에 수립된 세션에 부가적 연결을 부가하기 위한 다중-연결 정보 시스템의 프로세싱을 도시하는 플로우 다이어그램이다.
도 4는, 일 실시예에서, 다중-연결 정보 시스템을 사용하는 다수의 연결의 셋업을 도시하는 네트워크 패킷 다이어그램이다.
도 5는, 일 실시예에서, 다중-채널 정보 시스템을 사용하는 세션과 연결 간 가능한 다대다(many-to-many) 관계를 도시하는 블록 다이어그램이다.
SMB 애플리케이션 계층 프로토콜과 같은, 개방형 시스템 상호연결(Open Systems Interconnection: OSI) 모델 내 전송 계층 위의 프로토콜로부터 제어가능한 방식으로 하나의 파일 시스템 세션에서 리소스로 연결하기 위해 다수의 연결을 사용하는 다중-연결 정보 시스템이 본 명세서에서 서술된다. 이 시스템은 또한 하나의 연결이 다수의 세션에 의해 공유되도록 할 수 있다. 특정 세션을 특정 연결에 바인딩하는 것을 나타내기 위해 채널의 개념이 도입된다. 세션들은 다수의 트랜스포트 상에서의 통신을 가능하게 하기 위해 다수의 연결에 바인딩될 수 있다. 세션의 초기 협상 동안, 클라이언트 및 서버는 세션 내에서 클라이언트와 서버 간에 다수의 연결이 지원되는지 여부를 판정할 수 있다. 초기 연결을 수립한 후, 부가적 연결이 수립되고 기존의 세션에 바인딩될 수 있다. 다수의 연결은 대체작동 및/또는 로드 밸런싱을 위해 사용될 수 있다. 다중-연결 정보 시스템은 세션 내에 다수의 채널을 수립하는 능력을 발견하기 위한 프로토콜을 제공한다. 그러한 프로토콜은, 두 개의 특정 리소스 간 이용가능한 연결에 관하여, 또한 그 연결의 서버 측 및 클라이언트 측이 세션 내에서 다수의 채널을 지원하는지 여부에 관하여도 마찬가지로, 정보를 제공한다.
클라이언트 및 서버(예컨대, SMB 클라이언트 및 서버) 간 초기 세션의 수립 동안, 클라이언트 및 서버 모두가 세션 내에서 다수의 연결을 지원함을 나타내기 위해 협상이 일어날 수 있다. 이는 다수의 연결에 대한 지원을 제공하는 프로토콜 버전을 협상하는 것을 포함할 수 있다. 서버 트랜스포트 인터페이스(server transport interface)들의 목록을 획득하기 위해 클라이언트는 파일 시스템 제어 메시지(file system control message: FSCTL) 또는 다른 애플리케이션 프로그래밍 인터페이스(application-programming interface: API)를 호출(invoke)할 수 있다. 대안적인 실시예에서, 클라이언트는 서버 네트워크 인터페이스 및 능력에 관한 정보를 더 많이 얻기 위해 DNS 서비스에 대해 질의(query)할 수 있다. 클라이언트는 또한 각 서버 IP 어드레스와 연관된 로컬 인터페이스(local interface)들을 찾고 타입(type) 및 스피드(speed)를 포함하여 로컬 인터페이스들에 관한 부가적 정보를 모을 수 있다. 클라이언트는 이어서 초기 연결을 수립하기 위한 인터페이스를 선택할 수 있다. 몇몇 구현예에서, 클라이언트는 초기 연결을 우선 수립하고 이어서 다른 이용가능한 트랜스포트에 관해 서버와 정보를 협상하기 위해 그러한 연결을 사용한다. 부가적 채널의 수립에 있어서, 클라이언트는 타입 및 스피드에 의해 다수의 인터페이스를 정렬하여 최상의 인터페이스를 판정하고 그러한 최상의 인터페이스를 사용하여 부가적 채널을 수립할 수 있다. 클라이언트가 다수의 채널을 수립한 이후, 타입 및 스피드에 기초하여 더 높이 순위가 매겨진 채널들의 사용을 위해, 최상의 인터페이스 내에 있지 않은 몇몇 채널은 선택적으로 차단되거나(torn down) (단순히 사용되지 않거나) 할 수 있다. 이와 같이, 다중-연결 정보 시스템은 전송 계층 위의 계층들에서 하나의 세션을 위한 다수의 연결을 지능적으로 선택하고 사용하는 방식을 제공한다.
도 1은, 일 실시예에서, 다중-연결 정보 시스템의 컴포넌트들을 도시하는 블록 다이어그램이다. 시스템(100)은 세션 개시 컴포넌트(110), 채널 발견 컴포넌트(120), 채널 선택 컴포넌트(130), 바인딩 컴포넌트(140), 커맨드 수신 컴포넌트(150), 커맨트 라우팅(routing) 컴포넌트 및 대체작동 핸들링 컴포넌트(170)를 포함한다. 이들 컴포넌트 각각은 본 명세서에서 더 상세히 서술된다.
세션 개시 컴포넌트(110)는 하나 이상의 리소스를 공유하기 위해 클라이언트 및 서버 간 세션을 개시하기 위한 요청을 수신한다. 예컨대, 컴포넌트(110)는 애플리케이션(그 애플리케이션이 파일 또는 다른 리소스를 액세스하기 위해 연결하기를 원하는 서버를 식별하는 클라이언트 상에서 실행 중임)으로부터 요청을 수신할 수 있다. 세션 개시 컴포넌트(110)는, 예를 들어 클라이언트 및 서버 간 통신을 개방하는 "협상" 메시지("Negotiate" message)와 같은 SMB 초기 요청을 수신할 수 있다. 세션 개시 컴포넌트(110)는 애플리케이션 요청에 응답하여 세션을 생성하며, 리소스로의 제한된 네트워크 액세스는 어떤 것이든 서버가 준수할 수 있도록 요청 사용자의 인증 정보와 같은 보안 정보를 제공할 수 있다.
채널 발견 컴포넌트(120)는 클라이언트 및 서버 간 통신을 위해 이용가능한 하나 이상의 연결 트랜스포트를 판정한다. 클라이언트 및 서버는 이더넷(Ethernet) 및 와이파이(Wi-Fi)와 같은 여러 가지 트랜스포트에 의해 연결될 수 있고, 또한 두 개의 이더넷 NIC와 같이 동일한 트랜스포트의 여분의 연결에 의해서도 마찬가지로 연결될 수 있다. 덧붙여, 몇몇 연결 트랜스포트는 다른 연결 트랜스포트를 넘어서 어떤 연결 트랜스포트의 스피드에 영향을 미치는 원격 직접 메모리 액세스(Remote Direct Memory Access: RDMA)와 같은 능력들을 지원할 수 있다. 채널 발견 컴포넌트(120)는 이러한 타입의 정보를 모으고 수집하여 클라이언트가 적절한 트랜스포트를 선택하는 데 사용하도록 한다. 컴포넌트(120)는 서버로의 초기 연결을 사용하여 서버 트랜스포트 인터페이스들을 식별하고 연결들을 위한 다수의 채널을 협상할 수 있다. 컴포넌트(120)는 또한 클라이언트 및 서버 외부에서 정보를 모을 수 있는데, 예컨대 서버가 이용할 수 있는 연결 타입에 관한 정보에 대해 DNS 서버에 질의하는 것이다.
채널 선택 컴포넌트(130)는 판정된 이용가능한 연결 트랜스포트로부터 하나 이상의 연결 트랜스포트를 선택하여 클라이언트 및 서버 간 세션에 바인딩한다. 몇몇 경우에서, 클라이언트는 서버로의 제1 연결을 수립할 것이고, 이어서 소정의 상황(condition)이 존재함을 발견할 때 차후에 서버로의 부가적 연결을 수립하도록 제1 연결을 통해 발견된 정보를 사용할 것이다. 예를 들어, 그러한 상황은 초기 연결 상에서 시간이 오래 걸릴 서버로 클라이언트가 대량의 데이터를 송신하고 있음을 검출하는 것을 포함할 수 있다. 그 상황은 또한 클라이언트가 클라이언트 및 서버 간 세션에 대한 신뢰성에 높은 기대를 가지고 있는바 여분의 연결이 대체작동에 도움이 될 수도 있다고 판정하는 것을 포함할 수 있다. 채널 선택 컴포넌트(130)는 시스템(100)의 애플리케이션 또는 특정 구현에 의해 수정 내지 구성되어 특정 구현에 중요한 목표 및 우선사항에 기초하여 연결을 선택할 수 있다. 예를 들어, 몇몇 구현예는 가장 빠른 트랜스포트 연결 상에서 우선적으로 연결을 하는 것을 선호할 수 있는 반면, 다른 구현예는 빠른 연결을 소정의 타입의 네트워크 트래픽을 위해 보류(reserve)하고 다른 타입의 트래픽을 위해서는 더 느린 또는 우선순위가 더 낮은 연결을 사용할 수 있다.
바인딩 컴포넌트(140)는 선택된 연결 트랜스포트를 세션과 연관시킨다. 세션은 클라이언트 및 서버 간의 특정한 일련의 통신들과 연관된 보안 주체에 관한 정보를 포착(capture)한다. 세션은 또한 특정한 일련의 통신들을 위해 이용가능한 능력 또는 커맨드를 정의하는 다른 메타데이터(metadata)를 포함할 수 있다. 선택된 연결 트랜스포트를 세션에 바인딩하는 것은 그 연결 트랜스포트가 그러한 세션을 위해 사용되는 데 이용가능하도록 하며, 그 세션과 함께 사용될 연결을 마련하기 위해 임의의 보안 크리덴셜 또는 다른 교환을 서버와 협상할 수 있다. 하나의 세션이 다수의 연결에 바인딩될 수 있는 것처럼 다수의 세션은 또한 특정 연결에 바인딩될 수 있음에 유의하라. 연결은 클라이언트 및 서버 간에 통신이 다니는 도관(conduit)을 제공하는 한편, 세션은 애플리케이션 계층이 성취하고자 시도 중인 것 또는 행하도록 허용된 것이 무엇인가라는 맥락에서 각 통신에 의미론적인 뜻을 준다.
커맨드 수신 컴포넌트(150)는 클라이언트 및 서버 간 세션에 관련된 하나 이상의 커맨드를 수신한다. 클라이언트 및 서버 간 통신을 할 수 있으려는 목적은 클라이언트가 리소스를 액세스하기 위해 커맨드를 송신하는 것이다. 예를 들어, 클라이언트는 파일을 개방하기 위해 "개방" 요청("open" request)을 송신하거나 그 클라이언트가 파일을 수정하는 동안 다른 클라이언트들이 그 파일을 액세스하는 것을 방지하기 위해 "잠금" 요청("lock" request)을 송신할 수 있다. 커맨트 수신 컴포넌트(150)는 이러한 커맨드들을 수신하고 커맨드 라우팅 컴포넌트(160)를 호출하여 커맨드를 송신할 하나 이상의 트랜스포트를 판정한다. 몇몇 실시예에서, 응답은 대응하는 요청이 전해진 것과 동일한 트랜스포트 연결 상에서 송신될 것임을 시스템(100)이 보증한다. 이와 같이, 특정 트랜스포트 연결로 특정 커맨드를 라우팅하는 것에 의해, 클라이언트는 또한 요청에 관련된 데이터가 어떻게 클라이언트에게 반환될 것인지 선택할 수 있다. 대형 데이터 및 변화하는 연결 스피드에 대하여 적절히 선택하는 것은 동작의 전체 지속기간(duration)에 극적인 영향을 미친다.
커맨드 라우팅 컴포넌트(160)는 특정 커맨드를 송신할 세션에 바운딩된 연결 트랜스포트를 선택한다. 커맨드 라우팅 컴포넌트(160)는 커맨드들을 쪼개어 나누고(split) 다수의 트랜스포트를 사용하여 커맨드를 수행하도록 하는데, 예컨대 큰 파일을 검색해내거나(retireving) 큰 파일을 송신하기 위해서이다. 컴포넌트(160)는 또한 몇몇 커맨드를 위해 빠른 연결 트랜스포트를 선택하는 반면 더 낮은 우선순위의 커맨드를 위해서는 더 느리거나 덜 자주 활용되는 연결 트랜스포트를 선택할 수 있다. 커맨드 라우팅 컴포넌트(160)는 또한, 예컨대 기존의 바운딩된 연결 상에서는 너무 느릴 큰 파일을 이송하기 위한 요청의 수신 시에, 부가적인 이용가능한 트랜스포트 연결이 세션에 바운딩되어야 하는지 판정할 수 있다. 커맨드 라우팅 컴포넌트(160)는 또한 임박한 연결 유지(maintenance) 내지 정지(outages)를 검출할 수 있고 신뢰성을 보장하기 위해 부가적 연결이 이루어지도록 할 수 있다.
대체작동 핸들링 컴포넌트(170)는 세션으로부터 특정 트랜스포트 연결이 연결해제되는 것(disconnection)을 핸들링한다. 예를 들어, 네트워크 선(network wire)이 끊어질 수 있거나, NIC가 고장 날 수 있거나, 또는 다른 상황들이 이전에 작동했던 연결이 연결해제되는 것으로 이어질 수 있다. 대체작동 핸들링 컴포넌트(170)는 다른 연결이 이용가능한지 판정하고, 가령 부가적 채널을 선택하기 위한 채널 발견 컴포넌트(120) 및 연결해제되지 않은 연결로 커맨드를 라우팅하기 위한 커맨드 라우팅 컴포넌트(160)와 같은 다른 컴포넌트를 호출할 수 있다. 대체작동 핸들링 컴포넌트(170)는 또한 연결해제된 연결 트랜스포트 상에 큐잉되었던(queued) 임의의 커맨드를 재진행하는 것(replaying) 및 다른 트랜스포트 연결 상에서 서버의 응답을 기다리는 것을 핸들링할 수 있는바 고장(failure)에도 불구하고 커맨드가 신뢰성 있게 수행된다. 이러한 방식으로 시스템(100)은 더 높은 신뢰성을 제공한다.
다중-연결 정보 시스템이 구현되는 컴퓨팅 디바이스는 중앙 프로세싱 유닛(central processing unit), 메모리, 입력 디바이스(예컨대, 키보드 및 포인팅 디바이스), 출력 디바이스(예컨대, 디스플레이 디바이스) 및 저장 디바이스(예컨대, 디스크 드라이브 또는 다른 비휘발성 저장 매체)를 포함할 수 있다. 메모리 및 저장 디바이스는 그러한 시스템을 구현하거나 가능하게 하는 컴퓨터 실행가능 명령어(예컨대, 소프트웨어)로 인코딩될 수 있는 컴퓨터 판독가능 저장 매체이다. 덧붙여, 데이터 구조 및 메시지 구조가 가령 통신 링크에서의 신호와 같이 데이터 전송 매체를 통해 저장되거나 전송될 수 있다. 인터넷, 로컬 영역 네트워크, 광역 네트워크(wide area network), 점대점 다이얼업 연결(point-to-point dial-up connection), 이동전화 네트워크(cell phone network) 등과 같은 여러 통신 링크가 사용될 수 있다.
위 시스템의 실시예들은 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드(handheld) 내지 랩톱(laptop) 디바이스, 다중프로세서(multiprocessor) 시스템, 마이크로프로세서 기반 시스템, 프로그램가능 가전 제품(programmable consumer electronics), 디지털 카메라, 네트워크 PC, 미니컴퓨터, 메인프레임(mainframe) 컴퓨터, 이러한 시스템 내지 디바이스 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 셋톱박스, 시스템 온 칩(system on a chip: SOC) 등을 포함하는 여러 동작 환경에서 구현될 수 있다. 컴퓨터 시스템은 이동전화, 개인용 디지털 보조장치(personal digital assitant), 스마트폰, 개인용 컴퓨터, 프로그램가능 가전 제품, 디지털 카메라 등일 수 있다.
위 시스템은, 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는, 예컨대 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 맥락에서 서술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크(task)를 수행하거나 특정 추상 데이터 타입(abstract data type)을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 여러 실시예에서 원하는 대로 조합되거나 분배될 수 있다.
도 2는, 일 실시예에서, 세션을 개시하고 트랜스포트 정보를 수신하기 위한 다중-연결 정보 시스템의 프로세싱을 도시하는 플로우 다이어그램(flow diagram)이다. 블록(210)에서 시작하여, 시스템은 클라이언트 및 서버 간 세션을 개시하기 위한 요청을 애플리케이션으로부터 수신한다. 애플리케이션은 운영 시스템 컴포넌트 또는 다른 서비스 레벨 애플리케이션을 포함할 수 있고, 또한 통상의 클라이언트 애플리케이션을 포함할 수 있음은 물론이다. 많은 타입의 애플리케이션 및 서비스가 파일, 프린터 또는 다른 리소스를 공유하기 위해 서버에 연결된다. 위 요청을 수신하면, 시스템은 세션을 셋업하기 시작하고, 클라이언트 및 서버 간에 통신하는 데 사용되는 네트워크 프로토콜의 이용가능한 다이얼렉트(dialect)를 협상하기 위해서, 또한 호환성을 보장하고자 클라이언트 및 서버의 다른 능력을 검출하기 위해서도, 하나 이상의 패킷을 서버로 송신할 수 있다. 이러한 프로세스 동안, 서버는 클라이언트가 스루풋의 증가, 대체작동의 개선 등을 하기 위해 본 명세서에서 서술된 기술들을 지렛대로 삼아 이익을 거둘 수 있도록 서버가 다중-연결 세션을 지원함을 나타낼 수 있다.
블록(220)에서 계속하여, 시스템은 클라이언트 및 서버 간에 커맨드를 송신하기 위한 초기 트랜스포트를 선택한다. 시스템은 디폴트로 가령 제1 NIC에서의 이더넷 연결과 같은 제1 연결에 대해 하나의 타입의 트랜스포트로 될 수 있고, 애플리케이션에 의해 지정되는(application-specified) 기준에 기초하여 선택할 수도 있다. 그러한 기준은 가장 빠른 연결, 대역폭이 가장 큰 연결, 가장 강건한 연결 또는 애플리케이션에 유용한 임의의 다른 기준을 선택할 것을 나타낼 수 있다. 블록(225)에서 계속하여, 클라이언트는 서버로의 초기 연결을 수립한다. 클라이언트 및 서버는 이용가능한 트랜스포트에 관한 정보를 공유하기 때문에, 클라이언트는 임의의 특정 세션에 대해 적절한 연결을 택하는 것을 할 수 있다.
블록(230)에서 계속하여, 시스템은 클라이언트 및 서버 간 제2 연결을 수립하기 위한 하나 이상의 이용가능한 트랜스포트를 판정한다. 시스템은 이용가능한 트랜스포트를 판정하는 내부 및 외부 수단을 모두 가진다. 외부 수단은 클라이언트/서버 연결의 외부에 있는 것으로서, 예컨대 별개의 DNS 서버, 데이터센터 메타데이터 또는 다른 정보에 대해 질의하는 것이다. 내부 수단은 클라이언트와 서버 간의 연결 내에 있는 것으로서, 예컨대 이용가능한 디바이스 및 트랜스포트를 식별하기 위해 능력 요청 내지 질의를 송신하는 것이다. 클라이언트는 클라이언트 운영 시스템에 대해 질의하는 것에 의해 또는 초기 연결 상에서 서버에 대해 질의하는 것에 의해 로컬 트랜스포트를 식별할 수 있다. 다중-채널 정보 시스템은 이용가능한 트랜스포트의 목록 및 어떤 상황에서 각 트랜스포트를 사용할 것인지 판정하는 데 도움이 될 수 있는 그러한 트랜스포트에 관해 발견되는 임의의 메타데이터를 따른다.
블록(240)에서 계속하여, 시스템은 선택된 트랜스포트를 통해 제2 연결을 수립한다. 예를 들어, 프로토콜이 SMB라면, 클라이언트는 SMB 연결을 셋업하는 선택된 트랜스포트 상에서 협상 메시지를 송신할 수 있다. 개개의 연결은 그것이 오늘날 시스템들에서 나타나는 것처럼 나타날 수 있는데, 바인딩 단계는 하나의 연결을 하나의 세션으로 결합한다. 연결을 수립하는 것은, 임의의 연결 셋업을 수행하고 그 연결을 사용하는 데 필요한 임의의 메타데이터를 모으기 위해 몇 개의 패킷이 클라이언트 및 서버 사이에서 왔다갔다 하는 것을 수반할 수 있다.
블록(250)에서 계속하여, 시스템은 수립된 제2 연결을 초기 연결의 세션에 바인딩한다. 바인딩은 세션이 연결과 연계되었음(affiliated) 및 시스템이 커맨드를 송신하기 위해 연결을 사용할 수 있음을 시스템에게 알린다. 시스템은 어느 연결이 어느 세션에 바인딩되어 있는지 추적(track)할 수 있는바, 세션이 닫히거나 연결이 연결해제될 때 시스템이 적절히 정리해버릴 수(clean up) 있다. 연결을 사용하는 모든 세션이 끝난 후, 시스템은 그 연결을 닫을 수 있다. 세션에 바운딩된 모든 연결이 연결해제된 후 유사하게 시스템은 그 세션을 정리해버릴 수 있다.
블록(260)에서 계속하여, 시스템은 세션에 바인딩되어 있는 수립된 연결 어느 것을 통해서든 애플리케이션으로부터 수신된 커맨드를 송신한다. 시스템은 다수의 그런 연결 중에서 현재의 커맨드에 적합한 연결을 고르도록 선택할 수 있다. 시스템은 대역폭, 레이턴시(latency), 현재 큐의 깊이(queue depth), (예컨대, 이동 디바이스용) 배터리 전력, 우선순위 또는 커맨드를 핸들링하기 위한 연결을 선택하는 임의의 다른 요인들을 고려할 수 있다. 시스템은 또한 동작의 속도를 높이고자 다수의 연결을 동시에 사용하기 위해 커맨드를 쪼개어 나눌 수 있다. 블록(270)에서 계속하여, 시스템은 커맨드를 송신하는 데 사용되는 것과 동일한 트랜스포트를 통해 송신된 커맨드에 대한 응답을 수신한다. 수신된 응답은 커맨드가 성공적이었는지 나타낼 수 있고, 요청된 데이터 또는 특정 요청에 대해 정의된 임의의 다른 응답을 포함할 수 있다.
판단 블록(280)에서 계속하여, 더 많은 커맨드가 있거나 세션이 닫혀져 있지 않다면, 시스템은 블록(260)으로 순환(loop)하여 더 많은 커맨드를 송신하고, 그렇지 않으면 시스템은 완료한다. 시스템은 이런 방식으로 계속하여, 이용가능한 연결 상에서 세션과 연관된 커맨드를 송신한다. 부가적 연결이 커맨드를 수행하는 데 유용할 것이라고 임의의 시점에서 시스템이 판정하면, 시스템은 부가적 연결을 수립하고 커맨드가 사용할 세션에 바인딩할 수 있다. 블록(280) 이후, 이 단계들은 끝난다.
도 3은, 일 실시예에서, 이전에 수립된 세션에 부가적 연결을 부가하기 위한 다중-연결 정보 시스템의 프로세싱을 도시하는 플로우 다이어그램이다. 도 3의 단계는 하나의 연결로부터 다수의 연결로 세션을 확장하기 위한 역치(threshold)에 도달하거나 특정 상황이 검출된 후 도 2의 단계 이후에 있을 수 있다. 예를 들어, 시스템은 다수의 연결 상에서 더 빨리 완료될 대용량 파일 전송을 검출할 수 있다.
블록(310)에서 시작하여, 시스템은, 클라이언트 및 서버 간에 적어도 하나의 바운딩된 연결을 이미 가진, 이미 수립된 세션에 대해 부가적 연결을 수립하기 위한 상황을 검출한다. 그러한 상황은 기존의 연결의 대역폭을 초과하는 것, 기존의 연결 상에서 레이턴시가 너무 높은 것, 곧 있을 커맨드(대형 데이터를 요청하거나 송신함)를 위한 부가적 대역폭을 필요로 하는 것 등을 포함할 수 있다. 그러한 상황을 검출할 때, 시스템은 세션에 부가적 연결을 부가하기 위해 다음의 단계를 수행한다.
블록(320)에서 계속하여, 시스템은 이전에 발견된 트랜스포트 리스트로부터 부가적 트랜스포트를 선택한다. 시스템은 DNS 정보에 대해 질의함으로써 서버로의 능력 요청을 통해 또는 클라이언트 및 서버를 연결하는 방법을 발견하기 위한 임의의 다른 메커니즘을 통해 트랜스포트를 발견할 수 있다. 시스템은 이용가능한 트랜스포트들을 정렬하고/하거나 발견(discovery) 동안 수신된 특성들에 기초하여 소정의 트랜스포트를 선택할 수 있다. 예를 들어, 시스템은 대역폭이 큰 연결, 이용가능성이 큰 연결, 현재 유휴(idle)인 연결 등을 선호할 수 있다.
블록(330)에서 계속하여, 시스템은 선택된 트랜스포트를 통해 연결을 수립한다. 연결을 수립하는 것은 SMB 협상 시퀀스와 같은 세션 프로토콜 협상뿐만 아니라 가령 TCP/IP를 통해 전송 계층 연결을 수립하는 것을 포함할 수 있다. 시스템은 또한 수립된 연결 상에서 메타데이터를 교환하여 연결 타입을 확인하고 그 연결을 사용하기 위한 임의의 셋업 정보(예컨대, 연결이 가령 선택적 확인응답(acknowledgement) 등과 같은 소정의 특징을 지원하는지)를 수신할 수 있다.
블록(340)에서 계속하여, 시스템은 새로 수립된 연결을 기존의 세션에 바인딩하여 세션이 다수의 이용가능한 연결(커맨드를 송신하는 경우 그로부터 선택함)을 가지도록 한다. 바인딩은 다른 세션과 이미 연관되어 있는 연결을 현재의 세션에 연관시킬 수 있는바, 이 세션들은 모두 그 연결을 지렛대로 삼아 이익을 거둘 수 있다. 바인딩은 또한 세션에게 연결에 관하여 알리는바, 세션이 닫힌 경우 세션 관리 로직은 연결을 바인딩해제(unbind)하고/하거나 닫기 위해 적절한 정리(cleanup) 단계를 수행할 수 있다.
블록(350)에서 계속하여, 시스템은 서버(이제 그 서버로의 연결이 다수 있음)로 가게 되어 있는 애플리케이션 레벨 커맨드를 수신한다. 애플리케이션은 파일을 개방하라고 요청하거나, 공유된 프린터에 프린트하라고 요청하거나, 리소스에 대한 기타 공통적이고 공유된 원격 사용을 수행할 수 있다. 운영 시스템 또는 다른 서비스 코드는 하나 이상의 애플리케이션 프로그래밍 인터페이스(application programming interface: API)(이를 통해 애플리케이션은 서버에 커맨드를 송신하기 위해 시스템을 호출할 수 있음)를 제공할 수 있다.
블록(360)에서 계속하여, 시스템은 수신된 커맨드를 송신할 하나 이상의 이전 연결 및 새로 수립된 연결 중에서 하나 이상의 트랜스포트를 선택한다. 대용량의 데이터에 대한 요청과 같이 하나 이상의 역치 조건이 충족되지 않는 한, 시스템은 커맨드를 디폴트(default) 연결에 라우팅할 수 있다. 더 규모가 큰 요청을 수신할 때, 시스템은 더 큰 대역폭의 연결을 선택하거나 커맨드에 의해 지정된 동작을 더 빨리 완료하기 위해 다수의 연결을 사용하고자 커맨드를 쪼개어 나눌 수 있다. 다른 예로서, 연결이 중단되고 애플리케이션에 대해 투명한(transparent) 순조로운 대체작동의 한 방법으로서 대안의 연결을 사용하는 경우를 시스템이 검출할 수 있다. 블록(360) 이후, 이 단계들은 끝난다.
몇몇 실시예에서, 다중-연결 정보 시스템은 운영 시스템 내에 파일 시스템 API를 제공하는데, 이를 통해 클라이언트에서의 애플리케이션 및 서비스는 원격 서버의 이용가능한 네트워크 인터페이스에 관한 정보를 요청할 수 있다. 예를 들어, MICROSOFT TM WINDOWS TM는 하나 이상의 파일 시스템과 상호작용하기 위해 파일 시스템 제어 메시지(file system control message: FSCTL)들을 사용한다. 그러한 시스템은 원격 서버의 활성(active) 네트워크 인터페이스를 요청하기 위한 커맨드인 FSCTL_LMR_QUERY_TRANSPORT_INFO 메시지를 부가할 수 있다. 이 커맨드에 응답하여 서버가 제공할 수 있는 하나의 구조는 이하에서 더 상세히 서술된 다음의 멤버들을 포함한다: Next (4 바이트), IfIndex (4 바이트), Capability (4 바이트), RssQueueCount (4 바이트), LinkSpeed (8 바이트), SockAddr_Storage (128 바이트).
Next 멤버는 현재 구조의 시작으로부터 차후의 8-바이트 정렬된 네트워크 인터페이스의 시작까지 오프셋을 제공한다. 뒤를 잇는 네트워크 인터페이스가 더 이상 없는 경우 Next 멤버는 널 종료자(null terminator)로서 0으로 설정된다. IfIndex 멤버는 현재의 네트워크 인터페이스에 대하여 수로 된 인덱스(index)를 제공한다. Capability 멤버는 가령 인터페이스가 RDMA 또는 수신 스케일링 지원(Receive Scaling Support: RSS)가 가능한지 여부와 같은 현재의 네트워크 인터페이스의 능력들을 나타내는 플래그들을 포함한다. RssQueueCount 멤버는 RSS 가능한 인터페이스에 대한 RSS 큐 카운트를 나타낸다. 몇몇 경우에서, 시스템은 특정 NIC를 사용하여 얼마나 많은 연결을 만들 것인지에 관한 힌트로서 RSS 큐 깊이를 사용한다. LinkSpeed 멤버는 인터페이스의 스피드를 초 당 비트로 나타낸다. SockAddr_Storage 멤버는 인터페이스를 사용하여 연결을 수립하기 위한 네트워크 인터페이스 어드레스를 나타낸다. 이 필드는 잘 알려진 소켓 구조 SOCKADDR_STORAGE를 사용할 수 있다.
도 4는, 일 실시예에서, 다중-연결 정보 시스템을 사용하는 다수의 연결의 셋업을 도시하는 네트워크 패킷 다이어그램이다. 이 예에서, 클라이언트(405)는 다음의 패킷들(또는 다중-패킷 메시지들)을 송신하는 것에 의해 서버(495)로의 다수의 연결을 수립한다. 클라이언트(405)는 제1 협상 요청(410)을 서버(495)에 송신한다. 서버(495)는 협상 응답(420)으로 클라이언트(405)에 응답한다. 클라이언트(405)는 이어서 제1 세션 셋업 요청(430)을 서버(495)에 송신한다. 서버(495)는 세션 셋업 응답(440)으로 클라이언트(405)에 응답한다. 세션 셋업은 클라이언트와 서버 간 다수의 라운드 트립(round trip)을 할 수 있다. 이 시점에서, 세션을 위한 제1 채널이 수립되고 클라이언트는 세션을 사용하여 커맨드를 서버로 송신하기 시작할 수 있다. 그 뒤에(이는 즉각적 또는 소정의 시간 이후일 수 있음), 클라이언트(405)는 동일한 세션을 위해 서버(495)로의 제2 연결을 수립하기로 결정한다. 클라이언트(405)는 서버(495)로 새로운 트랜스포트 상에서 제2 협상 요청(450)을 송신한다. 서버(495)는 협상 응답(460)으로 클라이언트(405)에 응답한다. 클라이언트(405)는 이어서 제2 세션 셋업 요청(470)을 서버(495)에 송신한다. 제1 세션 셋업 요청(430)과는 달리, 이 요청(470)은 새로운 연결을 이전의 세션과 연관지을 것을 나타내는 바인딩 플래그를 포함할 수 있다. 서버(495)는 세션 셋업 응답(480)으로 클라이언트(405)에 응답한다. 이 세션 셋업은 또한 클라이언트와 서버 간 다수의 라운드 트립을 할 수 있다. 이 시점에서, 커맨드를 서버에 송신하기 위해 두 연결 모두 클라이언트가 이용할 수 있다.
도 5는, 일 실시예에서, 다중-채널 정보 시스템을 사용하는 세션과 연결 간 가능한 다대다(many-to-many) 관계를 도시하는 블록 다이어그램이다. 위 다이어그램은 제1 세션(510) 및 제2 세션(520)을 포함한다. 위 다이어그램은 또한 제1 연결(530) 및 제2 연결(540)을 포함한다. 전통적으로, 각 세션은 연결과 일대일(one-to-one) 관계를 가졌는바, 제1 세션(510)은 제1 연결(530)을 사용하는 유일한 세션이었을 것이고 제2 세션(520)은 제2 연결(540)을 사용하는 유일한 세션이었을 것이다. 본 명세서에서 서술되는 기술들을 사용하여, 채널의 개념이 도입되는데, 이에 의해 각 세션은 다수의 연결을 사용할 수 있고 다른 세션과 연결을 공유할 수도 있다. 그러므로, 도시된 바와 같이 제1 세션(510)은 제1 채널(550)을 통해 제1 연결(530)에 바인딩된다. 제1 세션(510)은 또한 제2 채널(560)을 통해 제2 연결(540)에 바인딩된다. 유사하게, 제2 세션(520)은 제3 채널(570)을 통해 제1 연결(530)에 바인딩되고, 제2 세션(520)은 제4 채널(580)을 통해 제2 연결(540)에 바인딩된다. 그러므로, 두 세션은 어느 것이든 애플리케이션 또는 구현에 특정한 선호에 의해 요구되는 대로 두 연결 어느 것이든 사용할 수 있다.
몇몇 구현예에서, 다중-연결 정보 시스템은 이용가능한 연결을 애플리케이션에 알리지 않는다. 본 명세서에서 지적한 바와 같이, 시스템은 애플리케이션 및 전송 계층(예컨대, TCP) 간 소정의 계층에서 구현될 수 있다. 예를 들어, MICROSOFT TM WINDOWS TM은 애플리케이션이 사용할 수 있는 SMB 구현을 제공한다. 시스템은 이용가능한 경우에 다수의 트랜스포트를 자동적으로 사용하고 애플리케이션에 의한 입력 없이 애플리케이션에 더 높은 신뢰성 및 스루풋을 자동적으로 제공하기 위해 본 명세서에서 서술된 기술들을 사용할 수 있다. 시스템은 애플리케이션으로 하여금 그러한 능력이 가능하게 되는지 여부를 구성하도록 할 수 있다. 그러한 능력이 작동 중(on)이면, 시스템은 연결들을 수립할 트랜스포트들 및 애플리케이션으로부터의 여러 커맨드를 위해 어느 트랜스포트를 사용할지 자동적으로 고를 수 있다. 다른 실시예에서, 시스템은 애플리케이션에 더 많은 제어를 제공할 수 있는바, 애플리케이션은 각 연결을 선택하기 위한 기준을 수립하거나 그러한 선택 자체를 할 수 있다.
전술한 바로부터, 다중-연결 정보 시스템의 구체적인 실시예가 본 명세서에서 예시의 목적으로 서술되었으나 본 발명의 정신 및 범주로부터 벗어나지 않으면서 다양한 수정이 있을 수 있다는 점이 인식될 것이다. 따라서, 본 발명은 첨부된 청구항에 의한 것을 제외하고는 제한되지 않는다.

Claims (20)

  1. 클라이언트와 서버 사이의 세션(session)을 개시하기 위하여 컴퓨터로 구현된(computer-implemented) 방법으로서,
    상기 클라이언트와 상기 서버 사이의 서버 메시지 블록(Server Message Block: SMB) 세션을 개시하기 위한 제 1 요청(request)을 애플리케이션으로부터 수신하는 단계와,
    상기 클라이언트와 상기 서버 사이에서 커맨드(commands)를 송신하기 위한 제 1 트랜스포트를 선택하는 단계와,
    상기 제 1 트랜스포트를 통해 상기 클라이언트와 상기 서버 사이의 제 1 연결을 개시하는 단계 - 상기 제 1 연결은 상기 SMB 세션에 바인딩됨 - 와,
    상기 제 1 연결을 사용하여, 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계와,
    상기 클라이언트와 상기 서버 사이의 제 2 연결을 개시하기 위해 상기 적어도 하나의 부가적인 이용가능한 트랜스포트로부터 제 2 트랜스포트를 선택하는 단계 - 상기 제 2 트랜스포트는 상기 서버와 연관된 하나 이상의 특성에 적어도 부분적으로 기초하여 상기 적어도 하나의 부가적인 이용가능한 트랜스포트로부터 선택되고, 상기 제 2 연결을 개시하는 것은 상기 제 2 연결을 수립하기 위한 제 2 요청을 송신하는 것을 포함하고, 상기 제 2 요청은 상기 제 2 연결이 상기 SMB 세션에 연관되는 것을 나타내는 바인딩 플래그를 포함함 - 를 포함하는
    컴퓨터로 구현된 방법.
  2. 제1항에 있어서,
    상기 제 1 요청을 수신하는 단계는 세션을 셋업하는 단계 및 상기 클라이언트와 상기 서버 사이에서 통신하는 데 사용되는 네트워크 프로토콜의 이용가능한 다이얼렉트(dialect)를 협상(negotiate)하기 위해 하나 이상의 패킷을 상기 서버로 송신하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  3. 제1항에 있어서,
    상기 제 1 요청을 수신하는 단계는 상기 서버가 다중-연결(muilti-connection) 세션을 지원하는지 여부를 판정하기 위해 상기 서버에 대해 질의하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계는 상기 서버의 하나 이상의 어드레스를 식별하기 위해 도메인 이름 시스템(domain name system: DNS) 서버에 대해 질의하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계는 이용가능한 네트워크 인터페이스를 식별하기 위해 클라이언트 운영 시스템(operating system)에 대해 질의하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계는 상기 서버 상의 이용가능한 네트워크 인터페이스를 식별하기 위해 능력 요청(capabilities request)을 상기 서버로 송신하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  7. 제1항에 있어서,
    상기 제 1 트랜스포트를 선택하는 단계는 상기 애플리케이션의 연결 선호를 수립하는 애플리케이션 지정 기준(application-specified criteria)에 적어도 부분적으로 기초하여 상기 제 1 트랜스포트를 선택하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  8. 제1항에 있어서,
    상기 클라이언트로부터 상기 서버로 커맨드를 송신하기 위해 상기 세션에 의해 사용되도록 상기 제 1 연결을 마련하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  9. 제1항에 있어서,
    상기 세션, 상기 제 1 연결 및 상기 제 2 연결 중 하나 이상을 정리하기(cleaning up) 위한 정보를 저장하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  10. 제1항에 있어서,
    상기 제 2 트랜스포트를 사용하여 상기 제 2 연결을 개시하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  11. 파일 시스템 세션 내에 다중채널(multichannel) 연결을 제공하기 위한 컴퓨터 시스템으로서,
    세션 개시 컴포넌트 및 채널 선택 컴포넌트 내에 내장된 소프트웨어 명령어를 실행하도록 구성된 메모리 및 프로세서를 포함하되,
    상기 세션 개시 컴포넌트는, 하나 이상의 리소스를 공유하기 위하여 클라이언트와 서버 사이의 서버 메시지 블록(SMB) 세션을 개시하기 위한 요청(request)을 수신하고,
    상기 채널 선택 컴포넌트는 상기 클라이언트와 상기 서버 사이의 상기 SMB 세션에 바인딩된 제 1 연결을 개시하기 위해 제 1 연결 트랜스포트를 선택하며,
    상기 채널 선택 컴포넌트는 상기 제 1 연결을 사용하여 채널 발견 컴포넌트에 의해 발견되는 적어도 하나의 부가적 트랜스포트를 선택하도록 또한 구성되고, 상기 적어도 하나의 부가적 트랜스포트는 제 2 연결이 상기 SMB 세션에 연관된다는 것을 나타내는 바인딩 플래그를 사용하여 상기 클라이언트와 상기 서버 사이의 상기 제 2 연결을 개시하는데 사용되며, 상기 적어도 하나의 부가적 트랜스포트는 상기 서버와 연관된 하나 이상의 특성에 적어도 부분적으로 기초하여 선택되는
    컴퓨터 시스템.
  12. 제11항에 있어서,
    상기 세션 개시 컴포넌트는 상기 서버를 식별하는 상기 클라이언트 상에서 실행 중인 애플리케이션으로부터 요청을 수신하도록 또한 구성되되, 상기 애플리케이션은 파일 또는 다른 리소스를 액세스하기 위해 상기 서버에 연결하기를 원하는
    컴퓨터 시스템.
  13. 제11항에 있어서,
    상기 채널 발견 컴포넌트는 연결 트랜스포트가 원격 직접 메모리 액세스(Remote Direct Memory Access: RDMA) 및/또는 수신 스케일링 지원(Receive Scaling Support: RSS)을 지원하는지 여부를 판정하도록 또한 구성되는
    컴퓨터 시스템.
  14. 제11항에 있어서,
    상기 제 1 연결 및 상기 제 2 연결을 상기 세션에 연관시키고,
    상기 클라이언트와 상기 서버 사이의 특정한 일련의 통신들과 연관된 보안 주체에 관한 정보를 포착(capture)하고 해당 정보를 상기 세션과 연관시키도록 또한 구성된,
    바인딩 컴포넌트를 더 포함하는
    컴퓨터 시스템.
  15. 제11항에 있어서,
    상기 제 1 연결 또는 상기 제 2 연결을 통해 커맨드를 송신할지 여부를 판정하도록 구성된 커맨트 라우팅 컴포넌트를 더 포함하는
    컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 커맨드 라우팅 컴포넌트는, 커맨드를 쪼개어 나누고(split) 상기 쪼개어 나누어진 커맨드를 실행하기 위해 다수의 트랜스포트를 사용하도록 또한 구성되어 스루풋을 증가시키는
    컴퓨터 시스템.
  17. 제11항에 있어서,
    후속 커맨드를 하나 이상의 계속 연결된 트랜스포트(still-connected transports)로 라우팅하는 것에 의해 그리고 연결해제된 트랜스포트 연결 상에서 실행되지 않은 임의의 커맨드를 계속 연결된 트랜스포트 연결 상에서 재진행하는 것(replaying)에 의해, 상기 세션으로부터 특정 트랜스포트 연결이 연결해제되는 것을 핸들링하는, 대체작동 핸들링 컴포넌트(failover handling component)를 더 포함하는
    컴퓨터 시스템.
  18. 클라이언트와 서버 사이의 제 1 연결을 포함하는 이전에 수립된 세션에 연결을 부가하기 위한 명령어를 포함하는 컴퓨터 판독가능 저장 장치로서,
    상기 명령어는 실행시 프로세서로 하여금 방법을 수행하게 하되,
    상기 방법은,
    이전에 수립된 서버 메시지 블록(SMB) 세션에서, 상기 제 1 연결과 상이한, 부가적 연결을 수립하기 위한 상황(a condition)을 검출하는 단계 - 상기 상황은 상기 제 1 연결과 연관되고, 상기 제 1 연결은 상기 이전에 수립된 SMB 세션에 바인딩됨 - 와,
    상기 제 1 연결을 사용하여, 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계와,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트로부터 부가적 트랜스포트를 선택하는 단계와,
    상기 부가적 트랜스포트를 통해 상기 클라이언트와 상기 서버 사이에 상기 부가적 연결을 개시하는 단계 - 상기 부가적 연결을 개시하는 단계는 상기 부가적 연결을 개시하는 요청을 송신하는 단계를 포함하고, 상기 요청은 상기 부가적 연결이 상기 이전에 수립된 SMB 세션에 연관된다는 것을 나타내는 바인딩 플래그를 포함함 - 을 포함하는
    컴퓨터 판독가능 저장 장치.
  19. 제18항에 있어서,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계는 상기 서버의 하나 이상의 어드레스를 식별하도록 도메인 이름 시스템(domain name system: DNS) 서버에 대해 질의하는(querying) 단계를 포함하는
    컴퓨터 판독가능 저장 장치.
  20. 제18항에 있어서,
    상기 적어도 하나의 부가적인 이용가능한 트랜스포트를 판정하는 단계는 상기 서버 상에서 이용가능한 네트워크 인터페이스를 식별하기 위해 상기 서버로 능력 요청(a capabilities request)을 송신하는 단계를 포함하는
    컴퓨터 판독가능 저장 장치.
KR1020137014328A 2010-12-06 2011-12-06 파일 시스템 세션 내 다중채널 연결 KR101811087B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/960,577 US8806030B2 (en) 2010-12-06 2010-12-06 Multichannel connections in file system sessions
US12/960,577 2010-12-06
PCT/US2011/063613 WO2012078689A2 (en) 2010-12-06 2011-12-06 Multichannel connections in file system sessions

Publications (2)

Publication Number Publication Date
KR20130126630A KR20130126630A (ko) 2013-11-20
KR101811087B1 true KR101811087B1 (ko) 2017-12-20

Family

ID=46163297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014328A KR101811087B1 (ko) 2010-12-06 2011-12-06 파일 시스템 세션 내 다중채널 연결

Country Status (11)

Country Link
US (1) US8806030B2 (ko)
EP (1) EP2649531B1 (ko)
JP (1) JP5882353B2 (ko)
KR (1) KR101811087B1 (ko)
CN (1) CN102571756B (ko)
AU (1) AU2011338481B2 (ko)
BR (1) BR112013013794A8 (ko)
CA (1) CA2817051A1 (ko)
MX (1) MX2013006422A (ko)
RU (1) RU2595752C2 (ko)
WO (1) WO2012078689A2 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
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
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
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
US9747386B1 (en) 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US9231949B1 (en) * 2012-08-10 2016-01-05 Amazon Technologies, Inc. Content delivery to user devices using server-initiated connections
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.
WO2017106775A1 (en) 2015-12-17 2017-06-22 Rapidsos, Inc. Devices and methods for efficient emergency calling
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
AU2017257781A1 (en) 2016-04-26 2018-11-29 RapidsSOS, Inc. Systems and methods for emergency communications
CA3023982A1 (en) 2016-05-09 2017-11-16 Rapidsos, Inc. Systems and methods for emergency communications
WO2018039142A1 (en) 2016-08-22 2018-03-01 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
US11223565B2 (en) * 2017-12-22 2022-01-11 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
WO2019204228A1 (en) 2018-04-16 2019-10-24 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
US11218584B2 (en) 2019-02-22 2022-01-04 Rapidsos, Inc. Systems and methods for automated emergency response
EP3949467A4 (en) 2019-03-29 2023-01-25 Rapidsos Inc. EMERGENCY DATA INTEGRATION SYSTEMS AND PROCEDURES
US11146680B2 (en) 2019-03-29 2021-10-12 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20060271697A1 (en) 2005-05-25 2006-11-30 Microsoft Corporation Data communication protocol
US20070185991A1 (en) 2003-06-12 2007-08-09 First Data Corportion Versatile terminal adapter and network for transaction processing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301280A (en) * 1989-10-02 1994-04-05 Data General Corporation Capability based communication protocol
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
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
US7917888B2 (en) 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
JP3703457B2 (ja) * 2003-01-21 2005-10-05 キヤノン株式会社 アドレス通知方法、プログラム、及び、装置
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7613169B2 (en) * 2004-03-16 2009-11-03 Nokia Corporation Enhancement of packet transfer mode when circuit switched resources are requested
EP1727056B1 (en) * 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
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
EP2645674B1 (en) * 2006-07-10 2020-09-02 Xilinx, Inc. Interrupt management
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
US9288137B2 (en) * 2010-05-09 2016-03-15 Citrix Systems, Inc. Systems and methods for allocation of classes of service to network connections corresponding to virtual channels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20070185991A1 (en) 2003-06-12 2007-08-09 First Data Corportion Versatile terminal adapter and network for transaction processing
US20060271697A1 (en) 2005-05-25 2006-11-30 Microsoft Corporation Data communication protocol

Also Published As

Publication number Publication date
US20120144019A1 (en) 2012-06-07
RU2595752C2 (ru) 2016-08-27
WO2012078689A2 (en) 2012-06-14
EP2649531A4 (en) 2014-12-10
MX2013006422A (es) 2013-07-03
RU2013125953A (ru) 2014-12-10
EP2649531A2 (en) 2013-10-16
KR20130126630A (ko) 2013-11-20
CN102571756B (zh) 2016-03-23
US8806030B2 (en) 2014-08-12
WO2012078689A3 (en) 2012-09-07
BR112013013794A2 (pt) 2016-09-13
EP2649531B1 (en) 2018-08-01
AU2011338481B2 (en) 2016-09-29
CA2817051A1 (en) 2012-06-14
JP5882353B2 (ja) 2016-03-09
AU2011338481A1 (en) 2013-05-30
JP2014501978A (ja) 2014-01-23
CN102571756A (zh) 2012-07-11
BR112013013794A8 (pt) 2017-09-19

Similar Documents

Publication Publication Date Title
KR101811087B1 (ko) 파일 시스템 세션 내 다중채널 연결
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
CN108476208B (zh) 多路径传输设计
KR101913444B1 (ko) 제 3의 주체가 개시하는 원격 주체들 사이의 통신
US8917594B2 (en) Link layer reservation of switch queue capacity
US8583831B2 (en) Thin client discovery
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
JP2006190280A (ja) バスの抽象化
US10367893B1 (en) Method and apparatus of performing peer-to-peer communication establishment
WO2012100671A1 (zh) 一种绑定物理网口的方法、网卡及通信系统
Jiang et al. Design of real time multimedia platform and protocol to the internet of things
EP2260627A1 (en) Transport independent architecture
US10104001B2 (en) Systems and methods to early detect link status of multiple paths through an explicit congestion notification based proxy
JPWO2015098003A1 (ja) 通信端末の接続制御方法
JP2006260543A (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
Weinrank et al. Transparent flow mapping for NEAT
Anand Multi-interface connectivity on android
Zhang et al. Research on multi-path network balancing method for cloud computing
WO2024156226A1 (zh) 报文传输方法、装置及系统
Barone Toward High-Speed Tunneling Technologies: A New WireGuard Parallel Architecture for Linear Throughput Scaling
Al-Madani et al. A novel mobility-aware data transfer service (MADTS) based on DDS standards
CN117098240A (zh) 一种基于quic协议的多路径传输方法及5g工业网关

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right