KR20140054382A - System and method for mobility and multi-homing content retrieval applications - Google Patents

System and method for mobility and multi-homing content retrieval applications Download PDF

Info

Publication number
KR20140054382A
KR20140054382A KR1020147008171A KR20147008171A KR20140054382A KR 20140054382 A KR20140054382 A KR 20140054382A KR 1020147008171 A KR1020147008171 A KR 1020147008171A KR 20147008171 A KR20147008171 A KR 20147008171A KR 20140054382 A KR20140054382 A KR 20140054382A
Authority
KR
South Korea
Prior art keywords
content
interface
server
received
application
Prior art date
Application number
KR1020147008171A
Other languages
Korean (ko)
Other versions
KR101574453B1 (en
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 KR20140054382A publication Critical patent/KR20140054382A/en
Application granted granted Critical
Publication of KR101574453B1 publication Critical patent/KR101574453B1/en

Links

Images

Classifications

    • 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/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Abstract

TCP/IP 스택 또는 세션 계층 내의 클라이언트 애플리케이션 하에 있는 제어기 기능은 세션 기반 애플리케이션 계층 기능들(예를 들어, 컨텐츠 검색)과 연관되는 상태 및 상태 정보를 모니터링하고 하나 이상의 세션들을 제 1 클라이언트 인터페이스로부터 제 2 클라이언트 인터페이스(예를 들어, 3G, 4G, LTE, 802.11x, WiMAX)로 그리고 상이한 애플리케이션 기능 서빙 엔티티(예를 들어, 상이한 컨텐츠 서버, 캐시 서버, 서비스 제공자)로 이동시키기 위해 이 정보를 사용한다.The controller function under the client application in the TCP / IP stack or session layer monitors status and status information associated with session-based application layer functions (e.g., content retrieval) and sends one or more sessions from the first client interface (E.g., 3G, 4G, LTE, 802.11x, WiMAX) and to different application function serving entities (e.g., different content servers, cache servers, service providers).

Figure P1020147008171
Figure P1020147008171

Description

이동성 및 멀티-호밍 컨텐츠 검색 애플리케이션을 위한 시스템 및 방법{SYSTEM AND METHOD FOR MOBILITY AND MULTI-HOMING CONTENT RETRIEVAL APPLICATIONS}[0001] SYSTEM AND METHOD FOR MOBILITY AND MULTI-HOMING CONTENT RETRIEVAL APPLICATIONS [0002]

본 발명은 일반적으로 멀티-호밍(multi-homing)식 또는 모바일 호스트(mobile host)들에 관한 것으로, 더 구체적이지만 배타적이지 않게, 상기 호스트들이 통신 네트워크들 사이에서 전이될 때 컨텐츠 검색이 끊김 없이 세션 이동하는 것을 제공하는 것이다.
The present invention relates generally to multi-homing or mobile hosts, and more specifically but not exclusively, that content search is seamlessly performed when the hosts transition between communication networks, Lt; / RTI >

모바일 또는 멀티-호밍(multi-homing)식 호스트는 컨텐츠 검색 세션(session)을 가동하고 있는 동안, 예를 들어 클라이언트가 원격 서버로부터의 데이터를 검색하고 있는 동안 자체의 계층 3 네트워크 액세스 포인트(Layer 3 network access point)(즉, IP 어드레스)를 변경해야만 할 것이다. 그와 같은 인터페이스 변경은 “신(new)” 인터페이스가 “구(old)” 인터페이스보다 링크 품질이 더 좋거나 네트워크 혼잡(congestion)이 더 낮기 때문에 바람직할 수 있다. 인터페이스는 또한 사용자가 하나의 네트워크 커버리지 에어리어(coverage area)에서 다른 커버리지 에어리어로 이동할 때 변해야만 할 것이다.A mobile or multi-homing host may use its own Layer 3 network access point (Layer 3) while a content search session is running, for example while the client is retrieving data from a remote server. network access point (i.e., IP address). Such an interface change may be desirable because the " new " interface is better than the " old " interface and the network congestion is lower. The interface will also have to change as the user moves from one network coverage area to another.

클라이언트의 신 인터페이스의 경우, 데이터를 전달하는 데에는 다른 서버가 데이터를 호스트의 구 인터페이스로 송신하는 서버보다 더 적합할 수 있다. 이것은 신 서버가 클라이언트의 신 인터페이스에 더욱 가까이 근접되어 있기 때문일 수 있다. 인터페이스들 중 하나에 접속하는 네트워크는 애플리케이션 계층 프록시(layer proxy)를 보유하지만 다른 인터페이스를 지원하는 네트워크는 그러한 프록시를 보유하지 않거나 또는 다른 프록시를 가지는 것 또한 가능하다. 그러한 프록시 정보가 모바일/멀티-호밍식 호스트 상에서 미리 구성될 수 있을지라도, 컨텐츠 검색에 사용되는 원격 어드레스는 인터페이스가 변할 때 변경되어야만 한다.For a client's new interface, data transfer may be more appropriate for a server than another server to send data to the host's old interface. This may be because the new server is closer to the client's new interface. It is also possible that a network connecting to one of the interfaces has an application layer proxy, while a network supporting another interface may not have such a proxy or have a different proxy. Although such proxy information may be preconfigured on a mobile / multi-homing host, the remote address used for content retrieval must be changed when the interface changes.

적어도 상기 이유들 때문에, 클라이언트에 의해 컨텐츠 검색을 위해 사용되는 인터페이스와 함께 컨텐츠를 전달하는 서버를 변경하는 능력들을 제공하는 것이 바람직하다.For at least the above reasons, it is desirable to provide the ability to change the server delivering content along with the interface used for content retrieval by the client.

컨텐츠 검색 애플리케이션들은 전형적으로 클라이언트를 컨텐츠 서버에 접속시키고 컨텐츠를 신뢰성 있고 적법하게 전달하는 것을 보장하는 TCP, SCTP 또는 MPTCP와 같은 스트림-지향 전송 프로토콜들을 사용한다. TCP가 기저의 전송 프로토콜로서 사용될 때, 전송 접속은 대체 클라이언트-서버 세션을 방해하지 않고 상이한 인터페이스로 이동될 수 없다. SCTP가 사용될 때, 클라이언트는 트래픽을 구 인터페이스에서 신 인터페이스로 이동시킬 수 있다. 그러나, 서버를 동시에 변경하는 것은 가능하지 않은데, 왜냐하면 구 서버 상의 SCTP 제어 블록이 신 서버와 공유되지 않는 접속-특정 정보를 보유하기 때문이다. MPTCP가 접속에 사용되는 경우 동일한 문제가 발생한다. 더욱이, SCTP 및 MPTCP는 일반적으로 인터넷 상에서 지원되지 않는다.Content retrieval applications typically use stream-oriented transport protocols such as TCP, SCTP, or MPTCP to ensure that the client connects to the content server and delivers the content reliably and legitimately. When TCP is used as the underlying transport protocol, the transport connection can not be moved to a different interface without interfering with alternate client-server sessions. When SCTP is used, the client can move traffic from the old interface to the new interface. However, it is not possible to change the server at the same time, because the SCTP control block on the old server holds connection-specific information that is not shared with the new server. The same problem occurs when MPTCP is used for connection. Moreover, SCTP and MPTCP are not generally supported on the Internet.

계층 3 상에서 세션 엔드포인트(end point) 이동의 기능을 수용하고 따라서 전송 및 애플리케이션 계층에 투명한 여러 이동성/멀티-호밍 프로포콜들이 있다. 모바일 IP 프로토콜 군, SHIM6 및 LTE가 예들이다. 이 해법들 중 일부는 홈 에이전트들 또는 특수화된 게이트웨이들(MIPv4, MIPv6, DSMIP, PMIP, LTE)과 같은 추가 네트워크 노드들을 필요로 한다. 불행하게도, 이 해법들 어느 것도 진행 중인 데이터 검색 중에 컨텐츠 서버가 변경되도록 하지 못 한다.There are several mobility / multi-homing protocols that accept the functionality of session endpoint mobility on Layer 3 and thus are transparent to the transport and application layer. Mobile IP protocol families, SHIM6 and LTE are examples. Some of these solutions require additional network nodes such as home agents or specialized gateways (MIPv4, MIPv6, DSMIP, PMIP, LTE). Unfortunately, none of these solutions allow the content server to change during ongoing data retrieval.

컨텐츠 검색 세션 동안 이동성/멀티-호밍 및 컨텐츠 소스 이동을 가능하게 하는 컨텐츠 중심 네트워크들(예를 들어, Jacobson 등의 "Networking Named Content", CoNEXT'09, 신홍 네트워킹 전문가 및 기술(Emerging Networking Experiments and Technologies)에 대한 제 5 차 국제회의 회보)로서 칭해지는 제안들이 있다. 그러나, 이 제안들은 현재의 IP-계층 및 전송-계층 프로토콜들과 부합하지 않는다. 동일한 이유로 인해, 이들은 기존 네트워크 기반구조 또는 인터넷과 더 부합하지 않는다.Content-centric networks (e.g., "Networking Named Content" such as Jacobson et al., CoNEXT'09, Emerging Networking Experiments and Technologies ), Which is the fifth International Conference of the United Nations. However, these proposals do not match current IP-layer and transport-layer protocols. For the same reason, they do not match existing network infrastructure or the Internet.

애플리케이션-계층 해법들이 있는데, 여기에서는 접속 포인트 변경들 및 서버 변경들이 클라이언트 애플리케이션 자체 내로 구축된다. 그와 같은 애플리케이션들은 중간에 데이터 전송을 중단시키고, 대응하는 전송 접속을 종료시키고, 새 전송 접속을 재설정하고 동일한 또는 새로운 서버로부터 나머지 데이터를 요청할 수 있다. 이 해법들은 컨텐츠의 데이터 유형뿐만 아니라 특정한 애플리케이션 계층 프로토콜에 맞춤화될 수 있지만, 이것들은 모든 클라이언트 애플리케이션에 의해서 별개로 구현될 필요가 있다. 이것은 매우 성가시고, 본질상, 기존 또는 레거시(legacy) 애플리케이션들을 지원하지 않는다.There are application-layer solutions where connection point changes and server changes are built into the client application itself. Such applications may intercept the data transfer in the middle, terminate the corresponding transfer connection, reset the new transfer connection and request the remaining data from the same or new server. These solutions can be tailored to specific application layer protocols as well as data types of content, but they need to be implemented separately by all client applications. This is very cumbersome and, by its nature, does not support legacy or legacy applications.

불행히도, 컨텐츠를 전달하는 서버 및/또는 컨텐츠 검색을 위해 클라이언트에 의해 사용되는 인터페이스를 변경하기 위한 여러 컨텐츠 검색 기술들이 있을지라도, 이들 기술들 중 어느 것도 기존의 또는 진보하는 전송 프로토콜들과의 부합성을 유지하면서도 기존 클라이언트 애플리케이션들을 지원하는 것이 가능하지 않다.
Unfortunately, even though there are several content retrieval techniques for changing the server used to deliver content and / or the interface used by the client for content retrieval, none of these techniques are compatible with existing or emerging transport protocols But it is not possible to support existing client applications.

본 발명의 목적은 상술한 문제를 해결하는 것이다.
An object of the present invention is to solve the above-mentioned problems.

멀티 호밍식 또는 모바일 호스트에 의해 검색되는 실질적으로 연속하는 컨텐츠가 클라이언트에 대한 컨텐츠 검색 세션을 방해하지 않고 컨텐츠 검색 동안 자체의 인터페이스뿐만 아니라 클라이언트 세션에 의해 사용되는 컨텐츠 서버를 변경할 수 있도록 하는 실시예들에 의해 종래 기술의 다양한 결점들이 처리된다.Embodiments in which substantially contiguous content retrieved by a multi-homing or mobile host may change its own interface during content retrieval as well as the content server used by the client session without interfering with the content retrieval session for the client The various drawbacks of the prior art are addressed.

다양한 실시예들에서, TCP/IP 스택(stack) 내 또는 세션 계층 상의 클라이언트 애플리케이션 하에서의 제어기 기능이 구현된다. 제어기 기능은 애플리케이션 계층 기능들(예를 들어, 컨텐츠 검색)과 연관되는 상태 및 상태 정보를 유지하기 위해 애플리케이션 계층 프로토콜에 의해 사용되는 다양한 명령들을 모니터링함으로써, 애플리케이션 계층 기능들이 상이한 클라이언트 인터페이스(예를 들어, 3G, 4G, LTE 802.11x, WiMAX)로 그리고/또는 상이한 애플리케이션 기능 서빙 엔티티(serving entity)(예를 들어, 상이한 컨텐츠 서버, 캐시 서버, 서비스 제공자)로 이동될 수 있다.In various embodiments, controller functionality is implemented within a TCP / IP stack or under a client application on a session layer. The controller function monitors the various commands used by the application layer protocol to maintain state and status information associated with application layer functions (e.g., content retrieval), so that the application layer functions can communicate with different client interfaces (E.g., 3G, 4G, LTE 802.11x, WiMAX) and / or to different application function serving entities (e.g., different content servers, cache servers, service providers).

하나의 실시예에서, 호스트에 있는 컨텐츠 검색 애플리케이션과 연관되는 컨텐츠 검색 세션을 제 1 인터페이스를 통하는 제 1 서버로부터 제 2 인터페이스를 통하는 제 2 서버로 이동시키는 장치는 프로세서를 포함하고, 상기 프로세서는 제 2 인터페이스를 사용하여 제 2 서버와의 전송 접속을 설정하고; 제 2 인터페이스를 통해 제 2 서버로 컨텐츠 요청 메시지를 송신하고 -컨텐츠 요청 메시지는 검색되는 컨텐츠와 연관되는 식별자 및 컨텐츠 검색 애플리케이션에 의해 수신되는 컨텐츠 부분들의 표시를 포함함-; 컨텐츠 검색 애플리케이션에 의해 수신되는 추가적인 컨텐츠 부분들을 식별하기 위해 제 2 인터페이스를 통해 수신되는 컨텐츠 함유 데이터 스트림(content bearing data stream)을 분석하고; 컨텐츠 검색 애플리케이션으로, 컨텐츠 검색 애플리케이션에 의해 수신되지 않은 식별된 컨텐츠 부분들을 전송하도록 구성된다.In one embodiment, an apparatus for moving a content retrieval session associated with a content retrieval application at a host from a first server through a first interface to a second server via a second interface includes a processor, 2 interface to establish a transport connection with the second server; Sending a content request message to a second server via a second interface, the content request message including an identifier associated with the content being searched and an indication of the content portions received by the content search application; Analyzing a content bearing data stream received via a second interface to identify additional content portions received by the content search application; To the content search application, to transmit identified content portions that have not been received by the content search application.

다른 실시예에서, 호스트에 있는 컨텐츠 검색 애플리케이션과 연관되는 컨텐츠 검색 세션을 제 1 인터페이스를 통하는 제 1 서버로부터 제 2 인터페이스를 통하는 제 2 서버로 이동시키는 방법은, 제 2 인터페이스를 사용하여 제 2 서버와의 전송 접속을 설정하는 단계; 제 2 인터페이스를 통해 제 2 서버로 컨텐츠 요청 메시지를 송신하는 단계 - 컨텐츠 요청 메시지는 검색되는 컨텐츠와 연관되는 식별자 및 상기 컨텐츠 검색 애플리케이션에 의해 수신되는 컨텐츠 부분들의 표시를 포함함-; 컨텐츠 검색 애플리케이션에 의해 수신되는 추가적인 컨텐츠 부분들을 식별하기 위해 제 2 인터페이스를 통해 수신되는 컨텐츠 함유 데이터 스트림을 분석하는 단계; 및 컨텐츠 검색 애플리케이션으로, 컨텐츠 검색 애플리케이션에 의해 수신되지 않은 식별된 컨텐츠 부분들을 전송하는 단계를 포함한다.In another embodiment, a method of moving a content retrieval session associated with a content retrieval application at a host from a first server through a first interface to a second server via a second interface includes: Establishing a transmission connection with the terminal; Transmitting a content request message to a second server via a second interface, the content request message including an identifier associated with the content being searched and an indication of content portions received by the content search application; Analyzing a content-containing data stream received via a second interface to identify additional content portions received by the content search application; And sending, to the content retrieval application, the identified content portions that have not been received by the content retrieval application.

다양한 실시예들에서, TCP/IP 스택 또는 세션 계층에서 클라이언트 애플리케이션 하의 제어기 기능은 세션 기반 애플리케이션 계층 기능들(예를 들어 컨텐츠 검색)과 연관되는 상태 및 상태 정보를 모니터링하고 하나 이상의 세션들을 제 1 클라이언트 인터페이스로부터 제 2 클라이언트 인터페이스(예를 들어, 3G, 4G, LTE, 802.11x, WiMAX)로 상이한 애플리케이션 기능 서빙 엔티티(예를 들어, 상이한 컨텐츠 서버, 캐시 서버, 서비스 제공자)로 이동시키기 위해 이 정보를 이용한다.
In various embodiments, the controller function under the client application in the TCP / IP stack or session layer may monitor status and status information associated with session-based application layer functions (e.g., content retrieval) (E.g., a different content server, a cache server, a service provider) with a second client interface (e.g., 3G, 4G, LTE, 802.11x, WiMAX) .

본원에서의 내용들은 첨부 도면들과 함께 다음의 상세한 설명을 고려함으로써 더 용이하게 이해될 수 있다.
도 1은 하나의 실시예에 따라 호스트 디바이스를 포함하는 통신 시스템의 고 레벨 블록도이다.
도 2 내지 도 3은 도 1의 통신 시스템에서 사용하는 데 적합한 호스트 디바이스들의 고 레벨 블록도들이다.
도 4는 하나의 실시예에 따른 방법론을 도시하는 프로토콜 다이어그램이다.
도 5는 하나의 실시예에 따른 방법론을 도시하는 흐름도이다.
도 6은 본원에 기술되는 기능들을 수행하는 데 사용하기 적합한 컴퓨터의 고 레벨 블록도이다.
이해를 용이하게 하기 위해, 도면들에 공통인 동일한 요소들을 지칭하는 데, 가능한 경우 동일한 참조 번호들이 이용되었다.
The contents herein can be more readily understood by considering the following detailed description together with the accompanying drawings.
1 is a high-level block diagram of a communication system including a host device in accordance with one embodiment.
Figures 2 to 3 are high-level block diagrams of host devices suitable for use in the communication system of Figure 1.
4 is a protocol diagram illustrating a methodology in accordance with one embodiment.
5 is a flow chart illustrating a methodology in accordance with one embodiment.
Figure 6 is a high-level block diagram of a computer suitable for use in performing the functions described herein.
To facilitate understanding, like reference numerals have been used, where possible, to designate identical elements that are common to the figures.

멀티 호밍식 또는 모바일 호스트들이 클라이언트에 의해 사용되는 인터페이스와 함께 컨텐츠를 전달하는 서버를 컨텐츠 검색 애플리케이션에 투명한 방식으로 변경할 수 있는 전반적인 케이퍼빌리티(capability)가 본원에서 도시되고 기술되지만, 다양한 다른 관련되고/관련되거나 관련되지 않은 케이퍼빌리티들 또한 개시될 수 있다.While the overall capability to change a server that delivers content along with an interface used by a multi-homing or mobile host to a client to a content retrieval application in a transparent manner is shown and described herein, / Capabilities that are related or unrelated can also be initiated.

다양한 실시예들은 기존 그리고 진화하는 전송 프로토콜들과의 부합성(compliance)을 유지하면서도 컨텐츠 검색을 위해 클라이언트에 의해 사용되는 인터페이스와 함께 컨텐츠를 변경하기 위해서 멀티 호밍식 또는 모바일 호스트들 내에 있는 기존 클라이언트 애플리케이션들을 지원한다.Various embodiments may be used to modify content with an interface used by a client for content retrieval while maintaining compliance with existing and evolving transport protocols, .

다양한 실시예들은 네트워크 상에 상주하는 서버들로부터의 컨텐츠 검색을 위한 애플리케이션들을 이용하는 모바일 및/또는 멀티 호밍식 호스트들에 적용 가능하다. 그와 같은 컨텐츠 검색 세션들의 예들은 웹 브라우징 세션들, 웹 기반 비디오 스트리밍 세션들, HTTP 기반 파일 전송 세션들 및 다른 비 상태기반 컨텐츠 검색 세션들 동안 수행되는 것과 같이 웹서버들로부터의 다운로드들을 포함한다. 실시예들은 호스트가 클라이언트 애플리케이션으로의 데이터 전달을 계속 진행하면서도, 즉, 애플리케이션을 중단시키거나 다시 시작하지 않으면서도 컨텐츠 전달 서버뿐만 아니라 네트워크 인터페이스들을 투명하게 변경하는 것이 가능하다.Various embodiments are applicable to mobile and / or multi-homing hosts that utilize applications for content retrieval from servers residing on the network. Examples of such content search sessions include downloads from web servers, such as those performed during web browsing sessions, web based video streaming sessions, HTTP based file transfer sessions and other non-state based content search sessions . Embodiments are able to transparently change the network interfaces as well as the content delivery server while the host continues to deliver data to the client application, i. E. Without interrupting or restarting the application.

실시예들은 클라이언트 애플리케이션에 의해 사용되는 안전하고 멱등(idempotent)의 메소드 호출(method invocation)을 제공하고, 이 메소드 호출은 오프셋(offset) 피처(feature)를 지원하고 예시적으로 컨텐츠의 시작부에 대해 특정한 오프셋으로 컨텐츠 전달을 시작하라고 원격 서버에게 명령한다.Embodiments provide a secure, idempotent method invocation used by a client application that supports an offset feature and is illustratively described with respect to the beginning of the content Instructs the remote server to start delivering content at a specific offset.

하나의 실시예에서, 컨텐츠 검색은 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 프로토콜에 기초하고, 클라이언트는 컨텐츠 검색 세션을 호출하기 위해 GET 방법을 사용한다. HTTP 프로토콜은 그와 같은 오프셋 피처를 지원한다. HTTP의 경우, 이미 수신된 컨텐츠들의 양의 옥테트(octet)들과 함께 HTTP 요청 헤더 내에 삽입 되어야 하는 RANGE 명령이 사용될 수 있다.In one embodiment, the content retrieval is based on the Hypertext Transfer Protocol (HTTP) protocol, and the client uses the GET method to invoke the content retrieval session. The HTTP protocol supports such an offset feature. In the case of HTTP, the RANGE command, which should be inserted in the HTTP request header with the octets of the amount of already received content, can be used.

도 1은 하나의 실시예에 따라 호스트 디바이스를 포함하는 통신 시스템의 고 레벨 블록도를 도시한다. 구체적으로, 도 1은 멀티 호밍식 또는 모바일 호스트(110)가 복수의 네트워크들(120)과 통신하고 이 네트워크들로부터 각각의 컨텐츠 소스들(140)로부터의 컨텐츠를 검색할 수 있는 시스템(100)을 도시한다.1 illustrates a high-level block diagram of a communication system including a host device in accordance with one embodiment. 1 illustrates a system 100 that enables a multi-homing or mobile host 110 to communicate with multiple networks 120 and retrieve content from each of the content sources 140 from the networks. Lt; / RTI >

본원에서 논의되는 다양한 실시예들에 따르면, 호스트(110)는 컨텐츠 배포(content distribution)를 다시 시작하거나 이와는 달리 호스트 컨텐츠 검색 애플리케이션을 방해하지 않으면서 제 1 네트워크와 연관되는 서버로부터의 컨텐츠를 검색하기 위한 세션을 제 2 네트워크와 연관되는 서버로부터의 컨텐츠를 검색하기 위한 세션으로 전이할 수 있다.According to various embodiments discussed herein, the host 110 may retrieve content from a server associated with the first network without restarting the content distribution or otherwise interfering with the host content retrieval application To a session for retrieving content from a server associated with a second network.

호스트(110)는 예시적으로, 제 1 네트워크(120-1)와 인터페이스하는 제 1 인터페이스(112-1), 제 2 네트워크(120-2)와 인터페이스하는 제 2 인터페이스(112-2), 제어기(114), 클라이언트(116) 및 인터페이스 관리자(118)를 포함한다.Host 110 illustratively includes a first interface 112-1 that interfaces with a first network 120-1, a second interface 112-2 that interfaces with a second network 120-2, A client 114, a client 116, and an interface manager 118.

클라이언트(116)는 컨텐츠 검색 애플리케이션(content retrieval application; CRA)을 포함하는 것으로 도시되고, 이 애플리케이션은 컨텐츠 서버들과 같은 원격 엔티티(entity)들과의 세션들을 설정하고, 컨텐츠 서버들로부터 원하는 컨텐츠의 전달을 요청하고, 전달된 컨텐츠를 수신하고, 수신된 컨텐츠를 호스트(110)와 연관되는 저장 디바이스(도시되지 않음) 및/또는 프리젠테이션 회로소자(도시되지 않음)로 전파하기 위하여 모든 필요한 상호 작용 및 시그널링을 제공하는 데 이용된다.The client 116 is shown as including a content retrieval application (CRA), which establishes sessions with remote entities, such as content servers, (Not shown) and / or presentation circuitry (not shown) associated with the host 110, and to send the received content to the host 110 And signaling.

제어기(114)는 클라이언트(116) 및 인터페이스들(112) 사이에 국지적으로 위치된다. 다양한 실시예들에서, 제어기(114)는 클라이언트(116) 및 인터페이스들(112) 사이에서 전파되는 데이터 트래픽 및/또는 제어 신호들 중 일부 또는 모두를 모니터링한다. 제어기(114)는 클라이언트(116)에 의해 인터페이스들(112)의 사용을 적응시키기 위해 인터페이스 관리자(118)에 응답한다. 일반적으로, 제어기(114)의 동작은 클라이언트(116)에게 보이지 않을 수 있다. 다양한 실시예들에서, 인터페이스 관리자(118)는 제어기(114)로 하여금 제 1 인터페이스(112-1)만을 통하거나 제 2 인터페이스(112-2)만을 통하거나 또는 제 1 및 제 2 인터페이스들의 일부의 결합부(112)를 통하여 흐르는 제어 신호들 및/또는 데이터 트래픽을 발생시키도록 한다.The controller 114 is locally located between the client 116 and the interfaces 112. In various embodiments, the controller 114 monitors some or all of the data traffic and / or control signals propagated between the client 116 and the interfaces 112. The controller 114 responds to the interface manager 118 to adapt the use of the interfaces 112 by the client 116. In general, the operation of the controller 114 may not be visible to the client 116. In various embodiments, the interface manager 118 may allow the controller 114 to communicate only through the first interface 112-1 or only through the second interface 112-2, To generate control signals and / or data traffic flowing through the combiner (112).

인터페이스 관리자(118)는 제어기(114)로 하여금 인터페이스들(112) 중 어떤 인터페이스가 클라이언트(116) 및 인터페이스들(112) 사이의 데이터 트래픽 및/또는 제어 신호들을 지원하는 데 이용될지를 선택하도록 한다. 인터페이스 관리자(118)는 인터페이스 제어(IC) 신호 경로를 통해 제어기(114)와 통신하는 것으로 도시된다.The interface manager 118 causes the controller 114 to select which of the interfaces 112 is to be used to support data traffic and / or control signals between the client 116 and the interfaces 112 . Interface manager 118 is shown communicating with controller 114 via an interface control (IC) signal path.

일부 실시예들에서, IC 신호 경로는 인터페이스 관리자가 이용 가능한 인터페이스들(112) 중 어떤 인터페이스가 클라이언트(116)에 의한 사용을 위해 제어기(114)에 의해 선택되어야 하는지를 표현하는 점에서 단방향(unidirectional)이다.In some embodiments, the IC signal path is unidirectional in that it represents which interface of the interfaces 112 available to the interface manager is to be selected by the controller 114 for use by the client 116. In some embodiments, to be.

일부 실시예들에서, IC 신호 경로는 인터페이스 관리자(118) 및 제어기(114)가 클라이언트 요건들, 인터페이스 요건들, 인터페이스(112)의 여건, 통신 네트워크들(120)의 여건 등을 이해하는 데 유용한 정보를 전송하기 위해 서로 통신하는 점에 있어서 양방향(bidirectional)이다. 유사하게, 인터페이스 관리자(118)는 제어기(114)에 의해 발생한 것으로서 감지될 때 제어기(114)가 새로운 인터페이스(112)를 선택하거나 일부 다른 기능을 수행하는 결과를 발생시키는 조건부 트리거(trigger) 여건들을 통신할 수 있다.In some embodiments, the IC signal path may be used by the interface manager 118 and controller 114 to understand client requirements, interface requirements, conditions of the interface 112, conditions of the communication networks 120, and the like. It is bidirectional in that they communicate with each other to transmit information. Similarly, the interface manager 118 may include conditional trigger conditions that cause the controller 114 to select a new interface 112 or to perform some other function when sensed as being generated by the controller 114 Communication can be performed.

다양한 실시예들에서, 특정한 인터페이스(112)의 선택과 연관되는 여건들이 제어기(114)를 통해 인터페이스 관리자(118)에게 통신된다. 다양한 실시예들에서, 그와 같은 여건들은 인터페이스들(112) 중 하나 이상을 통해 호스트에 동작 가능하게 접속되는 네트워크 관리 시스템(network management system; NMS), 서비스 제공자 또는 어떤 다른 엔티티(entity)에 의해 제공된다. 예를 들어, 네트워크들(120)의 각각과 연관되는 혼잡 정보는 각각의 인터페이스들(112)을 통해 제어기(114) 및/또는 인터페이스 관리자(118)에 통신될 수 있다.In various embodiments, conditions associated with the selection of a particular interface 112 are communicated to the interface manager 118 via the controller 114. In various embodiments, such conditions may be provided by a network management system (NMS), service provider, or some other entity operatively connected to the host via one or more of the interfaces 112 / RTI > For example, congestion information associated with each of the networks 120 may be communicated to the controller 114 and / or the interface manager 118 via respective interfaces 112.

다른 여건들은 네트워크 제공자들과 연관되는 선호도들, 특정한 모바일 네트워크 제공자와 연관되는 “무료” 핫 스팟들을 식별하는 핫 스팟 식별 정보 등을 포함한다. 예를 들어, 호스트(110)가 각각의 인터페이스(112)에 의해 3G 및 802.11에 액세스할 수 있는 경우에, 일부 핫스팟들은 서비스 레벨 동의들, 제공자 상호 동의들 등에 따라, 사용하는 데 무료이거나 비용이 더 적게 들 수 있다.Other circumstances include preferences associated with network providers, hot spot identification information identifying " free " hot spots associated with a particular mobile network provider, and the like. For example, if the host 110 is able to access 3G and 802.11 by each interface 112, some hot spots may be free to use or costly, depending on service level agreements, provider mutual agreements, etc. Less can be heard.

그러므로, 다양한 실시예들에서, 인터페이스 관리자(118)에 의해 제어기(114)로 전파되는 제어 신호는 제 1 인터페이스를 통해 수신되는 혼잡 레벨 표시자, 제 2 인터페이스를 통해 수신되는 혼잡 레벨 표시자, 선호되는 서비스 제공자가 제 2 인터페이스와 연관되어 있다는 결정, 선호되는 서비스가 제 2 인터페이스와 연관되어 있다는 결정, 감소되는 비용이 제 2 인터페이스와 연관되어 있다는 결정, 성능 증가가 제 2 인터페이스와 연관되어 있다는 결정, 선호되는 네트워크가 제 2 인터페이스와 연관되어 있다는 결정 등 중의 하나 이상과 연관될 수 있다.Thus, in various embodiments, the control signal propagated by the interface manager 118 to the controller 114 may include a congestion level indicator received via the first interface, a congestion level indicator received via the second interface, A determination that a preferred service is associated with a second interface, a determination that a reduced cost is associated with a second interface, a determination that a performance increase is associated with the second interface , A determination that the preferred network is associated with the second interface, and the like.

다양한 실시예들에서, 인터페이스 선택 여건들은, 컨텐츠 검색 애플리케이션(content retrieval application; CRA)에 의해 개시되고/되거나 관리되는 컨텐츠 검색 세션의 상황 내에서 컨텐츠를 검색하기 위한 것과 같이 인터페이스들(112) 중 어떤 인터페이스가 클라이언트(116)에 의해 사용될 것인지에 대한 결정을 행하기 위해서 제어기(114) 및 인터페이스 관리자(118) 중 하나 또는 이 둘 모두에 의해 사용될 수 있다.In various embodiments, the interface selection conditions may include any of the interfaces 112, such as for retrieving content within the context of a content search session initiated and / or managed by a content retrieval application (CRA) May be used by controller 114 and / or interface manager 118 to make a determination as to whether an interface is to be used by client 116.

본원에서 2개의 인터페이스들(112)이 도시될지라도, 다양한 실시예들의 상황 내에서 3 이상의 인터페이스들(112)이 또한 사용될 수 있음이 인정될 것이다. 인터페이스들(112)의 각각은 대응하는 네트워크(120)와 통신하는 것이 가능하다.It will be appreciated that although two interfaces 112 are shown herein, more than two interfaces 112 may also be used within the context of various embodiments. Each of the interfaces 112 is capable of communicating with the corresponding network 120.

네트워크들(120)의 각각은 호스트(110) 및 컨텐츠 소스(140) 사이의 통신을 가능하게 하는데 충분한 하나 이상의 액세스 네트워크들, 코어 네트워크 등을 포함한다. 네트워크들(120)의 각각은 각각의 도메인 네임 서버(domain name server; DNS)(130)와 연관되는 것으로 도시되지만, 임의의 하나의 네트워크(120)의 상황에서 추가 도메인 네임 서버들이 사용될 수 있다.Each of the networks 120 includes one or more access networks, a core network, or the like, sufficient to enable communication between the host 110 and the content source 140. Although each of the networks 120 is shown as being associated with a respective domain name server (DNS) 130, additional domain name servers may be used in the context of any one network 120.

컨텐츠 소스들(140)의 각각은 각각의 네트워크(120)와 통신하는 인터페이스(142) 및 일반적으로 클라이언트(116)와의 세션을 설정하고, 클라이언트(116)과 상호 작용하고, 클라이언트(116)에 컨텐츠를 제공하도록 적응되는 컨텐츠 서버(144)를 포함하는 것으로 도시된다. 컨텐츠 서버(140)는 세션 기반 컨텐츠 배포 및/또는 스트리밍이 가능한 임의의 유형의 컨텐츠 배포 시스템 또는 컨텐츠 서버를 포함할 수 있다.Each of the content sources 140 establishes a session with an interface 142 and generally a client 116 that communicates with each network 120 and interacts with the client 116 and provides the client 116 with content And a content server 144 adapted to provide content to the user. The content server 140 may include any type of content distribution system or content server capable of session-based content distribution and / or streaming.

하나의 실시예에서, 호스트는 제 1 인터페이스(112-1)를 통하는 무선 모바일 네트워크들 및 제 2 인터페이스(112-2)에 의한 무선 “핫스팟들”과 통신하도록 구성되는 스마트폰 또는 다른 모바일 디바이스를 포함한다.In one embodiment, the host may be a smart phone or other mobile device configured to communicate with wireless " hot spots " by the second interface 112-2 and wireless mobile networks via the first interface 112-1 .

구체적으로, 이 실시예에서, 제 1 인터페이스(112-1)는 제 1 통신 네트워크(120-1)(예시로 3G, 4G, LTE 또는 다른 무선 모바일/액세스 네트워크)와 통신하는 데 필요한 하드웨어 및 소프트웨어 구성요소들을 포함하도록 구성될 수 있고, 반면에 제 2 인터페이스(112-2)는 제 2 통신 네트워크(120-2)(예시로 802.11x와 같은 무선 “핫스팟” 유형의 네트워크, WiMAX, 무선 기가비트 또는 다른 유사한 또는 고정된 무선 네트워크)와 통신하는 데 필요한 하드웨어 및 소프트웨어 구성요소들을 포함하도록 구성될 수 있다.Specifically, in this embodiment, the first interface 112-1 includes hardware and software necessary to communicate with the first communication network 120-1 (e.g., 3G, 4G, LTE, or other wireless mobile / The second interface 112-2 may be configured to include a second communication network 120-2 (e.g., a wireless " hotspot " type network such as 802.11x, WiMAX, wireless gigabit (E. G., Other similar or fixed wireless networks). ≪ / RTI >

명료성을 위해 제외될지라도, 호스트(110), 네트워크들(120), 도메인 네임 서버들(130) 및 컨텐츠 소스들(140)과 연관되는 다양한 기능들은 일반적으로 호스트(110)의 상황 내에서 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현되는 컴퓨터 기반 기능들을 포함하는 것이 인정될 것이다. 그러므로, 호스트(110)는 하나 이상의 프로세서들, 메모리 소자들, 입력-출력 회로들 등과 같은 범용 컴퓨팅 요소들을 포함하고, 이들 소자들은 명료성을 강화하기 위해 도 1에서는 생략된다. 그와 같은 요소들을 제공하는 컴퓨팅 디바이스의 실시예는 도 6과 관련하여 더 상세하게 기술된다.The various functions associated with the host 110, the networks 120, the domain name servers 130 and the content sources 140 will generally be implemented within the context of the host 110, It will be appreciated that the present invention includes computer-based functions implemented in software or a combination of hardware and software. Thus, the host 110 includes general computing elements such as one or more processors, memory elements, input-output circuits, etc., and these elements are omitted in FIG. 1 to enhance clarity. An embodiment of a computing device that provides such elements is described in more detail with respect to FIG.

본원에서 기술되는 다양한 실시예들은 모바일/멀티 호밍식 호스트가 클라이언트에 대한 컨텐츠 검색 세션을 방해하지 않고도 컨텐츠 검색 동안 클라이언트 세션에 의해 사용되는 컨텐츠 서버뿐만 아니라 자체의 인터페이스를 변경하는 것을 가능하게 한다.The various embodiments described herein enable a mobile / multihoming host to change its own interface as well as the content server used by the client session during content retrieval without interfering with the content retrieval session for the client.

다양한 실시예들에서, 제어기(114)는 클라이언트를 지원하는 소프트웨어 계층 하부의 소프트웨어 계층 내에서 구현되는 소프트웨어 기능을 포함한다. 구체적으로, 제어기 기능은 TCP/IP 스택(stack) 내 또는 세션 계층 상에서 클라이언트 애플리케이션 하부에 상주한다. 제어기 기능은 자체의 계층을 통하는 트래픽의 적어도 일부를 모니터링하고 애플리케이션 계층 프로토콜에 의해 사용되는 명령들의 적어도 일부를 인식 또는 이해할 수 있다.In various embodiments, the controller 114 includes software functionality implemented within the software layer underlying the software layer that supports the client. Specifically, the controller function resides in the client application under the TCP / IP stack or on the session layer. The controller function may monitor at least a portion of the traffic through its layer and may recognize or understand at least some of the commands used by the application layer protocol.

일반적으로 말해서, 제어기(114)는 4개의 주요 임무들을 수행한다: (1) 클라이언트(116) 및 인터페이스(112) 사이의 트래픽을 모니터링하여 이로부터 요청되는 컨텐츠의 식별 및 클라이언트에 의해 수신되는 요청되는 컨텐츠의 양을 도출하고; (2) 요청되는 컨텐츠를 포함하는 새로 선택된 인터페이스 상에서 서버를 식별하고; (3) 식별된 서버로의 전송 접속을 개시하고; (4) 클라이언트에 의해 아직 수신되지 않은 상기 컨텐츠의 부분을 클라이언트로 재지향한다.Generally speaking, the controller 114 performs four main tasks: (1) monitoring the traffic between the client 116 and the interface 112 to identify the content requested therefrom, Deriving an amount of content; (2) identify the server on the newly selected interface containing the requested content; (3) initiating a transfer connection to the identified server; (4) redirect the portion of the content that has not yet been received by the client to the client.

구체적으로, 클라이언트 호스트의 인터페이스가 변경될 경우, 제어기는 새로운 인터페이스 상에서 이 컨텐츠에 대해 사용될 가장 적절한 서버를 결정한다. 구 인터페이스를 통해 컨텐츠를 제공하는 서버는 “구(old)” 서버로 표시되고, 반면에 새로운 인터페이스를 통해 컨텐츠를 제공하도록 선택되는 서버를 “신(new)” 서버로 표시된다. 신 서버 및 구 서버는 컨텐츠 제공자 장비의 구성에 따라 서로 동일할 수 있음이 지적된다.Specifically, when the interface of the client host is changed, the controller determines the most appropriate server to be used for this content on the new interface. A server providing content via the old interface is denoted as an " old " server, while a server selected to serve content through a new interface is denoted as a " new " It is pointed out that new servers and old servers may be identical to each other depending on the configuration of content provider equipment.

제어기 기능은 신 서버로의 전송 접속을 개시하고 예시로 원 컨텐츠 검색 요청의 카피를 신 서버에 송신한다.The controller function initiates a transfer connection to the new server and for example sends a copy of the original content retrieval request to the new server.

제어기 기능은 또한 예시로 애플리케이션 계층 프로토콜에 의해 제공되는 명령을 신 서버에 송신하고, 이 명령은 신 서버에게 명시된 오프셋에 따라 컨텐츠 전달을 시작하도록 지시하고, 상기 오프셋은 이전 인터페이스를 통해 이미 수신된 데이터의 양에 기초한다.The controller function also sends, by way of example, the command provided by the application layer protocol to the new server, which instructs the new server to start delivering content according to the specified offset, . ≪ / RTI >

제어기는 그 후에 신 서버에 의해 전달되는 데이터를 클라이언트 애플리케이션으로 재지향하고 구 서버로의 접속을 종료한다.The controller then redirects the data delivered by the new server to the client application and terminates the connection to the old server.

이 단계들은 일반적으로 클라이언트 애플리케이션에 투명하고, 이에 따라 제 1 네트워크 인터페이스에서 제 2 네트워크 인터페이스로의 검색된 컨텐츠 스트림의 끊어짐 없는 전이가 용이해진다.These steps are generally transparent to the client application, thereby facilitating a seamless transition of the retrieved content stream from the first network interface to the second network interface.

오프셋을 위해, (1) 수신되는 컨텐츠의 양을 충분히 특성화하고, (2) 애플리케이션 계층 프로토콜과 부합되고, 그러므로 서버에 의해 이해되고, (3) 수신되는 컨텐츠 스트림(들)을 모니터링함으로써 도출될 수 있는 어떠한 표현도 사용될 수 있다.Can be derived for the offset by (1) fully characterizing the amount of content received, (2) conforming to the application layer protocol, and therefore understood by the server, and (3) monitoring the received content stream Any expression can be used.

오프셋은 수신되는 컨텐츠의 양의 옥테트들을 나타내는 수를 포함할 수 있고, 이는 수신되는 데이터 객체들의 식별자들의 목록을 포함할 수 있고, 여기서 객체들은 표준화된 포맷(예를 들어, XML, html 등)을 통해 제공된다. 오프셋은 수신되는 비디오 스트림 또는 이의 일부분들과 연관되는 시간 간격, 프레임 계수, 프로그램 클럭 레퍼런스(program clock reference; PCR) 등과 연관되는 시간 간격과 같은 다른 메트릭(metric)들을 나타낼 수 있다.The offset may include a number representing the number of octets of content received, which may include a list of identifiers of the received data objects, wherein the objects are in a standardized format (e.g., XML, html, etc.) Lt; / RTI > The offset may represent other metrics such as the time interval associated with a received video stream or portions thereof, a frame count, a time interval associated with a program clock reference (PCR), and the like.

도 2 내지 도 3은 도 1의 통신 시스템에서 사용하는 데 적합한 호스트 디바이스들의 고 레벨 블록도들을 도시한다. 구체적으로, 도 2 내지 도 3은 도 1과 관련하여 상술한 호스트(110)와 유사한 방식으로 동작하는 호스트들(110)을 도시한다.Figures 2-3 illustrate high level block diagrams of host devices suitable for use in the communication system of Figure 1; Specifically, FIGS. 2-3 illustrate hosts 110 operating in a manner similar to the host 110 described above with respect to FIG.

도 2에 관하여, 세션 계층 구현은 제어기(114)의 기능들이 클라이언트(116)를 통해 호출되거나 액세스되는 함수들의 라이브러리 내에서 구현되도록 라이브러리 함수를 사용하여 제공된다. 더욱이, 커널 공간은 제 1 인터페이스(112-1)와 연관되는 제 1 TCP/IP 스택(113-1) 및 제어기(114)에 의해 호출되거나 액세스되는 제 2 TCP/IP 스택(113-2)을 포함한다.2, a session layer implementation is provided using a library function such that the functions of the controller 114 are implemented in a library of functions that are called or accessed via the client 116. Moreover, the kernel space may include a first TCP / IP stack 113-1 associated with the first interface 112-1 and a second TCP / IP stack 113-2 called or accessed by the controller 114 .

유용하게, 이 구현은 기존 멀티 호밍식 또는 모바일 호스트들 상의 기존 애플리케이션들이 라이브러리 함수를 업그레이드하여 제어기(114) 및 인터페이스 관리자(118)의 기능을 포함함으로써 본원에 기술되는 다양한 실시예들의 기능을 지원하도록 업그레이드될 수 있는 메커니즘을 제공한다. 불행하게도, 커널 공간 기능들에 직접적으로 액세스함으로써 라이브러리 함수들을 우회하는 상기 애플리케이션들의 경우, 다양한 실시예들과 연관되는 제어기 기능들 중 일부를 구현하는 것이 가능하지 않을 수 있다.Advantageously, this implementation allows existing applications on existing multi-homing or mobile hosts to upgrade the library functions to include the functionality of controller 114 and interface manager 118 to support the functionality of the various embodiments described herein Provides a mechanism that can be upgraded. Unfortunately, for those applications that bypass library functions by directly accessing kernel space functions, it may not be possible to implement some of the controller functions associated with various embodiments.

도 3과 관련하여, 전송 계층 구현은 커널 공간 내에 제어기(114) 및 인터페이스 관리자(118)를 포함하고, 부가적으로 제어기(114)를 TCP/IP 스택들(113)과 통합시킴으로써 제공된다.3, a transport layer implementation is provided by including controller 114 and interface manager 118 in kernel space and additionally integrating controller 114 with TCP / IP stacks 113.

유리하게, 이 구현은 기존 멀티 호밍식 또는 모바일 호스트들 상의 기존 애플리케이션들이 라이브러리들을 사용하지 않는 평범한 애플리케이션들이었고, 라이브러리 함수와 연관되는 애플리케이션 프로그래밍 인터페이스(application programming interface; API)들 등이 본원에서 기술되는 다양한 실시예들에 따라 여전히 동작할 수 있을 메커니즘을 제공하는데, 왜냐하면 커널 공간 함수들은 라이브러리 함수들과 같은 사용자 공간 함수들과 같이 쉽게 애플리케이션들에 의해 우회될 수 없기 때문이다.Advantageously, this implementation is commonplace applications where existing applications on existing multi-homing or mobile hosts do not use libraries, and application programming interfaces (APIs) associated with library functions, etc. are described herein It provides a mechanism that will still work in accordance with various embodiments, since kernel space functions can not be easily bypassed by applications, such as user space functions such as library functions.

도 4는 하나의 실시예에 따른 방법론을 예시하는 프로토콜 다이어그램을 도시한다. 구체적으로, 도 4는 방법(400)을 도시하고 여기서 단계들 401, 402 등 최대 411(및 선택적으로 그 이상)의 각각에서 정보는 도 1에 관하여 상술한 다양한 기능 요소들 사이에서 전달되는 것으로 도시되어서 이에 의해 다양한 실시예들을 설명할 수 있다.4 illustrates a protocol diagram illustrating a methodology in accordance with one embodiment. 4 illustrates method 400, where information at each of up to 411 (and optionally more) steps 401, 402, etc. is conveyed between the various functional elements described above with respect to FIG. 1, So that various embodiments can be described.

단계 401에서, 클라이언트(116)는 도메인 네임 서버(domain name server; DNS)(130-1)로부터 제 1 컨텐츠 서버(140-1)에 대한 IP 어드레스를 검색하기 위해 제 1 인터페이스(112-1)(또한 본원에서 IF1으로 표시된다)를 통해 제 1 네트워크(120-1)와 연관되는 도메인 네임 서버(DNS)(130-1)에 DNS 요청을 송신한다. 이 단계 동안, 제어기(114)는 DNS 요청을 인터셉트하고 DNS 요청과 연관되는 균일 자원 식별자(uniform resource identifier; URI)를 캐싱(cashing)한다. 이 프로세스가 HTTP 환경의 상황 내에서 필요하지 않음이 당업자에 의해 인정될 것이다.In step 401, the client 116 accesses the first interface 112-1 to retrieve the IP address for the first content server 140-1 from the domain name server (DNS) 130-1. (DNS) 130-1 that is associated with the first network 120-1 via the first network 120-1 (also denoted here as IF1). During this step, the controller 114 intercepts the DNS request and caches a uniform resource identifier (URI) associated with the DNS request. It will be appreciated by those skilled in the art that this process is not necessary in the context of an HTTP environment.

단계 402에서, DNS 서버(130-1)는 DNS 응답을 클라이언트(116)에 역으로 전파한다. 이 단계 동안, 제어기(114)는 DNS 서버(130-1)로부터의 응답을 인터셉트하고 IP 어드레스들을 요청의 URI와 함께 캐싱한다. 이 프로세스가 HTTP 환경의 상황 내에서 필요하지 않음이 당업자에 의해 인정될 것이다.At step 402, the DNS server 130-1 propagates the DNS response back to the client 116. [ During this phase, the controller 114 intercepts the response from the DNS server 130-1 and caches the IP addresses with the URI of the request. It will be appreciated by those skilled in the art that this process is not necessary in the context of an HTTP environment.

단계 403에서, 클라이언트(116)는 제 1 컨텐츠 서버(140-1)의 IP 어드레스들을 사용하여 제 1 인터페이스(112-1)를 통해 전송 세션을 개시하고 컨텐츠 검색 요청을 송신한다. 제어기(114)는 셋업 요청을 인터셉트하고, 접속의 원격 IP 어드레스에 기초하여 컨텐츠의 URI를 식별하고(HTTP에 대해 필요하지 않다), 클라이언트에 의해 송신되는 컨텐츠 요청 메시지를 캐싱하고, 이 전송 접속을 모니터링하기 시작한다.In step 403, the client 116 initiates a transmission session via the first interface 112-1 using the IP addresses of the first content server 140-1 and transmits a content retrieval request. The controller 114 intercepts the setup request, identifies the URI of the content based on the remote IP address of the connection (not required for HTTP), caches the content request message sent by the client, Start monitoring.

단계 404에서, 제 1 컨텐츠 서버(140-1)는 응답 헤더, 그리고 잠재적으로 컨텐츠 데이터의 제 1 부분을 포함하는 응답 패킷을 클라이언트(116)에 송신한다. 제어기는 이 패킷을 인터셉트하고 응답하여 클라이언트에 전송되는 컨텐츠 데이터를 추적하기 시작한다.In step 404, the first content server 140-1 sends a response packet to the client 116 that includes a response header, and potentially a first portion of the content data. The controller intercepts this packet and responds and begins tracking the content data that is sent to the client.

단계 405에서, 제 1 컨텐츠 서버(140-1)는 요청되는 컨텐츠 데이터의 추가 부분들을 포함하는 패킷들의 스트림을 클라이언트에 송신하는 것을 계속한다. 제어기는 이 패킷들을 인터셉트하고 클라이언트에 전송되는 컨텐츠 부분들을 추적하는 것을 계속한다.In step 405, the first content server 140-1 continues to send a stream of packets containing additional portions of the requested content data to the client. The controller intercepts these packets and continues to track portions of the content being sent to the client.

단계 406에서, 인터페이스 관리자(118)는 트리거(trigger)를 제어기(114)에, 예시적으로 IC 신호 경로에 송신한다. 트리거는 제어기가 제 1 인터페이스(112-1)에서 제 2 단계(112-2)로 스위칭되어야 함을 나타낸다. 이 트리거에 응답하여, 제어기(114)는 캐싱된 DNS 요청(또는 초기 컨텐츠 요청과 연관되는 URI의 다른 표시자)의 카피를 제 2 인터페이스(112-2)를 통해 제 2 네트워크(120-2)로 송신한다.In step 406, the interface manager 118 sends a trigger to the controller 114, illustratively, in the IC signal path. The trigger indicates that the controller should switch from the first interface 112-1 to the second step 112-2. In response to this trigger, the controller 114 sends a copy of the cached DNS request (or other indicator of the URI associated with the initial content request) to the second network 120-2 via the second interface 112-2, .

대안으로, 제어기(116)는 자신이 클라이언트의 초기 컨텐츠 요청 메시지로부터 검색한 URI를 포함하는 자기 자신의 DNS 요청을 생성한다. 다른 수정들 또한 발명자들에 의해 고려된다.Alternatively, the controller 116 generates its own DNS request that includes the URI that it retrieved from the client's initial content request message. Other modifications are also contemplated by the inventors.

단계 407에서, 제 2 DNS 서버(130-2)는 원하는 컨텐츠를 제공할 수 있는 제 2 네트워크(120-2) 내에서 서버들에 대한 IP 어드레스들의 세트를 제공함으로써 단계 406에서 수신되는 DNS 요청에 응답한다. 제어기(114)는 하나의 실시예에서 이 세트로부터 도 4에서 제 2 컨텐츠 서버(140-2)를 칭하는 것으로 도시되는 IP 어드레스를 선택한다.In step 407, the second DNS server 130-2 receives the DNS request received in step 406 by providing a set of IP addresses for the servers in the second network 120-2 that can provide the desired content Reply. The controller 114 selects an IP address shown in this embodiment by referring to the second content server 140-2 in Fig. 4 from this set in one embodiment.

단계 408에서, 제어기(114)는 예를 들어 TCP RST를 통해 제 1 인터페이스(112-1) 및 제 1 컨텐츠 서버(140-1) 사이의 전송 접속을 종료한다. 더욱이, 제어기(114)는 클라이언트가 원 전송 접속을 통해 수신했던 컨텐츠의 총량을 결정한다.In step 408, the controller 114 terminates the transmission connection between the first interface 112-1 and the first content server 140-1 via the TCP RST, for example. Moreover, the controller 114 determines the total amount of content that the client has received over the original transport connection.

단계 409에서, 제어기(114)는 제 2 컨텐츠 서버(140-2)와 연관되는 IP 어드레스를 사용하여 제 2 인터페이스(112-2)를 통하는 새로운 전송 접속을 설정한다. 추가로, 제어기(114)는 오프셋뿐만 아니라 컨텐츠 검색 요청의 카피를 이 신 전송 접속을 통해 컨텐츠 검색 요청으로 송신하고, 이 오프셋은 제 1 인터페이스(112-1)를 통하는 구 전송 접속을 통해 이미 검색되었던 컨텐츠의 양을 나타낸다.In step 409, the controller 114 establishes a new transport connection through the second interface 112-2 using the IP address associated with the second content server 140-2. In addition, the controller 114 sends a copy of the content retrieval request as well as the offset in a content retrieval request over this new transport connection, which is already retrieved via the old transport connection through the first interface 112-1 Lt; / RTI >

단계 410에서, 제 2 컨텐츠 서버(140-2)는 응답 헤더, 그리고 가능하다면 상기 오프셋에서 시작하는 컨텐츠 데이터의 제 1 부분을 포함하는 응답 패킷을 제어기(114)에 송신한다. 제어기(114)는 응답 헤더를 제거하고 임의의 수신된 후-오프셋(post offset) 데이터 부분들을 클라이언트(116)에 전송한다. 제어기(114)는 또한 클라이언트에 전송되는 컨텐츠 데이터를 추적하는 것을 계속한다. 클라이언트가 제어기(114)의 동작 및 특히 제어기(114)에 의해서 행해진 컨텐츠 요청을 인지하지 못하므로, 대응하는 응답 헤더는 이 때에 클라이언트에 의해 예상되지 않으므로 제어기(114)에 의해 제거되는 것이 지적된다.In step 410, the second content server 140-2 sends a response packet to the controller 114, which includes a response header, and possibly a first portion of the content data starting at the offset. The controller 114 removes the response header and sends any received post-offset data portions to the client 116. The controller 114 also continues to track the content data being transmitted to the client. It is noted that the corresponding response headers are removed by the controller 114 because they are not expected by the client at this time since the client is not aware of the operation of the controller 114 and in particular the content request made by the controller 114. [

단계 411에서, 제 2 컨텐츠 서버(140-2)는 요청되는 컨텐츠 데이터의 추가 부분들을 포함하는 패킷들의 스트림을 클라이언트(116)에 송신하는 것을 계속한다. 제어기(114)는 이 패킷들을 인터셉트하고 클라이언트에 전송되는 컨텐츠 부분들을 추적하는 것을 계속한다.At step 411, the second content server 140-2 continues to transmit to client 116 a stream of packets containing additional portions of the requested content data. Controller 114 continues to intercept these packets and keep track of the content portions that are transmitted to the client.

도 5는 하나의 실시예에 따른 방법론을 예시하는 흐름도를 도시한다. 도 5와 관련하여 본원에서 논의되는 방법론은 일반적으로 HTTP가 애플리케이션 계층 프로토콜로서 사용되고 컨텐츠를 요청하기 위해 HTTP GET 방법이 사용되는 것을 고려한다. 다른 곳에서 논의되는 바와 같이, 다양한 다른 소프트웨어 계층들 상의 프로토콜들뿐만 아니라 다양한 다른 프로토콜들이 구현될 수 있다.Figure 5 shows a flow diagram illustrating a methodology in accordance with one embodiment. The methodology discussed herein with respect to FIG. 5 generally considers HTTP to be used as an application layer protocol and to use the HTTP GET method to request content. As discussed elsewhere herein, various other protocols as well as protocols on various different software layers may be implemented.

단계 510 및 박스 511를 참조하면, 제어기는 자신이 지원하는 애플리케이션 계층 프로토콜과 관련되는 인출하는 메소드 호출들을 모니터링한다. TCP 또는 MPTCP를 사용하여 전송 층 상에 제어기를 구현하기 위해, 제어기는 클라이언트에 의해 개시되는 SYN/ACK 핸드쉐이크(handshake) 이후에 제 1 인출 데이터 패킷을 분석한다. SCTP의 경우에, INIT 핸드쉐이크 이후의 제 1 인출 데이터 패킷이 분석되어야 한다. 세션 계층 구현들의 경우에, CONNECT() 호(call) 이후에 제 1 데이터 패킷이 분석되어야 한다.Referring to steps 510 and 511, the controller monitors the fetching method calls associated with the application layer protocol it supports. To implement the controller on the transport layer using TCP or MPTCP, the controller analyzes the first outgoing data packet after a SYN / ACK handshake initiated by the client. In the case of SCTP, the first outgoing data packet after the INIT handshake should be analyzed. In the case of session layer implementations, the first data packet must be analyzed after a CONNECT () call.

단계 515 및 박스 516을 참조하면, 제어기는 인출 메소드 호출에 대응하는 URI 또는 URL을 식별한다. 이 URI 또는 URL은 컨텐츠 검색에 사용되는 서버의 IP 어드레스와 함께 캐싱된다. 하나의 실시예에서, 이것은 DNS 응답에 포함되는 IP 어드레스들과 함께 DNS 요청의 URI/URL를 캐싱함으로써 그리고 호스트에 의해 개시되는 DNS 요청/응답 핸드쉐이크들을 모니터링하는 제어기에 의해 달성될 수 있다. 이 캐싱된 데이터 및 인출 메소드 호출의 목적지 어드레스에 기초하여, 메소드 호출의 대응하는 URI/URL이 발견될 수 있다. HTTP가 애플리케이션 계층 프로토콜로서 사용되는 경우에, URI/URL은 GET 호 내에 포함되는 HTTP 헤더로부터 도출될 수 있고, HTTP 프록시가 인터페이스에 대하여 구성되는 경우에 프록시는 컨텐츠 서버를 표현할 수 있다.Referring to steps 515 and 516, the controller identifies the URI or URL corresponding to the fetch method call. This URI or URL is cached with the IP address of the server used to retrieve the content. In one embodiment, this can be accomplished by caching the URI / URL of the DNS request with the IP addresses included in the DNS response and by monitoring the DNS request / response handshakes initiated by the host. Based on this cached data and the destination address of the fetch method call, the corresponding URI / URL of the method call can be found. In the case where HTTP is used as the application layer protocol, the URI / URL can be derived from the HTTP header contained in the GET call, and the proxy can represent the content server when the HTTP proxy is configured for the interface.

단계 520 및 박스 521을 참조하면, 제어기는 선택사양으로 이동성/멀티 호밍 지원이 애플리케이션 클라이언트에 대해 필요하지 않고 어떤 이유로 인해 허용되지 않는 경우 모니터링을 중단할 수 있다. 구체적으로, 컨텐츠 검색 세션이 상기 단계들을 통해 식별되었다면, 제어기는 이 애플리케이션 층 세션이 이동성/멀티 호밍을 위한 지원을 요구하는지를 더 결정할 수 있다. 이 결정은 호스트에 의해 지원되는 다수 및 임의의 유형의 인터페이스들과 같은 외부 기준뿐만 아니라 다른 기준을 수반할 수 있다. 다음의 제어기 기능들의 상황 내에서, 컨텐츠 검색 세션은 그러한 이동성/멀티 호밍 지원을 요구하는 것으로 가정된다.Referring to step 520 and box 521, the controller may optionally stop monitoring if mobile / multi-homing support is not required for the application client and is not allowed for some reason. Specifically, if a content search session has been identified through these steps, the controller can further determine whether this application layer session requires support for mobility / multi-homing. This determination may involve external criteria as well as other criteria such as multiple and any type of interfaces supported by the host. Within the context of the following controller functions, a content retrieval session is assumed to require such mobility / multi-homing support.

단계 525 및 박스 526을 참조하면, 제어기는 세션 접속 식별자들 또는 전송 접속 식별자들을 캐싱한다. 이 식별자들은 클라이언트 애플리케이션으로 향하고 제어기에 의해 개시되었던 장래의 접속들에 도달하는 컨텐츠 데이터 부분들을 전달하기 위하여 제어기에 의해 사용된다. 세션 계층 상에 있는 제어기 기능의 경우에, 그와 같은 식별자는 애플리케이션에 의해 사용되는 프로세스 ID 및 소켓 기술자로 구성될 수 있다. 투명 계층 상에 있는 제어기 기능의 경우, 커널 내의 대응하는 프로토콜 제어 블록에 대한 포인터일 수 있다. Referring to steps 525 and 526, the controller caches session connection identifiers or transmission connection identifiers. These identifiers are used by the controller to deliver content data portions that arrive at future connections that were directed to the client application and initiated by the controller. In the case of a controller function on the session layer, such an identifier may consist of a process ID and a socket descriptor used by the application. For controller functionality on the transparent layer, it may be a pointer to a corresponding protocol control block in the kernel.

단계 530 및 박스 531을 참조하면, 제어기는 클라이언트 애플리케이션에 의해 컨텐츠 검색 서버로 송신되는 메소드-호출 호 내에 포함되는 정보를 캐싱한다. HTTP가 애플리케이션 계층 프로토콜인 경우, 이 정보는 HTTP GET 호의 HTTP 요청 헤더를 칭한다.Referring to step 530 and box 531, the controller caches the information contained in the method-invoke call sent by the client application to the content retrieval server. If HTTP is an application layer protocol, this information refers to the HTTP request header of the HTTP GET call.

단계 535 및 박스 536을 참조하면, 제어기는 클라이언트의 메소드 호출에 응답하여, 컨텐츠 서버에 의해 송신되는 모든 데이터를 모니터링하고 분석한다. 제어기는 수신되었던 컨텐츠의 양을 결정한다. 이 프로세스에서, 제어기는 HTTP 응답 헤더들과 같이, 애플리케이션 계층 프로토콜에 의해 제공되는 시그널링 정보를 무시해야만 할 수도 있다.Referring to step 535 and box 536, the controller monitors and analyzes all data sent by the content server in response to the client's method call. The controller determines the amount of content that has been received. In this process, the controller may have to ignore the signaling information provided by the application layer protocol, such as HTTP response headers.

하나의 실시예에서, 컨텐츠는 옥테트들 또는 비트들의 단위들로 명시된다. 다른 실시예에서, 컨텐츠는 객체 식별자들의 목록으로 표현된다. 다른 실시예에서, 컨텐츠는 비디오 스트림 및/또는 오디오 스트림에 대해서와 같이, 수신되는 다수의 프레임들 또는 축 유닛(axis unit)들과 관련하여 명시되고, 다른 실시예에서 컨텐츠는 비디오 스트림의 수신되는 프랙션(fraction)(코드 타임스탬프(code timestamp; DTS)들, 프레젠테이션 타임스탬프(presentation timestamp; PTS)들, 프로그램 클럭 레퍼런스(program clock reference; PCR)들 등을 사용하여 계산되는 바와 같은)을 재생하는 데 걸리는 시간 간격과 관련하여 명시된다.In one embodiment, the content is specified in units of octets or bits. In another embodiment, the content is represented by a list of object identifiers. In another embodiment, the content is specified in terms of a plurality of frames or axis units to be received, such as for a video stream and / or an audio stream, and in another embodiment, (Such as those computed using fractions (code timestamps (DTS), presentation timestamps (PTS), program clock references (PCRs), etc.) And the time interval it takes to complete the process.

단계 540를 참조하면, 제어기는 컨텐츠 검색에 사용되는 인터페이스가 변경될 것임을 표시하기 위해 인터페이스 관리자로부터 제어 신호를 대기한다. 제어 신호로서의 그러한 시간이 수신될 때까지, 제어기는 제 1 컨텐츠 서버(140-1)로부터 제 1 인터페이스(112-1)를 통해 수신되는 컨텐츠 부분들을 모니터링 및 분석하는 것을 계속한다.Referring to step 540, the controller waits for a control signal from the interface manager to indicate that the interface used for content retrieval is to be changed. Until such time as a control signal is received, the controller continues to monitor and analyze content portions received via the first interface 112-1 from the first content server 140-1.

단계 545 및 박스 546을 참조하면, 인터페이스 변경 중독성 제어 신호를 수신한 후에, 제어기는 신 인터페이스 상에서의 컨텐츠 전달을 위한 적절한 서버를 식별한다. 상기 목적을 위해, 제어기는 클라이언트 애플리케이션에 의해 초기 메소드 호출로 매핑되는 URI를 포함하는 새로운 인터페이스 상의 DNS 요청을 개시할 수 있다. DNS 응답이 구 컨텐츠 서버의 IP 어드레스를 포함하지 않으면, 신 컨텐츠 서버를 사용하는 것이 바람직할 수 있다. HTTP가 애플리케이션 계층 프로토콜로서 사용되고 HTTP 프록시가 구 인터페이스 상에서 사용되었다면, 신 인터페이스에 대해 신 컨텐츠 서버를 사용하는 것이 바람직할 수 있다. 새로운 인터페이스가 HTTP 프록시를 구비하여 구성되는 경우, HTTP 프록시 자체는 컨텐츠 서버의 기능을 클라이언트로 가져갈 수 있다. 다음에는, 각각의 구 및 신 인터페이스들에 관한 “구 서버” 및 “신 서버”를 언급한다. 구 및 신 서버는 동일하거나, 상이하거나, 그리고/또는 프록시 서버를 칭할 수 있다.Referring to steps 545 and 546, after receiving the interface change addictive control signal, the controller identifies the appropriate server for content delivery on the new interface. For this purpose, the controller may initiate a DNS request on a new interface that includes a URI that is mapped to an initial method call by the client application. If the DNS response does not include the IP address of the old content server, it may be desirable to use the new content server. If HTTP is used as the application layer protocol and the HTTP proxy is used on the old interface, it may be desirable to use the new content server for the new interface. When the new interface is configured with an HTTP proxy, the HTTP proxy itself can take the functionality of the content server to the client. Next, we refer to the "old server" and "new server" for each old and new interfaces. The old and new servers may be the same, different, and / or referred to as proxy servers.

단계 550 및 박스 551을 참조하면, 제어기는 구 서버로의 구 전송 접속을 종료한다. 호스트가 단지 한 번에 하나의 인터페이스를 지원하는 경우, 이 단계는 새로운 인터페이스 상에서 컨텐츠를 전달하기 위해 적절한 서버를 식별하는 단계 이전에 수행된다. 제어기가 전송 계층 상에 구현되고 TCP가 전송 프로토콜로서 사용되는 경우, 제어기는 접속을 종료하라는 RST 명령들을 송신할 수 있다. 이를 위해, 제어기는 전송 접속 식별자를 알고 있을 필요가 있다. 제어기가 세션 계층 상에서 구현되는 경우, 제어기는 CLOSE() 호를 통해 접속을 종료할 수 있다. 이를 위해, 제어기는 소켓 기술자 및 결국은 프로세스 식별자를 알고 있을 필요가 있다.Referring to step 550 and box 551, the controller terminates the old transfer connection to the old server. If the host only supports one interface at a time, this step is performed prior to identifying the appropriate server to deliver the content on the new interface. If a controller is implemented on the transport layer and TCP is used as the transport protocol, the controller can send RST commands to terminate the connection. To do this, the controller needs to know the transport connection identifier. If the controller is implemented on the session layer, the controller can terminate the connection via the CLOSE () call. To do this, the controller needs to know the socket descriptor and eventually the process identifier.

단계 555를 참조하면, 제어기는 새로운 서버와의 새로운 인터페이스를 통해 새로운 전송 접속을 설정한다. 전송 계층에 제어기 기능이 있는 실시예들에서, 이는 동일한 프로토콜 제어 블록을 유용하게 사용할 수 있다. 그러나, 이는 새로운 인터페이스를 통해 새로운 서버와 접속 셋업 시그널링 핸드쉐이크(handshake)를 겪어야만 한다. 이것은 새로운 컨텐츠 서버에 의해 전달되는 추가 컨텐츠 데이터가 동일한 클라이언트 애플리케이션으로 전송될 수 있는 것을 보장한다. 제어기가 세션 계층에 있는 실시예들에서, 새로운 컨텐츠 서버로부터 수신되는 컨텐츠 데이터 부분들은 동일한 애플리케이션 계층프로세스 상의 동일한 소켓 기술자로 전송된다.Referring to step 555, the controller establishes a new transport connection via a new interface with the new server. In embodiments where the transport layer has a controller function, it may be useful to use the same protocol control block. However, it must undergo a connection setup signaling handshake with the new server through the new interface. This ensures that additional content data delivered by the new content server can be transferred to the same client application. In embodiments where the controller is at the session layer, portions of the content data received from the new content server are forwarded to the same socket descriptor on the same application layer process.

단계 560 및 박스 561을 참조하면, 제어기는 캐시된 메소드 호출을 신 전송 접속 상의 새로운 서버로 송신한다. 제어기는 컨텐츠 서버가 이미 수신된 양의 컨텐츠 데이터를 전달하는 것을 생략하도록 하는 오프셋을 포함하는 명령들을 삽입한다. 이 명령은 애플리케이션 계층 프로토콜에 특정된다. HTTP의 경우, HTTP 요청 헤더 내에 삽입 되어야 하는 RANGE 명령이 이미 수신된 컨텐츠의 양의 옥테트들과 함께 사용될 수 있다.Referring to step 560 and box 561, the controller sends the cached method call to the new server on the new transport connection. The controller inserts instructions that include an offset that causes the content server to skip delivering the already received amount of content data. This command is specific to the application layer protocol. In the case of HTTP, the RANGE command, which should be inserted in the HTTP request header, can be used with the positive octets of the already received content.

단계 565를 참조하면, 제어기는 새로운 접속 상에서 수신되는 모든 컨텐츠를 클라이언트 애플리케이션에 전송한다. 이를 위해, 제어기는 자신이 이 컨텐츠 검색 세션에 대해 캐싱했던 세션 접속 또는 전송 접속 식별자를 사용한다. 새로운 접속 상에서, 통과하는 컨텐츠 데이터 부분들의 계수는 추가 접속 이동 사건들이 수행될 수 있도록 계속되고, 다양한 실시예들에서 단계 565에서의 동작은 단계 535 및 박스 536에 관하여 상술한 것들과 유사하다.Referring to step 565, the controller sends all content received on the new connection to the client application. To this end, the controller uses the session connection or transport connection identifier that it has cached for this content retrieval session. On the new connection, the counting of the pieces of content data passing continues to allow additional connection movement events to be performed, and in various embodiments the operation at step 565 is similar to that described above with respect to step 535 and box 536. [

도 6은 본원에 기술되는 기능들을 수행하는데 이용하기 적합한 컴퓨터의 고 레벨 블록도를 도시한다.Figure 6 shows a high-level block diagram of a computer suitable for use in performing the functions described herein.

도 6에 도시되는 바와 같이, 컴퓨터(600)는 프로세서 요소(602)(예를 들어 중앙 처리 장치(CPU) 및/또는 다른 적절한 프로세서(들)), 메모리(604)(예를 들어, 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read only memory; ROM) 등), 협력 모듈/프로세스(605) 및 다양한 입력 출력/디바이스들(606)(예를 들어, 사용자 입력 디바이스(키보드, 키패드, 마우스 등과 같은), 사용자 출력 디바이스(디스플레이, 스피커 등과 같은), 입력 포트, 출력 포트, 수신기, 송신기, 저장 디바이스(예를 들어, 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브, 컴팩트 디스크 드라이브 등))을 포함한다.6, the computer 600 may include a processor element 602 (e.g., a central processing unit (CPU) and / or other suitable processor (s)), a memory 604 (E.g., random access memory (RAM), read only memory (ROM), etc.), cooperating modules / processes 605 and various input / output devices 606 (E.g., a tape drive, a floppy drive, a hard disk drive, a compact disk drive, etc.), an input device, ).

본원에서 도시되고 기술되는 기능들은 소프트웨어 및/또는 하드웨어로, 예를 들어 범용 컴퓨터, 하나 이상의 주문형 반도체(ASIC)들, 및/또는 임의의 다른 하드웨어 등가물들을 사용하여 구현될 수 있음이 주목되어야 한다. 하나의 실시예에서, 협력 프로세스(605)는 메모리(604) 내로 로딩되고 프로세서(602)에 의해 실행되어 본원에서 논의된 기능들을 구현할 수 있다. 그러므로, 협력 프로세스(605)(연관된 데이터 구조들을 포함하는)는 컴퓨터 판독 가능 저장 매체, 예를 들어 RAM 메모리, 자기 또는 광 드라이브 또는 디스켓 등에 저장될 수 있다.It should be noted that the functions shown and described herein may be implemented in software and / or hardware, for example, using a general purpose computer, one or more application specific integrated circuits (ASICs), and / or any other hardware equivalent. In one embodiment, collaboration process 605 may be loaded into memory 604 and executed by processor 602 to implement the functions discussed herein. Thus, collaboration process 605 (including associated data structures) may be stored in a computer-readable storage medium, such as a RAM memory, magnetic or optical drive or diskette.

도 6에 도시된 컴퓨터(600)는 본원에 기술된 기능 요소들 및/또는 본원에 기술된 기능 요소들의 일부를 구현하는데 적합한 범용 아키텍처 및 기능을 제공하는 것이 인정될 것이다. 예를 들어, 컴퓨터(600)는 호스트(110), 컨텐츠 서버들(140), 도메인 네임 서버들(130) 및/또는 이들의 일부들 등 중 하나 이상을 구현하는 데 적합한 일반적인 아키텍터 및 기능을 제공한다.It will be appreciated that the computer 600 shown in FIG. 6 provides general purpose architectures and functions suitable for implementing the functional elements described herein and / or some of the functional elements described herein. For example, computer 600 may provide general architectures and functions suitable for implementing one or more of host 110, content servers 140, domain name servers 130, and / or portions thereof do.

본원에서 소프트웨어 방법들로 논의된 단계들 중 일부는 하드웨어 내에서, 예를 들어 다양한 방법 단계들을 실행하는 프로세서와 협력하는 회로소자로서 구현될 수 있음이 고려된다. 본원에서 기술되는 기능들/요소들의 일부들은 컴퓨터 프로그램 제품으로 구현될 수 있고 여기서 컴퓨터 명령어는 컴퓨터에 의해 프로세싱될 때 컴퓨터의 동작을 적응시킴으로써 본원에서 기술된 방법들 및/또는 기술들이 인보킹(invoking)되거나 그렇지 않으면 제공되도록 한다. 본 발명의 방법들을 인보킹하기 위한 명령어는 고정 또는 제거 가능 매체에 저장되고/되거나, 브로드캐스트 또는 다른 신호 보유 매체(signal bearing medium)에서 데이터 스트림을 통해 전송되고/되거나 명령어에 따라 동작하는 컴퓨팅 디바이스 내의 메모리 내에 저장될 수 있다.It is contemplated that some of the steps discussed herein with software methods may be implemented in hardware, for example, as circuit elements that cooperate with a processor executing various method steps. Some of the functions / elements described herein may be implemented as a computer program product in which the methods and / or techniques described herein may be invoked by adapting the operation of the computer as it is being processed by the computer ) Or otherwise provided. The instructions for invoking methods of the present invention may be stored on a fixed or removable medium and / or may be transmitted via a data stream in a broadcast or other signal bearing medium and / Lt; / RTI >

다양한 실시예들은 중요한 이익들을 제공한다. 구체적으로, 다양한 실시예들에 기초하는 시스템, 장치 및 방법론들은 소위 스마트폰들의 피처 세트 내에 직접적으로 통합될 수 있다. 그와 같은 통합은 원 하드웨어/소프트웨어 피처 세트 및 모바일 폰 제조사들(예를 들어, Apple, Motorola, HTC, Samsung, Research In Motion, LG, Nokia 등) 또는 운영 시스템 판매자들(예를 들어, Apple, Google, Microsoft 등)에 의해 제공되는 모바일 폰 플랫폼 내에서 발생할 수 있다.Various embodiments provide significant benefits. In particular, systems, devices and methodologies based on various embodiments may be integrated directly into feature sets of so-called smartphones. Such integration may be achieved through a combination of raw hardware / software feature sets and mobile phone manufacturers (e.g., Apple, Motorola, HTC, Samsung, Research In Motion, LG, Google, Microsoft, etc.).

다양한 실시예들에 따라 통합되는 피처들은 본원에서 기술되는 다양한 기능들을 수행하는 데 효율적인 메커니즘을 제공하고 다양한 하드웨어 및 소프트웨어 판매사들에 제품 차별화를 제공한다.The features integrated according to various embodiments provide an efficient mechanism for performing the various functions described herein and provide product differentiation to various hardware and software vendors.

본원에서 기술되는 다양한 실시예들은 (1) 멀티-호밍이 스마트 폰들 상에서 유비쿼터스한 피처가 되었고, (2) 네트워크들이 여러 서비스 공급자들에 의해 운영되는 많은 이형의 네트워크 시나리오들(Wi-Fi가 추가된 3G/4G)이 존재하고, (3) 특수한 네트워크 측 장비가 필요하지 않고 (4) 서버에 대한 업그레이드가 필요하지 않기 때문에 모바일 폰 또는 모바일 OS 판매자에 의해 용이하게 적응된다. 본 발명은 그러므로 어떠한 제 3 자 투자에 의존하지 않고 폰 또는 모바일 OS에 가치를 더한다.The various embodiments described herein may be applied to many different network scenarios where Wi-Fi is added (e.g., Wi-Fi is added), where (1) multi-homing has become a ubiquitous feature on smart phones, 3G / 4G), (3) no special network side equipment is required, and (4) no upgrade to the server is required. The present invention therefore adds value to the phone or mobile OS without relying on any third party investment.

유용하게는, 다양한 실시예들은 예시적으로 HTTP 기반 컨텐츠 검색 애플리케이션들에 대하여 네트워크들에 걸쳐 또는 액세스 제공자들에 걸쳐 이동성 또는 인터페이스 이동을 가능하게 한다. 이 애플리케이션들은 다수의 모바일 인터넷 트래픽을 나타낸다.Advantageously, the various embodiments illustratively enable mobility or interface movement across the networks or across the access providers for HTTP based content retrieval applications. These applications represent a large number of mobile Internet traffic.

다양한 실시예들은 애플리케이션들에 투명한 방식으로 이 피처들을 제공함으로써, 레거시 애플리케이션 등이 이후에 상기 피처들에 영향을 주는 것이 가능할 수 있게 된다. 다양한 실시예들은 또한 액세스 제공자들에 투명한 방식으로 이 피터들을 제공함으로써, 이동성 앵커들 등과 같은 임의의 특수한 네트워크-측 장비가 필요하지 않게 된다.Various embodiments may provide these features in a manner that is transparent to the applications, such that it may be possible for a legacy application or the like to subsequently affect the features. Various embodiments also provide these peters in a manner transparent to access providers, so that no special network-side equipment, such as mobile anchors, is required.

더욱이, 원격 컨텐츠 서버들은 애플리케이션 계층 프로토콜이 컨텐츠 요청 메시지 내에 오프셋 기술을 포함하지 않는 한 어떠한 프로토콜 업그레이드도 요구하지 않는다. 이 여건은 HTTP 및 유사한 프로토콜들에 대해 만족된다.Moreover, remote content servers do not require any protocol upgrades unless the application layer protocol includes an offset description in the content request message. This condition is satisfied for HTTP and similar protocols.

더욱이, 컨텐츠 서버는 또한 이동성/인터페이스-이동 중에 변경될 수 있고, 이는 선택되는 각각의 네트워크에 대해 최적의 서버를 사용하는 것을 가능하게 한다. 이 피처는 또한 일부 네트워크들, 예를 들어 기업 네트워크들에 존재하는 프록시들이 존재할 때 동작을 가능하게 한다. 그러므로, 다양한 실시예들에서, 기업 네트워크 및 모바일 네트워크 운영자의 네트워크 사이에서의 세션 이동들이 지원된다.Moreover, the content server may also be changed during mobility / interface-migration, which makes it possible to use an optimal server for each network selected. The feature also enables operation when there are proxies present in some networks, e.g., corporate networks. Thus, in various embodiments, session mobility between a corporate network and a mobile network operator's network is supported.

본 발명의 내용들에 통합되는 다양한 실시예들이 본원에서 상세하게 도시되고 기술되었을지라도, 당업자는 이 내용들을 여전히 통합하고 있는 많은 다른 변형된 실시예들을 용이하게 발명할 수 있다.While various embodiments incorporating the teachings of the present invention have been shown and described in detail herein, those skilled in the art will readily envision many other varied embodiments that still incorporate these teachings.

Claims (10)

호스트에 있는 컨텐츠 검색 애플리케이션과 연관되는 컨텐츠 검색 세션을 제 1 인터페이스를 통하는 제 1 서버로부터 제 2 인터페이스를 통하는 제 2 서버로 이동시키는 방법으로서,
상기 제 2 인터페이스를 사용하여 상기 제 2 서버와의 전송 접속을 설정하는 단계와,
상기 제 2 인터페이스를 통해 상기 제 2 서버로 컨텐츠 요청 메시지를 송신하는 단계- 상기 컨텐츠 요청 메시지는 검색될 컨텐츠와 연관되는 식별자와 상기 컨텐츠 검색 애플리케이션에 의해 수신되는 컨텐츠 부분들의 표시를 포함함 -와,
상기 컨텐츠 검색 애플리케이션에 의해 수신되는 추가적인 컨텐츠 부분들을 식별하기 위해 상기 제 2 인터페이스를 통해 수신되는 컨텐츠 함유 데이터 스트림(content bearing data stream)을 분석하는 단계와,
상기 컨텐츠 검색 애플리케이션으로, 상기 컨텐츠 검색 애플리케이션에 의해 수신되지 않은 식별된 컨텐츠 부분들을 전송하는 단계를 포함하는
방법.
A method for moving a content search session associated with a content retrieval application at a host from a first server through a first interface to a second server via a second interface,
Establishing a transfer connection with the second server using the second interface;
Transmitting a content request message to the second server via the second interface, the content request message including an identifier associated with the content to be searched and an indication of content portions received by the content search application;
Analyzing a content bearing data stream received via the second interface to identify additional content portions received by the content retrieval application;
And transmitting, to the content retrieval application, identified content portions that have not been received by the content retrieval application
Way.
제 1 항에 있어서,
상기 제 1 인터페이스를 통해 수신되는 컨텐츠의 전달을 억제하는 단계를 더 포함하는
방법.
The method according to claim 1,
Further comprising inhibiting delivery of content received via the first interface
Way.
제 1 항에 있어서,
상기 컨텐츠 검색 애플리케이션에 의해 송신되는 컨텐츠 요청 메시지들을 캐싱(cashing)하는 단계를 더 포함하고, 상기 제 2 인터페이스를 통해 상기 제 2 서버로 전송되는 상기 컨텐츠 요청 메시지 내의 상기 컨텐츠 식별자는 캐싱된 컨텐츠 요청 메시지로부터 도출되는
방법.
The method according to claim 1,
The method of claim 1, further comprising: caching content request messages transmitted by the content retrieval application, wherein the content identifier in the content request message transmitted to the second server via the second interface comprises a cached content request message Derived from
Way.
제 3 항에 있어서,
상기 컨텐츠 검색 애플리케이션으로 전달되는 컨텐츠 부분들의 표현을 캐싱하는 단계를 더 포함하고, 상기 컨텐츠 검색 애플리케이션에 의해 수신된 상기 컨텐츠 부분들의 표시는 캐싱된 컨텐츠 부분 표현으로부터 도출되는
방법.
The method of claim 3,
Further comprising: caching a representation of content portions delivered to the content retrieval application, wherein an indication of the content portions received by the content retrieval application is derived from a cached content sub-
Way.
제 1 항에 있어서,
상기 제 2 서버와의 상기 전송 접속은 상기 제 1 인터페이스를 통해 수신되는 혼잡 레벨 표시자, 상기 제 2 인터페이스를 통해 수신되는 혼잡 레벨 표시자, 선호되는 서비스 제공자가 상기 제 2 인터페이스와 연관된다는 결정, 선호되는 서버가 상기 제 2 인터페이스와 연관된다는 결정, 감소되는 비용이 상기 제 2 인터페이스와 연관된다는 결정, 성능 증가가 상기 제 2 인터페이스와 연관된다는 결정 및 선호되는 네트워크가 상기 제 2 인터페이스와 연관된다는 결정 중 하나 이상과 연관되는 제어 신호에 응답하여 설정되는
방법.
The method according to claim 1,
Wherein the transfer connection with the second server comprises a congestion level indicator received via the first interface, a congestion level indicator received via the second interface, a determination that the preferred service provider is associated with the second interface, A determination that a preferred server is associated with the second interface, a determination that a reduced cost is associated with the second interface, a determination that a performance increase is associated with the second interface, and a determination that the preferred network is associated with the second interface Lt; RTI ID = 0.0 > and / or < / RTI >
Way.
제 1 항에 있어서,
상기 컨텐츠 검색 애플리케이션에 의해 수신되는 상기 컨텐츠 부분들의 표시는 옥테트 계수(octet count)에 기초하고,
상기 컨텐츠 요청 메시지는 HTTP GET 메시지를 포함하고,
상기 컨텐츠 검색 애플리케이션에 의해 수신되는 상기 컨텐츠 부분들의 표시는 옥테트 계수에 기초하고, 상기 옥테트 계수는 상기 HTTP GET 메시지의 RANGE 엔트리로서 포함되는
방법.
The method according to claim 1,
Wherein the indication of the content portions received by the content search application is based on an octet count,
The content request message includes an HTTP GET message,
Wherein the indication of the content portions received by the content retrieval application is based on an octet count and the octet count is included as a RANGE entry in the HTTP GET message
Way.
제 1 항에 있어서,
DNS 위치 서비스는 상기 제 2 서버를 식별하는 데 사용되고, 상기 방법은 상기 제 2 서버와 연관되는 호스트 균일 자원 식별자(uniform resource indicator; URI) 또는 균일 자원 로케이터(uniform resource locator; URL)를 포함하는 DNS 요청을 상기 DNS 위치 서비스로 전송하는 단계를 더 포함하는
방법.
The method according to claim 1,
Wherein the DNS location service is used to identify the second server and the method comprises the steps of providing a DNS with a uniform resource identifier (URI) or a uniform resource locator (URL) associated with the second server Sending a request to the DNS location service
Way.
제 1 항에 있어서,
TCP는 전송 메커니즘으로서 사용되고, 상기 제 1 서버에 의한 추가 데이터 전달은 상기 제 1 인터페이스를 통해 TCP RST 메시지를 전송함으로써 억제되는
방법.
The method according to claim 1,
TCP is used as a transport mechanism and further data transfer by the first server is suppressed by sending a TCP RST message over the first interface
Way.
호스트에 있는 컨텐츠 검색 애플리케이션과 연관되는 컨텐츠 검색 세션을 제 1 인터페이스를 통하는 제 1 서버로부터 제 2 인터페이스를 통하는 제 2 서버로 이동시키는 장치로서,
프로세서를 포함하고,
상기 프로세서는,
상기 제 2 인터페이스를 사용하여 상기 제 2 서버와의 전송 접속을 설정하고,
상기 제 2 인터페이스를 통해 상기 제 2 서버로 컨텐츠 요청 메시지를 송신하고 -상기 컨텐츠 요청 메시지는 검색될 컨텐츠와 연관되는 식별자와 상기 컨텐츠 검색 애플리케이션에 의해 수신되는 컨텐츠 부분들의 표시를 포함함 -
상기 컨텐츠 검색 애플리케이션에 의해 수신되는 추가적인 컨텐츠 부분들을 식별하기 위해 상기 제 2 인터페이스를 통해 수신되는 컨텐츠 함유 데이터 스트림을 분석하고,
상기 컨텐츠 검색 애플리케이션으로, 상기 컨텐츠 검색 애플리케이션에 의해 수신되지 않은 식별된 컨텐츠 부분들을 전송하도록 구성되는
장치.
An apparatus for moving a content search session associated with a content retrieval application at a host from a first server through a first interface to a second server via a second interface,
A processor,
The processor comprising:
Establishing a transfer connection with the second server using the second interface,
Transmitting a content request message to the second server via the second interface, the content request message including an identifier associated with the content to be searched and an indication of content portions received by the content search application;
Analyzing the content-containing data stream received via the second interface to identify additional content portions received by the content search application,
To the content retrieval application, to transmit identified content portions that have not been received by the content retrieval application
Device.
프로세서에 의해 실행될 때, 호스트에 있는 컨텐츠 검색 애플리케이션과 연관되는 컨텐츠 검색 세션을 제 1 인터페이스를 통하는 제 1 서버로부터 제 2 인터페이스를 통하는 제 2 서버로 이동시키는 방법을 수행하는 소프트웨어 명령어를 포함하는 컴퓨터 판독 가능 매체로서, 상기 방법은,
상기 제 2 인터페이스를 사용하여 상기 제 2 서버와의 전송 접속을 설정하는 단계와,
상기 제 2 인터페이스를 통해 상기 제 2 서버로 컨텐츠 요청 메시지를 송신하는 단계 - 상기 컨텐츠 요청 메시지는 검색될 컨텐츠와 연관되는 식별자와 상기 컨텐츠 검색 애플리케이션에 의해 수신되는 컨텐츠 부분들의 표시를 포함함 -와,
상기 컨텐츠 검색 애플리케이션에 의해 수신되는 추가적인 컨텐츠 부분들을 식별하기 위해 상기 제 2 인터페이스를 통해 수신되는 컨텐츠 함유 데이터 스트림을 분석하는 단계와,
상기 컨텐츠 검색 애플리케이션으로, 상기 컨텐츠 검색 애플리케이션에 의해 수신되지 않은 식별된 컨텐츠 부분들을 전송하는 단계를 포함하는
컴퓨터 판독 가능 매체.
A computer readable storage medium storing instructions that, when executed by a processor, causes a computer readable storage medium to perform a method of moving a content search session associated with a content retrieval application at a host from a first server via a first interface to a second server via a second interface, As a possible medium,
Establishing a transfer connection with the second server using the second interface;
Transmitting a content request message to the second server via the second interface, the content request message including an identifier associated with the content to be searched and an indication of content portions received by the content search application;
Analyzing the content-containing data stream received via the second interface to identify additional content portions received by the content search application;
And transmitting, to the content retrieval application, identified content portions that have not been received by the content retrieval application
Computer readable medium.
KR1020147008171A 2011-09-30 2012-09-11 System and method for mobility and multi-homing content retrieval applications KR101574453B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/249,314 US9215283B2 (en) 2011-09-30 2011-09-30 System and method for mobility and multi-homing content retrieval applications
US13/249,314 2011-09-30
PCT/US2012/054588 WO2013048717A1 (en) 2011-09-30 2012-09-11 System and method for mobility and multi-homing content retrieval applications

Publications (2)

Publication Number Publication Date
KR20140054382A true KR20140054382A (en) 2014-05-08
KR101574453B1 KR101574453B1 (en) 2015-12-03

Family

ID=46888697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008171A KR101574453B1 (en) 2011-09-30 2012-09-11 System and method for mobility and multi-homing content retrieval applications

Country Status (6)

Country Link
US (1) US9215283B2 (en)
EP (1) EP2761843B1 (en)
JP (1) JP5872702B2 (en)
KR (1) KR101574453B1 (en)
CN (1) CN103828328B (en)
WO (1) WO2013048717A1 (en)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139871B (en) * 2011-11-25 2016-05-11 上海贝尔股份有限公司 A kind of in ubiquitous sensor network for supporting the method in many locals
US8817797B2 (en) * 2012-01-31 2014-08-26 Alcatel Lucent Method and apparatus for multipath protocol packet relay
US8824480B2 (en) * 2012-01-31 2014-09-02 Alcatel Lucent Method and apparatus for end-host based mobility, multi-homing and multipath protocols
US9756682B2 (en) * 2012-02-06 2017-09-05 Aruba Networks, Inc. Method and system for partitioning wireless local area network
US8924581B1 (en) * 2012-03-14 2014-12-30 Amazon Technologies, Inc. Managing data transfer using streaming protocols
WO2014107602A1 (en) * 2013-01-03 2014-07-10 Huawei Technologies Co., Ltd. An end-user carried location hint for content in information-centric networks
US9614918B2 (en) 2013-03-14 2017-04-04 International Business Machines Corporation Migration of network connection under mobility
KR102070149B1 (en) * 2013-06-10 2020-01-28 에스케이텔레콤 주식회사 Method for delivery of content by means of caching in communication network and apparatus thereof
US20150012668A1 (en) * 2013-07-04 2015-01-08 Arcsoft Hangzhou Co., Ltd. Method of Communicating Between Multiple Digital Living Network Alliance Networks
US9635114B2 (en) * 2014-01-24 2017-04-25 Netapp, Inc. Externally initiated application session endpoint migration
US9350672B2 (en) * 2014-03-13 2016-05-24 Cisco Technology, Inc. Performance enhancement and congestion control of multipath protocol packets in a heterogeneous network environment with multipath transport protocols
US20150281367A1 (en) * 2014-03-26 2015-10-01 Akamai Technologies, Inc. Multipath tcp techniques for distributed computing systems
KR102154788B1 (en) 2014-10-02 2020-09-11 삼성전자주식회사 A DNS resolution method in a terminal of a wireless communication system, and an apparatus therefor
US9912780B2 (en) * 2015-05-05 2018-03-06 Ford Global Technologies, Llc Method and apparatus for module remote request handling
EP3494686B1 (en) * 2016-08-05 2020-12-30 Telefonaktiebolaget LM Ericsson (publ) Transport protocol server relocation
EP3497916B1 (en) 2016-08-05 2020-12-09 Telefonaktiebolaget LM Ericsson (publ) Supporting transport protocol server relocation
US20180048700A1 (en) * 2016-08-11 2018-02-15 Qualcomm Incorporated Distribution of application data between modems
KR20180044635A (en) 2016-10-24 2018-05-03 삼성전자주식회사 Storage systems and methods of operating thereof
US11088940B2 (en) 2017-03-07 2021-08-10 Akamai Technologies, Inc. Cooperative multipath
US11223689B1 (en) * 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
AU2019279102A1 (en) * 2018-05-31 2020-12-10 Mobophiles, Inc., Dba Mobolize Systems and methods for dynamic channel bonding
JP7137208B2 (en) * 2018-11-13 2022-09-14 株式会社国際電気通信基礎技術研究所 COMMUNICATION METHOD, PROGRAM, COMMUNICATION TERMINAL, AND MEC SERVER
CN110113306B (en) * 2019-03-29 2022-05-24 华为技术有限公司 Method and network device for distributing data
US11824751B2 (en) * 2020-04-21 2023-11-21 Grass Valley Canada System and method for controlling distribution of media content in a distributed system

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041357A (en) 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6377996B1 (en) 1999-02-18 2002-04-23 International Business Machines Corporation System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming
US6549937B1 (en) * 1999-07-21 2003-04-15 Microsoft Corporation System and method for multi-protocol communication in a computer network
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US7159235B2 (en) * 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for content distribution via non-homogeneous access networks
EP1312193A2 (en) * 2000-08-16 2003-05-21 Filestream, Inc. End-to-end secure file transfer method and system
US7257386B1 (en) * 2000-11-20 2007-08-14 Hewlett-Packard Development Company, L.P. Data transfer system and method of data transfer
JP2002330381A (en) 2000-12-07 2002-11-15 Matsushita Electric Ind Co Ltd Data reproduction method, data receiving terminal and data receiving method
GB0104281D0 (en) * 2001-02-21 2001-04-11 Nokia Networks Oy A communication system
EP1410202B1 (en) * 2001-03-16 2006-07-26 Novell, Inc. Client-server model for synchronization of files
US7065051B2 (en) * 2001-03-27 2006-06-20 Intel Corporation Management and scheduling of data that is wirelessly transmitted between a base transceiver station and subscriber units
JP2004007327A (en) 2001-06-29 2004-01-08 Matsushita Electric Ind Co Ltd Data reproducing device and data repeater
US7016359B2 (en) * 2001-08-22 2006-03-21 Alcatel Wireless, Inc. Method for providing hybrid voice and packet data services to a mobile station
AU2002343424A1 (en) * 2001-09-28 2003-04-14 Bluesocket, Inc. Method and system for managing data traffic in wireless networks
US20030114158A1 (en) * 2001-12-18 2003-06-19 Lauri Soderbacka Intersystem handover of a mobile terminal
US6957374B1 (en) * 2002-01-31 2005-10-18 The United States Of America As Represented By The National Security Agency Method of acknowledging receipt of data packets
MXPA04009506A (en) * 2002-04-03 2005-01-25 Nokia Corp Enabling a content provider initiated content delivery via a specific radio access network.
US20040085944A1 (en) * 2002-11-04 2004-05-06 Boehm Lawrence D. Portable wireless internet gateway
WO2004066650A1 (en) * 2003-01-20 2004-08-05 Sk Telecom Co., Ltd Method for controlling a media message upload through a wireless communication network
JP2004265354A (en) 2003-03-04 2004-09-24 Ntt Docomo Inc System and method for controlling multimedia streaming session
US7586857B2 (en) * 2003-04-01 2009-09-08 Alcatel-Lucent Usa Inc. Fast network SIP/SDP procedures for conference operations upon request from end user with optimization of network resources
US20080200168A1 (en) * 2003-08-05 2008-08-21 John Yue Jun Jiang Method and system for seamless data roaming across multiple operator bearers
EP1523208B1 (en) * 2003-09-11 2006-08-30 Alcatel Registration of a dual mode terminal in a cellular and a WLAN network
US20130097302A9 (en) * 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US7533190B2 (en) * 2004-04-08 2009-05-12 Intel Corporation Network storage target boot and network connectivity through a common network device
EP1637999A1 (en) * 2004-09-20 2006-03-22 Sap Ag Data transmission apparatus and method having resume data transmission in case of interrupted transmission
US8005483B2 (en) * 2004-10-27 2011-08-23 Qwest Communications International Inc. Mobile caching and data relay vectoring systems and methods
AU2004324701A1 (en) * 2004-11-03 2006-05-11 Nokia Corporation Inter-system hand-over of a mobile terminal operable with a first and a second radio access network
US7761098B1 (en) * 2007-06-05 2010-07-20 Sprint Communications Company L.P. Handset mode selection based on user preferences
US8238326B2 (en) * 2004-11-18 2012-08-07 Ruckus Wireless, Inc. Maintaining consistent network connections while moving through wireless networks
US7558277B2 (en) * 2004-12-15 2009-07-07 At&T Intellectual Property I, Lp Coordinated multi-network data services
US20060159047A1 (en) * 2005-01-18 2006-07-20 Interdigital Technology Corporation Method and system for context transfer across heterogeneous networks
US7865188B2 (en) * 2005-01-21 2011-01-04 Oracle Israel Ltd. Convergence of ancillary call services across multiple communication domains
EP1842392B1 (en) * 2005-01-21 2014-01-01 Oracle Israel Ltd. Service convergence across multiple communication domains
WO2006124577A2 (en) * 2005-05-12 2006-11-23 Nortel Networks Limited Using an access point name to select an access gateway node
US7664501B2 (en) * 2005-05-18 2010-02-16 Ashutosh Dutta Seamless handoff across heterogeneous access networks using a handoff controller in a service control point
US7706796B2 (en) * 2005-09-01 2010-04-27 Qualcomm Incorporated User terminal-initiated hard handoff from a wireless local area network to a cellular network
EP1967031B1 (en) * 2005-12-28 2010-02-17 Panasonic Corporation Method for verifications and fast qos establishment
US7630711B2 (en) * 2006-01-05 2009-12-08 Qualcomm Incorporated Method and system for mapping provisioning information of different communications networks
US7761119B2 (en) * 2006-07-05 2010-07-20 Kyocera Corporation Signal strength annunciators for multi-mode wireless communication devices
US20080126831A1 (en) * 2006-07-27 2008-05-29 Downey Audra F System and Method for Caching Client Requests to an Application Server Based on the Application Server's Reliability
KR20090113294A (en) * 2007-01-18 2009-10-29 인터디지탈 테크날러지 코포레이션 Method and apparatus for media independent handover
US7783757B2 (en) * 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US7962152B2 (en) * 2007-05-24 2011-06-14 Virgin Mobile Usa, L.P. Location determination for wireless mobile devices
CN101068351B (en) * 2007-05-25 2010-06-16 中兴通讯股份有限公司 Mobile terminal digital television data transmitting method
GB2449923B (en) * 2007-06-09 2011-09-28 King's College London Inter-working of networks
US8078171B2 (en) * 2007-06-15 2011-12-13 Intel Corporation Handoff of a mobile station from a first to a second type of wireless network
US20090052450A1 (en) * 2007-08-22 2009-02-26 Mockett Gregory P Apparatus, system, and method for video delivery using dual multicast streams with one being delayed
ES2371441T3 (en) * 2007-10-19 2012-01-02 Thrupoint, Inc. CONNECTION TRANSFER MANAGEMENT.
WO2009056932A2 (en) * 2007-11-01 2009-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Circuit-switched services over sae/lte networks
US8244885B2 (en) * 2007-12-26 2012-08-14 Motorola Solutions, Inc. Using domain name service for identifying a home domain of a roaming device
US9098833B2 (en) * 2008-02-04 2015-08-04 Toshiba America Research, Inc. Populating and managing (PAM) contact information in the network address book (NAB)
CN101547143B (en) * 2008-03-28 2012-10-03 华为技术有限公司 Method and device for switching streaming media service
US8305980B1 (en) * 2008-09-12 2012-11-06 Nix John A Efficient handover of media communications in heterogeneous IP networks using handover procedure rules and media handover relays
US9066309B2 (en) * 2008-09-23 2015-06-23 Qualcomm Incorporated Method and apparatus for reducing successive pre-registration attempts by access terminals
US8046432B2 (en) * 2009-04-17 2011-10-25 Microsoft Corporation Network caching for multiple contemporaneous requests
US20100315958A1 (en) * 2009-06-11 2010-12-16 Luo Xiapu Method for non-cooperative measurement of network data-path quality
US8131847B2 (en) * 2009-08-12 2012-03-06 Cellco Partnership Mechanism to detect restricted access via internet hotspot
GB0919655D0 (en) * 2009-11-10 2009-12-23 Ciqual Ltd Methods and apparatus for monitoring network link quality
CN102123500B (en) * 2010-01-08 2016-08-03 华为技术有限公司 The resource allocation methods of multimode terminal and device
JP2011155589A (en) * 2010-01-28 2011-08-11 Hitachi Ltd Hybrid communication terminal, and program
US8929284B2 (en) * 2010-02-03 2015-01-06 Qualcomm Incorporated Method and apparatus to enable inter-system transfer of a packet switched session
US20110225312A1 (en) * 2010-03-10 2011-09-15 Thomson Licensing Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks
US8554731B2 (en) * 2010-03-31 2013-10-08 Microsoft Corporation Creating and propagating annotated information
JP5418394B2 (en) * 2010-04-28 2014-02-19 ブラザー工業株式会社 Wireless communication device
US8644276B2 (en) * 2010-05-13 2014-02-04 Research In Motion Limited Methods and apparatus to provide network capabilities for connecting to an access network
US20110319073A1 (en) * 2010-06-28 2011-12-29 Research In Motion Limited Method And System for Radio Access Technology Selection
US10142292B2 (en) * 2010-06-30 2018-11-27 Pulse Secure Llc Dual-mode multi-service VPN network client for mobile device
KR20120002251A (en) * 2010-06-30 2012-01-05 주식회사 케이티 Method for performing handover between mobile telecommunication network and mobile internet network, and multi mode terminal apparatus
US8464336B2 (en) * 2010-06-30 2013-06-11 Juniper Networks, Inc. VPN network client for mobile device having fast reconnect
US8700034B2 (en) * 2010-08-24 2014-04-15 Alcatel Lucent Querying a subscriber server for identities of multiple serving elements of user equipment (UE)
US20120072228A1 (en) * 2010-09-20 2012-03-22 Sprint Communications Company L.P. Selection of supplemental content for wireless communication devices based on device status
US8750188B2 (en) * 2010-12-01 2014-06-10 Deutsche Telekom Ag System support for accessing and switching among multiple wireless interfaces on mobile devices
US20120324568A1 (en) * 2011-06-14 2012-12-20 Lookout, Inc., A California Corporation Mobile web protection

Also Published As

Publication number Publication date
US20130086142A1 (en) 2013-04-04
KR101574453B1 (en) 2015-12-03
JP5872702B2 (en) 2016-03-01
CN103828328B (en) 2018-01-16
EP2761843A1 (en) 2014-08-06
JP2014532233A (en) 2014-12-04
US9215283B2 (en) 2015-12-15
EP2761843B1 (en) 2018-06-20
WO2013048717A1 (en) 2013-04-04
CN103828328A (en) 2014-05-28

Similar Documents

Publication Publication Date Title
KR101574453B1 (en) System and method for mobility and multi-homing content retrieval applications
US8812623B2 (en) Techniques to support selective mobile content optimization
US9883000B2 (en) Server-push service in heterogeneous network environment
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
US20120077483A1 (en) Enabling interface aggregation of mobile broadband network interfaces
CN109088799B (en) Client access method, device, terminal and storage medium
KR101378435B1 (en) Handoff and optimization module of a network protocol stack
CN110620802B (en) Load balancing method and device
KR101981285B1 (en) Contents delivery service system using contents identification, apparatus therefor and contents delivery service method thereof
EP1244262A1 (en) Redirection of client requests
US20150127837A1 (en) Relay apparatus and data transfer method
EP3917083A1 (en) Network device and method for searching for edge service implemented in network device
KR20140021372A (en) Contents delivery service method and local cache apparatus using contents identification
JP4245986B2 (en) NETWORK SYSTEM, DATA DOWNLOAD CONTINUING METHOD AT TERMINAL SWITCHING IN THE NETWORK SYSTEM, AND PROGRAM THEREOF
US10110646B2 (en) Non-intrusive proxy system and method for applications without proxy support
EP3188015A1 (en) Requesting and receiving a media stream within a networked system
US20230269575A1 (en) Base station device and method for operating base station device
KR101319832B1 (en) Mobile contents delivery service method and local cashing server
US11240338B2 (en) Integrated content delivery of enhanced mobile gateway system
Qian et al. Optimization of webpage downloading performance with content-aware mobile edge computing
KR102157477B1 (en) Traffic redirection method for contents delivery service and computer readable recording medium
Ling et al. Preserving HTTP sessions in vehicular environments

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 5