KR20030011281A - 원래 패킷 데이터를 수신하고 전송하기 위한 이동국애플리케이션에 관한 방법 및 장치 - Google Patents

원래 패킷 데이터를 수신하고 전송하기 위한 이동국애플리케이션에 관한 방법 및 장치 Download PDF

Info

Publication number
KR20030011281A
KR20030011281A KR1020027012801A KR20027012801A KR20030011281A KR 20030011281 A KR20030011281 A KR 20030011281A KR 1020027012801 A KR1020027012801 A KR 1020027012801A KR 20027012801 A KR20027012801 A KR 20027012801A KR 20030011281 A KR20030011281 A KR 20030011281A
Authority
KR
South Korea
Prior art keywords
mobile station
packet data
socket
original packet
protocol
Prior art date
Application number
KR1020027012801A
Other languages
English (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 KR20030011281A publication Critical patent/KR20030011281A/ko

Links

Classifications

    • 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
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/12Application layer protocols, e.g. WAP [Wireless Application Protocol]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 무선 통신 시스템에서 원래 패킷 데이터를 수신하고 전송하기 위한 이동국 애플리케이션에 대한 방법 및 장치를 개시한다. 본 발명은 적어도 하나의 소켓을 형성하는 이동국 애플리케이션을 포함한다. 통신 프로토콜 스택의 이동국 프로토콜 계층 중 적어도 하나는 통신 망으로부터 캡슐화된 원래 패킷 데이터를 수신한다. 워래 패킷 데이터는 목적지 포트 정보를 결여한다. 이동국 프로토콜 계층 중 적어도 하나는 캡슐해제된 원래 패킷 데이터를 형성된 소켓에 전송한다. 차례로, 형성된 소켓은 원래 패킷 데이터를 이동국 애플리케이션에 전송한다. 또 다른 실시예에서, 형성된 소켓은 이동국 애플리케이션의 원래 패킷 데이터를 이동국 프로토콜 계층 중 적어도 하나에 전송한다. 차례로, 이동국 프로토콜 계층 중 적어도 하나는 캡슐화된 원래 패킷 데이터를 통신 망에 전송한다.

Description

원래 패킷 데이터를 수신하고 전송하기 위한 이동국 애플리케이션에 관한 방법 및 장치{METHOD AND APPARATUS FOR A MOBILE STATION APPLICATION TO RECEIVE AND TRANSMIT RAW PACKETIZED DATA}
A. 무선 통신
인터넷 가입자의 유례없는 증가뿐 아니라 무선 통신 및 컴퓨터 관련 기술의 최근의 혁신은 이동 컴퓨팅을 용이하게 하였다. 실질적으로, 이동 컴퓨팅의 대중성은 이동 사용자에게 더 많은 지원을 제공하기 위해 현재 인터넷 인프라구조상의 더 많은 요구를 발생시켰다. 상기 인프라구조의 핵심은 근거리 및 원거리 통신 망(LANs 및 WANs)간에 패킷(데이터그램)의 어드레싱 및 라우팅을 포함하는 다양한 서비스를 제공하는 패킷 지향 인터넷 프로토콜(IP)이다. IP 프로토콜은 1981년 9월에 발표된 "인터넷 프로토콜 DARPA 인터넷 프로그램 프로토콜 규격"이란 명칭의 RFC(Request For Comment) 791에 정의되어 있다.
IP 프로토콜은 전송을 위해 데이터를 IP 패킷으로 캡슐화하는 망 계층 프로토콜이다. 어드레싱 및 라우팅 정보는 패킷의 헤더에 첨부된다. IP 헤더는, 예를 들어 전송 및 수신 호스트를 식별하는 32 비트 어드레스를 포함한다. 이러한 어드레스는 지정된 주소에서 최종 목적지를 향하는 패킷에 대해 망을 통한 경로를 선택하도록 중간 라우터에 의해 사용된다. 따라서, IP 프로토콜은 세계의 소정 인터넷 노드에서 발신한 패킷이 세계의 소정의 다른 인터넷 노드로 라우팅되도록 허용한다. 반면에, 전송 제어 프로토콜(TCP) 또는 사용자 데이터그램 프로토콜(UDP) 중 하나를 포함하는 전송 계층이 특정 애플리케이션으로 어드레싱하기 위해 사용된다.
현재의 추세는 이동 사용자가 인터넷을 액세스하기 위해 셀룰라 또는 휴대용 전화와 같은 무선 통신 장치와 함께 랩톱 또는 팜톱 컴퓨터와 같은 이동 컴퓨터를 이용하도록 한다. 즉, 사용자가 자신의 컴퓨터를 지상-기반 망에 접속하기 위해 일반적으로 "유선" 통신 장치를 이용하기 때문에, 이동 사용자는 상기의 망에 자신의 이동 단말기를 접속하기 위해 일반적으로 "이동국"(MSs)으로 지칭되는 무선 통신 장치를 이용할 것이다. 여기에 사용되는 바와 같이, 이동국 또는 MS는 공중 무선 망에서 소정의 가입자 국을 지칭할 것이다.
도 1(종래 기술)은 MS(110)가 기지국/이동 교환 센터(BS/MSC)(106)를 통해 상호 연동 기능(IWF)(108)과 통신하는 무선 데이터 통신 시스템의 하이-레벨 블록선도를 도시한다. IWF(108)는 인터넷에 대한 액세스 포인트로서 소용된다. IWF(108)는 기술분야에서 공지된 종래의 무선 기지국일 수 있는 BS/MSC(106)에 결합되고 종종 코로케이팅(co-locate)된다. 무선 데이터 통신 시스템을 어드레싱하는 또 다른 표준 프로토콜은 1999년 12월에 공표된 "무선 IP 망 표준"이란 명칭의제 3 세대 파트너쉽 프로젝트 2("3GPP2")이다. 제 3 세대 무선 IP 망 표준은, 예를 들어 IWF(108)와 유사한 기능을 하는 패킷 데이터 서비스 노드("PDSN")를 포함한다.
MS(110)와 IWF(108)간의 데이터 통신을 어드레싱하는 여러 프로토콜이 있다. 예를 들어, 1993년 7월에 공표된 "이중-모드 광대역 스펙트럼 확산 셀룰라 시스템에 대한 이동국-기지국 호환성 표준"이란 명칭의 통신 산업 협회(TIA)/전자 산업 협회(EIA) 잠정 표준 IS-95는 일반적으로 광대역 확산 스펙트럼 무선 통신 시스템에 대한 표준을 제공한다. 게다가, 1998년 2월에 공표된 "광대역 스펙트럼 확산 시스템: 패킷 데이터 서비스"란 명칭의 표준 TIA/EIA IS-707.5는 TIA/EIA IS-95 시스템상의 패킷 데이터 전송 능력을 지원하기 위한 요건을 정의하며 MS/MSC(106)를 통해 MS(110) 및 IWF(108)간의 통신에 사용될 수 있는 패킷 데이터 베어러 서비스를 기술한다. 또한, 1999년 3월에 공표된 "스펙트럼 확산 시스템에 대한 데이터 서비스 옵션"이란 명칭의 TIA/EIA IS-707-A.5 표준 및 "스펙트럼 확산 시스템에 대한 데이터 서비스 옵션: 고속 패킷 데이터 서비스"란 명칭의 TIA/EIA IS-707-A.9 표준은 또한 TIA/EIA IS-95 시스템상의 패킷 데이터 전송 지원을 위한 요건을 정의한다. 게다가, MS(110)와 IWF(108)간의 통신을 어드레싱하는 또 다른 표준 프로토콜은 1999년 7월에 공표된 "스펙트럼 확산 시스템에 대한 CDMA 2000 표준의 도입"이란 명칭의 TIA/EIA IS-2000이다.
IS-707.5는 MS(110)와 BS/MSC(106)(Um 인터페이스)사이 및 BS/MSC (106)와 IWF(108)(L 인터페이스)사이의 통신 프로토콜 옵션 모델을 소개한다. 예를 들어,릴레이 모델은 PPP(Point to Point Protocol) 링크가 MS(110)와 IWF(108)간의 Um 인터페이스상에 존재하는 상태를 나타낸다. PPP 프로토콜은 "포인트 대 포인트 프로토콜(PPP)"이란 명칭의 RFC 1661에 상세히 기술된다.
도 2(종래 기술)는 IS-707.5 릴레이 모델의 각 개체에서의 프로토콜 스택의 도면이다. 도면의 왼쪽에는 MS(110)상에서 실행되는 프로토콜 계층을 나타내며, 종래의 수직 포맷에서 도시된 통신 프로토콜 스택이 도시되어 있다. MS(110) 프로토콜 스택은 Um 인터페이스를 통해 BS/MSC(106) 프로토콜 스택에 국부적으로 접속되는 것으로 도시된다. BS/MSC(106) 프로토콜 스택은, 차례로 L 인터페이스를 통해 IWF(108) 프로토콜 스택에 접속되는 것으로 도시된다.
도 2에 기술된 동작은 다음과 같다: MS(110)상에 실행하는 애플리케이션 프로그램과 같은 상위 계층 프로토콜(200) 개체는 인터넷을 통해 데이터를 전송할 필요성이 있다. 대표적인 애플리케이션은 웹 브라우저 프로그램(예를 들어, Netscape NavigaorTM, Microsoft Internet ExpolorerTM)일 수 있다. 웹 브라우저는 하이퍼링크 "http://www.Qualcomm.com/"과 같은 URL(Universal Resource Locator)을 필요로 한다. 상위 계층 프로토콜(200)에서의 도메인 네임 시스템(DNS) 프로토콜은 원문상의 호스트 네임www.Qualcomm.com을 인터넷에서의 주소로 번역하는 도메인 네임 번역을 이용하여 32비트의 숫자형태의 IP 어드레스로 번역한다. 역시 상위 계층 프로토콜(200)인 하이퍼텍스트 전송 프로토콜(HTTP)은 요청된 URL에 대한 GET 메시지를 형성하고 HTTP 동작에 대해 TCP가 메시지를 전송하는데 사용되는것을 기술한다. 전송 계층(202)은 기술분야에 공지된 바와 같이 HTTP 동작을 애플리케이션에 라우팅하기 위한 목적지 포트로서 포트(80)를 이용한다.
전송 계층 프로토콜(202)인 TCP 프로토콜은 DNS에 의해 특정된 IP 어드레스로의 접속을 개방하고 애플리케이션 레벨 HTTP GET 메시지를 전송한다. TCP 프로토콜은 IP 프로토콜이 메시지 전송에 사용되는지를 규정한다. 망 계층 프로토콜 (204)인 IP 프로토콜은 TCP 패킷을 특정된 IP 어드레스에 전송한다. 링크 계층 프로토콜(206)인 PPP는 IP 패킷을 엔코딩하고 상기 패킷을 릴레이 계층 프로토콜 (208)에 전송한다. 릴레이 계층 프로토콜(208)의 예는 1997년 10월에 공표된 "직렬 2진 데이터 상호교환을 이용하는 데이터 단말 장비와 데이터 회로-종단 장비간의 인터페이스"에 정의되는 TIA/EIA-232F 표준에 도시될 수 있다. 당업자에게 공지된 다른 표준 또는 프로토콜은 상기 계층을 통한 전송을 정의하는데 사용될 수 있음을 이해할 것이다. 예를 들어, 다른 적용가능한 표준은 1998년 9월에 공표된 "범용 직렬 버스(USB : UNIVERSAL SERIAL BUS), 개정판 1.1" 및 1999년 7월에 공표된 "블루투스 규격 버전 1.0A 코어"를 포함할 수 있다. 마지막으로, 릴레이 계층 프로토콜(208)은 PPP 패킷을 무선 링크 프로토콜(RLP)(210)에 전송하고 그후에 Um 인터페이스를 통한 BS/MSC(106)로의 전송을 위해 상기 PPP 패킷을 IS-95 프로토콜(212)에 전달한다. RLP 프로토콜(210)은 1998년 2월에 공표된 "광대역 스펙트럼 확산 시스템에 대한 데이터 서비스 옵션: 무선 링크 프로토콜"이란 명칭의 IS-707.2 표준에 정의되며, IS-95 프로토콜은 상기에 식별된 IS-95 표준에 정의된다.
BS/MSC(106)상의 보충 릴레이 계층 프로토콜(220)은 IS-95 계층(218)을 통과하여 Um 인터페이스를 통해 PPP 패킷을 수신한다. 릴레이 계층 프로토콜(220)은 상기 패킷을 L 인터페이스를 통해 IWF(108)상의 릴레이 계층 프로토콜(228)에 전달한다. IWF(108)상의 PPP 프로토콜 링크 계층(226)은 릴레이 계층 프로토콜(228)로부터 PPP 패킷을 수신하며 MS(110)와 IWF(108)간의 PPP 접속을 종료시킨다. 상기 패킷은 최종 라우팅을 위해 IP 패킷 헤더를 검사하도록 PPP 계층(226)으로부터 IWF(108)상의 IP 계층(224)에 전달되며, 이 시나리오에서 최종 라우팅은www.Qualcomm.com이다.
MS(110)에 의해 발생된 IP 패킷의 최종 목적지가 IWF(108)가 아니라고 가정하면, 패킷은 망 계층 프로토콜(224) 및 링크 계층 프로토콜(225)을 통해 인터넷상의 다음 라우터(도시되지 않음)에 전달된다. 이러한 방법으로, MS(110)로부터의 IP 패킷은 BS/MSC(106)를 통해 전달되며, IWF(108)는 IS-707.5 표준 릴레이 모델에 따라 인터넷에서 궁극적 지정 목적지로 진행한다.
MS(110) 패킷이 자신의 목적지에 도달하기 전에, 데이터 링크 접속이 먼저 확립되어야 한다. RFC 1661에서 규정된 바와 같이, 이것은 데이터 링크 접속을 확립하고, 구성하며 테스트하도록 먼저 PPP 링크 제어 프로토콜(LCP) 패킷을 전송하기 위해 포인트 대 포인트 링크(즉, PPP 프로토콜(206, 226))의 각 단부를 필요로 한다. 링크가 LCP에 의해 확립된 후에, PPP 프로토콜(206)은 망 계층 프로토콜(204, 224)을 구성하기 위해 망 제어 프로토콜(NCP) 패킷을 전송할 수 있다. PPP 링크의 IP에 대한 NCP는 IP 제어 프로토콜(IPCP)이다. IPCP는 1992년 5월에 공표된 "PPP 인터넷 프로토콜 제어 프로토콜(IPCP)"이란 명칭의 RFC 1332에 상세히 기술된다. IPCP 협상전에, 인증 단계가 요구될 수 있다. 망 계층 프로토콜의 각각이 구성된 후에, 각 망 계층 프로토콜로부터 패킷이 링크를 통해 전송될 수 있다.
B. 애플리케이션 프로그램 인터페이스
MS(110)상의 통신 프로토콜 스택을 지원하는 프로세스 중 대부분은 애플리케이션 프로그램에 의해 실행된다. 일반적으로, 종래의 데이터 망은 하나의 컴퓨터에서 실행하는 애플리케이션 프로그램이 또 다른 컴퓨터상에서 실행하는 애플리케이션 프로그램과 통신할 수 있도록 애플리케이션 프로그램 인터페이스(APIs)를 이용한다. API는 하부 망의 프로토콜의 차이로부터 발생된 애플리케이션을 보호하는 "소켓"을 이용한다. 상호 망 연동된 통신을 달성하기 위해, APIs는 애플리케이션이, 예를 들어 소켓을 개방하고, 데이터를 망에 전송하며, 망으로부터 데이터를 수신하고 상기 소켓을 폐쇄하도록 하는 기능을 포함한다. 공통 망 프로그래밍 인터페이스는 UnixTM운영 시스템하에서 동작하는 버클리 시스템 개발(BSD) 소켓 인터페이스 및 WindowsTM운영 시스템하에서 동작하는 WindowsTM소켓 인터페이스(WinSockTM)를 포함한다.
BSD 소켓이나 WinSockTM은 무선 MS(110)상의 통신 프로토콜 스택(도 2를 참조)을 지원하지 않기 때문에, 그러한 스택을 지원하는 신규한 API가 요구된다. 특히, 요청되는 것은 이동국 애플리케이션이 무선 통신 시스템에서 원래의 패킷화된 데이터를 수신하고 전송하도록 하는 신규한 방법 및 장치이다.
본 발명은 일반적으로 무선 통신 분야에 관한 것이다. 더욱 구체적으로, 본 발명은 무선 통신 시스템에서 원래 패킷 데이터를 수신하고 전송하기 위한 이동국 애플리케이션용 방법 및 장치에 관한 것이다.
도 1(종래 기술)은 이동국이 인터넷에 접속하는 무선 통신 시스템의 하이 레벨 블록선도이다.
도 2(종래 기술)는 TIA/EIA IS-707.5 릴레이 모델의 각 개체의 프로토콜 스택을 개략적으로 기술한다.
도 3은 본 발명의 실시예의 특징을 개략적으로 도시한다.
도 4 및 5는 특정 이벤트를 검출하는 흐름도이다.
도 6은 비동기 접속을 도시하는 블록선도이다.
도 7은 비동기 소켓 입력을 도시하는 블록선도이다.
도 8-10은 본 발명의 실시예의 상태도이다.
본 발명은 무선 통신 시스템에서 원래 패킷 데이터를 수신하고 전송하기 위한 이동국 애플리케이션용 방법 및 장치를 제공함으로써 상기에 식별된 요구를 충족시킨다. 일 실시예에서, 이동국 애플리케이션은 적어도 하나의 소켓을 형성한다. 이동국 프로토콜 계층 중 적어도 하나는 통신 망으로부터 목적지 포트 정보를 결여한 캡슐화된 원래 패킷 데이터를 수신한다. 이동국 프로토콜 계층 중 적어도 하나는 캡슐해제된 원래 패킷 데이터를 적어도 하나의 소켓에 전송한다. 차례로, 적어도 하나의 소켓은 원래 패킷 데이터를 이동국 애플리케이션에 전송한다. 또 다른 실시예에서, 적어도 하나의 소켓은 이동국 애플리케이션의 원래 패킷 데이터를 이동국 프로토콜 계층 중 적어도 하나에 전송한다. 차례로, 이동국 프로토콜 계층 중 적어도 하나는 캡슐화된 원래 패킷하 데이터를 통신 망에 전송한다.
본 발명의 실시예는 소프트웨어, 펌웨어 및/또는 하드웨어를 포함하는 다양한 실시로 구현될 수 있다. 따라서, 본 발명의 동작 및 상태는 소프트웨어 코드나 하드웨어 소자에 대한 특정 참조 없이 기술될 것이며, 당업자는 이동국 애플리케이션이 여기의 기술에 기초하여 원래 패킷 데이터를 수신하고 전송할 수 있는 본 발명을 실행하기 위해 소프트웨어 및/또는 하드웨어를 설계할 수 있음을 이해할 것이다.
도 3은 MS(110)내에 애플리케이션(260), 통신 프로토콜 스택(280) 및 API (270)를 기술한다. 애플리케이션(260) 및 통신 프로토콜 스택(280)(즉, 프로토콜 계층(202, 204, 206, 208, 210, 212))은 API(270)에 의해 제공되는 기능 호출을 통해 통신한다. 다시말해, API(270)는 애플리케이션(260) 및 통신 프로토콜 스택 (280)이 기능성을 손상시키지 않고 다른 프로세서 및 운영 시스템상에 실행하는 것을 허용한다. 당업자는 유발된 기능에 대해 여러 명칭이 본 발명의 범위를 이탈하지 않고서 가능함을 이해할 것이다.
통신 프로토콜 스택(280)은 데이터를 저장하는 다수의 전송 큐우(queue) 및 수신 큐우를 포함하는 것을 주목해야 한다. 출력 기능은 통신 프로토콜 스택(280)의 전송 큐우 중 하나에 데이터를 저장하기 위해 애플리케이션의 메모리(260)로부터 데이터를 판독한다. 입력 기능은 데이터를 애플리케이션 메모리(260)에 저장하기 위해 통신 프로토콜 스택(280)의 수신 큐우 중 하나로부터 데이터를 판독한다.
동작을 도시하기 위해, MS(110)는 IP 패킷을 수신한다. MS(110)의 통신 프로토콜 스택(280)은 IP 패킷을 캡슐해제하고 상기 패킷을 전송 계층(202)(도 3 참조)에 전달한다. IP 패킷 헤더의 필드는 TCP 또는 UDP 중 하나일 수 있는 전송을 표시한다. 전송 계층 헤더에 기술된 목적지 포트 번호에 기초하여, 데이터는 특정 소켓에 대응하는 통신 프로토콜 스택(280)의 적절한 수신 큐우에 라우팅된다. 데이터는 그후에 애플리케이션(260)에 전송될 수 있다.
소정의 경우에, 지연 영향을 감소시키기 위해 프로토콜 스택(280)의 여러 계층을 바이패싱하는 패킷을 이용하여 동작하는 것이 바람직할 수 있다. 그러한 패킷은 목적지 정보(즉, 목적지 포트 번호)를 결여하는 원래 IP 패킷과 같은 원래 패킷 데이터를 포함한다. 그와 같이, 목적지 애플리케이션은 원래 IP 패킷으로부터 결정될 수 없다. 상기 경우에, 통신 프로토콜 스택(280)은 예를 들어, IP 프로토콜을 지원하기 위해 등록된 모든 소켓에 수신된 원래 IP 패킷을 전송할 수 있다. 이것은 페이로드 데이터가 목적지 애플리케이션에 전송되도록 허용한다. IP 패킷에 응답하는 인터넷 제어 메시징 프로토콜(ICMP) 파싱(parsing) 엔진은 또한 원래 패킷 데이터를 수신할 수 있다. 공지된 ICMP 파싱 엔진은 "인터넷 제어 메시지 프로토콜"이란 명칭의 RFC 792에 정의된다. 통신 프로토콜 스택(280)은, 예를 들어 수신한 패킷을 스택에서 애플리케이션(260)으로 전달하기 전에 수신된 패킷을 처리하는데, 이것이 애플리케이션(260)에 의해 수행되는 캡슐해제량을 감소시키는 것은상기 기술로부터 명백하다.
반대로, 애플리케이션(260)은 통신 프로토콜 스택(280)과 애플리케이션(260)간의 통신을 용이하게 하는 소켓을 이용함으로써 Um 인터페이스를 통해 원래 패킷과 데이터를 전송할 수 있다. 부가로, 애플리케이션(260)은 Um 인터페이스를 통해 원래 패킷 데이터를 전송할 수 있다. 차례로, 통신 프로토콜 스택(280)은 예를 들어 패킷화된 또는 원래 패킷 데이터를 IP 패킷으로 캡슐화하며, 상기 데이터를 Um 인터페이스를 통해 전송한다. 상기 예에서, 통신 프로토콜 스택(280)은 IP 패킷을 생성하기 위해 IP 헤더와 체크섬(checksum)을 제공한다. 반면에,ICMP에 대해, 특정화된 프로토콜 유형은 IP 헤더에 복제될 수 있다.
상기에 기술된 바와 같이, 애플리케이션(260)은 통신 프로토콜 스택(280)의 이용시에 고유한 지연을 감소시키기 위해 프로토콜 계층(202, 204, 206, 208, 210, 212) 중 적어도 하나와 애플리케이션(260)간의 데이터 통신을 허용하는 소켓을 형성할 수 있다. 즉, 애플리케이션(260)은 전송 계층(202), 망 계층(204) 및 링크 계층(206)을 바이패싱하는 소켓을 형성할 수 있으며, 그로인해 애플리케이션(260)이 RLP 계층(210)으로 페이로드 데이터를 전송하거나, 또는 상기 RLP 계층(210)으로부터 페이로드 데이터를 수신하도록 허용한다.
일 실시예에서, 애플리케이션(260)은 통신 프로토콜 스택(280)을 개방하고 애플리케이션 식별을 할당하기 위해 함수 open_netlib ()을 호출한다. 애플리케이션 식별은 다수의 애플리케이션이 통신 프로토콜 스택(280)(즉, 멀티-태스킹)과 통신하도록 허용한다. 함수 open_netlib ()에 대한 호출의 일부로서, 예를 들어 애플리케이션(260)은 망 콜백 함수 및 소켓 콜백 함수에 대한 포인터를 특정한다. 망 콜백 함수는 판독, 기록 및 트래픽 채널(즉, Um) 및/또는 링크-계층(즉, PPP(206)) 폐쇄와 같은 망 서브시스템 특정 이벤트가 발생될 때(또는 인에이블)마다 애플리케이션(260)에 통보하도록 인보크(invoke)된다. 소켓 콜백 함수는 판독, 기록 및 전송 계층(즉, TCP) 폐쇄와 같은 소켓 특정 이벤트가 발생될 때(또는 인에이블)마다 애플리케이션(260)에 통보하도록 인보크된다. 당업자는 통신 망이 트래픽 채널, 링크 계층 및 전송 계층 중 적어도 하나를 포함하는 것이 명백할 것이다.
일단 통신 프로토콜 스택(280)이 개방되었다면, 함수 pppopen ()은 트래픽 채널 및 링크 계층을 포함하는 망 서브시스템 접속을 개시하도록 호출된다. 이것은 개별 소켓에 종속하지 않는 애플리케이션-와이드 호출이다. 그러나, 이것은 애플리케이션 식별을 필요로 한다. 망 서브시스템 접속의 확립 또는 실패에 따라, 망 콜백 함수는 특정된 이벤트 통보를 제공하도록 인보크된다. 망 서브시스템은, 예를 들어 트래픽 채널이 확립되지 않으면 실패한다. 부가로, 망 서브 시스템 특성은 함수 net_ioctl ()로의 호출이 설정될 수 있다. 상기 호출은, 예를 들어 소켓의 데이터율을 기술할 수 있다.
일단 망 서브시스템 접속이 확립되면, 소켓이 형성될 수 있으며 함수 socket ()에 대한 호출을 통해 개시될 수 있다. 그러나, 소켓 함수가 사용될 수 있기 전에, 함수 socket ()의 호출은 소켓 기술어를 리턴시킬 수 있다. 그후에, 애플리케이션(260)은 비동기 통보를 수신하기 위해 특정된 이벤트를 등록하기 위해 함수 async_select ()를 호출할 수 있다. 이러한 등록은 호출 함수의 일부로서, 통보를요구하는 특정 이벤트의 소켓 기술어 및 비트 마스크(즉, 함께 OR된 다수의 이벤트)를 기술하기 위해 애플리케이션(260)에 의해 실행될 수 있다. 특정 이벤트가 발생하고(즉, 인에이블되고), 상기 이벤트가 통신 프로토콜 스택(280) 또는 API(270)에 의해 검출되면, 예를 들어, 소켓 콜백 함수는 비동기 통보를 제공하기 위해 인보크된다. 콜백 함수는 원격 절차 호출(RPC)을 통한 메시지 또는 하드웨어나 소프트웨어 인터럽트를 포함하여, 신호 및 메시지를 이용함으로써 특정 이벤트를 애플리케이션(260)에 통보할 수 있다.
일단 애플리케이션(260)이 특정 이벤트를 통보받으면, 상기 애플리케이션은 서비스할 특정 이벤트를 결정하기 위해 함수 getnextevent ()를 호출할 수 있다. 이 함수는 특정 소켓 기술어에 대해 발생한 특정 이벤트의 마스크를 리턴시킨다. 또한, 상기 함수는 발생된 특정 이벤트의 마스크의 비트를 소거한다. 따라서, 애플리케이션(260)은 더 이상 디스에이블된 특정 이벤트의 통보를 수신할 수 없다. 애플리케이션(260)은 함수 async_select ()에 대한 후속 호출을 통해 특정 이벤트를 재등록(즉, 리인에이블)해야 한다.
게다가, 애플리케이션(260)은 특정 이벤트의 비트 마스크의 대응하는 비트를 소거함으로써 등록된 특정 이벤트를 변화시킬 수 있다. 비트가 이미 비트 마스크에서 소거되면, 상기 요청은 간단하게 무시된다. 간략하면, 이벤트 통보는 예를 들어 함수 async_deselect ()에 대한 호출을 통해 이벤트단위에 기초하여 디스에이블될 수 있다.
도 4 및 5는 특정 이벤트를 검출하는 흐름도이다. 도 4에 도시된 바와 같이, 예를 들어, 통신 프로토콜 스택(280)은 특정 이벤트를 등록하기 위해 블록(400)에서 애플리케이션(260)을 대기한다. 특정 이벤트가 등록된 후에, 블록 (402)에서 통신 프로토콜 스택(280)은 메모리를 폴링(poll)한다. 블록(404)에서, 특정 이벤트는 블록(402)의 폴링된 정보에 기초하여 검출될 수 있다. 블록(406)에서, 통신 프로토콜 스택(280)(즉, 전송 큐우)의 메모리가 충분한 양의 데이터를 수용할 수 있을 때 기록 이벤트가 검출된다. 데이터는 애플리케이션(260)으로부터 전송될 수 있다. 블록(404)의 폴링된 정보가 만족스럽지 않으면(즉, 특정 이벤트가 발생하지 않으면), 통신 프로토콜 스택(280)은 블록(402)에서와 같이 메모리를 계속해서 폴링한다.
도 5에서, 통신 프로토콜 스택(280)은 블록(500)에서 표시된 바와 같이 특정 이벤트를 등록하기 위해 애플리케이션(260)을 대기한다. 이 시간동안, 인터럽트 통보는 디스에이블될 수 있다. 그와 같이, 인터럽트 통보는 트리거하거나 트리거될 수 없다. 블록(500)에서와 같이 특정 이벤트가 등록된 후에, 블록(502)에서 인터럽트 통보는 특정 이벤트의 발생에 기초하여 트리거링될 수 있다. 판독 이벤트는 데이터가 통신 프로토콜 스택(280)(즉, 수신 큐우)으로 기록될 때 발생한다. 따라서, 블록(504)에서, 판독 이벤트는 이벤트의 발생에 기인하여 트리거된 인터럽트 통보를 수신할 때 통신 프로토콜 스택(280)에 의해 검출된다. 통신 프로토콜 스택(280)의 메모리에 저장된 데이터는 통신 망으로부터 있을 수 있다. 부가로, 판독 이벤트에 대해, 저장된 데이터는 애플리케이션(260)에 전송될 수 있다.
마지막으로, 폐쇄 이벤트는 소켓이 재사용을 위해 이용가능할 때 검출되는데, 왜냐하면, 예를 들어 전송 계층과 같은 데이터 링크 접속이 종료되기 때문이다.
비동기 접속(도 6을 참조) 및 비동기 입력(도 7을 참조)의 다음의 예는 비동기 이벤트 통보의 이용을 도시하도록 제공된다.
도 6을 참조하면, 양쪽 통신 프로토콜 스택(280)에 진입되고 콜백 함수는 함수 open_netlib ()에 대한 호출을 통해 기술된다. 함수 pppopen ()(A)에 대한 호출은 망 서브시스템 접속(B)을 개시한다. 망 서브시스템 접속이 확립된후에, 콜백 함수는 망 서브시스템의 이용가능성을 보고하기 위해 인보크(C)된다.
소켓이 개방되고 할당됨을 가정하면, 함수 connect ()(D)에 대한 호출은 TCP 접속(E)을 개시한다. 부가로, 애플리케이션(260)은 통보를 수신하도록 특정된 이벤트를 등록하기 위해 함수 async_select ()(F)를 호출한다. 상기 예에서, 관계된 특정 이벤트는 접속을 확립함에 따라 발생하는 기록 이벤트이다.
접속을 확립하면, 특정 이벤트가 마스크에 등록되면 콜백 함수는 인보크된다. 그렇다면, 그후에 콜백 함수는 비동기 통보를 제공하기 위해 인보크된다(G). 일단 애플리케이션(260)이 통보되면, 특정 이벤트가 발생되는지(I)를 결정하기 위해 함수 getnextevent ()(H)를 호출한다. 또한, 이러한 호출은 마스크(J)의 이벤트(즉, 기록 이벤트) 비트를 소거한다. 애플리케이션(260)은 함수 async_select ()에 대한 호출을 통해 특정 이벤트의 후속 통보를 재등록해야 한다.
도 7에서, 판독된 비동기 소켓이 도시된다. 판독을 개시하기 위해, 애플리케이션(260)은 함수 read ()(A)를 호출한다. 판독할 데이터가 결여됨을 가정하면,애플리케이션(260)은 통보를 수신하도록 이벤트를 등록하기 위해(즉, 마스크에서 대응하는 비트를 세팅) 함수 async_select ()(B)를 호출한다. 이 예에서, 관련된 특정 이벤트는 애플리케이션(260)에 의해 판독되는 데이터가 있을 때 발생하는 판독 이벤트이다.
수신 큐우에서 데이터를 저장할 때, 판독 이벤트가 마스크에서 특정되면 콜백 함수가 인보크된다. 그렇다면, 그후에 콜백 함수는 비동기 통보를 제공하기 위해 인보크된다(C). 일단 애플리케이션(260)이 통보되면, 상기 애플리케이션(260)은 어느 이벤트가 발생되는지(E)를 결정하도록 함수 getnextevent ()(D)를 호출한다. 또한, 상기 호출은 마스크(F)의 이벤트의 비트를 소거한다. 애플리케이션(260)은 함수 async_select ()에 대한 호출을 통해 이벤트의 후속 통보를 리인에이블시켜야 한다. 마지막으로, 수신 큐우에 저장된 데이터를 판독하기 위해, 애플리케이션(260)은 함수 read ()(G)를 호출한다.
도 8-10에서, 본 발명의 실시예의 상태 머신이 도시된다. 도 8-9에서, 통신 프로토콜 스택(280)이 개방되고 망 서브시스템 접속(즉, 트래픽 채널 및 필요하다면 링크 계층 - 원래 소켓은 망 시스템을 바이패싱할 수 있다)이 확립되는 것을 가정한다. 당업자는 본 발명의 범위를 이탈하지 않고서 상태에 대한 여러 명칭이 가능함을 이해할 것이다.
상태간에 비동기적으로 천이할 수 있는 상태 머신은 판독, 기록 및 폐쇄와 같은 특정 이벤트를 제어한다(즉, 인에이블 및 디스에이블시킨다). 특정 이벤트는 동작의 시작에서 디스에이블될 수 있으며 MS(110)의 상태를 식별하기 위해 애플리케이션(260)을 보조하도록 미리 결정된 상태에서 인에이블될 수 있다.
또한, API(270)는 API(270)의 상태 및 애플리케이션(260)에 의해 호출된 함수의 타입에 기초하여 애플리케이션(260)에 특정한(즉, 일반적이지 않은) 특정 상태 메시지를 보고한다. 특정 상태 메시지는 하부 통신 망의 상태를 반영할 수 있다. 상태 메시지는 예를 들어, 함수 호출의 인수(argument)로서 애플리케이션(260)에 보고된다.
도 8에서, 예를 들어, API(270)의 TCP 소켓에 대한 상태도가 도시된다. 초기화되지 않은 소켓은 "널" 상태(800)에서 시작한다. 소켓은 "존재"하지 않는데, 아직 할당되지 않았기 때문이다. 소켓은 소켓 관련 함수를 이용하기 위해 소켓 기술어를 리턴시키는 함수 socket ()에 대한 호출을 통해 형성될 수 있고 개시될 수 있다. 함수 socket ()에 대한 호출후에, 상태 머신은 "초기화" 상태(805)로 천이한다.
초기화 상태(805)에서, 상태 머신은 TCP 접속 확률이 함수 close ()의 호출에 의해 중단될 때마다 널 상태(800)로 천이한다. 함수 close ()에 대한 호출은 모든 소켓 관련 자원을 방출한다. 반면에, 함수 connect ()에 대한 호출은 TCP 접속을 초기화하고 상태 머신을 "개방" 상태(810)로 천이시킨다.
개방중 상태(810)에서, 상태 머신은: (1) 망 서브시스템 실패가 발생하고, (2) TCP 접속 확립의 실패 또는 (3) IP 어드레스를 변경할 때마다 천이한다. 또한, TCP 접속을 종료시키는 함수 close ()에 대한 호출후에, 상태 머신은 종료 절차가 개시되는 동안 "폐쇄중" 상태(820)로 천이한다. 마지막으로, 상태 머신은TCP 접속이 확립됨에 따라 "개방" 상태(825)로 천이한다.
개방 상태(825)에서, 소켓은 판독 및 기록을 위해 개방된다. 특히, 데이터가 통신 프로토콜 스택(280)의 메모리에 저장되는지에 기초하여 판독 이벤트가 인에이블되는 동안, 기록 이벤트가 즉시 인에이블된다. 상태 머신은: (1) 망 서브시스템 실패가 발생하고; (2) TCP 접속을 확립하는 것을 실패하고; (3) 망 서버에 의해 초기화되는 TCP 리셋, TCP 중지 또는 TCP 폐쇄와 같은, TCP 접속을 종료하기 위한 시도; 및 (4) IP 어드레스의 변경이 발생할 때마다 폐쇄 상태(815)로 천이한다. 함수 close ()에 대한 호출에 의해서와 같이, TCP 접속 종료 초기화된 애플리케이션은 상태 머신을 폐쇄중 상태(820)로 천이한다.
폐쇄 상태(815)에서, 판독, 기록 및 폐쇄 이벤트가 모두 선언된다. TCP 접속을 종료시키는 함수 close ()에 대한 호출후에, 상태 머신은 소켓을 소켓을 비우고 재사용을 위해 이용가능한 널 상태(800)로 천이시킨다.
폐쇄 상태(820)에서, 상태 머신은: (1) 망 서브시스템 실패가 발생하고; (2) 망 서버에 의해 초기화된 TCP 리셋 또는 TCP 폐쇄와 같은 TCP 접속을 종료시키려는 시도; (3) 타이머의 만료 및 (4) IP 어드레스의 변경이 발생할 때마다 "폐쇄 대기" 상태로 천이시킨다. TCP 접속을 종료시킬때의 지연에 대해 보호하기 위해, API(270)는 TCP 접속 종료의 개시에 따라 동작된다. 나타난 바와 같이, 타이머의 만료는 상태 머신을 폐쇄 대기 상태(830)로 천이시킨다.
폐쇄 대기 상태(830)에서, 함수 close ()에 대한 호출은 TCP 접속을 종료시키고 상기 상태 머신을 널 상태(800)로 천이시킨다. 폐쇄 이벤트는 이 상태(830)에서 선언된다.
표 1-3은 API(270)에 의해 지원되는 특정 상태 메시지를 도시한다. 널 상태(표 1-3에 도시되지 않음)에서, "부가의 자원을 이용할 수 없음"으로 기술되는 특정 상태 메시지는 애플리케이션(260)에 보고될 수 있다.
표 1
상태 접속 함수 타입에 대해 특정된 상태 메시지
초기화 이것이 블로킹 함수 호출이면, 동작이 차단됨
개방중 접속이 진행중
개방 접속이 확립
폐쇄중 TCP 접속이 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패
폐쇄 대기 TCP 접속이 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패; 또는 일반 망 에러; 하부 망이 이용가능하지 않음
폐쇄 일반 망 에러; 하부 망이 이용가능하지 않음; 접속 시도가 서버 리셋으로 인하여 거부됨; 진행중인 접속이 시간 만료됨; 또는 망 레벨 IP 어드레스가 변경되어 PPP 재동기화에 기인하여 TCP 접속이 리셋되도록 발생됨
표 2
상태 I/O 함수 타입에 대한 특정 상태 메시지
초기화 TCP 접속은 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패
개방중 블로킹 함수 호출이 있으면, 동작이 차단됨
개방 블로킹 함수 호출이 있으면, 동작이 차단됨(판독/기록된 바이트의 수)
폐쇄중 TCP 접속이 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패
폐쇄 대기 TCP 접속이 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패; 또는 일반 망 에러; 하부 망이 이용가능하지 않음
폐쇄 일반 망 에러; 하부 망이 이용가능하지 않음; 서버가 접속을 리셋; 서버 리셋의 수신; 시간 만료 또는 다른 이유로 인하여 TCP 접속이 중단; 또는 TCP 접속이 발신 시도의 부족으로 인하여 존재하지 않거나, 접속 시도가 실패
표 3
상태 폐쇄 함수 타입에 대해 특정된 상태 메시지
초기화 성공- 에러 조건이 보고되지 않음
개방중 블로킹 함수 호출이 있으면, 동작이 차단됨
개방 블로킹 함수 호출이 있으면, 동작이 차단됨
폐쇄중 블로킹 함수 호출이 있으면, 동작이 차단됨
폐쇄 대기 성공- 에러 조건이 보고되지 않음
폐쇄 성공- 에러 조건이 보고되지 않음
예를 들어, 도 9는 API(270)의 UDP 소켓에 대한 상태도를 도시한다. 초기화되지 않은 소켓은 "널" 상태(900)에서 시작한다. 널 상태(800)와 관련하여 상기에 기술된 바와 같이, 소켓은 "존재"하지 않는데, 왜냐하면 할당되지 않았기 때문이다. 소켓은 소켓 관련 함수를 이용하기 위해 소켓 기술어를 리턴시키는 함수 소켓 ()에 대한 호출을 통해 형성되고 초기화될 수 있다. 함수 socket ()에 대한 호출후에, 상태 머신은 "개방" 상태(905)로 천이한다.
개방 상태(905)에서, 소켓은 판독 및 기록을 위해 개방된다. 특히, 데이터가 통신 프로토콜 스택(280)의 메모리로 저장되는지에 기초하여 판독 이벤트가 인에이블되는 동안, 기록 이벤트는 즉시 인에이블된다. 상태 머신은 망 서브시스템 실패가 발생할 때마다 "폐쇄" 상태(910)로 천이한다. 함수 close ()에 대한 호출에 의해서와 같이, UDP 접속 종료가 개시된 애플리케이션은 상태 머신을 널 상태(900)로 천이시킨다.
폐쇄된 상태(910)에서, 판독, 기록 및 폐쇄 이벤트는 모두 인에이블된다. UDP 접속을 종료시키는 함수 close ()에 대한 호출후에, 상태 머신은 소켓을 비우고 재사용을 위해 이용가능하도록 하는 널 상태(900)로 천이시킨다.
표 4-6은 API(270)에 의해 지원된 특정 상태 메시지를 도시한다. 널 상태(표 4-6에 도시되지 않음)에서, 상기에 기술된 "부가 자원이 이용가능하지 않음"이란 특정된 상태 메시지는 애플리케이션(260)에 보고될 수 있다.
표 4
상태 접속 함수 타입에 대한 특정된 상태 메시지
개방 성공- 에러 조건이 보고되지 않음
폐쇄 일반 망 에러; 하부 망이 이용가능하지 않음
표 5
상태 I/O 함수 타입에 대한 특정된 상태 메시지
개방 블로킹 함수 호출이 있다면, 동작은 차단됨(판독/기록 바이트의 수)
폐쇄 일반 망 에러; 하부 망은 이용가능하지 않음
표 6
상태 폐쇄 함수 타입에 대한 특정된 상태 메시지
개방 성공- 에러 조건이 보고되지 않음
폐쇄 성공- 에러 조건이 보고되지 않음
도 10은 트래픽 채널(즉, Um) 및 링크 계층(즉, PPP(206))과 같은 망 서브시스템을 제어하기 위한 상태도를 도시한다. 함수 open_netlib ()에 대한 호출은 망 서브시스템을 개방하고 소켓을 "폐쇄" 상태(1000)로 초기화시킨다. 함수 pppopen ()에 대한 호출은 소켓을 "개방중" 상태(1005)로 천이시키는 망 서브시스템 접속을 초기화시킨다. 또한, 착신 PPP 호출 천이에 의해 MS(110)에 대한 페이지는 개방중 상태(1005)로 천이시킨다. 양 경우에, 성공적인 협상에 따라, MS(110)는 트래픽 채널을 통해 RLP 및 PPP 양쪽을 동기화시키고 확립하도록 시도한다.
개방중 상태(1005)에서, 소켓은 망 서브시스템 접속이 확립됨에 따라 "개방" 상태(1010)로 천이시킨다. 반면에, 소켓은 망 서브시스템 접속이 확립되지 않으면 폐쇄된 상태(1000)로 천이시킨다.
개방 상태(1010)에서, 콜백 함수는 인에이블되는 판독, 기록 및 폐쇄와 같은 특정 이벤트를 애플리케이션(1060)에 식별시키도록 인보크된다. 이때, MS(110)는 트래픽 채널을 통해 통신할 수 있다. 그러나, 소켓은 콜백 함수를 인보크하는 망 서브시스템 실패가 발생할 때마다 폐쇄 상태(1000)로 천이한다. 함수 close ()에 대한 호출에 의해서와 같이, 망 서브시스템 접속 종료가 개시된 애플리케이션은 소켓을 "폐쇄중" 상태(1015)로 천이시킨다.
폐쇄중 상태(1015)에서, 소켓은 망 서브시스템 접속이 종료될 때마다 폐쇄 상태(1000)로 천이시킨다. 폐쇄 상태(1000)에서, 콜백 함수는 인에이블되는 특정 이벤트를 애플리케이션(260)에 식별사키기 위해 인보크된다.
표 7은 API(270)에 의해 지원되는 특정 함수 호출에 대응하는 특정 상태 메시지를 도시한다.
표 7
함수 호출( 및 기술) 특정된 상태 메시지
socket ()소켓을 생성하고 소켓 기술어를 리턴 어드레스가 지원되지 않음;무효한 애플리케이션 식별자;프로토콜이 소켓에 대해 잘못된 타입임;무효 또는 지원되지 않는 소켓 파라미터;프로토콜 지원안됨; 또는소켓 자원이 더이상 이용가능하지 않음
connect()TCP 접속을 초기화 블로킹 함수 호출이 있으면, 동작이 차단;무효 소켓 기술어;접속 시도는 서버 리셋의 수신으로 인하여 거부됨;접속이 시간 만료;애플리케이션 버퍼는 유요 어드레스 공간의 일부가 아님; 어드레스 길이 또는 메시지 길이에 대해 특정된 크기 무효화;망 레벨 IP 어드레스 변경, PPP 재동기화에 기인하여 리셋을 위해 TCP 접속을 발생시킴;소켓 기술어 미리 접속;일반 망 에러; 하부 망이 이용가능하지 않음;무효 서버 어드레스 특정;어드레스 이미 사용중; 또는목적지 어드레스 요청
pppopen ()망 접속을 확립 블로킹 함수 호출이 있으면, 동작은 차단;무효 애플리케이션 식별자 특정; 또는진행중인 망 접속의 종료
net_ioctl ()망 특성을 세팅 무효화 애플리케이션 식별자 특정;무효 요청 또는 파라미터;망 접속 확립; 또는망 접속 진행중
open_netlib ()통신 프로토콜 스택 개방 더 이상 이용가능한 애플리케이션 없음- 개방 애플리케이션의 최대 수 초과
close_netlib ()통신 프로토콜 스택 폐쇄 무효 애플리케이션 식별자 특정됨;할당된 소켓이 존재함; 또는망 접속이 여전히 확립되어 있음
bind ()클라이언트 소켓에 대해, 지역 어드레스 및 포트 값을 소켓에 부착 무효화 소켓 기술어 특정;무효 또는 지원되지 않는 동작 특정;어드레스 이미 사용중;무효화 동작; 또는무효화 어드레스 파라미터 특정
close ()재사용을 위해 비우기 위해 소켓을 폐쇄 무효화 소켓 기술어 특정; 또는블로킹 함수 호출이 있으면, 동작이 차단
pppclose ()망 접속 폐쇄 블로킹 함수 호출이 있으면, 동작이 차단;무효화 애플리케이션 식별자 특정; 또는망 접속의 종료가 진행중
netstatus ()망 접속의 상태 보고 무효화 애플리케이션 식별자 특정;하부 망은 이용가능하지 않음;망 접속이 확립되고 이용가능함;망 접속이 진행중;망 접속의 종료가 진행중;이용가능한 CDMA(즉, 트래픽 채널) 서비스 없음;CDMA 서비스 이용가능 그러나 기지국이 서비스 옵션을 지원하지 않기 때문에 발신 실패; 또는CDMA 서비스 이용가능, 그러나 발신 실패;그러나, 기지국이 서비스 옵션을 지원하지 않기 때문이 아님
async_select ()특정 소켓에 대해 특정 이벤트 등록 무효화 소켓 기술어 특정
getnextevent ()발생한 다음 소켓 기술어 및 이벤트 획득 무효화 소켓 기술어 특정; 또는무효화 애플리케이션 식별자 특정
write ()특정 수의 바이트 기록 - 인접한 또는 비인접한 버퍼 무효화 소켓 기술어 특정;TCP 접속이 존재하지 않음;서버는 TCP 접속을 리셋;시간만료 또는 다른 실패로 인하여 TCP 접속 중단;망 레벨 IP 어드레스 변경, PPP 재동기화로 인하여 리셋을 위해 TCP 접속을 발생;망이 이용가능하지 않음;애플리케이션 버퍼는 어드레스 공간의 유효 부분이 아님;또는기록을 위해 이용가능한 비어있는 버퍼 없음
read ()특정된 수의 바이트 판독 - 인접한 또는 인접하지 않은 버퍼 무효화 소켓 기술어 특정;TCP 접속 존재하지 않음;서버는 TCP 접속을 리셋시킴;시간만료 또는 다른 실패로 인하여 TCP 접속 중단망 레벨 IP 어드레스 변경, PPP 재동기화로 인하여 리셋을 위해 TCP 접속을 발생;TCP 접속 폐쇄;망 이용가능하지 않음;애플리케이션 버퍼는 어드레스 공간의 유효 부분이 아님;판독을 위해 이용가능한 비어있는 버퍼 없음; 또는수신된 파일 마커의 종료
sendto ()특정 수의 바이트를 전송 무효화 소켓 기술어 특정;어드레스 패밀리 지원되지 않음;기록을 위해 이용가능한 비어있는 버퍼 없음;망 이용가능하지 않음;애플리케이션 버퍼는 어드레스 공간의 유효 부분이 아님;특정된 옵션이 지원되지 않음; 또는목적지 어드레스가 요청됨
recvfrom ()특정 수의 바이트 판독 무효한 소켓 기술어 특정;어드레스 패밀리 지원되지 않음;기록을 위해 이용가능한 비어있는 버퍼 없음;망 이용가능하지 않음;애플리케이션 버퍼는 어드레스 공간의 유효 부분이 아님; 또는특정된 옵션이 지원되지 않음
또 다른 실시예에서, 머신은 이동국 애플리케이션이 원래 패킷 데이터를 수신하고 전송하도록 하는 상기에 기술된 프로세스를 발생시키기 위해, 엔코딩된 소프트웨어 코드와 같은 엔코딩된 정보를 포함하는 머신-판독가능 매체를 판독할 수 있다. 머신-판독가능 매체는 메모리 또는 저장 디스크와 같은 저장 장치 또는 통신 망으로부터 엔코딩된 정보를 수용할 수 있다. 또한, 머신-판독가능 매체는 상기 매체가 조작될 때 엔코딩된 정보를 이용하여 프로그래밍될 수 있다. 상기 머신은 머신 판독가능 매체가 메모리 또는 저장 디스크를 포함할 수 있는 동안 애플리케이션 (260), 통신 프로토콜 스택(280) 및 API(270) 중 적어도 하나를 포함할 수 있다.
본 발명은 특정 실시예와 관련하여 도시되었지만, 그에 제한되지는 않는다. 오히려 본 발명은 첨부된 청구항의 범위에 의해서만 제한된다.

Claims (27)

  1. 원래 패킷 데이터를 수신하기 위한 이동국 애플리케이션에 관한 방법으로서,
    이동국 애플리케이션에 의해 적어도 하나의 소켓을 형성하는 단계;
    다수의 이동국 프로토콜 계층 중 적어도 하나에 의해, 통신 망으로부터 캡슐화된 원래 패킷 데이터를 수신하는 단계를 포함하는데, 상기 원래 패킷 데이터는 목적지 포트 정보를 결여하며;
    상기 이동국 프로토콜 계층 중 적어도 하나에 의해, 캡슐해제된 원래 패킷 데이터를 상기 적어도 하나의 소켓에 전송하는 단계; 및
    상기 적어도 하나의 소켓에 의해, 상기 원래 패킷 데이터를 상기 이동국 애플리케이션에 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 원래 패킷 데이터를 인터넷 제어 메시징 프로토콜 파싱(parsing) 엔진에 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크 프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 방법.
  6. 원래 패킷 데이터를 수신하기 위한 이동국 애플리케이션용 장치로서,
    적어도 하나의 소켓을 형성하기 위한 이동국 애플리케이션; 및
    다수의 이동국 프로토콜 계층을 포함하며;
    상기 이동국 프로토콜 계층 중 적어도 하나는 통신 망으로부터 캡슐화된 원래 패킷 데이터를 수신하도록 적응되며, 상기 원래 패킷 데이터는 목적지 포트 정보를 결여하며;
    상기 이동국 프로토콜 계층 중 적어도 하나는 캡슐해제된 원래 패킷 데이터를 상기 적어도 하나의 소켓에 전송하도록 적응되며;
    상기 적어도 하나의 소켓은 원래 패킷 데이터를 이동국 애플리케이션에 전송하도록 적응되는 것을 특징으로 하는 장치.
  7. 제 6 항에 있어서, 상기 적어도 하나의 소켓은 원래 패킷 데이터를 인터넷 제어 메시징 프로토콜 파싱 엔진에 전송하도록 적응되는 것을 특징으로 하는 장치.
  8. 제 6 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을특징으로 하는 장치.
  9. 제 6 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크 프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  10. 제 6 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 장치.
  11. 머신에 의한 판독이 다음의 프로세스를 발생시킬때, 엔코딩된 정보를 포함하는 머신-판독가능 매체로서,
    이동국 애플리케이션에 의해 적어도 하나의 소켓을 형성하는 프로세스;
    다수의 이동국 프로토콜 계층 중 적어도 하나에 의해, 통신 망으로부터 캡슐화된 원래 패킷 데이터를 수신하는 프로세스를 포함하는데, 상기 원래 패킷 데이터는 목적지 포트 정보를 결여하며;
    상기 이동국 프로토콜 계층 중 적어도 하나에 의해 캡슐해제된 원래 패킷 데이터를 상기 적어도 하나의 소켓에 전송하는 프로세스; 및
    상기 적어도 하나의 소켓에 의해 상기 원래 패킷 데이터를 이동국 애플리케이션에 전송하는 프로세스를 포함하는 머신-판독가능 매체.
  12. 제 11 항에 있어서, 상기 원래 패킷 데이터를 인터넷 제어 메시징 프로토콜 파싱 엔진에 전송하는 프로세스를 더 포함하는 머신-판독가능 매체.
  13. 제 11 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을 특징으로 하는 머신-판독가능 매체.
  14. 제 11 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크 프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 머신-판독가능 매체.
  15. 제 11 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 머신-판독가능 매체.
  16. 원래 패킷 데이터를 전송하기 위한 이동국 애플리케이션에 관한 방법으로서,
    이동국 애플리케이션에 의해 적어도 하나의 소켓을 형성하는 단계;
    적어도 하나의 소켓에 의해 상기 이동국 애플리케이션의 원래 패킷 데이터를 다수의 이동국 프로토콜 계층 중 적어도 하나에 전송하는 단계; 및
    다수의 이동국 프로토콜 계층 중 적어도 하나에 의해 캡슐화된 원래 패킷 데이터를 통신 망에 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을 특징으로 하는 방법.
  18. 제 16 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크 프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  19. 제 16 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 방법.
  20. 원래 패킷 데이터를 전송하기 위한 이동국 애플리케이션용 장치로서,
    적어도 하나의 소켓을 형성하기 위한 이동국 애플리케이션; 및
    다수의 이동국 프로토콜 계층을 포함하며,
    상기 적어도 하나의 소켓은 상기 이동국 애플리케이션의 원래 패킷 데이터를 상기 이동국 프로토콜 계층 중 적어도 하나에 전송하도록 적응되며; 및
    상기 이동국 프로토콜 계층 중 적어도 하나는 캡슐화된 원래 패킷 데이터를 통신 망에 전송하도록 적응되는 것을 특징으로 하는 장치.
  21. 제 20 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을 특징으로 하는 장치.
  22. 제 20 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크 프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  23. 제 20 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 장치.
  24. 머신에 의한 판독이 다음의 프로세스를 발생시킬때, 엔코딩된 정보를 포함하는 머신-판독가능 매체로서,
    이동국 애플리케이션에 의해 적어도 하나의 소켓을 형성하는 프로세스;
    적어도 하나의 소켓에 의해 상기 이동국 애플리케이션의 원래 패킷 데이터를 다수의 이동국 프로토콜 계층 중 적어도 하나에 전송하는 프로세스; 및
    다수의 이동국 프로토콜 계층 중 적어도 하나에 의해 캡슐화된 원래 패킷 데이터를 통신 망에 전송하는 프로세스를 포함하는 머신-판독가능 매체.
  25. 제 24 항에 있어서, 상기 원래 패킷 데이터는 원래 IP 패킷을 포함하는 것을 특징으로 하는 머신-판독가능 매체.
  26. 제 24 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 무선 링크프로토콜 계층 및 이동국 IS-95 프로토콜 계층 중 적어도 하나를 포함하는 것을 특징으로 하는 머신-판독가능 매체.
  27. 제 24 항에 있어서, 상기 다수의 이동국 프로토콜 계층은 이동국 통신 프로토콜 스택을 포함하는 것을 특징으로 하는 머신-판독가능 매체.
KR1020027012801A 2000-03-30 2001-03-29 원래 패킷 데이터를 수신하고 전송하기 위한 이동국애플리케이션에 관한 방법 및 장치 KR20030011281A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/539,499 2000-03-30
US09/539,499 US6862276B1 (en) 2000-03-30 2000-03-30 Method and apparatus for a mobile station application to receive and transmit raw packetized data

Publications (1)

Publication Number Publication Date
KR20030011281A true KR20030011281A (ko) 2003-02-07

Family

ID=24151477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027012801A KR20030011281A (ko) 2000-03-30 2001-03-29 원래 패킷 데이터를 수신하고 전송하기 위한 이동국애플리케이션에 관한 방법 및 장치

Country Status (10)

Country Link
US (1) US6862276B1 (ko)
EP (2) EP1909464B1 (ko)
JP (2) JP4763211B2 (ko)
KR (1) KR20030011281A (ko)
CN (1) CN1422483A (ko)
AU (2) AU2001251105B2 (ko)
CA (1) CA2404159A1 (ko)
IL (2) IL151703A0 (ko)
MX (1) MXPA02009521A (ko)
WO (1) WO2001076180A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294729C (zh) * 2001-05-08 2007-01-10 北方电讯网络有限公司 分组数据网中未用资源的识别
FI20011090A (fi) * 2001-05-23 2002-11-24 Nokia Corp Koodekki-informaation kommunikointi
US7151764B1 (en) * 2001-11-01 2006-12-19 Nokia Corporation Service notification on a low bluetooth layer
US7555287B1 (en) 2001-11-01 2009-06-30 Nokia Corporation Customized messaging between wireless access point and services
US6968191B2 (en) * 2001-11-26 2005-11-22 Qualcomm Inc System and method for traffic channel dormancy in wireless communication socket mode
US7340214B1 (en) * 2002-02-13 2008-03-04 Nokia Corporation Short-range wireless system and method for multimedia tags
US7102640B1 (en) * 2002-03-21 2006-09-05 Nokia Corporation Service/device indication with graphical interface
US7911994B2 (en) * 2003-02-28 2011-03-22 Openwave Systems Inc. Confirmation of delivery of content to an HTTP/TCP device
US20040181517A1 (en) * 2003-03-13 2004-09-16 Younghee Jung System and method for social interaction
US20050120382A1 (en) * 2003-11-07 2005-06-02 Televiewer Systems Ltd. System and method of remotely controlling a TV tuner over a TCP/IP network
US7852876B2 (en) * 2004-05-05 2010-12-14 M-Stack Limited Apparatus, and an associated method, for routing data through logical layers of a communication device
US20050288045A1 (en) * 2004-06-28 2005-12-29 Yang Jianhao M Apparatus, and an associated method, for forming direct data connection between applications of a set of mobile stations
US20060075075A1 (en) * 2004-10-01 2006-04-06 Malinen Jouni I Method and system to contextually initiate synchronization services on mobile terminals in an enterprise environment
KR100710530B1 (ko) * 2005-10-21 2007-04-23 삼성전자주식회사 연결 중심 무선 링크를 가지는 무선 이동 통신 시스템에서아이피 주소 구성 및 등록 방법
US20070248085A1 (en) * 2005-11-12 2007-10-25 Cranite Systems Method and apparatus for managing hardware address resolution
US20090259925A1 (en) * 2008-04-10 2009-10-15 Ibiquity Digital Corporation Broadcast Equipment Communication Protocol
US8023982B2 (en) * 2008-05-12 2011-09-20 Qualcomm Incorporated Wireless communication device having dynamically escalated media transmission handling
CN103166994A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 获取网络数据的方法及装置
CN102892135B (zh) * 2012-10-08 2015-06-10 中兴通讯股份有限公司 一种移动终端网络端口释放管理方法及装置
US9143921B2 (en) * 2013-09-06 2015-09-22 Qualcomm Incorporated Communicating physical layer wireless parameters over an application programming interface
US10447590B2 (en) * 2014-11-20 2019-10-15 Oath Inc. Systems and methods for dynamic connection paths for devices connected to computer networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2107047C (en) * 1992-12-29 1998-04-28 Alan M. Bentley Switched circuit connection management over public data networks for wide area networks
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5918018A (en) * 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5787253A (en) * 1996-05-28 1998-07-28 The Ag Group Apparatus and method of analyzing internet activity
US6229809B1 (en) * 1996-10-11 2001-05-08 Novell, Inc. Method and system for combining computer network protocols
US6453345B2 (en) * 1996-11-06 2002-09-17 Datadirect Networks, Inc. Network security and surveillance system
JPH10233796A (ja) * 1997-02-18 1998-09-02 Toshiba Corp Lan間接続装置
US6732191B1 (en) * 1997-09-10 2004-05-04 Schneider Automation Inc. Web interface to an input/output device
JP2002502189A (ja) * 1998-01-29 2002-01-22 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 移動データ転送用通信システム
US6246683B1 (en) * 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6356529B1 (en) * 1999-08-12 2002-03-12 Converse, Ltd. System and method for rapid wireless application protocol translation
US6542734B1 (en) * 2000-03-30 2003-04-01 Qualcomm Incorporated Method and apparatus for detecting specified events in a mobile station

Also Published As

Publication number Publication date
JP2003530022A (ja) 2003-10-07
AU5110501A (en) 2001-10-15
EP1909464A2 (en) 2008-04-09
JP4763211B2 (ja) 2011-08-31
IL151703A0 (en) 2003-04-10
IL151703A (en) 2007-12-03
EP1909464A3 (en) 2008-04-23
JP2011223587A (ja) 2011-11-04
EP1909464B1 (en) 2013-04-17
MXPA02009521A (es) 2003-05-14
AU2001251105B2 (en) 2006-02-09
JP4971513B2 (ja) 2012-07-11
US6862276B1 (en) 2005-03-01
CN1422483A (zh) 2003-06-04
EP1273149A2 (en) 2003-01-08
WO2001076180A3 (en) 2002-03-14
WO2001076180A2 (en) 2001-10-11
CA2404159A1 (en) 2001-10-11

Similar Documents

Publication Publication Date Title
US6542734B1 (en) Method and apparatus for detecting specified events in a mobile station
KR20030011281A (ko) 원래 패킷 데이터를 수신하고 전송하기 위한 이동국애플리케이션에 관한 방법 및 장치
KR100778605B1 (ko) 이동국 애플리케이션이 지정된 이벤트를 식별하기 위한 방법 및 장치
AU2001251105A1 (en) Method and apparatus for a mobile station application to receive and transmit raw packetized data
CA2402359A1 (en) Method and apparatus for notifying a mobile station application of specified events
CA2403813A1 (en) Method and apparatus for a mobile station application to identify specified status messages
CA2404347A1 (en) Method and apparatus for servicing specified events by a mobile station application

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid