KR20080026571A - 다중-호밍, 다중-모드 통신 장치에서의 데이터인터페이스들 선택 - Google Patents

다중-호밍, 다중-모드 통신 장치에서의 데이터인터페이스들 선택 Download PDF

Info

Publication number
KR20080026571A
KR20080026571A KR1020077031048A KR20077031048A KR20080026571A KR 20080026571 A KR20080026571 A KR 20080026571A KR 1020077031048 A KR1020077031048 A KR 1020077031048A KR 20077031048 A KR20077031048 A KR 20077031048A KR 20080026571 A KR20080026571 A KR 20080026571A
Authority
KR
South Korea
Prior art keywords
data
application
data interface
network
interface
Prior art date
Application number
KR1020077031048A
Other languages
English (en)
Other versions
KR101032843B1 (ko
Inventor
업핀더 싱 밥바르
필 제이. 보스트레이
벤카타 사티시 쿠말 반가라
비네이 파라드칼
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20080026571A publication Critical patent/KR20080026571A/ko
Application granted granted Critical
Publication of KR101032843B1 publication Critical patent/KR101032843B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/308Route determination based on user's profile, e.g. premium users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices
    • H04W88/10Access point devices adapted for operation in multiple networks, e.g. multi-mode access points
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Radio Relay Systems (AREA)

Abstract

다중-호밍 네트워크 장치로부터 데이터 네트워크로 데이터를 전송 및 수신하는 방법이 기재되어 있는데, 상기 방법은 네트워크 폴리시를 정하는 단계 및 상기 네트워크 폴리시를 라우팅 모듈에 전송하는 단계를 포함한다. 또한, 상기 방법은 라우팅 모듈로부터 루트 스코프를 수신하는 단계를 포함한다. 루트 스코프는 네트워크 폴리시를 충족시키는 데이터 네트워크에 대한 데이터 인터페이스들 서브세트를 식별하고, 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택되고, 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함한다.

Description

다중-호밍, 다중-모드 통신 장치에서의 데이터 인터페이스들 선택{SELECTING DATA INTERFACES IN A MULTI-HOMING, MULTI-MODE COMMUNICATION DEVICE}
본 출원은 2005년 6월 1일자로 미국 가특허출원된 제 60/686,844호의 우선권을 청구한다.
본 발명은 전반적으로 네트워크 장치들에 관한 것이다. 특히, 본 발명은 다중-호밍 네트워크 장치들(multi-homing network devices)에 관한 것이다.
최근에는, 동작 중에 있는 무선 핸드셋들의 수가 현저하게 증가하고 있다. 이러한 이동 장치들에 대한 요구의 증가로 인해서, 제작자들은 많은 데이터 서비스들을 포함하도록 이러한 장치들을 제작하고 있다. 데이터 서비스들에 대한 이러한 집중적인 관점은 무선 장치들로 하여금 데이터 네트워킹을 위해 강력한 자원들을 이용할 수 있게 한다. 그러나, 무선 장치들에 의해 제공되는 데이터 서비스들의 증가로 인해서, 무선 장치들에 대한 불법적인 공격들이 증가하고 있다. 그로 인해서, 악성의 공격으로부터 이러한 장치들을 보호하고자 하는 것에 관심이 증가하고 있다.
무선 전화기들은 상기 무선 전화기들로 하여금 데이터를 수용하고 전송하도록 하는 많은 데이터 인터페이스를 포함하고 있는 다중-호밍 장치들이 되고 있다. 아무 때나, 특정 무선 전화기 내에서는, 이러한 데이터 인터페이스들 중 하나 이상이 인터넷이나 다른 데이터 네트워크와의 직접적인 데이터 전송을 위해 오픈될 수 있다. 이동 장치 내의 데이터 프로토콜 스택은 그 장치의 다중 데이터 인터페이스들에 대부분 투명하다. 게다가, 데이터 프로토콜 스택은 인입 데이터의 프로토콜 주소가 전화기의 프로토콜 주소에 일치하는 한은 데이터 인터페이스들 중 임의의 인터페이스로부터 데이터를 수용할 수 있다. 이로써, 무선 전화기는 인터넷 및 다른 데이터 네트워크들로부터의 많은 공격들에 대해 오픈되어 취약할 수 있다.
예컨대, 패킷이 다중-호밍 장치에서 데이터 인터페이스를 통해 수신될 때, 그 패킷은 적절한 소켓이나 또는 애플리케이션에 라우팅될 수 있다. 일반적으로, 전송 제어 프로토콜(TCP)을 사용하여 접속되는 소켓의 경우에, 패킷은 예컨대 소스 주소(src_addr), 소스 포트(src_port), 목적지 주소(dst_addr), 및 목적지 포트(dst_port)와 같은 4 개의 튜플들(tuples)에 기초하여 소켓에 라우팅된다. 사용자 데이터그램 프로토콜(UDP)을 사용하여 접속되는 소켓의 경우에, 패킷은 예컨대 목적지 주소(dst_addr) 및 목적지 포트(dst_port)와 같은 2 개의 튜플들에 기초하여 소켓에 라우팅된다. 인터넷 제어 메시지 프로토콜(ICMP) 또는 프로토콜들에 기초하는 비-인터넷 프로토콜(IP)과 같은 다른 프로토콜들의 경우에는, 네트워크의 다른 필드들 및 전송 층 헤더들이 사용될 수 있다.
불행하게도, 다중-호밍 장치에서는, 위에 설명된 파라미터들이 몇 가지 이유로 인해서 데이터 인터페이스를 고유하게 식별할 수 없을 수 있다. 예컨대, 다중-호밍 장치 내의 데이터 인터페이스들에는 이중의 개인 주소들(duplicate private addresses)이 할당될 수 있다. 또한, 다중-호밍 장치 내의 여러 애플리케이션들은 상이한 네트워크 데이터 인터페이스들을 사용하여 동일한 서비스를 액세스하려 할 수 있다. 이러한 시나리오들에서는, 상기 애플리케이션들이 예컨대 UDP 또는 TCP의 경우의 동일한 포트 번호와 같은 동일한 서비스 액세스 포인트(SAP)에 결합할 수 있다. 이로써, 패킷을 적절한 목적지 애플리케이션에 정확하게 라우팅하는 것이 가능하지 않을 수 있다.
다중-호밍 장치는 또한 상기 다중-호밍 장치에서 이용가능한 상이한 데이터 인터페이스들을 통해 스퓨리어스 공격들(spurious attacks)에 취약할 수도 있다. 예컨대, 통상적인 다중-호밍 장치에서, 거기에 설치된 애플리케이션은, 데이터 인터페이스가 데이터 전송을 위해 오픈되어 있고 예컨대 IP 주소, 포트 번호 등과 같은 데이터 프로토콜 주소들이 애플리케이션의 주소와 일치하는 한, 임의의 네트워크 데이터 인터페이스로부터 데이터를 수신할 수 있다.
보안성을 고려하는 것과는 별도로, 데이터 네트워크 제공자들은 여러 서비스들에 대한 요금청구 및 사용과 데이터 네트워크들을 통해 이동 전화기들에 이용가능한 기술들에 대해서 관심을 가질 수도 있다. 예컨대, 데이터 네트워크 제공자가 제공하는 각각의 새로운 서비스 및 기술과 관련한 특정 비용이 존재하고, 캐리어들은 통상적으로 이동 전화기 사용자에 의해 사용되는 여러 서비스들에 대한 쉬운 개별적인 요금청구에 관여된다. 만약 이동 전화기 내의 애플리케이션이 데이터 전송을 위해 이동 전화기에서 이용가능한 특정 데이터 인터페이스들을 사용하는 것으로 제한된다면, 캐리어 네트워크가 데이터 인터페이스를 사용할 때마다 상이한 기술들 및 서비스들의 사용과 연관된 요금청구 및 비용을 명료하게 추적하는 것이 더 쉬울 수 있다.
또한, 다중-호밍 네트워킹 장치에서는, 애플리케이션을 네트워킹시키기 위한 포트 공간이 일반적으로 장치에 이용가능한 모든 데이터 인터페이스들 사이에 공유된다. 만약 애플리케이션이 특정 데이터 인터페이스를 통한 데이터 전송을 위해 특정 포트 번호를 이용하고 있다면, 어떠한 다른 애플리케이션도, 심지어 다른 애플리케이션이 완전히 다른 데이터 인터페이스를 사용하고 있는 경우에도, 동일한 포트 번호를 사용할 수 없다. 이는 상이한 데이터 인터페이스들을 통해서 그러나 동일한 포트 번호를 통해 상이한 서비스들을 실행하는데 필요할 수 있는 장치들에 대한 불필요한 제약일 수 있다. 예컨대, 네트워크 장치는 포트 80과 같은 동일한 포트 번호를 사용하지만 상이한 데이터 인터페이스들을 사용하는 두 개의 상이한 웹 서버들을 포함할 수 있다. 대부분의 네트워크 장치들은 이러한 융통성을 허용하지 않는다. 일부 구현들은 모든 데이터 인터페이스들 또는 특정 데이터 인터페이스, 즉, 하나의 인터페이스나 모든 인터페이스들에 대한 포트에 결합하는 것을 가능하게 한다.
다중-호밍 네트워크 장치로부터 데이터 네트워크로 데이터를 전송하는 방법이 개시되어 있는데, 상기 방법은 네트워크 폴리시(network policy)를 정하는 단계 및 상기 네트워크 폴리시를 라우팅 모듈에 전송하는 단계를 포함한다. 또한, 상기 방법은 라우팅 모듈로부터 루트 스코프를 수신하는 단계를 포함한다. 상기 루트 스코프는 네트워크 폴리시를 충족시키는 데이터 네트워크에 대한 데이터 인터페이스들 서브세트를 식별하고, 상기 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택되며, 상기 데이터 인터페이스들 세트는 적어도 하나의 데이터 인터페이스들을 포함한다.
특정 실시예에서, 네트워크 폴리시는 이용가능한 데이터 인터페이스들 세트로부터 데이터 인터페이스들 서브세트를 선택하기 위한 하나 이상의 기준을 식별한다. 게다가, 네트워크 폴리시는 애플리케이션으로/으로부터의 데이터 전송을 위해 사용될 둘 이상의 데이터 인터페이스들을 정한다. 다른 특정 실시예에서는, 네트워크 폴리시가 애플리케이션에 의해 정해진다.
또 다른 특정 실시예에서, 데이터 인터페이스들 서브세트는 GSM(global system for mobile communications) 데이터 인터페이스, GPRS(general packet radio service) 데이터 인터페이스, UMTS(universal mobile telecommunications system) 데이터 인터페이스, CDMA(code division multiple access) 데이터 인터페이스, CDMA 2000 데이터 인터페이스, CDMA EVDO(evolution data optimized) 인터페이스, BT(Bluetooth) 데이터 인터페이스, 802.11a 데이터 인터페이스, 802.11b 데이터 인터페이스, 802.11g 데이터 인터페이스, 802.11i 데이터 인터페이스, 802.15 데이터 인터페이스, 802.16 데이터 인터페이스, WCDMA(wideband CDMA) 데이터 인터페이스, OFCDM(orthogonal frequency code division multiplexing) 데이터 인터페이스, GPS(global positioning system) 데이터 인터페이스, 또는 이것들의 결합을 포함한다. 특정 실시예에서, 그 인터페이스들 각각은 IPv4(Internet protocol version 4) 데이터 인터페이스, IPv6(IP version 6) 데이터 인터페이스, 또는 다른 네트워크 프로토콜 데이터 인터페이스일 수 있다.
또 다른 특정 실시예에서, 네트워크 폴리시와 연관된 애플리케이션은 루트 스코프에 의해서 식별되는 데이터 인터페이스들 서브세트에 결합된다. 다른 실시예에서, 상기 방법은 데이터 인터페이스들 서브세트 내의 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계, 상기 바람직한 데이터 인터페이스가 이용가능할 때 상기 우선적인 데이터 인터페이스를 통한 접속을 오픈시키는 단계, 및 상기 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 포함한다. 또한, 상기 방법은 상기 우선적인 데이터 인터페이스가 이용가능하지 않을 때 데이터 인터페이스들 서브세트 내의 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계, 상기 그 다음으로 우선적인 데이터 인터페이스를 통한 통신을 오픈시키는 단계, 및 상기 그 다음으로 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 포함한다. 또 다른 실시예에서, 상기 방법은 접속이 차단되었는지 여부를 결정하는 단계, 접속이 차단되었을 때 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계, 상기 그 다음으로 우선적인 데이터 인터페이스를 통한 접속을 오픈시키는 단계, 및 상기 그 다음으로 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 포함한다.
다른 실시예에서는, 다중-호밍 네트워크 장치가 기재되어 있는데, 상기 다중-호밍 네트워크 장치는 프로세서 및 상기 프로세서에 액세스가능한 메모리를 포함한다. 또한, 적어도 하나의 애플리케이션이 그 메모리 내에 저장되고, 적어도 하나의 네트워크 폴리시가 그 메모리 내에 저장된다. 이 실시예에서, 적어도 하나의 네트워크 폴리시는 데이터를 전송 및 수신하기 위해 애플리케이션에 의해서 사용되어질 적어도 하나의 데이터 인터페이스를 정한다.
또 다른 실시예에서는, 프로세서에 액세스가능한 컴퓨터 판독가능 매체가 기재되어 있는데, 상기 컴퓨터 판독가능 매체는 적어도 하나의 애플리케이션 및 상기 적어도 하나의 애플리케이션과 연관된 적어도 하나의 네트워크 폴리시를 포함한다. 이 실시예에서, 네트워크 폴리시는 애플리케이션에 대해서 데이터를 통신하는데 사용될 수 있는 다중-호밍 네트워크 장치의 둘 이상의 데이터 인터페이스들을 식별한다.
또 다른 실시예에서는, 데이터 인터페이스들을 애플리케이션에 결합하기 위한 방법이 기재되어 있는데, 상기 방법은 애플리케이션으로부터 네트워크 폴리시를 수신하는 단계, 및 다중-호밍 네트워크 장치에서 애플리케이션을 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 결합하지만 모든 데이터 인터페이스들에 결합하지는 않는 단계를 포함한다. 이 실시예에서, 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함한다.
또 다른 실시예에서는, 데이터를 수신하는 방법이 기재되어 있는데, 상기 방법은 데이터 인터페이스로부터 데이터 패킷을 수신하는 단계, 데이터 인터페이스의 인터넷 프로토콜(IP) 주소를 패킷과 연관된 목적지 IP 주소에 비교하는 단계, 및 상기 데이터 인터페이스의 IP 주소가 상기 목적지 IP 주소에 일치하지 않을 때 데이터 패킷을 차단하는 단계를 포함한다.
다른 실시예에서는, 다중-호밍 장치가 기재되어 있는데, 상기 다중-호핑 장치는 프로세서, 상기 프로세서에 액세스가능한 메모리, 및 상기 메모리 내에 저장되는 라우팅 모듈을 포함한다. 이 실시예에서, 라우팅 모듈은 애플리케이션으로부터 네트워크 폴리시를 수신하고 또한 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 애플리케이션을 결합하도록 구성된다.
또 다른 실시예에서는, 프로세서에 액세스가능한 컴퓨터 판독가능 매체가 기재되어 있는데, 상기 컴퓨터 판독가능 매체는 루트 스코프를 포함한다. 이 실시예에서, 루트 스코프는 다중-호밍 장치에서 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트를 나타내고, 상기 다중-호밍 장치 내의 애플리케이션은 데이터를 전송 및 수신하기 위해 데이터 인터페이스들 서브세트에 결합된다.
또 다른 실시예에서는, 애플리케이션을 네트워크 장치 내의 적어도 한 포트에 결합하는 방법이 기재되어 있는데, 상기 방법은 포트를 요청 중인 애플리케이션에 결합하라는 요청을 수신하는 단계, 오픈 애플리케이션이 상기 포트에 결합되었는지 여부를 결정하는 단계, 및 상기 오픈 애플리케이션이 포트에 결합되지 않았을 때 상기 요청 중인 애플리케이션을 상기 포트에 결합하는 단계를 포함한다.
또 다른 실시예에서는, 사용자 인터페이스가 기재되어 있는데, 상기 사용자 인터페이스는 애플리케이션 메뉴를 포함한다. 이 실시예에서, 애플리케이션 메뉴는 다중-호밍 네트워크 장치에 설치되어 있는 애플리케이션들에 대한 리스트를 포함하고, 사용자는 선택된 애플리케이션과 연관된 적어도 하나의 네트워크 설정을 편집하기 위해서 애플리케이션 메뉴로부터 애플리케이션을 선택할 수 있다.
또 다른 실시예에서는, 멀티-호밍 네트워크 장치가 기재되어 있는데, 상기 멀티-호밍 네트워크 장치는 네트워크 폴리시를 라우팅 모듈에 전송하기 위한 수단 및 라우팅 모듈로부터의 루트 스코프를 소켓에 저장하기 위한 수단을 포함한다. 이 실시예에서, 루트 스코프는 네트워크 폴리시를 충족시키는 데이터 네트워크에 대한 데이터 인터페이스들 서브세트를 식별하고, 상기 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택된다. 또한, 상기 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함한다.
다른 실시예에서는, 다중-호밍 네트워크 장치가 기재되어 있는데, 상기 다중-호밍 네트워크 장치는 애플리케이션으로부터 네트워크 폴리시를 수신하기 위한 수단, 및 다중-호밍 네트워크 장치에서 애플리케이션을 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 결합하지만 모든 데이터 인터페이스들에 결합하지는 않기 위한 수단을 포함한다. 이 실시예에서, 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함한다.
또 다른 실시예에서는, 다중-호밍 네트워크 장치가 기재되어 있는데, 상기 다중-호미 네트워크 장치는 데이터 인터페이스로부터 데이터 패킷을 수신하기 위한 수단, 데이터 인터페이스의 인터넷 프로토콜(IP) 주소를 패킷과 연관된 목적지 IP 주소에 비교하기 위한 수단, 및 상기 데이터 인터페이스의 IP 주소가 상기 목적지 IP 주소에 일치하지 않을 때 데이터 패킷을 차단하기 위한 수단을 포함한다.
다른 실시예에서는, 다중-호밍 네트워크 장치가 기재되어 있는데, 상기 다중-호밍 네트워크 장치는 포트를 요청 중인 애플리케이션에 결합하라는 요청을 수신하기 위한 수단, 오픈 애플리케이션이 상기 포트에 결합되었는지 여부를 결정하기 위한 수단, 및 상기 오픈 애플리케이션이 포트에 결합되지 않았을 때 상기 요청 중인 애플리케이션을 상기 포트에 결합하기 위한 수단을 포함한다.
본 명세서에 기재되어 있는 하나 이상의 실시예들의 장점은 이용가능한 네트워크 데이터 인터페이스들 서브세트에 애플리케이션을 결합하는 것을 포함할 수 있다.
다른 장점은 애플리케이션에 의해 승인된 데이터 인터페이스를 통해 도달하지 않는 인입 데이터 패킷들을 차단하는 것을 포함할 수 있다.
또 다른 장점은 애플리케이션을 위한 이용가능한 데이터 인터페이스들의 계층에 기초하여 데이터 패킷들을 전송하는 것을 포함할 수 있다.
본 발명의 다른 양상들, 장점들, 및 특징들이 도면의 간단 설명, 실시예, 및 청구범위를 포함하는 전체적인 명세서를 검토함으로써 자명해질 것이다.
본 명세서에 설명된 실시예들의 양상들 및 그로 인한 장점들은 첨부 도면들과 연계하여 이루어지는 상세한 설명을 통해 더욱 쉽게 자명해질 것이다.
도 1은 통신 시스템의 특정 실시예를 도시하는 도면.
도 2는 데이터 네트워킹 스택을 도시하는 도면.
도 3은 데이터를 전송하는 방법을 도시하는 흐름도.
도 4는 이용가능한 데이터 인터페이스들 서브세트에 애플리케이션을 결합하 는 방법을 도시하는 흐름도.
도 5는 데이터를 수신하는 방법을 도시하는 흐름도.
도 6은 임시적인 루트 스코프가 애플리케이션의 루트 스코프를 따르는지 여부를 결정하는 방법을 도시하는 흐름도.
도 7은 인입 데이터 패킷을 처리하는 제 1 예를 도시하는 도면.
도 8은 인입 데이터 패킷을 처리하는 제 2 예를 도시하는 도면.
도 9는 인입 데이터 패킷을 처리하는 제 3 예를 도시하는 도면.
도 10은 인입 데이터 패킷을 처리하는 제 4 예를 도시하는 도면.
도 11은 무선 장치에서 하나 이상의 인터페이스들에 애플리케이션을 결합하는 방법을 도시하는 흐름도.
도 12는 제 1 그래픽 사용자 데이터 인터페이스를 구비한 무선 장치를 도시하는 도면.
도 13은 제 2 그래픽 사용자 데이터 인터페이스를 구비한 무선 장치를 도시하는 도면.
도 14는 제 3 그래픽 사용자 데이터 인터페이스를 구비한 무선 장치를 도시하는 도면.
도 15는 제 4 그래픽 사용자 데이터 인터페이스를 구비한 무선 장치를 도시하는 도면.
도 1을 참조하면, 예시적일 뿐 비제한적인 통신 시스템이 도시되어 있으며, 총괄적으로 도면번호 100으로 지정되어 있다. 도시된 바와 같이, 상기 시스템은 제 1 네트워크 장치(102) 및 제 2 네트워크 장치(104)를 포함한다. 특정 실시예에서, 제 1 네트워크 장치(102) 및 제 2 네트워크 장치(104)는 제 1 데이터 네트워크(!06), 제 2 데이터 네트워크(108), 제 3 데이터 네트워크(110), 및 N 번째 데이터 네트워크 중 하나 이상을 통해 통신할 수 있다. 특정 실시예에서, 그 데이터 네트워크들(106, 108, 110, 112)은 GSM(global system for mobile communications) 네트워크, GPRS(general packet radio service) 네트워크, UMTS(universal mobile telecommunications system) 네트워크, CDMA(code division multiple access) 네트워크, CDMA 2000 네트워크, CDMA EVDO(evolution data optimized) 네트워크, BT(Bluetooth) 네트워크, 802.11a 네트워크, 802.11b 네트워크, 802.11g 네트워크, 802.11i 네트워크, 802.15 네트워크, 802.16 네트워크, WCDMA(wideband CDMA) 네트워크, OFCDM(orthogonal frequency code division multiplexing) 네트워크, GPS(global positioning system) 네트워크, 또는 이것들의 결합일 수 있다.
도 1에 도시된 바와 같이, 제 1 네트워크 장치(102)는 프로세서(114) 및 상기 프로세서(114)에 액세스가능한 메모리(116)를 포함할 수 있다. 도시된 바와 같이, 애플리케이션(118), 소켓 층(119), 및 라우팅 모듈(120)이 메모리(116) 내에 삽입되어 저장될 수 있으며, 프로세서(114)에 의해서 실행가능할 수 있다. 특정 실시예에서, 소켓 층(119)은 데이터를 전송 및 수신하기 위해서 애플리케이션에 의해 사용될 수 있는 하나 이상의 소켓들을 포함한다. 동작 동안에, 애플리케이션(118)은 네트워크 폴리시(network policy)(112)를 소켓 층(119)을 통해서 라우팅 모듈(120)에 전송한다. 특정 실시예에서, 네트워크 폴리시(122)는 네트워크들(106, 108, 110, 112) 중 하나 이상과 통신하기 위해 애플리케이션에 의해서 사용될 수 있는 데이터 인터페이스들 세트를 식별할 수 있다. 네트워크 폴리시(122)에 응하여, 라우팅 모듈(120)은 루트 스코프(route scope)(124)를 소켓 층(119)에 리턴하고, 그 루트 스코프는 애플리케이션(118)과 연관된 소켓에 대한 소켓 층(119) 내에 저장될 수 있다. 특정 실시예에서, 루트 스코프(124)는 네트워크 폴리시를 충족시키는 데이터 인터페이스들 서브세트를 포함한다. 그 데이터 인터페이스들 서브세트는 제 1 네트워크 장치(102)에서 이용가능한 데이터 인터페이스들(132, 134, 136)로부터 선택된다.
도 1은 제 1 네트워크 장치(102)가 제 1 하드웨어 포트(126a), 제 2 하드웨어 포트(128), 및 N 번째 하드웨어 포트(130)를 포함할 수 있다. 또한, 네트워크 장치(102)는 제 1 데이터 인터페이스(132), 제 2 데이터 인터페이스(134), 및 N 번째 데이터 인터페이스(136)를 포함할 수 있다.
특정 실시예에서, 데이터 인터페이스들(132, 134, 136) 각각은 GSM(global system for mobile communications) 데이터 인터페이스, GPRS(general packet radio service) 데이터 인터페이스, UMTS(universal mobile telecommunications system) 데이터 인터페이스, CDMA(code division multiple access) 데이터 인터페이스, CDMA 2000 데이터 인터페이스, CDMA EVDO(evolution data optimized) 인터페이스, BT(Bluetooth) 데이터 인터페이스, 802.11a 데이터 인터페이스, 802.11b 데이터 인터페이스, 802.11g 데이터 인터페이스, 802.11i 데이터 인터페이스, 802.15 데이터 인터페이스, 802.16 데이터 인터페이스, WCDMA(wideband CDMA) 데이터 인터페이스, OFCDM(orthogonal frequency code division multiplexing) 데이터 인터페이스, GPS(global positioning system) 데이터 인터페이스, 또는 이것들의 결합일 수 있다. 특정 실시예에서, 그 인터페이스들 각각은 IPv4(Internet protocol version 4) 데이터 인터페이스, IPv6(IP version 6) 데이터 인터페이스, 또는 다른 네트워크 프로토콜 데이터 인터페이스일 수 있다.
도 1에 도시된 바와 같이, 제 1 네트워크 장치(102)는 또한 프로세서(114) 및 안테나(140)에 연결되는 트랜시버(138)를 포함한다. 특정 실시예에서, 트랜시버(138)는 데이터 패킷들을 전송 및 수신하고, 네트워크들(106, 108, 110, 112) 중 하나 이상과의 통신을 용이하게 한다. 특정 실시예에서, 제 2 네트워크 장치(104)는 제 1 네트워크 장치(102)와 관련하여 설명되는 엘리먼트들 중 하나 이상을 포함할 수 있다.
특정 실시예에서, 제 1 네트워크 장치(102) 또는 제 2 네트워크 장치(104)는 다중-호밍 네트워킹 에셋(multi-homing networking asset)이다. 또한, 데이터 서비스들의 광대한 다이버시티를 지원하기 위해서, 제 1 네트워크 장치(102)는 여러 네트워크 데이터 인터페이스들(132, 134, 136)을 포함한다. 데이터 인터페이스들(132, 134, 136) 각각은, 일단 각각의 데이터 인터페이스가 연관된 네트워크(106, 108, 110, 112)에 접속하도록 구성되면, 데이터 전송을 할 수 있다. 특정 실시예에서는, 다중-호밍을 통해서, 데이터 인터페이스들(132, 134, 136) 중 하나 이상이 동시에 활성될 수 있고, 각각의 활성 데이터 인터페이스(132, 134, 136)는 상이한 물리 또는 논리 네트워크(106, 108, 110, 112)로의 액세스를 제공할 수 있다.
또한, 특정 실시예에서는, 각각의 활성 데이터 인터페이스(132, 134, 136)가 IP 네트워크들에게 할당되는 개별적인 네트워크 주소, 예컨대 IP 네트워크들에 대한 주소를 포함한다. 네트워크 주소들 각각은 글로벌하게 고유할 수 있거나, 또는 네트워크 주소들 중 하나 이상이 개인 공간으로부터 할당되는 경우에는 이중화될 수 있다.
특정 실시예에서, 다중-호밍은 제 1 네트워크 장치(102)로 하여금 예컨대 CDMA, UMTS, GSM 등과 같은 상이한 데이터 기술들을 갖는 상이한 네트워크들에 액세스하도록 허용할 수 있다. 또한, 다중-호밍은 제 1 네트워크 장치(102)로 하여금 이용가능한 네트워크들(106, 108, 110, 112)과 연관된 가변적인 비용들에 기초하여 그 이용가능한 네트워크들(106, 108, 110, 112)에 액세스하도록 허용할 수 있다. 이로써, 사용자 혹은 제 1 네트워크 장치(102) 내의 애플리케이션들에게는 우선적인 품질 및 비용 효율성에 대한 더 큰 융통성이 제공된다. 다중-호밍은 또한 제 1 네트워크 장치로 하여금 네트워크들이 제공하는 서비스들의 품질에 기초하여 이용가능한 네트워크들(106, 108, 110, 112)에 액세스하도록 허용할 수 있다. 사용자는 특정 애플리케이션이 네트워크를 사용하는 것과 연관된 비용에 상관없이 고품질 네트워크를 사용하는 것을 원할 수 있다. 다른 한편으로는, 사용자는 애플리케이션에게 특정 비용을 초과하지 않고 단지 네트워크 접속의 품질에 상관없이 그 비용 아래에서만 네트워크들을 사용하도록 지시할 수 있다.
특정 실시예에서, 다중-호밍은 제 1 네트워크 장치(102)로 하여금 예컨대 IPv4, IPv6, IPX 등과 같은 상이한 네트워크 타입들에 액세스하도록 허용할 수 있다. 또한, 다중-호밍은 제 1 네트워크 장치(102) 내의 애플리케이션들로 하여금 상이한 물리/논리 네트워크들에 의해 제공되는 여러 서비스들을 액세스하도록 허용할 수 있다. 예컨대, 특정 캐리어가 예컨대 인터넷, 이메일, SMS, MMS, WAP 등과 같은 상이한 타입의 IP 서비스들을 제공하기 위해 상이한 네트워크들을 전개할 수 있다.
도 2는 총괄적으로 참조번호 200으로 지정되어 있는 TCP/IP 네트워킹 스택의 예시적일 뿐 비제한적인 실시예를 도시한다. 도시된 바와 같이, 그 네트워킹 스택(200)은 물리 층(202)을 포함한다. 데이터 인터페이스 층(204)이 물리 층(202) 위에 위치된다. 특정 실시예에서, 데이터 인터페이스 층(204)은 제 1 데이터 인터페이스(206), 제 2 데이터 인터페이스(208), 제 3 데이터 인터페이스(210), 및 N 번째 데이터 인터페이스(212)를 포함한다.
도 2에 도시된 바와 같이, 인터넷 프로토콜(IP) 층(214)은 데이터 인터페이스 층(204) 위에 위치된다. 도시된 실시예에서, IP 층(214)은 예컨대 IP 버전 4(IPv4) 및 IP 버전 6(IPv6)(218)과 같은 하나 이상의 IP들을 포함한다. 도 2는 또한 IP 층(214) 위에 전송 층(220)을 도시하고 있다. 전송 층(220)은 하나 이상의 통신 프로토콜들, 예컨대 전송 제어 프로토콜(TCP)(222) 또는 사용자 데이터그램 프로토콜(UDP)(224)을 포함할 수 있다. 또한, 소켓 층(226)이 전송 층(220) 위에 위치될 수 있다. 또한, 하나 이상의 애플리케이션들이 소켓 층(226) 위에 위치 될 수 있다.
도 3을 참조하면, 네트워크 장치로부터 데이터 네트워크로 데이터를 전송하는 방법이 도시되어 있으며, 상기 방법은 블록(300)에서 시작한다. 블록(300)에서는, 네트워크 장치 내의 애플리케이션이 네트워크 장치 내의 라우팅 모듈에 네트워크 폴리시를 전송한다. 특정 실시예에서, 애플리케이션 및 라우팅 모듈은 단일 프로세서에 의해서 동시에 실행될 수 있다. 대안적으로, 애플리케이션 및 라우팅 모듈은 서로 다른 프로세서들에 의해서 실행될 수 있다.
특정 실시예에서, 네트워크 폴리시는 그 네트워크 폴리시 내에 규정된 하나 이상의 기준을 충족시키는 데이터 인터페이스들 세트를 식별할 수 있다. 예컨대, 네트워크 폴리시는 그 기준을 모든 UMTS 데이터 인터페이스들 또는 모든 IPv4 데이터 인터페이스들로서 규정할 수 있다. 또한, 네트워크 폴리시는 서비스 품질 기준, 예컨대 최대 지연 값, 최대 지터 값, 대역폭 값, 또는 이것들의 결합을 규정할 수 있다. 또한, 네트워크 폴리시는 최대 비용, 통신 기술 타입, 하나 이상의 캐리어들, 또는 이것들의 결합을 규정할 수 있다. 데이터 전송이 애플리케이션에 의해 개시될 수 있기 이전에, 그 애플리케이션은 네트워크 폴리시를 충족시키는 데이터 인터페이스들 세트 중에서 특정 데이터 인터페이스를 불러올 수 있다.
다른 특정 실시예에서는, 어떠한 데이터 인터페이스를 불러올 지에 대한 결정이 데이터 스택의 네트워크 관리 소프트웨어에 의해서 수행될 수 있다. 또한, 상기 결정은 예컨대 규정된 네트워크 폴리시에 따른 가장 유리한 루트에 기초하여 수행될 수 있다. 특정 실시예에서는, 각각의 데이터 인터페이스가 본질적으로 규 칙들 리스트인 고유의 액세스 제어 리스트(ACL)를 포함할 수 있다. 게다가, 각각의 데이터 인터페이스는 애플리케이션과 연관된 네트워크 폴리시에 기초하여 자신에게 대한 액세스를 평가할 수 있다. 그 평가의 일부로서, ACL은 데이터 인터페이스로의 액세스를 한정할 수 있거나 또는 그 데이터 인터페이스에 대해 예컨대 1-5의 비제로인 우선순위 번호를 리턴한다. 상기 비제로인 우선순위 번호는 데이터 인터페이스가 정해진 폴리시를 통해 사용될 수 있고 그 우선순위 번호가 선호도 레벨을 식별한다는 것을 의미한다.
설명되는 실시예에서, 라우팅 모듈은 애플리케이션과 연관된 네트워크 폴리시 및 이용가능한 데이터 인터페이스들 각각과 연관된 ACL을 평가할 수 있으며, 가장 높은 우선순위를 갖는 데이터 인터페이스를 선택할 수 있다. 이로써, 라우팅 모듈은 데이터를 전송하기 위해서 가장 높은 우선순위를 갖는 데이터 인터페이스에 애플리케이션을 결합할 수 있다. 특정 실시예에서는, 언제든지, 많은 데이터 인터페이스들이 데이터 전송을 위해 오픈될 수 있고, 각각의 데이터 인터페이스는 무선 장치 상에서의 전송 측 다중-호밍을 허용하기 위해서 개별적인 애플리케이션들에 결합될 수 있다. 만약 특정 데이터 인터페이스가 오픈되지 않는다면, 그것은 데이터 통신을 위해 오픈되도록 야기될 수 있다.
블록(302)으로 이동하면, 루트 스코프가 라우팅 모듈로부터 수신된다. 또한, 블록(303)에서는, 루트 스코프가 애플리케이션과 연관된 소켓에 대한 소켓 층 내에 저장될 수 있다. 특정 실시예에서, 루트 스코프는 네트워크 폴리시를 충족시키는 데이터 인터페이스들 서브세트를 나타낸다. 그 서브세트의 각각의 데이터 인 터페이스들은 우선순위 번호를 포함할 수 있다. 이로써, 데이터 인터페이스들 서브세트는 우선적인 데이터 인터페이스로부터 가장 적게 우선적인 데이터 인터페이스까지 계층적으로 배열될 수 있다. 설명되는 실시예에서, 데이터 인터페이스들 서브세트는 네트워크 장치에서 이용가능한 데이터 인터페이스들 세트로부터 선택된다.
결정 단계(304)에서는, 애플리케이션이 데이터를 데이터 네트워크에 전송하려 시도하고 있는지를 네트워크 장치가 결정한다. 만약 그렇지 않다면, 방법은 상태(306)에서 종료한다. 만약 그렇다면, 방법은 결정 단계(308)로 진행하고, 네트워크 장치는 루트 스코프 내의 우선적인 데이터 인터페이스, 즉, 애플리케이션에 결합된 데이터 인터페이스들 서브세트 내의 우선적인 데이터 인터페이스가 이용가능한지 여부를 네트워크 장치가 결정한다. 만약 그 우선적인 데이터 인터페이스가 이용가능하다면, 방법은 블록(310)으로 이동하고, 네트워크 장치가 그 우선적인 데이터 인터페이스를 통해 채널을 오픈시킨다. 역으로, 만약 그 우선적인 데이터 인터페이스가 이용가능하지 않다면, 방법은 결정 단계(312)로 진행하고, 루트 스코프 내의 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 네트워크 장치가 결정한다.
만약 그 다음으로 우선적인 데이터 인터페이스가 이용가능하지 않다면, 방법은 블록(314)으로 이동하고, 에러 메시지가 예컨대 네트워크 장치의 디스플레이를 통해서 그 네트워크 장치의 사용자에게 디스플레이된다. 그렇지 않고, 만약 그 다음으로 우선적인 데이터 인터페이스가 이용가능하다면, 방법은 블록(310)으로 진행 하고, 네트워크 장치는 데이터 인터페이스를 통해 채널을 오픈시킨다. 특정 실시예에서는, 에러 메시지가 디스플레이되기 이전에 여러 번의 반복이 있을 수 있다. 즉, 데이터 인터페이스들의 계층에 그 다음으로 우선적인 여러 데이터 인터페이스들이 존재할 수 있다. 예컨대, 데이터 인터페이스들의 계층은 우선적인 데이터 인터페이스, 그 다음으로 우선적인 제 1 데이터 인터페이스, 그 다음으로 우선적인 제 2 데이터 인터페이스, 그 다음으로 우선적인 제 3 데이터 인터페이스 등을 포함할 수 있다. 특정 실시예에서, 네트워크 장치는 루트 스코프 내의 모든 인터페이스들이 모두 사용될 때까지 그 다음으로 이용가능한 인터페이스에 대한 검사를 지속할 수 있다.
블록(316)으로 진행해서, 애플리케이션은 이용가능한 데이터 인터페이스를 통해 데이터를 전송한다. 결정 단계(318)에서, 네트워크 장치는 접속이 차단되었는지 여부를 결정한다. 만약 그렇지 않다면, 방법은 결정 단계(320)로 이동하고, 네트워크 장치는 데이터의 전송이 완료되었는지 여부를 결정한다. 만약 그렇다면, 방법은 상태(306)에서 종료한다. 만약 데이터의 전송이 완료되지 않았다면, 방법은 블록(316)으로 돌아가고 설명된 바와 같이 계속 이루어진다.
결정 단계(318)로 돌아가서, 만약 접속이 차단되었다면, 방법은 결정 단계(322)로 이동하고, 네트워크 장치는 루트 스코프 내의 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정한다. 만약 그렇지 않다면, 방법은 상태(306)에서 종료한다. 다른 한편으로, 만약 상기 그 다음으로 우선적인 데이터 인터페이스가 이용가능하다면, 방법은 결정 단계(324)에서 계속되고, 데이터 전송 을 위한 프로토콜이 접속 지향적인지 여부를 네트워크 장치가 결정한다. 만약 프로토콜이 접속 지향적이지 않다면, 예컨대 그 프로토콜이 비접속 사용자 데이터그램 프로토콜(UDP)이라면, 방법은 블록(326)으로 이동하고, 애플리케이션은 접속성(connectivity)을 차단하지 않으면서 그 다음으로 이용가능한 데이터 인터페이스로 끊임없이 점프한다. 역으로, 만약 프로토콜이 접속 지향적이라면, 예컨대 그 프로토콜이 전송 제어 프로토콜(TCP)이라면, 방법은 블록(328)으로 진행하고, 애플리케이션은 상기 그 다음으로 이용가능한 데이터 인터페이스에 재접속한다. 만약 프로토콜이 TCP라면, 접속성은 차단되는 반면에, 애플리케이션은 새로운 데이터 인터페이스를 통해 재접속한다. 블록(326) 또는 블록(328)으로부터, 방법은 결정 단계(320)로 진행하고 설명된 바와 같이 계속 이루어진다.
특정 실시예에서는, 위에 설명된 방법을 사용하여, 애플리케이션이 그 애플리케이션과 연관된 데이터 전송에 대한 네트워크 폴리시를 규정할 수 있다. 그 네트워크 폴리시는 애플리케이션이 데이터를 전송 및 수신하도록 하는 데이터 인터페이스들을 제한할 수 있다. 전송 경로 상에서, 승인된 데이터 인터페이스들 서브세트로부터 하나의 데이터 인터페이스가 애플리케이션을 위해 선택된다. 특정 실시예에서는, 선택되는 데이터 인터페이스가 네트워크 폴리시 기준에 기초해서 가장 유리한 데이터 인터페이스, 즉, 가장 높은 우선순위의 데이터 인터페이스일 수 있고, 그로 인해서 전송 경로가 최적화된다. 또한, 특정 실시예에서는, 애플리케이션이 데이터 전송이 완료되거나 또는 선택된 전송 데이터 인터페이스가 손실될 때까지 그 선택된 전송 데이터 인터페이스를 사용한다. 만약 그 데이터 인터페이스 가 손실되었다면, 만약 이용가능할 경우에는 우선순위에 기초해서 새로운 데이터 인터페이스가 데이터 인터페이스들 서브세트로부터 선택된다. 이는 심지어 가장 높은 우선순위 데이터 인터페이스가 손실되는 경우에는 데이터 전송으로 하여금 네트워크 폴리시를 따르게 한다.
도 4는 이용가능한 데이터 인터페이스들의 그룹 내에 있는 데이터 인터페이스들 서브세트에 애플리케이션을 결합하는 방법을 도시한다. 블록(400)에서 시작해서, 라우팅 모듈은 애플리케이션으로부터 네트워크 폴리시를 수신한다. 블록(402)에서, 라우팅 모듈은 이용가능한 데이터 인터페이스들 및 네트워크 폴리시에 따른 루트 스코프를 생성한다. 특정 실시예에서는, 그 루트 스코프가 애플리케이션의 네트워크 폴리시를 충족시키는 이용가능한 데이터 인터페이스들 서브세트를 포함하거나 이를 가리킨다. 블록(404)으로 이동해서, 라우팅 모듈은 루트 스코프 내의 이용가능한 데이터 인터페이스들에 애플리케이션을 결합한다. 블록(406)에서, 라우팅 모듈은 애플리케이션과 연관된 소켓을 위해 저장될 소켓 층으로 루트 스코프를 리턴한다. 방법은 상태(408)에서 종료한다.
도 5를 참조하면, 데이터 네트워크로부터 데이터를 네트워크 장치에서 수신하는 방법이 도시되어 있는데, 블록(500)에서 시작된다. 블록(500)에서, 네트워크 장치는 데이터 인터페이스로부터 데이터 스택의 IP 층에서 데이터 패킷을 수신한다. 결정 단계(502)로 이동해서, 네트워크 장치는 데이터 패킷의 목적지 IP 주소가 애플리케이션에 할당된 데이터 인터페이스의 IP 주소와 동일한지 여부를 결정한다. 만약 그렇지 않다면, 방법은 블록(504)으로 진행하고, 데이터 패킷이 차단된 다. 이어서, 방법은 상태(506)에서 종료한다.
만약 데이터 패킷의 목적지 IP 주소가 데이터 인터페이스의 IP 주소와 동일하다면, 방법은 블록(508)으로 이동하고, 네트워크 장치가 그 데이터 패킷과 연관된 소켓을 탐색한다. 결정 단계(510)에서, 네트워크 장치는 소켓이 발견되었는지 여부를 결정한다. 만약 그렇지 않다면, 방법은 블록(504)으로 이동하고, 데이터 패킷은 차단된다. 이어서, 방법은 상태(506)에서 종료한다.
결정 단계(510)에서는, 만약 소켓이 발견되었다면, 방법이 블록(512)으로 진행하고, 애플리케이션과 연관된 루트 스코프가 검색된다. 블록(514)에서는, 데이터 인터페이스를 위한 임시적인 루트 스코프가 생성된다. 특정 실시예에서, 임시적인 루트 스코프는 입력 데이터 인터페이스의 인덱스를 결정함으로써 그리고 상응하는 비트를 '1'로 터닝하고 임시적인 루트 스코프의 모든 다른 비트를 '0'으로 유지함으로써 생성된다.
결정 단계로 이동하면, 임시적인 루트 스코프가 애플리케이션과 연관된 루트 스코프를 따르는지 여부가 결정된다. 도 6은 임시적인 루트 스코프가 애플리케이션과 연관된 루트 스코프를 따르는지 여부를 결정하는 세부적인 실시예를 도시한다. 만약 임시적인 루트 스코프가 애플리케이션의 루트 스코프를 따른다면, 방법은 블록(518)으로 이동하고, 네트워크 장치는 데이터 패킷의 전송 층 처리를 계속한다. 이어서, 방법은 상태(506)에서 종료한다.
만약 임시적인 루트 스코프가 애플리케이션의 루트 스코프를 따르지 않는다면, 방법은 블록(520)으로 이동하고, 네트워크 장치는 데이터 패킷을 차단한다. 결정 단계(522)로 진행해서, 네트워크 장치는 현재의 통신 프로토콜이 TCP 또는 UDP인지 여부를 결정한다. 만약 현재의 통신 프로토콜이 TCP라면, 방법은 블록(524)으로 이동하고, 네트워크 장치는 차단된 데이터 패킷을 전송한 피어 장치에 리셋(RST) 메시지를 전송한다. 방법은 상태(506)에서 종료한다. 만약 현재의 통신 프로토콜이 UDP라면, 네트워크 장치는 네트워크 장치에서 차단된 데이터 패킷을 전송한 피어 장치에 도달될 수 없는 인터넷 제어 메시지 프로토콜(ICMP) 목적지 미도달가능 포트를 전송한다. 이어서, 방법은 상태(506)에서 종료한다.
특정 실시예에서는, 위에 설명된 방법을 사용함으로써, 패킷이 임의의 접속을 위한 데이터 인터페이스를 통해서 도달할 때, 그 데이터 인터페이스는 두 스테이지들에서 루트 스코프 내에서 허용되는 데이터 인터페이스들로 제한될 수 있다. 예컨대, 제 1 스테이지는 간단한 새너티 검사(sanity check)이다. 이 스테이지는 패킷이 온 데이터 인터페이스의 IP 주소를 패킷의 목적지 주소에 비교하는 것을 포함한다. 이 스테이지의 유일한 예외적인 사항은 목적지 주소가 멀티캐스트 또는 브로드캐스트 주소가 아니라는 점이다. 입력 패킷이 IP 층에 넘겨졌을 때, IP 층에는 패킷이 들어온 데이터 인터페이스가 통보된다. 만약 패킷의 목적지 IP 주소가 상기 패킷이 온 데이터 인터페이스의 주소와 일치하지 않는다면, 그 패킷은 조용히 차단된다. 이는 특정 IP 주소를 갖는 특정 데이터 인터페이스들로 패킷들을 한정하며, 입력 패킷에 대해 발생하는 임의의 라우팅 에러들을 방지한다.
도 6은 임시적인 루트 스코프가 애플리케이션의 루트 스코프를 따르는지 여부를 결정하는 방법을 도시한다. 블록(600)에서 시작해서, 애플리케이션을 위한 루트 스코프가 검색된다. 블록(602)에서, 임시적인 루트 스코프가 생성된다. 그런 이후에, 블록(604)에서는, 비트단위의(bitwise) AND 연산이 루트 스코프 및 임시 루트 스코프에 대해 수행된다. 블록(606)으로 이동해서, AND 연산의 결과가 '0'인지 여부가 결정된다. 만약 그 결과가 '0'라면, 방법은 블록(608)으로 이동하고, 패킷이 차단된다. 이어서, 방법은 상태(610)에서 종료한다. 다른 한편으로, 만약 그 결과가 '0'가 아니라면, 방법은 블록(612)으로 이동하고, 데이터 패킷이 유지된다. 다음으로, 방법은 상태(610)에서 종료한다.
특정 실시예에서, 루트 스코프는 어떠한 데이터 인터페이스들이 특정 애플리케이션에 대한 데이터를 수신하도록 허용되는지에 대한 정보를 포함한다. 루트 스코프는 모든 이용가능한 데이터 인터페이스들의 비트 마스크로서 유지될 수 있다. 데이터 인터페이스가 특정 애플리케이션에 대한 네트워크 폴리시를 충족시키는 경우에, 그 데이터 인터페이스는 특정 애플리케이션과 연관된 루트 스코프에 추가된다. 예컨대, 만약 인덱스 5를 갖는 제 5 데이터 인터페이스가 애플리케이션에 대한 네트워크 폴리시를 충족시킨다면, 애플리케이션에 대한 루트 스코프 내의 비트 번호 5가 애플리케이션에 대한 루트 스코프 내의 제 5 데이터 인터페이스를 포함하기 위해서 '1'로 설정된다.
특정 실시예에서는, 검색되는 데이터를 제한할 때, '0'보다 큰 우선순위를 갖는 모든 데이터 인터페이스가 애플리케이션에 대한 루트 스코프에 포함된다. 방법은 각각의 데이터 인터페이스에 대한 ACL을 검색하며, 애플리케이션에 대한 네트워크 폴리시를 충족시키는 애플리케이션에 대한 루트 스코프 내의 모든 데이터 인 터페이스들을 포함한다. 특정 실시예에서, 루트 스코프는 '1'로 설정되는 하나 이상의 비트들을 포함할 수 있는데, 이는 그 루프 스코프와 연관된 애플리케이션이 데이터 인터페이스들 중 하나 이상을 통해 데이터를 수신하도록 허용된다는 것을 나타낸다.
특정 실시예에서는, 만약 애플리케이션이 특정 IP 주소에 결합하면, 루트 스코프가 요청된 IP 주소를 갖는 데이터 인터페이스들을 포함하고 또는 네트워크 폴리시에 일치하도록 제한될 수 있다. 또 다른 실시예에서는, 애플리케이션이 특정 네트워크 폴리시를 갖는 소켓을 생성할 때, 루트 스코프가 생성된다. 그러나, 루트 스코프는 주기적으로 업데이팅될 수 있다.
도 7 내지 도 10은 도 5 및 도 6에 도시된 방법들을 따르는 예들을 나타낸다. 도 7은 입력 패킷이 수신되고 데이터 인터페이스의 주소(10.0.0.1)와 동일한 목적지 주소(10.0.0.1)를 포함하는 예를 나타낸다. 그로 인해, 입력 패킷은 용인된다.
도 8은 입력 패킷이 수신되고 그 입력 패킷이 수신되는 입력 데이터 인터페이스의 주소(10.0.0.2)와 다른 목적지 주소(10.0.0.1)를 포함하는 예를 도시한다. 그로 인해, 입력 패킷은 차단된다.
도 9는 입력 패킷이 애플리케이션의 네트워크 폴리시를 충족시키는 데이터 인터페이스를 통해 수신되고 용인되는 예를 도시한다. 도시된 바와 같이, 애플리케이션의 루트 스코프 및 임시 루트 스코프에 대해 수행되는 비트단위 AND 연산은 '0'가 아니다. 그로 인해, 입력 패킷은 애플리케이션의 네트워크 폴리시를 충족시 킨다.
도 10은 입력 패킷이 애플리케이션의 네트워크 폴리시를 충족시키지 않는 데이터 인터페이스를 통해 수신되는 예를 도시한다. 도시된 바와 같이, 애플리케이션의 루트 스코프 및 임시 루트 스코프에 대해 수행되는 비트단위 AND 연산은 '0'이다. 그로 인해, 입력 패킷은 애플리케이션의 네트워크 폴리시를 위배하고, 입력 패킷은 차단된다.
특정 실시예에서, 무선 네트워킹 및 데이터 인터페이스들의 상태에 대한 다이내믹한 특성은 네트워크 장치 내의 각각의 애플리케이션과 연관된 루트 스코프에 영향을 줄 수 있다. 예컨대, 네트워크 장치의 이동성으로 인해, 그 네트워크 장치는 수 개의 네트워크들의 커버리지 영역에 걸쳐 이동할 수 있고, 그로 인해서 상응하는 네트워크 데이터 인터페이스들이 생기거나 사라진다. 또한 상기 이동성으로 인해서, 한 네트워크의 우선순위 및 연관된 네트워크 데이터 인터페이스가 특정 시간에 특정 위치에서 서비스를 제공하고 있는 캐리어의 타입 또는 이용가능한 네트워크 액세스의 타입에 따라 증가하거나 감소할 수 있다.
무선 통신의 다이내믹한 특성으로 인해서, 네트워크 장치 내의 애플리케이션들과 연관된 루트 스코프들이 변하게 야기할 수 있는 수 개의 트리거들이 존재할 수 있다. 또한, 애플리케이션들과 연관된 루트 스코프들은 데이터 인터페이스들의 가변적인 상태들에 따라 관리되고 변경될 필요가 있다.
특정 실시예에서는, 데이터 인터페이스가 생기거나 사라질 때마다, 그것은 여러 애플리케이션들의 루트 스코프에 영향을 줄 수 있는데, 그 이유는 일부 애플 리케이션들 및 데이터 인터페이스들과 연관된 네트워크 폴리시가 다이내믹하게 구성되기 때문이다. 예컨대, UMTS 데이터 인터페이스가 생기는 경우, UMTS는 매번 다른 액세스 포인트 이름(APN)에 접속하고, 다른 타입의 서비스를 제공한다. 이러한 데이터 인터페이스가 생기고 특정 APN에 결합되는 경우, 그 데이터 인터페이스는 네트워크 장치 내의 하나 이상의 애플리케이션들의 네트워크 폴리시에 더 이상은 일치하지 않는다. 그로 인해, 특정 데이터 인터페이스를 생기게 하는 것은 하나 이상의 애플리케이션들에 대한 루트 스코프를 축소킬 수 있다.
마찬가지로, 특정 데이터 인터페이스가 사라지면, 그것은 하나 이상의 애플리케이션들과 연관된 루트 스코프를 확장시킬 수 있다. 특정 실시예에서, 만약 데이터 인터페이스가 사라지면, 그것은 애플리케이션에 대한 루트 스코프에 포함될 수 있고, 그 애플리케이션은 데이터 인터페이스가 생긴 이후에 그 데이터 인터페이스를 잠재적으로 사용할 수 있다. 또한, 특정 실시예에서는, 모든 데이터 인터페이스들이 아니라 일부 데이터 인터페이스들이 비용을 절감시키기 위해서 자동적으로 생길 수 있다. 예컨대 사용자 또는 애플리케이션에 의해 필요할 경우에는, 추가적인 데이터 인터페이스들이 생길 수 있다.
특정 실시예에서는, 네트워크 노드가 네트워크 커버리지 영역을 바꿀 경우, 하나 이상의 애플리케이션들의 루트 스코프가 바뀔 수 있다. 예컨대, 한 네트워크의 커버리지 영역을 상실하는 것은, 네트워크 장치가 커버리지 영역에 다시 들어갈 때 데이터 인터페이스가 인에이블될 때까지는 디스에이블되도록 야기할 수 있다. 특정 실시예에서, 디스에이블된 데이터 인터페이스는 네트워크 접속성의 결핍으로 인해 생길 수 없는 반면에, 다운 데이터 인터페이스가 잠재적으로 생겨서 필요시에는 통신을 위해 사용될 수 있다.
다른 특정 실시예에서는, 특정의 애플리케이션들이 단일 네트워크 데이터 인터페이스에 견고하게 결합될 수 있고, 그 데이터 인터페이스가 데이터를 전송 및 수신하기 위해 사용된다. 이러한 애플리케이션의 경우에, 루트 스코프는 단지 하나의 1 비트 세트를 갖고, 그 비트는 데이터 인터페이스가 생기는 경우에는 '1'로 설정될 수 있고 데이터 인터페이스가 사라지는 경우에는 '0'으로 재설정될 수 있다.
특정 실시예에서는, 소켓과 연관된 네트워크 폴리시가 바뀔 때 루트 스코프도 또한 바뀔 수 있다. 이러한 실시예에서는, 새로운 루트 스코프가 새로운 네트워크 폴리시에 따라 그 애플리케이션에 대해서 계산될 수 있고, 그 새로운 루트 스코프가 그 애플리케이션과 연관된 소켓에 전달될 수 있다. 다른 실시예에서는, 만약 애플리케이션이 예컨대 bind() API 호를 사용하여 특정 IP 주소에 결합하면, 소켓이 결합하는 특정 주소를 가진 데이터 인터페이스들로 루트 스코프가 제한될 수 있다. 이동성 및 네트워크 핸드오프로 인해서, 데이터 인터페이스 IP 주소는 바뀔 수 있고, 애플리케이션에 대한 루트 스코프가 연관된 루트 스코프로부터 이전 데이터 인터페이스를 배제시키기 위해서 업데이팅될 필요가 있을 수 있다.
또한, 특정 실시예에서는, 만약 단일 네트워크 데이터 인터페이스가 예컨대 CDMA, UMTS 등과 같은 여러 기술적인 영역들이나 또는 예컨대 IPv4, IPv6 등과 같은 네트워크 타입들에서 서비스를 제공할 수 있고 또한 만약 이러한 데이터 인터페 이스가 다른 기술적인 영역이나 네트워크 타입으로 핸드오프한다면, 이러한 데이터 인터페이스를 포함하는 루트 스코프들은 그 데이터 인터페이스가 애플리케이션의 네트워크 폴리시를 계속해서 충족시키는지 여부를 결정하기 위해서 업데이팅되고 재평가될 필요가 있다. 또 다른 특정 실시예에서는, 예컨대 TCP 소켓들과 같은 접속된 소켓의 경우에, 일단 접속이 예컨대 connect() API 호를 사용하여 설정되었다면, 루트 스코프는 정해진 목적지 주소에 접속할 수 있는 단지 하나의 인터페이스로 제한될 수 있다.
다른 특정 실시예에서는, 애플리케이션에 의해 규정된 네트워크 폴리시가 루프백 데이터 인터페이스를 포함할 수 있거나 포함하지 않을 수 있다. 그러나, 모든 소켓은 루프백 데이터 인터페이스를 통해 패킷들을 전송 및 수신하도록 허용된다. 그로 인해서, 루프백 데이터 인터페이스는 하나 이상의 네트워크 폴리시들을 통해 제한된 데이터 인터페이스들의 특수한 경우로 고려될 수 있다. 루프백 데이터 인터페이스는 루프백 목적지 IP 주소를 가지고 수신된 패킷들이 루프백 데이터 인터페이스를 통해 수신되어야 한다는 제약사항을 포함할 수 있다. 이러한 검사는 예컨대 주소 비교 동안에 입력 패킷들에 대한 데이터 인터페이스 제약의 제 1 스테이지로서 IP 층에서 수행될 수 있다. 전송 층 제약의 경우에는, 루프백 데이터 인터페이스에 상응하는 비트가 각각의 애플리케이션과 연관된 루트 스코프에 대해서 턴온될 수 있거나 또는 특수한 검사가 루트 스코프에 대한 처리를 위해 전송 층에서 수행될 수 있다.
도 11을 참조하면, 포트에 애플리케이션을 결합하는 방법이 도시되어 있으 며, 블록(1100)에서 시작된다. 블록(1100)에서는, 네트워크 장치 내의 라우팅 모듈이 포트를 애플리케이션에 결합하라는 요청을 수신한다. 블록(1102)에서는, 라우팅 모듈이 모든 오픈 또는 활성 애플리케이션들을 검토한다. 결정 단계(1104)로 이동해서, 라우팅 모듈은 요청 중인 애플리케이션이 결합하려고 시도하는 것과 동일한 포트에 임의의 오픈 또는 활성 애플리케이션이 결합하는지 여부를 결정한다. 만약 그렇지 않다면, 방법은 블록(1106)으로 진행하고, 라우팅 모듈이 요청 중인 애플리케이션을 그 포트에 결합한다. 다음으로, 방법은 상태(1108)에서 종료한다.
다른 한편으로, 결정 단계(1104)에서 만약 요청 중인 애플리케이션이 결합하려 시도하는 것과 동일한 포트에 임의의 오픈 또는 활성 애플리케이션들이 결합한다면, 방법은 블록(1110)으로 진행하고, 라우팅 모듈은 각각의 오픈/활성 애플리케이션의 루트 스코프 및 요청 중인 애플리케이션의 루트 스코프에 대해 비트단위 AND 연산을 수행한다. 결정 단계(1112)로 진행해서, 라우팅 모듈은 임의의 비트단위 AND 연산의 결과가 '0'인지 여부를 결정한다. 만약 그렇다면, 방법은 블록(1106)으로 이동하고, 라우팅 모듈은 요청 중인 애플리케이션과 연관된 소켓에 포트를 설정하는 포트에 상기 요청 중인 애플리케이션을 결합한다. 방법은 상태(1108)에서 종료한다.
결정 단계(1112)로 돌아가선, 만약 임의의 비트단위 AND 연산의 결과가 '0'가 아니라면, 방법은 블록(1114)으로 이동하고, 라우팅 모듈은 요청 중인 애플리케이션을 포트에 결합하지 않는다. 다음으로, 방법은 상태(1108)에서 종료한다.
특정 실시예에서는, 소켓의 루트 스코프가 위에 설명된 여러 이유들 중 하나 이상으로 인해서 변할 때, 새로운 루트 스코프가 포트 공간 분리에 영향을 줄 수 있다. 예컨대, 애플리케이션에 대한 루트 스코프를 재계산하는 동안에는, 만약 포트 공간이 여전히 분리되어 있기 때문에 그리고 소켓의 루트 스코프들 간에 어떠한 새로운 인터섹션도 생성되지 않기 때문에 문제가 발생하지 않는다. 그러나, 만약 하나 이상의 데이터 인터페이스들이 루트 스코프에 추가된다면, 데이터인터페이스를 추가하는 것은 다른 애플리케이션과 연관된 루트 스코프들과의 충돌을 발생시킬 수 있다. 만약 인터섹팅하는 루트 스코프들을 갖는 애플리케이션들에 의해 사용되는 포트 번호들이 동일하다면, 네트워킹 스택은 인터섹팅하는 데이터 인터페이스들 중 하나를 통해 도달하는 인입 데이터 패킷을 보낼 애플리케이션이 어떤 것인지를 결정할 수 없을 것이다.
특정 실시예에서는, 이러한 잠재적인 충돌이 아래의 해결방법에 의해서 해결될 수 있다: 만약 충돌하는 애플리케이션이 충돌하는 <포트 번호, 데이터 인터페이스> 쌍을 통해 데이터를 이미 활성적으로 전송하고 있다면, 그 애플리케이션은 그대로 유지되고, 다른 애플리케이션이 그 <포트 번호, 데이터 인터페이스> 쌍을 사용하는 것이 방지된다. 만약 충돌하는 애플리케이션이 데이터 전송을 위해서 <포트 번호, 데이터 인터페이스> 쌍을 활성적으로 사용하고 있지 않다면, 그 <포트 번호, 데이터 인터페이스> 쌍은 구성가능한 폴리시에 기초하여 충돌하는 상기 충돌하는 애플리케이션들에 대해서 허용되지 않는다.
특정 실시예에서는, 애플리케이션을 허용하지 않는다는 것이 본질적으로는, 허용되지 않은 애플리케이션이 문제의 포트 번호에 대한 충돌하는 데이터 인터페이 스를 배제하기 위해서 임시적으로 감축되는 것을 의미한다. 이는 각각의 애플리케이션에 대한 차단된 <포트 번호, 데이터 인터페이스> 쌍의 세트, 즉, 차단된 루트 스코프를 정함으로써 처리될 수 있다. 특정 실시예에서, 차단된 루트 스코프는 다른 애플리케이션과의 충돌로 인해 임시적으로 차단될 뿐 네트워크 폴리시 불일치로 인해 차단되지는 않는 루트 스코프이다.
비제한적일 뿐 예시적인 실시예에서, 차단된 루트 스코프 내의 엔트리는, (1) 완전한 애플리케이션이 폐쇄되었을 때, (2) 완전한 애플리케이션이 다른 포트 공간에 재결합할 때, (3) 허용되지 않은 애플리케이션이 다른 포트 공간에 재결합할 때, (4) 허용되지 않은 애플리케이션의 네트워크 폴리시가 변할 때, (5) 완전한 애플리케이션의 네트워크 폴리시가 변할 때, 또는 (6) 하나 이상의 애플리케이션의 루트 스코프가 위에서 정해진 상황들로 인해 변할 때, 제거될 수 있다.
특정 실시예에서, 위의 상황들 (2) 및 (5)은 네트워크 장치 내의 다른 애플리케이션에 대한 루트 스코프가 차단되도록 야기할 수 있다. 또한, 특정 실시예에서는, 위의 상황들 (3) 및 (4)은 일부 엔트리들이 차단된 루트 스코프로부터 제거되게 야기할 수 있는 동시에 다른 엔트리들이 새로운 충돌로 인해서 추가될 수 있다.
특정 실시예에서는, 도 3, 도 4, 도 5, 도 6 및 도 11과 관련하여 위에 설명된 단계들이 메모리에 저장되는 소프트웨어로서 구현될 수 있는데, 상기 메모리는 예컨대 RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory), ROM(read only memory), 마스킹된 ROM, PROM(programmable read only memory), EPROM(erasable and programmable read only memory), EEPROM(electrically erasable and programmable read only memory), NVRAM(non-volatile random access memory), 플래시 메모리, 하드디스크 드라이브, 또는 다른 저장 수단이다. 이러한 방법 단계들 각각은 개별적으로 저장될 수 있거나 혹은 다른 방법 단계들과 함께 저장될 수 있다.
또한, 특정 실시예에서는, 도 3, 도 4, 도 5, 도 6 및 도 11과 관련하여 위에 설명된 방법 단계들이 프로세서, 마이크로프로세서, 제어기, 마이크로제어기, ASIC(application specific integrated circuit), DSP(digital signal processor), 또는 다른 처리 수단에 의해 실행될 수 있다. 이러한 방법 단계들 각각은 개별적으로 실행될 수 있거나 혹은 다른 방법 단계들과 함께 실행될 수 있다.
도 12는 총괄적으로 도면번호 1200으로 지정되어 있는 무선 장치를 도시한다. 도시된 바와 같이, 무선 장치(1200)는 디스플레이(1202) 및 키패드(1204)를 구비한다. 또한, 무선 장치(1200)는 마이크로폰(1206) 및 스피커(1208)를 구비한다. 사용자는 마이크로폰(1206)에다 대고 말을 할 수 있으며 스피커(1208)를 통해 인입 오디오를 청취할 수 있다. 도 2에 도시된 바와 같이, 신호 강도 표시기(1210), 음성메일 표시기(1212), 및 배터리 레벨 표시기(1214)가 디스플레이(1202)에 의해서 디스플레이될 수 있다.
도 12에 도시된 바와 같이, 예시적일 뿐 비제한적인 실시예에서, 키패드(1204)는 사용자가 디스플레이(1202)에서 커서나 선택기 바를 이동시키기 위해 사용할 수 있는 방향 버튼(1216)을 구비할 수 있다. 특히, 사용자는 커서 또는 선 택기 바를 예컨대 위, 아래, 좌측, 우측 또는 임의의 대각 방향과 같은 임의의 방향으로 이동시키기 위해서 방향 버튼(1216)을 사용할 수 있다. 또한, 특정 실시예에서는, 키패드(1204)가 okay 버튼(1218), clear 버튼(1220), 및 end 버튼(1222)을 포함할 수 있다. 사용자는 디스플레이(1202)에 표시되는 프롬프트들에 응하여 응답을 입력하기 위해서 okay 버튼(1218), clear 버튼(1220), 및 end 버튼(1222)을 사용할 수 있다.
도 12는 무선 장치(1200)의 디스플레이(1202)를 통해서 사용자에 표시될 수 있는 예시적인 제 1 그래픽 사용자 데이터 인터페이스(GUI)를 또한 도시한다. 도시된 바와 같이, 제 1 GUI(1210)는 제 1 GUI(1250)의 용도를 나타내는 헤더(1252)를 포함할 수 있다. 도시된 바와 같이, 예시적인 실시예에서, 헤더(1252)는 "Edit Network Settings"로 라벨된다. 그로 인해, 사용자는 제 1 GUI(1250)이 네트워크 설정들을 편집하기 위해 사용될 수 있다는 것을 짐작할 수 있다.
도 12는 제 1 GUI(1250)가 애플리케이션 메뉴(1254)를 포함할 수 있다는 것을 또한 나타낸다. 특정 실시예에서, 애플리케이션 메뉴(1254)는 네트워크 액세스를 요구하는 무선 장치(1200)에 설치되어 있는 애플리케이션들의 리스트를 포함한다. 예컨대, 애플리케이션 메뉴(1254)는 제 1 애플리케이션, 제 2 애플리케이션, 제 3 애플리케이션, 및 N 번째 애플리케이션을 포함한다. 도시된 바와 같이, 제 1 GUI(1250)는 또한 사용자가 키패드(1204)에 있는 방향 버튼(1216)을 사용하여 애플리케이션 메뉴(1254) 내에서 위 및 아래로 이동시킬 수 있는 선택기 바(1256)를 포함한다. 사용자는 예컨대 제 3 애플리케이션과 같은 애플리케이션으로 선택기 바(1256)를 이동시킬 수 있고, 도 13에 도시된 제 2 GUI(1300)에 액세스하기 위해서 키패드(1204)에 있는 okay 버튼(1218)을 선택할 수 있다.
도 13은 도면번호 1300으로 지정된 예시적인 제 2 GUI를 도시하고 있는데, 그것은 제 1 GUI(1250)(도 12)를 사용하는데 있어 선택되는 예컨대 제 3 애플리케이션과 같은 애플리케이션에 대한 설정들을 편집하기 위해 사용될 수 있다. 도 13에 도시된 바와 같이, 제 2 GUI(1300)는 제 2 GUI(1300)의 용도를 나타내는 헤더(1302)를 포함할 수 있다. 예시적인 실시예에서, 제 2 GUI(1300)의 헤더(1302)는 "App.3-Edit Network Settings"로 라벨된다. 그로 인해, 사용자는 제 2 gui(1300)가 제 3 애플리케이션에 대한 네트워크 설정들을 편집하기 위해 사용될 수 있다고 판단할 수 있다.
대안적인 실시예에서는, 만약 사용자가 제 1 GUI(1250)(도 12)에서 제 1 애플리케이션을 선택한다면, 제 2 GUI(1300)의 헤더(1302)가 "App.1-Edit Networking Settings"으로 라벨될 수 있다.
도 13에 도시된 바와 같이, 제 2 GUI(1300)는 무선 장치(1200)에서 이용될 수 있는 네트워크들 또는 네트워크 데이터 인터페이스들의 리스트를 포함하는 네트워크 메뉴(1304)를 포함할 수 있다. 예컨대, 네트워크 메뉴(1304)는 제 1 네트워크, 제 2 네트워크, 제 3 네트워크, 및 N 번째 네트워크를 포함한다. 제 2 GUI(1300)는 또한 사용자가 키패드(1204)에 있는 방향 버튼(1216)을 사용하여 네트워크 메뉴(1304) 내에서 위 및 아래로 이동시킬 수 있는 선택기 바(1306)를 포함한다. 사용자는 예컨대 제 2 애플리케이션과 같은 네트워크에 선택기 바(1306)를 이 동시키고, 무선 장치(1200)에 설치되는 특정 애플리케이션에 대한 승인된 네트워크들의 리스트에 임의의 네트워크를 추가하거나 혹은 그로부터 제거하기 위해 추가 소프트 버튼(1308) 또는 제거 소프트 버튼(1310)을 선택할 수 있다.
도시된 바와 같이, 제 2 GUI(1300)는 또한 디스플레이(1202)에 디스플레이되는 set priority 소프트 버튼(1312)을 포함한다. 특정 실시예에서, 사용자는 무선 장치(1200) 내의 특정 애플리케이션에 의해 사용하도록 승인된 네트워크들의 계층을 설정하기 위해서 상기 set priority 소프트 버튼(1312)을 선택할 수 있다. 상기 set priority 소프트 버튼(1312)이 선택될 때, 제 3 GUI(1400)가 디스플레이(1202)를 통해서 사용자에게 표시될 수 있다. 대안적으로는, 미리 정해진 ACL들이 네트워크 폴리시를 설명하고 데이터 네트워크들에 우선순위를 할당하기 위해서 사용될 수 있다.
도 14를 참조하면, 제 3 GUI(1400)가 도시되어 있다. 도 14에 도시된 바와 같이, 제 3 GUI(1400)는 제 3 GUI(1400)의 용도를 나타내는 헤더(1402)를 포함한다. 예컨대, 제 3 GUI(1400)의 헤더는 "Network Priority-App.3"으로 라벨된다. 그로 인해, 사용자는 제 3 GUI(1400)가 제 3 애플리케이션에 의한 사용을 위해서 승인되어진 네트워크들에 대한 네트워크 우선순위를 편집하기 위해 사용될 수 있다고 판단할 수 있다.
대안적인 실시예에서는, 만약 사용자가 제 1 GUI(1250)(도 12)에 있는 제 1 애플리케이션을 선택하고 사용자가 제 2 GUI(1300)(도 13)에 있는 set priority 소프트 버튼(1312)을 선택한다면, 제 3 GUI(1400)의 헤더(1402)는 "Network Priority-APP.1"로 라벨될 수 있다.
도 14에 도시된 바와 같이, 제 3 GUI(1400)는 제 3 애플리케이션에 의한 사용을 위해서 승인되어진 네트워크들 또는 네트워크 데이터 인터페이스들의 리스트를 포함하는 네트워크 우선순위 메뉴(1404)를 포함할 수 있다. 또한, 네트워크 우선순위 메뉴(1404)는 각각의 승인된 네트워크 또는 네트워크 데이터 인터페이스의 우선순위를 나타낸다. 예컨대, 네트워크 우선순위 메뉴(1404)는 제 1 우선순위를 갖는 제 3 네트워크, 제 2 우선순위를 갖는 제 1 네트워크, 제 3 우선순위를 갖는 제 5 네트워크, 및 제 4 우선순위를 갖는 제 4 네트워크를 포함한다.
제 3 GUI(1400)는 사용자가 키패드(1204)에 있는 방향 버튼(1216)을 사용하여 네트워크 우선순위 메뉴(1404) 내에서 위 및 아래로 이동시킬 수 있는 선택기 바(1406)를 또한 포함한다. 사용자는 예컨대 제 1 애플리케이션과 같은 네트워크로 선택기 바(1406)를 이동시킬 수 있고, 네트워크 우선순위 메뉴(1404) 내에서 제 1 네트워크를 위 및 아래로 이동시키기 위해 Up 소프트 버튼(1408) 또는 Down 소프트 버튼(1410)을 선택할 수 있다. 그로 인해, 사용자는 애플리케이션이 데이터 전송 동안에 활용할 수 있는 네트워크들의 우선순위를 정할 수 있다.
도 15는 애플리케이션에 데이터 패킷을 전송하려 시도할 때 사용자에게 표시될 수 있는 제 4 GUI(1500)가 표시되는 것을 도시한다. 도 15에 도시된 바와 같이, 제 4 GUI(1500)는 제 4 GUI(1500)의 용도를 나타내는 헤더(1502)를 포함할 수 있다. 예컨대, 제 4 GUI(1500)의 헤더(1502)는 "Error Message"로 라벨될 수 있다. 그로 인해, 사용자는 무선 장치에 에러가 발생했다는 것을 짐작할 수 있다. 도 15는 또한 제 4 GUI(1500)가 디스플레이(1202)를 통해 사용자에게 표시될 수 있는 에러 메시지(1504)를 포함할 수 있다는 것을 나타낸다. 예시적일 뿐 비제한적인 실시예에서, 에러 메시지는 "Incoming data packet dropped. Error logged."를 나타낸다. 그로 인해, 사용자는 외부 장치가 무선 장치 내의 애플리케이션과 같은 무선 장치에 데이터 패킷을 전송하려 시도했다는 것과 그 데이터 패킷이 의심적인 것으로서 차단되었다는 것을 알게 된다. 특정 실시예에서는, 에러들이 무선 장치에서 로깅될 수 있다. 대안적으로, 에러들은 의심스런 패킷이 수신되어지는 네트워크에 있는 네트워크 장치에서 로깅될 수 있다.
특정 실시예에서는, 위에 설명된 각각의 GUI(1250, 1300, 1400, 1500)이 독립형 GUI이다. 대안적으로는, 위에 설명된 GUI들(1250, 1300, 1400, 1500)은 단일 GUI가 여러 페이지들(pages)을 갖는 경우에는 일부분이다.
본 명세서 설명된 구조의 구성을 통해, 다중-호밍, 다중-모드 통신 장치에서 데이터 애플리케이션을 지원하고자 하는 시스템 및 방법은 데이터 네트워킹을 위해 사용할 데이터 인터페이스가 어떤 것인지를 규정하기 위해 네트워크 장치 내의 애플리케이션들에 방법을 제공한다. 예컨대, 네트워크 장치 내의 특정 네트워크 데이터 인터페이스는 예컨대 인터넷과 같은 일반적인 네트워크로의 액세스를 제공할 수 있는 반면에, 다른 네트워크 데이터 인터페이스는 사설 코포레이트 인트라넷으로의 액세스를 제공할 수 있다. 또한, 네트워크 장치는 사설 코포레이트 네트워크로부터의 이메일에 액세스하기 위한 제 1 이메일 클라이언트 애플리케이션 및 인터넷을 통한 개인 이메일을 검색하기 위한 제 2 이메일 클라이언트 애플리케이션을 포함할 수 있다.
특정 실시예에서는, 네트워크 장치가 사설 인트라넷으로의 액세스를 위한 "특수" 브라우저 및 일반 인터넷 액세스를 위한 "규격(off the shelf)" 브라우저를 포함할 수 있다. 또한, 네트워크 장치는 여러 GPS 엔진들을 포함할 수 있고, 각각의 GPS 엔진은 그 GPS 엔진에 의해 규정된 데이터 인터페이스를 통해서 특정 네트워크로부터의 위치 정보를 액세스할 수 있다. 게다가, 특정 실시예에서는, 네트워크 장치와 통신하는 예컨대 도메인 이름 시스템(DNS)과 같은 이름 분석기가 특정 네트워크에 대한 이름 또는 주소를 분석할 수 있는데, 그 이유는 두 사설 네트워크들에 구성된 이중 이름들 또는 주소들이 존재할 수 있기 때문이다.
또한, 본 명세서에 설명된 구조의 구성을 통해서, 시스템 및 방법은 애플리케이션이 데이터를 검색할 수 있는 데이터 인터페이스들의 수를 제한할 수 있다. 이는 네트워크 장치 내의 애플리케이션들 및 프로토콜 스택들에 대한 비교적 더 높은 레벨의 보안성을 제공한다. 또한, 그 시스템 및 방법은 인입 데이터를 제한하는 방법을 제공함으로써, 그 인입 데이터는 데이터가 수신되는 데이터 인터페이스나 데이터 인터페이스들에 기초하여 특정 애플리케이션에 통신된다. 그 시스템은 각각의 애플리케이션에 대한 데이터 전송을 위해서 허용되는 데이터 인터페이스들을 식별할 목적으로 각각의 애플리케이션과 연관된 네트워크 폴리시를 활용할 수 있다.
또한, 본 명세서에 설명된 시스템 및 방법은 애플리케이션들이 하나, 더 많은, 또는 모든 데이터 인터페이스들에 대한 특정 포트들에 결합하도록 허용할 수 있다. 예컨대 비-TCP/U에IP와 같은 다른 프로토콜 스택들의 경우에, 애플리케이션들은 데이터 인터페이스들 세트를 통한 서비스들로의 액세스를 획득하도록 허용될 수 있다.
당업자라면, 본 명세서에 설명된 실시예들과 연관되어 기술되어진 여러 도시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 그 둘의 결합으로서 구현될 수 있다는 것을 또한 알 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확히 설명하기 위해서, 여러 도시적인 성분들, 블록들, 구조들, 모듈들, 회로들, 및 단계들이 그들의 기능과 관련해서 일반적으로 위에 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 전체적인 시스템에 부여되는 특정 애플리케이션 및 설계 제약들에 따라 좌우된다. 숙련된 기술자들은 각각의 특정 애플리케이션에 대해 가변적인 방법들을 통해 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들은 본 발명의 범위로부터 벗어나는 것으로서 해석되지 않아야 한다.
본 명세서에 기재된 실시예들과 관련하여 설명되어진 방법 또는 알고리즘의 단계들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 그들의 결합을 통해 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, PROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 제거가능 디스크, CD-ROM, 또는 해당 분야에 공지되어 있는 임의의 다른 형태의 저장 매체에 존재할 수 있다. 예시적인 저장 매체는 프로세서가 저장매체로부터 정보를 판독하고 그 정보를 상기 저장매체에 기록할 수 있도록 상기 프로세서에 연결 된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 존재할 수 있다. ASIC은 컴퓨팅 장치 또는 사용자 단말기에 존재할 수 있다. 대안적으로, 프로세서 및 저장 매체는 컴퓨팅 장치 또는 사용자 단말기 내에서 이산적인 성분들로서 존재할 수 있다.
기재된 실시예들에 대한 앞선 설명은 당업자가 본 발명을 구현하거나 사용
할 수 있을 정도로 제공되었다. 이러한 실시예들에 대한 여러 변경들이 당업자에게는 쉽게 자명할 것이며, 여기서 정의된 일반 원리들은 본 발명의 사상 및 범위로부터 벗어나지 않고 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 본 명세서에 제시된 실시예들로 제한되도록 의도되지 않고, 다음의 청구범위에 의해 정해지는 원리들 및 새로운 특징들에 따른 가장 넓은 범위가 제공된다.

Claims (62)

  1. 다중-호밍 네트워크 장치(multi-homing network device)로부터 데이터 네트워크로 데이터를 전송 및 수신하는 방법으로서,
    네트워크 폴리시(network policy)를 정하는 단계;
    상기 네트워크 폴리시를 라우팅 모듈에 전송하는 단계; 및
    상기 라우팅 모듈로부터 루트 스코프(route scope)를 수신하는 단계를 포함하고,
    상기 루트 스코프는 상기 네트워크 폴리시를 충족시키는 데이터 네트워크에 대한 데이터 인터페이스들 서브세트를 식별하고,
    상기 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택되며,
    상기 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함하는,
    데이터 전송 및 수신 방법.
  2. 제 1항에 있어서, 상기 네트워크 폴리시는 상기 이용가능한 데이터 인터페이스들 세트로부터 상기 데이터 인터페이스들 서브세트를 선택하기 위한 하나 이상의 기준을 식별하는, 데이터 전송 및 수신 방법.
  3. 제 2항에 있어서, 상기 네트워크 폴리시는 애플리케이션으로 및 상기 애플리케이션으로부터의 데이터 전송을 위해 사용될 둘 이상의 데이터 인터페이스들을 정하는, 데이터 전송 및 수신 방법.
  4. 제 3항에 있어서, 상기 네트워크 폴리시는 애플리케이션에 의해 정해지는, 데이터 전송 및 수신 방법.
  5. 제 1항에 있어서, 상기 데이터 인터페이스들 서브세트는 GSM(global system for mobile communications) 데이터 인터페이스, GPRS(general packet radio service) 데이터 인터페이스, UMTS(universal mobile telecommunications system) 데이터 인터페이스, CDMA(code division multiple access) 데이터 인터페이스, CDMA 2000 데이터 인터페이스, CDMA EVDO(evolution data optimized) 인터페이스, BT(Bluetooth) 데이터 인터페이스, 802.11a 데이터 인터페이스, 802.11b 데이터 인터페이스, 802.11g 데이터 인터페이스, 802.11i 데이터 인터페이스, 802.15 데이터 인터페이스, 802.16 데이터 인터페이스, WCDMA(wideband CDMA) 데이터 인터페이스, OFCDM(orthogonal frequency code division multiplexing) 데이터 인터페이스, GPS(global positioning system) 데이터 인터페이스, 또는 이들의 결합을 포함하는, 데이터 전송 및 수신 방법.
  6. 제 1항에 있어서, 상기 네트워크 폴리시와 연관된 애플리케이션이 루트 스코 프에 의해 식별되는 데이터 인터페이스들 서브세트에 결합되는, 데이터 전송 및 수신 방법.
  7. 제 6항에 있어서,
    상기 데이터 인터페이스들 서브세트 내의 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계;
    상기 우선적인 데이터 인터페이스가 이용가능할 때는 상기 우선적인 데이터 인터페이스를 통한 접속을 오픈시키는 단계; 및
    상기 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 더 포함하는, 데이터 전송 및 수신 방법.
  8. 제 7항에 있어서,
    상기 우선적인 데이터 인터페이스가 이용가능하지 않을 때는 상기 데이터 인터페이스들 서브세트 내의 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계;
    상기 그 다음으로 우선적인 데이터 인터페이스를 통한 접속을 오픈시키는 단계; 및
    상기 그 다음으로 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 더 포함하는, 데이터 전송 및 수신 방법.
  9. 제 7항에 있어서,
    상기 접속이 차단되었는지 여부를 결정하는 단계;
    상기 접속이 차단되었을 때는 그 다음으로 우선적인 데이터 인터페이스가 이용가능한지 여부를 결정하는 단계;
    상기 그 다음으로 우선적인 데이터 인터페이스를 통한 접속을 오픈시키는 단계; 및
    상기 그 다음으로 우선적인 데이터 인터페이스를 통해 데이터를 전송하는 단계를 더 포함하는, 데이터 전송 및 수신 방법.
  10. 다중-호밍 네트워크 장치로서,
    프로세서;
    상기 프로세서에 액세스가능한 메모리;
    상기 메모리 내에 저장되는 적어도 하나의 애플리케이션; 및
    상기 메모리 내에 저장되는 적어도 하나의 네트워크 폴리시를 포함하고,
    상기 적어도 하나의 네트워크 폴리시는 데이터를 전송 및 수신하기 위해 애플리케이션에 의해서 사용되어질 적어도 하나의 데이터 인터페이스를 정하는,
    다중-호밍 네트워크 장치.
  11. 제 10항에 있어서,
    상기 메모리 내에 저장되는 루트 스코프를 더 포함하고,
    상기 루트 스코프는 라우팅 모듈로부터 수신되고,
    상기 루트 스코프는 네트워크 폴리시를 충족시키는 데이터 인터페이스들 서브세트를 포함하며,
    상기 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택되는,
    다중-호밍 네트워크 장치.
  12. 제 11항에 있어서, 상기 데이터 인터페이스들 서브세트는 GSM(global system for mobile communications) 데이터 인터페이스, GPRS(general packet radio service) 데이터 인터페이스, UMTS(universal mobile telecommunications system) 데이터 인터페이스, CDMA(code division multiple access) 데이터 인터페이스, CDMA 2000 데이터 인터페이스, CDMA EVDO(evolution data optimized) 인터페이스, BT(Bluetooth) 데이터 인터페이스, 802.11a 데이터 인터페이스, 802.11b 데이터 인터페이스, 802.11g 데이터 인터페이스, 802.11i 데이터 인터페이스, 802.15 데이터 인터페이스, 802.16 데이터 인터페이스, WCDMA(wideband CDMA) 데이터 인터페이스, OFCDM(orthogonal frequency code division multiplexing) 데이터 인터페이스, GPS(global positioning system) 데이터 인터페이스, 또는 이들의 결합을 포함하는, 다중-호밍 네트워크 장치.
  13. 제 11항에 있어서, 상기 루트 스코프는 상기 네트워크 폴리시에 기초하여 라 우팅 모듈에 의해서 생성되는, 다중-호밍 네트워크 장치.
  14. 제 11항에 있어서, 상기 데이터 인터페이스들 서브세트는 계층적으로 구성되고, 상기 다중-호밍 네트워크 장치는 상기 계층 내의 이용가능한 제 1 데이터 인터페이스에 기초하여 한번에 하나씩 데이터 인터페이스들 서브세트 각각을 통한 통신을 설정하기 위해 시도하는, 다중-호밍 네트워크 장치.
  15. 제 10항에 있어서,
    상기 프로세서에 연결되는 트랜시버; 및
    상기 트랜시버에 연결되는 안테나를 더 포함하는, 다중-호밍 네트워크 장치.
  16. 제 10항에 있어서,
    다수의 데이터 인터페이스들을 더 포함하고,
    상기 다수의 데이터 인터페이스들 각각은 각기 다른 데이터 네트워크로의 액세스를 제공하는, 다중-호밍 네트워크 장치.
  17. 제 16항에 있어서, 상기 다수의 데이터 인터페이스들 각각은 액세스 제어 리스트(ACL)를 포함하고, 상기 ACL은 상응하는 데이터 인터페이스로의 액세스를 제한하는, 다중-호밍 네트워크 장치.
  18. 제 17항에 있어서, 상기 ACL은 비-제로인 우선순위 번호를 리턴하고, 상기 비-제로인 우선순위 번호는 상응하는 데이터 인터페이스가 특정 네트워크 폴리시를 통해 사용될 수 있다는 것을 나타내는, 다중-호밍 네트워크 장치.
  19. 제 18항에 있어서, 상기 비-제로인 우선순위 번호는 상응하는 데이터 인터페이스와 연관된 우선도 레벨(level of preference)을 나타내는, 다중-호밍 네트워크 장치.
  20. 제 10항에 있어서, 상기 다중-호밍 네트워크 장치 내의 제 1 애플리케이션이 제 1 데이터 인터페이스를 통해서 제 1 네트워크에 액세스하고, 상기 다중-호밍 네트워크 내의 제 2 애플리케이션이 제 2 데이터 인터페이스를 통해서 제 2 네트워크에 액세스하는, 다중-호밍 네트워크 장치.
  21. 프로세서에 액세스가능한 컴퓨터 판독가능 매체로서, 상기 컴퓨터 판독가능 매체는,
    적어도 하나의 애플리케이션; 및
    상기 적어도 하나의 애플리케이션과 연관된 적어도 하나의 네트워크 폴리시를 포함하고,
    상기 네트워크 폴리시는 애플리케이션에 대해서 데이터를 통신하기 위해 다중-호밍 네트워크 장치의 둘 이상의 데이터 인터페이스들을 식별하는,
    컴퓨터 판독가능 매체.
  22. 제 21항에 있어서,
    루트 스코프를 더 포함하고,
    상기 루프 스코프는 네트워크 폴리시를 따르며, 상기 컴퓨터 판독가능 매체가 설치되는 장치에서 이용가능한 데이터 인터페이스들 세트로부터 선택되는 적어도 하나의 데이터 인터페이스의 서브세트를 포함하는, 컴퓨터 판독가능 매체.
  23. 제 22항에 있어서, 상기 루트 스코프는 네트워크 폴리시에 적어도 부분적으로 기초해서 라우팅 모듈에 의해 생성되는, 컴퓨터 판독가능 매체.
  24. 데이터 인터페이스들을 애플리케이션에 결합하는 방법으로서,
    상기 애플리케이션으로부터 네트워크 폴리시를 수신하는 단계; 및
    다중-호밍 네트워크 장치에서 애플리케이션을 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 결합하지만 모든 데이터 인터페이스들에 결합하지는 않는 단계를 포함하고,
    상기 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함하는, 결합 방법.
  25. 제 24항에 있어서, 상기 애플리케이션이 결합되는 데이터 인터페이스들 서브 세트를 가리키는 루트 스코프를 생성하는 단계를 더 포함하는, 결합 방법.
  26. 제 25항에 있어서, 상기 애플리케이션과 연관된 소켓에 루트 스코프를 저장하는 단계를 더 포함하는, 결합 방법.
  27. 제 26항에 있어서, 상기 네트워크 폴리시는 애플리케이션으로 및 상기 애플리케이션으로부터의 데이터 전송을 위해 사용될 둘 이상의 데이터 인터페이스들을 식별하는, 결합 방법.
  28. 제 25항에 있어서, 상기 루트 스코프는 이용가능한 데이터 인터페이스들 세트의 비트 마스크(bit mask)인, 결합 방법.
  29. 데이터를 수신하는 방법으로서,
    데이터 인터페이스로부터 데이터 패킷을 수신하는 단계;
    상기 데이터 인터페이스의 인터넷 프로토콜(IP) 주소를 상기 데이터 패킷과 연관된 목적지 IP 주소에 비교하는 단계; 및
    상기 데이터 인터페이스의 IP 주소가 상기 목적지 IP 주소에 일치하지 않을 때는 상기 데이터 패킷을 차단하는 단계를 포함하는,
    데이터 수신 방법.
  30. 제 29항에 있어서, 상기 데이터 인터페이스의 IP 주소가 상기 목적지 IP 주소에 일치할 때는 데이터 패킷이 소켓에 속하는지 여부를 결정하는 단계를 더 포함하는, 데이터 수신 방법.
  31. 제 30항에 있어서, 상기 데이터 패킷이 애플리케이션과 연관된 소켓에 속하지 않을 때는 상기 데이터 패킷을 차단하는 단계를 더 포함하는, 데이터 수신 방법.
  32. 제 30항에 있어서, 상기 데이터 패킷이 전송 제어 블록을 포함할 때는 상기 데이터 패킷과 연관된 애플리케이션에 대한 루트 스코프를 검색하는 단계를 더 포함하는, 데이터 수신 방법.
  33. 제 32항에 있어서, 패킷이 검색되는 데이터 인터페이스에 대한 임시 루트 스코프를 생성하는 단계를 더 포함하는, 데이터 수신 방법.
  34. 제 33항에 있어서, 상기 임시 루트 스코프가 상기 루트 스코프를 따르는지 여부를 결정하는 단계를 더 포함하는, 데이터 수신 방법.
  35. 제 34항에 있어서, 상기 임시 루트 스코프가 상기 루트 스코프를 따를 때는 데이터 패킷을 애플리케이션에 전송하는 단계를 더 포함하는, 데이터 수신 방법.
  36. 제 34항에 있어서, 상기 임시 루트 스코프가 상기 루트 스코프를 따르지 않을 때는 패킷을 차단하는 단계를 더 포함하는, 데이터 수신 방법.
  37. 제 36항에 있어서, 데이터 패킷이 차단된 것을 나타내는 메시지를 통해서 피어 장치(peer device)에 응답하는 단계를 더 포함하는, 데이터 수신 방법.
  38. 제 33항에 있어서, 비트단위 AND 연산의 결과를 생성하기 위해서 상기 임시 루트 스코프 및 상기 루트 스코프에 대해 비트단위 AND 연산(bitwise AND operation)을 수행하는 단계를 더 포함하는, 데이터 수신 방법.
  39. 제 38항에 있어서, 상기 결과가 '0'일 때는 데이터 패킷을 차단하는 단계를 더 포함하는, 데이터 수신 방법.
  40. 제 38항에 있어서, 상기 결과가 '0'가 아닐 때는 데이터 패킷을 유지하는 단계를 더 포함하는, 데이터 수신 방법.
  41. 다중-호밍 네트워크 장치로서,
    프로세서;
    상기 프로세서에 액세스가능한 메모리; 및
    상기 메모리 내에 저장되는 라우팅 모듈을 포함하고,
    상기 라우팅 모듈은,
    애플리케이션으로부터 네트워크 폴리시를 수신하고,
    이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 상기 애플리케이션을 결합하도록 구성되는,
    다중-호밍 네트워크 장치.
  42. 제 41항에 있어서, 상기 라우팅 모듈은 상기 네트워크 폴리시에 적어도 부분적으로 기초하여 루트 스코프를 생성하도록 또한 구성되는, 다중-호밍 네트워크 장치.
  43. 제 42항에 있어서, 상기 루트 스코프는 애플리케이션이 결합되는 데이터 인터페이스들 서브세트의 표시를 포함하는, 다중-호밍 네트워크 장치.
  44. 제 10항에 있어서,
    프로세서에 연결되는 트랜시버; 및
    상기 트랜시버에 연결되는 안테나를 더 포함하는, 다중-호밍 네트워크 장치.
  45. 프로세서에 액세스가능한 컴퓨터 판독가능 매체로서, 상기 컴퓨터 판독가능 매체는,
    루트 스코프를 포함하고,
    상기 루트 스코프는 다중-호밍 장치에서 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트를 나타내고,
    애플리케이션이 데이터를 전송 및 수신하기 위해 데이터 인터페이스들 서브세트에 결합되는,
    컴퓨터 판독가능 매체.
  46. 제 45항에 있어서, 상기 루트 스코프는 애플리케이션으로부터 수신되는 네트워크 폴리시에 적어도 부분적으로 기초하여 생성되는, 컴퓨터 판독가능 매체.
  47. 제 45항에 있어서, 상기 루트 스코프는 프로세서에 의해 실행가능한 라우팅 모듈에 의해서 생성되는, 컴퓨터 판독가능 매체.
  48. 제 45항에 있어서, 상기 루트 스코프는 이용가능한 데이터 인터페이스들 세트의 비트 마스크인, 컴퓨터 판독가능 매체.
  49. 네트워크 장치 내의 적어도 한 포트에 애플리케이션을 결합하는 방법으로서,
    요청 중인 애플리케이션에 포트를 결합하라는 요청을 수신하는 단계;
    오픈 애플리케이션이 상기 포트에 결합되었는지 여부를 결정하는 단계; 및
    상기 오픈 애플리케이션이 포트에 결합되지 않았을 때는 상기 요청 중인 애 플리케이션을 상기 포트에 결합하는 단계를 포함하는,
    결합 방법.
  50. 제 49항에 있어서, 오픈 애플리케이션이 포트에 결합되었을 때는, 오픈 애플리케이션과 연관된 제 1 루트 스코프 및 요청 중인 애플리케이션과 연관된 제 2 루트 스코프에 대해 비트단위 AND 연산을 수행하는 단계를 더 포함하는, 결합 방법.
  51. 제 50항에 있어서, 상기 비트단위 AND 연산의 결과가 '0'일 때는 상기 요청 중인 애플리케이션을 포트에 결합하는 단계를 더 포함하는, 결합 방법.
  52. 제 51항에 있어서, 상기 비트단위 AND 연산의 결과가 '0'가 아닐 때는 상기 요청 중인 애플리케이션이 포트에 결합하는 것을 막는 단계를 더 포함하는, 결합 방법.
  53. 사용자 인터페이스로서,
    애플리케이션 메뉴를 포함하고,
    상기 애플리케이션 메뉴는 다중-호밍 네트워크 장치에 설치되어 있는 애플리케이션들의 리스트를 포함하고,
    사용자가 선택된 애플리케이션과 연관된 적어도 하나의 네트워크 설정을 편집하기 위해서 애플리케이션 메뉴로부터 애플리케이션을 선택할 수 있는,
    사용자 인터페이스.
  54. 제 53항에 있어서, 상기 다중-호밍 네트워크 장치에서 이용가능한 네트워크들의 리스트를 포함하는 네트워크 메뉴를 더 포함하는, 사용자 인터페이스.
  55. 제 53항에 있어서, 사용자는 네트워크 메뉴로부터 네트워크를 선택할 수 있으며 선택된 네트워크를 선택된 애플리케이션과 연관시킬 수 있는, 사용자 인터페이스.
  56. 제 55항에 있어서, 상기 선택된 애플리케이션에 의한 사용이 승인되어진 네트워크들의 리스트를 포함하는 네트워크 우선순위 메뉴를 더 포함하는, 사용자 인터페이스.
  57. 제 56항에 있어서, 상기 네트워크 우선순위 메뉴는 상기 네트워크 우선순위 메뉴에 리스트되어 있는 각각의 네트워크와 연관된 우선순위를 나타내고, 상기 선택된 애플리케이션은 각각의 네트워크에 할당된 우선순위에 기초하여 각각의 네트워크와 통신하는, 사용자 인터페이스.
  58. 제 57항에 있어서, 각각의 네트워크와 연관된 우선순위가 사용자에 의해 할당되는, 사용자 인터페이스.
  59. 다중-호밍 네트워크 장치로서,
    네트워크 폴리시를 라우팅 모듈에 전송하기 위한 수단; 및
    상기 라우팅 모듈로부터 루트 스코프를 수신하기 위한 수단을 포함하고,
    상기 루트 스코프는 상기 네트워크 폴리시를 충족시키는 데이터 네트워크에 대한 데이터 인터페이스들 서브세트를 식별하고,
    상기 데이터 인터페이스들 서브세트는 이용가능한 데이터 인터페이스들 세트로부터 선택되며,
    상기 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함하는,
    다중-호밍 네트워크 장치.
  60. 다중-호밍 네트워크 장치로서,
    상기 다중-호밍 네트워크 장치에서 애플리케이션을 이용가능한 데이터 인터페이스들 세트 내의 데이터 인터페이스들 서브세트에 결합하지만 모든 데이터 인터페이스들에는 결합하지 않기 위한 수단을 포함하고,
    상기 데이터 인터페이스들 서브세트는 적어도 하나의 데이터 인터페이스를 포함하는,
    다중-호밍 네트워크 장치.
  61. 다중-호밍 네트워크 장치로서,
    데이터 인터페이스로부터 데이터 패킷을 수신하기 위한 수단;
    상기 데이터 인터페이스의 인터넷 프로토콜(IP) 주소를 상기 데이터 패킷과 연관된 목적지 IP 주소에 비교하기 위한 수단; 및
    상기 데이터 인터페이스의 IP 주소가 상기 목적지 IP 주소에 일치하지 않을 때는 상기 데이터 패킷을 차단하기 위한 수단을 포함하는,
    다중-호밍 네트워크 장치.
  62. 다중-호밍 네트워크 장치로서,
    요청 중인 애플리케이션에 포트를 결합하라는 요청을 수신하기 위한 수단;
    오픈 애플리케이션이 상기 포트에 결합되었는지 여부를 결정하기 위한 수단; 및
    상기 오픈 애플리케이션이 포트에 결합되지 않았을 때는 상기 요청 중인 애플리케이션을 상기 포트에 결합하기 위한 수단을 포함하는,
    다중-호밍 네트워크 장치.
KR1020077031048A 2005-06-01 2006-06-01 다중-호밍, 다중-모드 통신 장치에서의 데이터인터페이스들 선택 KR101032843B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US68684405P 2005-06-01 2005-06-01
US60/686,844 2005-06-01
US11/349,314 2006-02-06
US11/349,314 US8526463B2 (en) 2005-06-01 2006-02-06 System and method to support data applications in a multi-homing, multi-mode communication device

Publications (2)

Publication Number Publication Date
KR20080026571A true KR20080026571A (ko) 2008-03-25
KR101032843B1 KR101032843B1 (ko) 2011-05-06

Family

ID=37103188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077031048A KR101032843B1 (ko) 2005-06-01 2006-06-01 다중-호밍, 다중-모드 통신 장치에서의 데이터인터페이스들 선택

Country Status (9)

Country Link
US (5) US8526463B2 (ko)
EP (1) EP1886532B1 (ko)
JP (2) JP2008546321A (ko)
KR (1) KR101032843B1 (ko)
CN (1) CN101228806B (ko)
AT (1) ATE536065T1 (ko)
ES (1) ES2374941T3 (ko)
TW (1) TWI337483B (ko)
WO (1) WO2006130807A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150019715A (ko) * 2013-08-14 2015-02-25 삼성전자주식회사 Ip주소를 이용하여 어플리케이션을 자동으로 구동하는 방법 및 장치
KR20160074328A (ko) * 2014-12-18 2016-06-28 삼성전자주식회사 환경 설정을 변경하여 무선 통신의 성능을 향상시키는 방법 및 이를 구현한 전자장치
KR20170018014A (ko) * 2014-06-10 2017-02-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 주어진 애플리케이션 또는 상황에 대한 네트워크 선택

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005107144A1 (en) 2004-04-30 2005-11-10 Research In Motion Limited System and method for handling data transfers
WO2006124357A2 (en) 2005-05-11 2006-11-23 Bigfoot Networks, Inc. Distributed processing system and method
US8526463B2 (en) 2005-06-01 2013-09-03 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US9455844B2 (en) 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method
US8509062B2 (en) * 2006-08-07 2013-08-13 Ciena Corporation Smart ethernet edge networking system
KR101257110B1 (ko) * 2006-04-12 2013-04-22 삼성전자주식회사 패킷 서비스 재접속 시점의 결정방법 및 장치
US20070255797A1 (en) * 2006-04-28 2007-11-01 Dunn Douglas L Method for selecting an air interface using an access list on a multi-mode wireless device
WO2008011253A2 (en) * 2006-07-17 2008-01-24 Bigfoot Networks, Inc. Host posing network device and method thereof
KR100772886B1 (ko) * 2006-10-27 2007-11-05 삼성전자주식회사 네트워크 정보 제공 장치 및 방법
CN101569145A (zh) * 2006-12-20 2009-10-28 日本电气株式会社 通信终端、终端、通信系统、通信方法和程序
US8050707B2 (en) * 2007-02-02 2011-11-01 Dell Products L.P. Method for selecting a priority for wireless technologies via graphical representation
KR20100015846A (ko) * 2007-03-26 2010-02-12 빅풋 네트웍스, 인크. 노드들 간의 통신을 위한 방법 및 시스템
DE102007025515B4 (de) * 2007-05-31 2010-04-15 Vodafone Holding Gmbh Vorrichtung zum Aktivieren und Deaktivieren von Netzwerkschnittstellen
US8572256B2 (en) 2007-07-16 2013-10-29 Qualcomm Incorporated Method for supporting multiple diversified data applications with efficient use of network resources
US8107939B2 (en) * 2007-12-14 2012-01-31 Microsoft Corporation Software defined radio architecture
KR100935371B1 (ko) 2007-12-18 2010-01-06 한국전자통신연구원 프로토콜 확장을 이용한 이동 단말의 이동성 지원 방법
KR101466573B1 (ko) 2008-01-22 2014-12-10 삼성전자주식회사 통신 단말 장치 및 통신 단말 장치에 탑재된 복수개의네트워크 인터페이스를 이용하여 통신을 수행하는 방법
WO2010010695A1 (ja) * 2008-07-23 2010-01-28 パナソニック株式会社 移動端末及びネットワークノード
EP2329679A1 (en) * 2008-08-29 2011-06-08 Interdigital Patent Holdings, Inc. Ip mobility for devices with multiple radios
US8402084B2 (en) * 2008-09-11 2013-03-19 Intel Corporation Host embedded controller interface bridge
US8407721B2 (en) * 2008-12-12 2013-03-26 Microsoft Corporation Communication interface selection on multi-homed devices
US8539053B2 (en) * 2009-02-27 2013-09-17 Futurewei Technologies, Inc. Apparatus and method for dynamic host configuration protocol version 6 extensions for configuring hosts with multiple interfaces
US8650326B2 (en) * 2009-11-11 2014-02-11 Microsoft Corporation Smart client routing
US9531674B2 (en) * 2009-11-11 2016-12-27 Microsoft Technology Licensing, Llc Virtual host security profiles
US9411647B2 (en) * 2010-01-22 2016-08-09 Qualcomm Incorporated Hierarchical routing and interface selection for multi-processor multimode network devices
US9603085B2 (en) * 2010-02-16 2017-03-21 Qualcomm Incorporated Methods and apparatus providing intelligent radio selection for legacy and non-legacy applications
EP2362688B1 (en) * 2010-02-23 2016-05-25 Alcatel Lucent Transport of multihoming service related information between user equipment and 3GPP evolved packet core
GB201009649D0 (en) 2010-06-09 2010-07-21 Roke Manor Research Mobile device and method
US11405969B2 (en) 2010-09-29 2022-08-02 International Business Machines Corporation Enabling interface aggregation of mobile broadband network interfaces
CN102480499A (zh) * 2010-11-24 2012-05-30 财团法人资讯工业策进会 网络分类连结系统及方法
TW201223212A (en) * 2010-11-24 2012-06-01 Inst Information Industry Network classification connection system, method, and computer recording medium
CN103229467B (zh) * 2010-12-28 2016-02-17 英派尔科技开发有限公司 病毒性服务质量升级方法及计算设备
US9264868B2 (en) 2011-01-19 2016-02-16 Qualcomm Incorporated Management of network access requests
US9178965B2 (en) 2011-03-18 2015-11-03 Qualcomm Incorporated Systems and methods for synchronization of application communications
KR101222432B1 (ko) * 2011-07-06 2013-01-15 주식회사에어플러그 고정 호스트 주소에 기반하여 복수의 이종망(異種網)들을 선택적으로 사용하여 데이터 송수신할 수 있게 하는 장치와 이를 위한 방법
US9497220B2 (en) 2011-10-17 2016-11-15 Blackberry Limited Dynamically generating perimeters
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
US8665847B2 (en) 2011-11-08 2014-03-04 Microsoft Corporation Service-assisted network access point selection
US9613219B2 (en) * 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
JP5957231B2 (ja) * 2012-01-27 2016-07-27 京セラ株式会社 携帯端末
EP2677478A1 (en) * 2012-06-21 2013-12-25 BlackBerry Limited Managing use of network resources
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
JP5958359B2 (ja) * 2013-01-21 2016-07-27 ブラザー工業株式会社 通信支援プログラムおよび通信装置
US9954764B2 (en) * 2013-09-30 2018-04-24 Extreme Networks, Inc. Performing MAC-in-MAC encapsulation using shortest path bridging configuration information
US10193748B2 (en) 2013-09-30 2019-01-29 Extreme Networks, Inc. Enabling configuration in networks
WO2015052866A1 (ja) * 2013-10-11 2015-04-16 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
US10057302B2 (en) 2013-11-15 2018-08-21 Microsoft Technology Licensing, Llc Context-based selection of instruction sets for connecting through captive portals
US10382305B2 (en) 2013-11-15 2019-08-13 Microsoft Technology Licensing, Llc Applying sequenced instructions to connect through captive portals
US9369342B2 (en) 2013-11-15 2016-06-14 Microsoft Technology Licensing, Llc Configuring captive portals with a cloud service
US9554323B2 (en) 2013-11-15 2017-01-24 Microsoft Technology Licensing, Llc Generating sequenced instructions for connecting through captive portals
US10009268B2 (en) 2014-01-06 2018-06-26 Samsung Electronics Co., Ltd. Method and apparatus for relaying packet transmission and updating network address information in communication system
JP6540283B2 (ja) * 2015-06-30 2019-07-10 富士通株式会社 通信装置、通信方法、および、通信プログラム
US9918255B2 (en) 2015-09-22 2018-03-13 International Business Machines Corporation Electronic devices with distributed radios
US10452395B2 (en) 2016-07-20 2019-10-22 International Business Machines Corporation Instruction to query cache residency
US10521350B2 (en) 2016-07-20 2019-12-31 International Business Machines Corporation Determining the effectiveness of prefetch instructions
US10169239B2 (en) 2016-07-20 2019-01-01 International Business Machines Corporation Managing a prefetch queue based on priority indications of prefetch requests
US10621095B2 (en) * 2016-07-20 2020-04-14 International Business Machines Corporation Processing data based on cache residency
EP3327971A1 (en) * 2016-11-29 2018-05-30 Thomson Licensing A method and apparatus for managing interfaces steering in communication devices
US10455464B1 (en) * 2017-05-12 2019-10-22 Sprint Spectrum L.P. Dynamic handover threshold adjustment
WO2021188026A1 (en) * 2020-03-20 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Methods, host devices and computer program products for assigning communication ports
US11343180B2 (en) * 2020-08-14 2022-05-24 Cisco Technology, Inc. Network service access and data routing based on assigned context
US11979292B1 (en) * 2022-12-14 2024-05-07 Ca, Inc. Virtual network interface management for network functions using network definitions

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5181017A (en) * 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
JPH05316248A (ja) 1992-05-08 1993-11-26 N T T Data Tsushin Kk 通信回線自動選択方法
US5345550A (en) * 1992-12-23 1994-09-06 International Business Machines Corporation User-modifiable popup menus for object oriented behavior
US6016307A (en) 1996-10-31 2000-01-18 Connect One, Inc. Multi-protocol telecommunications routing optimization
US6473404B1 (en) * 1998-11-24 2002-10-29 Connect One, Inc. Multi-protocol telecommunications routing optimization
US6122514A (en) 1997-01-03 2000-09-19 Cellport Systems, Inc. Communications channel selection
US6078587A (en) 1997-06-23 2000-06-20 Sun Microsystems, Inc. Mechanism for coalescing non-cacheable stores
JP2000244601A (ja) 1999-02-24 2000-09-08 Mitsubishi Electric Corp データ回線選択方法およびデータ回線選択装置
WO2001033889A1 (en) 1999-11-01 2001-05-10 White. Cell, Inc. Cellular data system security method and apparatus
AU2001239819A1 (en) * 2000-02-23 2001-09-03 Dave D. Adams System and method for dynamically routing messages transmitted from mobile platforms
US7171492B1 (en) * 2000-02-24 2007-01-30 Utstarcom, Inc. Method and application programming interface for assigning multiple network addresses
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
JP3782671B2 (ja) 2001-02-28 2006-06-07 株式会社エヌ・ティ・ティ・ドコモ リンクマネージャ及びリンク管理方法
US7747758B2 (en) * 2001-10-29 2010-06-29 International Business Machines Corporation Dynamic port assignment
US6904282B2 (en) * 2001-11-16 2005-06-07 Qualcomm Incorporated Method and apparatus for identifying and acquiring preferred wireless communications systems
JP2005532759A (ja) * 2002-07-10 2005-10-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のネットワークからのインタフェースの選択
US7065367B2 (en) * 2002-07-11 2006-06-20 Oliver Michaelis Interface selection in a wireless communication network
WO2004028053A1 (en) * 2002-09-18 2004-04-01 Flarion Technologies, Inc. Methods and apparatus for using a care of address option
US8191136B2 (en) 2002-11-04 2012-05-29 Riverbed Technology, Inc. Connection based denial of service detection
US7146130B2 (en) 2003-02-24 2006-12-05 Qualcomm Incorporated Wireless local access network system detection and selection
JP2004304399A (ja) 2003-03-31 2004-10-28 Nec Corp 通信端末、基地局、サーバ、ネットワークシステム及びハンドオーバ方法
US20050125511A1 (en) * 2003-12-08 2005-06-09 Hunt Preston J. Intelligent local proxy for transparent network access from multiple physical locations
JP2007518804A (ja) * 2004-01-20 2007-07-12 アラーガン、インコーポレイテッド トリアムシノロンアセトニドおよびヒアルロン酸を好ましく含有する眼局所治療用組成物
CN1561041A (zh) * 2004-02-26 2005-01-05 中兴通讯股份有限公司 一种以太网接口热备份的装置及方法
US7761607B2 (en) * 2004-04-23 2010-07-20 Microsoft Corporation User based communication mode selection on a device capable of carrying out network communications
US8526463B2 (en) 2005-06-01 2013-09-03 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
JP5316248B2 (ja) 2009-06-16 2013-10-16 株式会社リコー テレビ会議装置、テレビ会議方法、そのプログラム
US8626463B2 (en) 2009-12-23 2014-01-07 Western Digital Technologies, Inc. Data storage device tester

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150019715A (ko) * 2013-08-14 2015-02-25 삼성전자주식회사 Ip주소를 이용하여 어플리케이션을 자동으로 구동하는 방법 및 장치
KR20170018014A (ko) * 2014-06-10 2017-02-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 주어진 애플리케이션 또는 상황에 대한 네트워크 선택
KR20160074328A (ko) * 2014-12-18 2016-06-28 삼성전자주식회사 환경 설정을 변경하여 무선 통신의 성능을 향상시키는 방법 및 이를 구현한 전자장치

Also Published As

Publication number Publication date
WO2006130807A3 (en) 2007-05-24
KR101032843B1 (ko) 2011-05-06
EP1886532A2 (en) 2008-02-13
ES2374941T3 (es) 2012-02-23
JP2008546321A (ja) 2008-12-18
TWI337483B (en) 2011-02-11
US20150010006A1 (en) 2015-01-08
US20150012832A1 (en) 2015-01-08
US20060274750A1 (en) 2006-12-07
US9258721B2 (en) 2016-02-09
JP2011172220A (ja) 2011-09-01
WO2006130807A2 (en) 2006-12-07
US20130315146A1 (en) 2013-11-28
US20150016442A1 (en) 2015-01-15
ATE536065T1 (de) 2011-12-15
US9185582B2 (en) 2015-11-10
CN101228806B (zh) 2013-01-16
CN101228806A (zh) 2008-07-23
US9185583B2 (en) 2015-11-10
US8526463B2 (en) 2013-09-03
JP5102378B2 (ja) 2012-12-19
TW200713930A (en) 2007-04-01
EP1886532B1 (en) 2011-11-30

Similar Documents

Publication Publication Date Title
KR101032843B1 (ko) 다중-호밍, 다중-모드 통신 장치에서의 데이터인터페이스들 선택
JP5080490B2 (ja) 通信ネットワークにおけるルート最適化のための方法および装置
US7016334B2 (en) Device, system, method and computer readable medium for fast recovery of IP address change
US7295532B2 (en) System, device and computer readable medium for providing networking services on a mobile device
KR101630998B1 (ko) 멀티 홈 단말
US7733824B2 (en) Fixed access point for a terminal device
US8396027B2 (en) Communication control system, communication system and communication control method
KR20090079999A (ko) 종단 점에 의한 방화벽 특징의 교섭을 가능하게 하는 방법, 장치 및 컴퓨터 프로그램 생성물
US20040125762A1 (en) Device, system, method and computer readable medium for attaching to a device identifited by an access point name in a wide area network providing particular services
US8015603B2 (en) Method and mobile node for packet transmission in mobile internet protocol network
US20050030917A1 (en) Device, system, method and computer readable medium obtaining a network attribute, such as a DNS address, for a short distance wireless network
US7949769B2 (en) Arrangements and methods relating to security in networks supporting communication of packet data
US7822003B2 (en) Method and system for providing system information in a communication network

Legal Events

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

Payment date: 20160330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 9