KR20030010591A - Method and apparatus for notifying a mobile station application of specified events - Google Patents

Method and apparatus for notifying a mobile station application of specified events Download PDF

Info

Publication number
KR20030010591A
KR20030010591A KR1020027011855A KR20027011855A KR20030010591A KR 20030010591 A KR20030010591 A KR 20030010591A KR 1020027011855 A KR1020027011855 A KR 1020027011855A KR 20027011855 A KR20027011855 A KR 20027011855A KR 20030010591 A KR20030010591 A KR 20030010591A
Authority
KR
South Korea
Prior art keywords
mobile station
event
application
network
protocol stack
Prior art date
Application number
KR1020027011855A
Other languages
Korean (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 KR20030010591A publication Critical patent/KR20030010591A/en

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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W68/00User notification, e.g. alerting and paging, for incoming communication, change of service or the like
    • 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
    • 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
    • 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
    • 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/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/164Adaptation or special uses of UDP protocol
    • 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/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/169Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
    • 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)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 무선 통신 시스템에서 지정된 이벤트를 식별하는 이동국 애플리케이션용 방법 및 장치에 관한 것이다. 본 발명은 통신 네트워크와 통신하는 이동국 통신 프로토콜 스택과 이동국 애플리케이션 사이의 통신을 용이하게 하는 애플리케이션 프로그램 인터페이스(API)를 포함한다. 이동국 통신 프로토콜 스택 또는 이동국 애플리케이션 인터페이스는 지정된 이벤트를 검출하고, 이동국 애플리케이션으로 지정된 이벤트의 통지를 호출한다.The present invention relates to a method and apparatus for a mobile station application for identifying a designated event in a wireless communication system. The present invention includes an application program interface (API) that facilitates communication between a mobile station communication protocol stack and a mobile station application in communication with a communication network. The mobile communication protocol stack or mobile station application interface detects the specified event and invokes notification of the specified event to the mobile station application.

Description

지정된 이벤트를 이동국 애플리케이션에 통지하는 방법 및 장치{METHOD AND APPARATUS FOR NOTIFYING A MOBILE STATION APPLICATION OF SPECIFIED EVENTS}METHOD AND APPARATUS FOR NOTIFYING A MOBILE STATION APPLICATION OF SPECIFIED EVENTS}

A. 무선 통신A. Wireless Communications

인터넷 가입자의 전례없는 증가외에 무선 통신 및 컴퓨터 관련 기술에 있어서의 최근의 혁명은 모바일 컴퓨팅을 위한 방법을 용이하게 하였다. 실제로, 모바일 컴퓨팅의 인기는 모바일 사용자에게 더 많은 지원을 제공하기 위하여 현 인터넷 하부구조의 수요를 증가시켰다. 이러한 하부구조의 활력소는 국부 및 광역 네트워크(LAN 및 WAN) 사이의 패킷(데이터그램)의 어드레싱 및 라우팅을 포함하는 여러 서비스를 제공하는 패킷지향의 인터넷 프로토콜(IP)에 근거한다. IP 프로토콜은 "INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION"으로 명명된 1981년 9월자 RFC 791(Request For Comment 791)에 정의되어 있다.In addition to the unprecedented increase in Internet subscribers, recent revolutions in wireless communications and computer related technologies have facilitated methods for mobile computing. Indeed, the popularity of mobile computing has increased the demands of the current Internet infrastructure to provide more support for mobile users. The vitality of this infrastructure is based on Packet Oriented Internet Protocol (IP), which provides several services including addressing and routing of packets (datagrams) between local and wide area networks (LANs and WANs). The IP protocol is defined in the September 1981 RFC 791 (Request For Comment 791) named "INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION".

IP 프로토콜은 데이터를 전송을 위한 IP 패킷으로 캡슐화시키는 네트워크층 프로토콜이다. 어드레싱 및 라우팅 정보는 패킷의 헤더에 첨부된다. IP 헤더는전송 및 수신 호스트를 식별하는 32비트 어드레스를 포함한다. 이 어드레스는 의도된 어드레스에서 패킷이 그 최후 목적지쪽으로 향하는 네트워크 경로를 선택하기 위하여 중간 라우터에 의하여 사용된다. 그러므로 IP 프로토콜은 임의의 인터넷 노드에서 생성된 패킷이 임의의 다른 인터넷 노드에 라우트될 수 있도록 한다. 한편, 전송 제어 프로토콜(TCP) 또는 사용자 데이터그램 프로토콜(UDP)중 하나를 포함하는 전송층은 특정 애플리케이션에 어드레싱하는데 사용된다.The IP protocol is a network layer protocol that encapsulates data into IP packets for transmission. Addressing and routing information is appended to the header of the packet. The IP header contains a 32-bit address that identifies the sending and receiving host. This address is used by the intermediate router to select the network path from the intended address to the final destination of the packet. Therefore, the IP protocol allows packets generated at any Internet node to be routed to any other Internet node. On the other hand, a transport layer comprising either Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) is used to address a particular application.

현재의 경향은 모바일 사용자가 셀룰러 또는 휴대용 전화기와 같은 무선 통신 장치를 인터넷에 액세스하는 것과 관련하여 랩탑 또는 팜탑 컴퓨터와 같은 모바일 컴퓨터를 사용하는 것이다. 즉, 사용자가 통상적으로 자신의 컴퓨터를 육상 기반의 네트워크에 접속하기 위하여 "유선" 통신 장치를 사용하는 것과 마찬가지로, 모바일 사용자는 자신의 모바일 터미널을 상기 네트워크에 접속하기 위하여 통상 "이동국"(MS)로 참조되는 무선 통신장치를 사용할 것이다. 본 명세서에 사용된 바와 같이, 이동국, 즉 MS는 공용 무선 라디오 네트워크의 임의의 가입자국을 조사할 것이다.The current trend is for mobile users to use mobile computers, such as laptop or palmtop computers, in connection with accessing the Internet to wireless communication devices such as cellular or portable telephones. That is, as a user typically uses a "wired" communication device to connect his computer to a land based network, a mobile user typically uses a "mobile station" (MS) to connect his mobile terminal to the network. We will use a wireless communication device referred to as. As used herein, a mobile station, or MS, will survey any subscriber station in a public wireless radio network.

도 1(종래 기술)은 MS(110)가 기지국/이동 스위칭 센터(BS/MSC;106)를 통하여 상호작용기능부(IWF;108)와 통신하는 무선 데이터 통신 시스템의 고차 블록도를 도시한다. IWF(180)는 인터넷에 대한 액세스 포인트의 역할을 한다. IWF(108)는 공지된 통상의 무선 기지국인 BS/MSC(106)에 결합되고 종종 공동으로 위치한다. 무선 데이터 통신 시스템에 어드레싱하는 다른 표준 프로토콜은 "WIRELESS IP NETWORK STANDARD"로 명명되고 1999년 12월에 공개된 3세대 파트너쉽 프로젝트2("3GPP2")이다. 3세대 무선 IP 네트워크 표준은 IWF(108)와 같이 기능하는 패킷 데이터 서빙 노드("PDSN")를 포함한다.1 (Prior Art) shows a high-order block diagram of a wireless data communication system in which MS 110 communicates with interaction function (IWF) 108 via a base station / mobile switching center (BS / MSC) 106. IWF 180 acts as an access point for the Internet. IWF 108 is coupled to and often co-located with BS / MSC 106, a known conventional wireless base station. Another standard protocol for addressing wireless data communication systems is the third generation partnership project 2 ("3GPP2"), named "WIRELESS IP NETWORK STANDARD" and released in December 1999. The third generation wireless IP network standard includes a packet data serving node (“PDSN”) that functions like the IWF 108.

MS(110) 및 IWF(108) 사이의 데이터 통신을 어드레싱하는 여러 프로토콜이 존재한다. 예를 들어, "MOBILE STATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREAD SPECTRUM CELLULAR SYSTEM"으로 명명되고 1993년 7월에 공개된 무선통신 산업 협의회(TIA)/전자 산업 협의회(EIA) 잠정 표준 IS-95는 광대역 확산 스펙트럼 무선 통신 시스템에 관한 표준을 제공한다. 게다가 "DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMS: PACKET DATA SERVICES로 명명되고 1998년 2월에 공개된 표준 TIA/EIA IS-707.5는 TIA/EIA IS-95 시스템상의 패킷 데이터 전송 능력의 지원에 대한 필요조건을 정의하며 BS/MSC(106)를 통하여 MS(110) 및 IWF(108) 사이의 통신에 사용될 수 있는 패킷 데이터 베어러 서비스를 정의한다. 또한, 1999년 3월에 둘 다 공개되고 "DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS: PACKET DATA SERVICES"로 명명된 TIA/EIA IS-707-A.5 표준 및 "DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS: HIGH-SPEED PACKET DATA SERVICES"로 명명된 TIA/EIA IS-707-A.9는 TIA/EIA IS-95 시스템에서의 패킷 데이터 전송 지원을 위한 요구조건을 정의한다. 또한, MS(110) 및 IWF(108) 사이의 통신을 어드레싱하는 다른 표준 프로토콜은 1999년 7월에 공개된 "INTRODUCTION TO CDMA 2000 STANDARDS FOR SPREAD SPECTRUM SYSTEMS"으로 명명된 TIA/EIA IS-2000이다.There are several protocols that address data communication between the MS 110 and the IWF 108. For example, the Telecommunications Industry Association (TIA) / Electronic Industry Council (EIA) Interim Standard IS-, entitled "MOBILE STATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREAD SPECTRUM CELLULAR SYSTEM", was released in July 1993. 95 provides a standard for wideband spread spectrum wireless communication systems. Furthermore, the standard TIA / EIA IS-707.5, entitled “DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMS: PACKET DATA SERVICES, published in February 1998, is a requirement for the support of packet data transfer capability on TIA / EIA IS-95 systems. And a packet data bearer service that can be used for communication between the MS 110 and the IWF 108 via the BS / MSC 106. Also, in March 1999, both were published and the "DATA SERVICE OPTIONS TIA / EIA IS-707-A.5 standard named FOR SPREAD SPECTRUM SYSTEMS: PACKET DATA SERVICES, and TIA / EIA IS-707- named "DATA SERVICE OPTIONS" HIGH-SPEED PACKET DATA SERVICES. A.9 defines the requirements for supporting packet data transmission in TIA / EIA IS-95 systems, and another standard protocol for addressing communication between MS 110 and IWF 108. Named "INTRODUCTION TO CDMA 2000 STANDARDS FOR SPREAD SPECTRUM SYSTEMS" A TIA / EIA IS-2000.

IS-707.5는 MS(110) 및 BS/MSC(106)(Um 인터페이스) 사이와 BS/MSC(106) 및IWF(108)(L 인터페이스) 사이의 통신 프로토콜 옵션 모델을 소개한다. 예컨대, 릴레이 모델은 점대점 프로토콜(PPP) 링크가 MS(110) 및 IWF(108) 사이의 Um 인터페이스상에 존재하는 환경을 나타낸다. PPP 프로토콜은 "THE POINT-TO-POINT PROTOCOL(PPP)"로 명명된 RFC 1661(Request for Comments 1661)에 상세하게 개시되어 있다.IS-707.5 introduces a communication protocol option model between MS 110 and BS / MSC 106 (Um interface) and between BS / MSC 106 and IWF 108 (L interface). For example, the relay model represents an environment where a point-to-point protocol (PPP) link exists on the Um interface between the MS 110 and the IWF 108. The PPP protocol is described in detail in RFC 1661 (Request for Comments 1661) named "THE POINT-TO-POINT PROTOCOL (PPP)".

도 2(종래 기술)는 IS-707.5 릴레이 모델의 각각의 엔티티에 존재하는 프로토콜 스택의 도면이다. 도면의 가장 좌측에는 MS(110)에서 가동중인 프로토콜층을 도시하고 통상의 수직 형식으로 도시된 통신 프로토콜 스택이 존재한다. MS(110) 프로토콜 스택은 Um 인터페이스상에서 BS/MSC(106) 프로토콜 스택에 논리적으로 접속된 것으로 도시되어 있다. BS/MSC(106) 프로토콜 스택은 L 인터페이스상에서 IWF(108)에 논리적으로 접속된 것으로 도시되어 있다.2 (Prior Art) is a diagram of a protocol stack present at each entity of the IS-707.5 relay model. At the far left of the figure is a communication protocol stack, showing a protocol layer running on MS 110 and shown in a conventional vertical format. The MS 110 protocol stack is shown logically connected to the BS / MSC 106 protocol stack on the Um interface. The BS / MSC 106 protocol stack is shown logically connected to the IWF 108 on the L interface.

도 2에 도시된 동작은 다음과 같다: MS(110)에서 가동중인 애플리케이션 프로그램과 같은 상위층 프로토콜(200) 엔티티는 인터넷에서 데이터를 전송하기 위한 필요성을 가진다. 대표적인 애플리케이션은 웹 브라우저 프로그램(예컨대, Netscape NavigatorTM, Microsoft Internet ExplorerTM)일 수 있다. 웹 브라우저는 하이퍼링크 "http://www.Qualcomm.com/"과 같은 URL(Universal Resource Locator)을 요청한다. 상위층 프로토콜(200)의 도메인명 시스템(DNS) 프로토콜은 인터넷의 어드레스로 이름을 번역하는 도메인명 해결책을 사용하여 32비트 숫자 IP 어드레스로 텍스트형 호스트명www.Qualcomm.com으로 번역한다. 하이퍼텍스트 전송 프로토콜(HTTP)은 상위층 프로토콜(200)이며, 요청된 URL을 위한 GET 메세지를 구성하며, TCP가 HTTP 동작을 위하여 메세지를 전송하는데 사용된다. 전송층(202)은 HTTP 동작을 애플리케이션에 라우팅하기 위하여 목적지 포트로서 공지된 포트(80)를 사용한다.The operation shown in FIG. 2 is as follows: An upper layer protocol 200 entity, such as an application program running on MS 110, has a need to transfer data over the Internet. Representative applications may be web browser programs (eg, Netscape Navigator , Microsoft Internet Explorer ). The web browser requests a Universal Resource Locator (URL) such as the hyperlink " http://www.Qualcomm.com /". The Domain Name System (DNS) protocol of the upper layer protocol 200 translates the textual host name www.Qualcomm.com into a 32-bit numeric IP address using a domain name solution that translates the name into an address on the Internet. Hypertext Transfer Protocol (HTTP) is a higher layer protocol 200, constructs a GET message for the requested URL, and TCP is used to send the message for HTTP operation. The transport layer 202 uses a port 80, known as the destination port, for routing HTTP operations to the application.

전송층 프로토콜(202)인 TCP 프로토콜은 DNS에 의하여 명시된 IP 어드레스로의 접속을 오픈하고 애플리케이션 레벨 HTTP GET 메세지를 전송한다. TCP 프로토콜은 IP 프로토콜이 메세지 전송을 위하여 사용될 것이라는 것을 명시한다. 네트워크층 프로토콜(204)인 IP 프로토콜은 명시된 IP 어드레스에 TCP 패킷을 전송한다. 링크층 프로토콜(206)인 PPP는 IP 패킷을 인코딩하고 이를 릴레이층 프로토콜(208)에 전송한다. 릴레이층 프로토콜(208)의 예는 1997년 10월에 공개되고 "INTERFACE BETWEEN DATA TERMINAL EQUIPMENT AND DATA CIRCUIT TERMINATING EQUIPMENT EMPLOYING SERIAL BINARY DATA INTERCHANGE"로 명시된 예시 TIA/EIA-232F 표준일 수 있다. 다른 표준 또는 공지된 프로토콜이 층을 이동하는 전송을 명시하는데 사용될 수 있다. 예컨대, 다른 응용가능 표준은 1998년 9월에 공개된 "UNIVERSAL SERIAL BUS(USB) SPECIFICATION, Revision 1.1" 및 1999년 7월에 공개된 "BLUETOOTH SPECIFICATION VERSION 1.0A CORE"를 포함할 수 있다. 끝으로, 릴레이층 프로토콜(208)은 PPP 패킷을 무선 링크 프로토콜(RLP;210)로 통과시킨 후, Um 인터페이스를 거쳐 BS/MSC(106)으로 전송하기 위하여 IS-95 프로토콜(212)로 통과시킨다. RLP 프로토콜(210)은 1998년 2월에 공개되고 "DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMS: RADIO LINK PROTOCOL"로 명명된 IS-707.2표준에 명시되어 있으며, IS-95 프로토콜은 상술한 IS-95 표준에 명시되어 있다.The TCP protocol, transport layer protocol 202, opens a connection to the IP address specified by DNS and sends an application level HTTP GET message. The TCP protocol specifies that the IP protocol will be used for message transmission. The IP protocol, which is the network layer protocol 204, sends a TCP packet to the specified IP address. PPP, the link layer protocol 206, encodes the IP packet and sends it to the relay layer protocol 208. An example of a relay layer protocol 208 may be an example TIA / EIA-232F standard published in October 1997 and designated as “INTERFACE BETWEEN DATA TERMINAL EQUIPMENT AND DATA CIRCUIT TERMINATING EQUIPMENT EMPLOYING SERIAL BINARY DATA INTERCHANGE”. Other standard or known protocols may be used to specify the transport through the layer. For example, other applicable standards may include "UNIVERSAL SERIAL BUS (USB) SPECIFICATION, Revision 1.1" published in September 1998 and "BLUETOOTH SPECIFICATION VERSION 1.0A CORE" published in July 1999. Finally, the relay layer protocol 208 passes the PPP packet to the radio link protocol (RLP) 210 and then to the IS-95 protocol 212 for transmission to the BS / MSC 106 over the Um interface. . The RLP protocol 210 is specified in the IS-707.2 standard published in February 1998 and named "DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMS: RADIO LINK PROTOCOL", and the IS-95 protocol is described above. It is stated in

BS/MSC(106)에서의 상보적인 릴레이층 프로토콜(220)은 Um 인터페이스를 거쳐 IS-95층(218) 및 RLP층(216)에 의하여 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에 존재한다.The complementary relay layer protocol 220 at the BS / MSC 106 receives the PPP packet by the IS-95 layer 218 and the RLP layer 216 via the Um interface. The relay layer protocol 220 passes it through the L interface to the relay layer protocol 228 on the IWF 108. PPP protocol link layer 226 on IWF 108 receives PPP packets from relay layer protocol 228 and terminates the PPP connection between MS 110 and IWF 108. Packets are passed from the PPP layer 226 to the IP layer 224 on the IWF 108 for final routing, the scenario being at www.Qualcomm.com .

MS(110)에 의하여 생성된 IP 패킷의 궁극적인 목적지가 IWF(108)가 아닐 경우, 패킷은 네트워크층 프로토콜(224) 및 링크층 프로토콜(225)을 통하여 인터넷 상의 다음 라우터(도시하지 않음)로 포워딩된다. 이 방식에서, MS(110)으로부터의 IP 패킷은 IS-707.5 표준 릴레이 모델에 따라 BS/MSC(106) 및 IWF(108)을 통하여 인터넷의 최종 목적지로 전달된다.If the ultimate destination of the IP packet generated by the MS 110 is not the IWF 108, the packet is routed to the next router (not shown) on the Internet via the network layer protocol 224 and the link layer protocol 225. Forwarded. In this manner, IP packets from the MS 110 are forwarded to the final destination of the Internet through the BS / MSC 106 and the IWF 108 in accordance with the IS-707.5 standard relay model.

MS(110) 패킷이 그 목적지에 도달하기 전에, 데이터 링크 접속이 가장 먼저 설정되어야 한다. RFC(1661)에 명시된 바와 같이, 이것은 데이터 링크 접속을 설정, 구성 및 테스트하기 위하여 각각의 점대점 링크(즉, PPP 프로토콜(206,226))의 끝이 가장 먼저 PPP 링크 제어 프로토콜(LCP) 패킷을 전송할 필요가 있다. 링크가 LCP에 의하여 설정된 후, PPP 프로토콜(206)은 이후 네트워크층 프로토콜(204,224)을 구성하도록 네트워크 제어 프로토콜(NCP) 패킷을 전송할 것이다. PPP 링크의 IP를 위한 NCP는 IP 제어 프로토콜(IPCP)이다. IPCP는 1992년 5월에 공개된 "THEPPP INTERNET PROTOCOL CONTROL PROTOCOL(IPCP)"로 명명된 RFC 1332(Request for Comment 1332)에 상사하게 설명되어 있다. IPCP 협상전, 인증 단계가 요구된다. 각각의 네트워크층 프로토콜이 구성된 후, 각 네트워크층 프로토콜로부터의 패킷은 그들간의 링크를 통하여 전송될 수 있다.Before the MS 110 packet reaches its destination, the data link connection must first be established. As specified in RFC 1601, this is the end of each point-to-point link (ie, PPP protocol 206,226) to send a PPP link control protocol (LCP) packet first to establish, configure, and test the data link connection. There is a need. After the link is established by the LCP, the PPP protocol 206 will then send a Network Control Protocol (NCP) packet to configure the network layer protocols 204,224. The NCP for the IP of the PPP link is the IP Control Protocol (IPCP). IPCP is described similarly in RFC 1332 (Request for Comment 1332), entitled "THEPPP INTERNET PROTOCOL CONTROL PROTOCOL (IPCP)" published in May 1992. Before the IPCP negotiation, an authentication step is required. After each network layer protocol is configured, packets from each network layer protocol can be sent over the link between them.

B. 애플리케이션 프로그램 인터페이스B. Application Program Interface

MS(110)상의 통신 프로토콜 스택을 지원하는 대부분의 프로세스는 애플리케이션 프로그램에 의하여 실행된다. 일반적으로, 통상의 데이터 네트워크는 컴퓨터상에서 가동중인 애플리케이션 프로그램이 다른 컴퓨터상에서 가동중인 애플리케이션 프로그램과 통신할 수 있도록 애플리케이션 프로그램 인터페이스(API)을 사용한다. API는 근본 네트워크의 프로토콜의 차이로부터 호출 애플리케이션을 보호하는 "소켓"을 이용한다. 상호 네트워킹된 통신을 달성하기 위하여, API는 애플리케이션으로 하여금 소켓을 오픈하고, 데이터를 네트워크에 전송하고, 네트워크로부터 데이터를 수신하고 소켓을 폐쇄하도록 하는 기능을 포함한다. 일반적인 네트워크 프로그래밍 인터페이스는 UnixTM운영체제하에서 동작하는 Berkeley Systems Development(BSD) 소켓 인터페이스 및 WindowsTM운영체제하에서 동작하는 WindowsTM소켓 인터페이스(WinsockTM)을 포함할 수 있다.Most of the processes that support the communication protocol stack on the MS 110 are executed by an application program. In general, a typical data network uses an application program interface (API) to enable an application program running on a computer to communicate with an application program running on another computer. The API uses a "socket" that protects the calling application from differences in protocols of the underlying network. To achieve mutual networked communication, the API includes the ability to allow an application to open a socket, send data to the network, receive data from the network, and close the socket. Common network programming interfaces may include the Berkeley Systems Development (BSD) socket interface operating under the Unix operating system and the Windows socket interface (Winsock ) operating under the Windows operating system.

BSD 소켓 또는 WinSockTM이 무선 MS(110)(도 2 참조)에서의 통신 프로토콜 스택을 지원하지 않기 때문에, 스택을 지원하는 신규한 API가 요구된다. 특히, 무선 통신 시스템에서 지정된 이벤트를 식별하는 이동국 애플리케이션용 방법 및 장치가 요구된다.Because BSD sockets or WinSock ™ do not support the communication protocol stack at the wireless MS 110 (see FIG. 2), a new API is needed to support the stack. In particular, there is a need for a method and apparatus for a mobile station application that identifies a designated event in a wireless communication system.

본 발명은 무선 통신에 관한 것이다. 특히, 본 발명은 무선 통신 시스템에서 이동국 애플리케이션이 지정된 이벤트를 식별할 수 있도록 하는 신규한 방법 및 장치에 관한 것이다.The present invention relates to wireless communication. In particular, the present invention relates to a novel method and apparatus for enabling mobile station applications to identify specified events in a wireless communication system.

도 1(종래기술)은 이동국이 인터넷에 접속한 무선 통신 시스템의 고차 블록도이다.1 (Prior Art) is a high-order block diagram of a wireless communication system in which a mobile station connects to the Internet.

도 2(종래기술)는 TIA/EIA IS-707.5 릴레이 모델의 각 엔티티의 프로토콜 스택을 개략적으로 도시하였다.2 (Prior Art) schematically shows the protocol stack of each entity of the TIA / EIA IS-707.5 relay model.

도 3은 본 발명의 일 실시예의 특성을 개략적으로 도시하였다.3 schematically illustrates the characteristics of one embodiment of the present invention.

도 4 및 5는 지정된 이벤트를 검출하는 흐름도이다.4 and 5 are flowcharts for detecting designated events.

도 6은 비동기 접속을 검출하는 블록도이다.6 is a block diagram for detecting an asynchronous connection.

도 7은 비동기 소켓 입력을 검출하는 블록도이다.7 is a block diagram for detecting asynchronous socket input.

도 8-10은 본 발명의 일 실시예의 상태도이다.8-10 are state diagrams of one embodiment of the present invention.

본 발명의 목적은 무선 통신 시스템에서 지정된 이벤트를 식별하기 위한 이동국 애플리케이션용 방법 및 장치를 제공하는 것이다. 일 실시예에서, 본 발명은 통신 네트워크와 통신하는 이동국 통신 프로토콜 스택 및 이동국 애플리케이션 사이의 통신을 용이하게 하는 애플리케이션 프로그램 인터페이스(API)를 포함한다. API는 그 상태에 기초하여 지정된 이벤트중 적어도 하나를 인에이블시킨다. 이동국 애플리케이션은 이후에 인에이블된 지정 이벤트를 식별한다.It is an object of the present invention to provide a method and apparatus for a mobile station application for identifying a designated event in a wireless communication system. In one embodiment, the present invention includes an application program interface (API) that facilitates communication between a mobile station communication protocol stack and a mobile station application in communication with a communication network. The API enables at least one of the specified events based on the state. The mobile station application then identifies the enabled event that was enabled.

본 발명의 일 실시예는 소프트웨어, 펌웨어 및/또는 하드웨어를 포함하는 여러 수단에서 구현될 수 있다. 그러므로, 본 발명의 동작은 소프트웨어 코드 또는 하드웨어 소자들에 대한 특별한 설명없이 기술될 것이며, 당업자는 본 명세서의 설명에 기초하여 본 발명을 수행하는 소프트웨어 및/또는 하드웨어를 설계할 수 있을 것이며, 상기 본 발명은 이동국 애플리케이션이 지정된 이벤트를 식별할 수 있는 발명이다.One embodiment of the present invention may be implemented in various means including software, firmware and / or hardware. Therefore, the operation of the present invention will be described without particular description of the software code or hardware elements, and those skilled in the art will be able to design the software and / or hardware to carry out the present invention based on the description herein. The invention is an invention in which a mobile station application can identify a specified event.

도 3은 MS(110)내의 애플리케이션(260), 통신 프로토콜 스택(280) 및 API(270)를 도시한다. 애플리케이션(260) 및 통신 프로토콜 스택(280;즉, 프로토콜층(202,204,206,208,210,212)은 API(270)에 의하여 제공된 기능 호출에 의하여 통신한다. 즉, API(270)는 애플리케이션(260) 및 통신 프로토콜 스택(280)이 기능면에서 타협하지 않으면서 서로 다른 프로세서 및 동작 시스템에서 가동할 수 있게 한다. 당업자는 호출 기능을 위한 여러 명칭이 본 발명의 범위를 벗어나지 않는다면 가능하다는 것을 이해할 것이다.3 shows an application 260, communication protocol stack 280, and API 270 within MS 110. Application 260 and communication protocol stack 280 (i.e., protocol layer 202,204,206,208,210,212) communicate by function calls provided by API 270. That is, API 270 is responsible for application 260 and communication protocol stack 280. It is possible to operate on different processors and operating systems without compromising in functionality, and those skilled in the art will understand that various names for the calling function are possible without departing from the scope of the present invention.

통신 프로토콜 스택(280)은 데이터를 저장하는 다수의 전송 큐 및 수신 큐를 포함한다. 출력 기능은 데이터를 통신 프로토콜 스택(280)의 전송 큐중 하나에 저장하기 위하여 애플리케이션(260)의 메모리로부터 데이터를 판독한다. 입력 기능은 애플리케이션(260)의 메모리에 데이터를 저장하기 위하여 통신 프로토콜 스택(280)의 수신큐중 하나로부터 데이터를 판독한다.The communication protocol stack 280 includes a plurality of transmit queues and receive queues that store data. The output function reads data from the memory of the application 260 to store the data in one of the transmission queues of the communication protocol stack 280. The input function reads data from one of the receive queues of the communication protocol stack 280 to store the data in the memory of the application 260.

동작을 설명하기 위하여, MS(110)는 IP 패킷을 수신한다. MS(110)의 통신 프로토콜 스택(280)은 IP 패킷을 캡슐해제하고, 이를 전송층(202)로 보낸다(도 3참조). IP 패킷 헤더의 필드는 TCP 또는 UDP중 하나의 전송을 지시한다. 전송층 헤더에 명시된 목적지 포트 번호에 기초하여, 데이터는 특정 소켓에 해당하는 통신 프로토콜 스택(280)의 적당한 수신큐에 라우팅된다. 데이터는 이후에 애플리케이션(260)에 전송될 수 있다.In order to explain the operation, the MS 110 receives an IP packet. The communication protocol stack 280 of the MS 110 decapsulates the IP packet and sends it to the transport layer 202 (see FIG. 3). The field of the IP packet header indicates transmission of either TCP or UDP. Based on the destination port number specified in the transport layer header, the data is routed to the appropriate receive queue of the communication protocol stack 280 corresponding to the particular socket. The data may then be sent to the application 260.

특정한 환경에서, 대기시간 영향을 감소시키기 위하여 프로토콜 스택(280)의 여러 층을 우회하는 패킷을 이용하여 동작하는 것이 바람직하다. 이 패킷은 목적지 정보(즉, 목적지 포트 번호)가 모자라는 가공하지 않은 IP 패킷과 같은 가공하지 않은 패킷화된 데이터를 포함한다. 이처럼, 목적지 애플리케이션은 가공하지 않은 IP 패킷으로부터 결정될 수 없다. 이와 같은 환경에서, 통신 프로토콜 스택(280)은 수신된 가공되지 않은 IP 패킷을 IP 프로토콜을 지원하기 위하여 등록된 모든 소켓으로 전송할 것이다. 이것은 페이로드 데이터가 목적지 애플리케이션으로 전송될 수 있도록 한다. IP 패킷에 해당하는 인터넷 제어 메세징 프로토콜(ICMP) 파싱 엔진이 가공되지 않은 패킷화된 데이터를 수신할 수도 있다. 공지된 ICMP 파싱 엔진은 "INTERNET CONTROL MESSAGE PROTOCOL"로 명명된 RFC 792에서 명시된다. 예컨대, 통신 프로토콜 스택(280)이 수신된 패킷을 스택의 상부에 있는 애플리케이션(260)으로 통과시키기 전에 처리하며, 이는 애플리케이션(260)에 의하여 처리될 비캡슐화량을 감소시킨다.In certain circumstances, it may be desirable to operate with packets that bypass various layers of protocol stack 280 to reduce latency effects. This packet contains raw packetized data, such as raw IP packets that lack destination information (i.e. destination port number). As such, the destination application cannot be determined from raw IP packets. In such an environment, the communication protocol stack 280 will send the received raw IP packet to all registered sockets to support the IP protocol. This allows payload data to be sent to the destination application. An Internet Control Messaging Protocol (ICMP) parsing engine corresponding to an IP packet may receive raw packetized data. Known ICMP parsing engines are specified in RFC 792 named "INTERNET CONTROL MESSAGE PROTOCOL". For example, the communication protocol stack 280 processes the received packet before passing it to the application 260 on top of the stack, which reduces the amount of decapsulation to be processed by the application 260.

반대로, 애플리케이션(260)은 소켓을 사용하여 Um 인터페이스를 거쳐 가공하지 않은 패킷화 데이터를 전송할 수 있으며, 이는 통신 프로토콜 스택(280) 및 애플리케이션(260) 사이의 통신을 용이하게 한다. 게다가, 애플리케이션(260)은 Um 인터페이스를 거쳐 가공하지 않은 패킷화 데이터를 전송할 수 있다. 다음으로, 통신 프로토콜 스택(280)은 패킷화되거나 가공하지 않은 패킷화 데이터를 IP 패킷으로 캡슐화시키며, 이를 Um 인터페이스를 통하여 전송한다. 상기 예에서, 통신 프로토콜 스택(280)은 IP 패킷을 생성하기 위하여 IP 헤더 및 체크섬을 제공한다. 반대로, ICMP의 경우 지정된 프로토콜 타입은 IP 헤더로 복사될 수 있다.In contrast, application 260 may use sockets to send raw packetized data over the Um interface, which facilitates communication between communication protocol stack 280 and application 260. In addition, application 260 may transmit raw packetized data via the Um interface. Next, the communication protocol stack 280 encapsulates the packetized or raw packetized data into IP packets and transmits them through the Um interface. In the above example, communication protocol stack 280 provides an IP header and a checksum to generate an IP packet. In contrast, for ICMP, the specified protocol type can be copied to the IP header.

상술한 바와 같이, 애플리케이션(260)은 통신 프로토콜 스택(280)의 사용시에 내제된 대기시간을 감소시키기 위하여 프로토콜층(202, 204, 206, 208, 210, 212)중 적어도 하나와 애플리케이션(260) 사이의 데이터 통신을 가능하게 하는 소켓을 생성할 수 있다. 즉, 애플리케이션(260)은 전송층(202), 네트워크층(204) 및 링크층(206)을 우회하는 소켓을 생성할 수 있고, 이에 따라 애플리케이션(260)은 페이로드 데이터를 RLP층(210)에 전송할 수 있거나 이로부터 수신할 수 있다. 또한, 애플리케이션(260)은 애플리케이션(260)이 페이로드 데이터를 IS-95층(212)에 전송하거나 이로부터 수신할 수 있는 소켓을 생성할 수 있다.As discussed above, the application 260 may include at least one of the protocol layers 202, 204, 206, 208, 210, 212 and the application 260 to reduce latency inherent in the use of the communication protocol stack 280. You can create sockets that enable data communication between them. That is, the application 260 can create a socket that bypasses the transport layer 202, the network layer 204, and the link layer 206, so that the application 260 sends the payload data to the RLP layer 210. Can be sent to or received from. In addition, application 260 may create a socket through which application 260 may send or receive payload data to IS-95 layer 212.

일 실시예에서, 애플리케이션(260)은 통신 프로토콜 스택(280)을 오픈하고 애플리케이션 식별을 할당하기 위하여 함수 open_netlib()를 호출한다. 애플리케이션 식별은 여러 애플리케이션이 통신 프로토콜 스택(280)과 통신할 수 있게한다(즉, 멀티-태스킹). 예컨대, 함수 open_netlib()에 대한 호출의 일부로서, 애플리케이션(260)은 네트워크 콜백 함수 및 소켓 콜백 함수에 포인터를 지정한다. 네트워크 콜백 함수는 트래픽 채널(즉, Um) 및/또는 링크층(즉, PPP;206)으로부터 판독하고, 이에 기록하고 이를 폐쇄하는 것과 같은 네트워크 지정된 이벤트가 발생할 때마다(또는 인에이블될 때마다) 애플리케이션(260)에게 알려주도록 호출된다. 소켓 콜백 함수는 전송층(즉, TCP)으로부터 판독, 이에 기록, 이를 폐쇄하는 것과 같은 소켓 지정된 이벤트가 발생(또는 인에이블될 때마다)할 때마다 애플리케이션(260)에 통보하도록 호출된다. 통신 네트워크가 트래픽 채널, 링크층 및 전송층중 적어도 하나를 포함하는 것은 명백하다.In one embodiment, application 260 calls function open_netlib () to open communication protocol stack 280 and assign an application identification. Application identification allows several applications to communicate with the communication protocol stack 280 (ie, multi-tasking). For example, as part of a call to the function open_netlib (), the application 260 assigns a pointer to the network callback function and the socket callback function. The network callback function is used whenever (or whenever enabled) a network-specific event occurs, such as reading from, writing to, and closing a traffic channel (ie, Um) and / or link layer (ie, PPP; 206). Called to inform application 260. The socket callback function is called to notify the application 260 whenever a socket specified event occurs (or whenever it is enabled), such as reading from, writing to, and closing the transport layer (ie, TCP). It is apparent that the communication network includes at least one of a traffic channel, a link layer, and a transport layer.

일단 통신 프로토콜 스택(280)이 오픈되면, 함수 pppopen()는 트래픽 채널 및 링크층을 포함하는 네트워크 서브시스템 접속을 개시하도록 호출된다. 이것은 개별 소켓에 의존하지 않는 애플리케이션 범위의 호출이다. 그러나, 애플리케이션 식별이 요구된다. 네트워크 서브시스템 접속을 설정 또는 실패할 때, 네트워크 콜백 함수는 지정된 이벤트 통지를 제공하기 위하여 호출된다. 네트워크 서브시스템은 예컨대 트래픽 채널이 설정되지 않는다면 실패할 것이다. 게다가 네트워크 서브 시스템 문자는 함수 net_ioctl()에 대한 호출로 세팅될 수 있다. 이러한 호출은 소켓의 데이터율을 지정할 수 있다.Once the communication protocol stack 280 is opened, the function pppopen () is called to initiate a network subsystem connection that includes the traffic channel and link layer. This is an application scoped call that does not depend on individual sockets. However, application identification is required. When establishing or failing a network subsystem connection, the network callback function is called to provide the specified event notification. The network subsystem will fail if, for example, the traffic channel is not established. In addition, the network subsystem character can be set in a call to the function net_ioctl (). This call can specify the data rate of the socket.

일단 네트워크 서브시스템 접속이 설정되면, 소켓(들)이 생성되어 함수 socket()에 대한 호출에 의하여 개시될 수 있다. 그러나 소켓 함수가 사용될 수 있기 전에, 함수 socket()에 대한 호출은 소켓 디스크립터로 복귀할 수 있다. 이후, 애플리케이션(260)은 비동기 통지를 수신하기 위하여 지정된 이벤트를 등록하도록 함수 async_select()를 호출할 수 있다. 이러한 등록은 통지를 필요로 하는 지정된 이벤트의 비트 마스크(즉, 멀티 이벤트 OR'과 함께) 및 소켓 디스크립터를 지정하기 위하여 함수 호출의 일부로서 애플리케이션(260)에 의하여 수행될 수 있다. 만일 지정된 이벤트가 발생하고(즉, 인이에블되고), 통신 프로토콜 스택(280)또는 API(270)에 의하여 검출된다면, 소켓 콜백 함수는 비동기 통지를 제공하기 위하여 호출된다. 콜백 함수는 신호, 원격 방식 호출(RPC)를 통한 메세지를 포함하는 메세지 또는 하드웨어 또는 소프트웨어 인터럽트를 사용하여 지정된 이벤트를 애플리케이션(260)에게 통보할 것이다.Once the network subsystem connection is established, the socket (s) can be created and initiated by a call to the function socket (). However, before a socket function can be used, a call to the function socket () can return to the socket descriptor. The application 260 can then call the function async_select () to register the specified event to receive the asynchronous notification. Such registration may be performed by the application 260 as part of a function call to specify a bit mask (ie, with a multi-event OR ') and a socket descriptor of the specified event requiring notification. If the specified event occurs (ie, is enabled) and is detected by communication protocol stack 280 or API 270, the socket callback function is called to provide asynchronous notification. The callback function will notify the application 260 of the specified event using a signal, a message including a message via a remote mode call (RPC), or a hardware or software interrupt.

일단 애플리케이션(260)이 지정된 이벤트를 통보하면, 지정된 이벤트가 서비스될지를 결정하기 위하여 함수 getnextevetn()를 호출할 것이다. 이러한 함수는 지정된 소켓 디스크립터를 위하여 발생된 지정 이벤트 마스크를 반송한다. 또한 발생한 지정 이벤트 마스크의 비트를 소거한다. 그러므로 애플리케이션(260)은 더 이상 디스에이블된 지정 이벤트의 통지를 수신하지 않을 것이다. 애플리케이션(260)은 함수 async_select()에 대한 후속 호출에 의하여 이러한 지정된 이벤트를 재등록(즉, 재인에이블)시켜야 한다.Once the application 260 notifies the specified event, it will call the function getnextevetn () to determine if the specified event will be serviced. This function returns the specified event mask generated for the specified socket descriptor. It also clears the bits of the specified specified event mask. Therefore, application 260 will no longer receive notification of disabled designated events. The application 260 must reregister (ie, re-enable) this specified event by subsequent calls to the function async_select ().

또한, 애플리케이션(260)은 지정된 이벤트의 비트 마스크의 해당 비트를 소거함으로서 등록된 지정 이벤트를 변경시킬 것이다. 만일 비트가 이미 비트 마스크에서 소거되었다면, 요청은 단순하게 무시된다. 간단히, 이벤트 통보가 함수 async_deselect()에 대한 호출을 통하여 퍼-이벤트 베이시스(per-event basis)에 근거하여 디스에이블될 수 있다.Application 260 will also change the registered designated event by clearing the corresponding bit of the bit mask of the designated event. If the bit has already been cleared in the bit mask, the request is simply ignored. In brief, event notification may be disabled on a per-event basis via a call to the function async_deselect ().

도 4 및 5는 지정된 이벤트를 검출하는 흐름도이다. 도 4에 도시된 바와 같이, 통신 프로토콜 스택(280)은 지정된 이벤트를 등록하기 위하여 블록 400에서 애플리케이션(260)을 대기한다. 지정된 이벤트가 등록된 후, 통신 프로토콜 스택(280)은 블록 402에서 메모리를 폴링(poll)한다. 블록 404에서, 지정된 이벤트는 블록 402의 폴링된 정보에 기초하여 검출될 수 있다. 블록 406에서, 기록 이벤트는 통신 프로토콜 스택(280)의 메모리(즉, 전송 큐)가 충분한 양의 데이터를 수용할 수 있을 때 검출된다. 데이터는 애플리케이션(260)으로부터 전송될 수 있다. 만일 블록 404의 폴링된 정보가 만족스럽지 않다면(즉, 지정된 이벤트가 발생하지 않는다면), 통신 프로토콜 스택(280)은 블록 402에서와 같이 메모리를 계속적으로 폴링한다.4 and 5 are flowcharts for detecting designated events. As shown in FIG. 4, communication protocol stack 280 waits for application 260 at block 400 to register for a designated event. After the designated event is registered, the communication protocol stack 280 polls the memory at block 402. At block 404, the designated event may be detected based on the polled information of block 402. At block 406, a write event is detected when the memory (ie, transmission queue) of the communication protocol stack 280 can accommodate a sufficient amount of data. Data may be sent from the application 260. If the polled information in block 404 is not satisfactory (ie, no designated event occurs), the communication protocol stack 280 continues to poll the memory as in block 402.

도 5에서, 통신 프로토콜 스택(280)은 블록 500에 지시된 바와 같이 지정된 이벤트를 등록하기 위하여 애플리케이션(260)을 대기한다. 이 시간동안, 인터럽트 통지가 디스에이블될 수 있다. 이처럼, 업터럽트 통지가 트리거될 수 없거나 트리거할 수 없다. 지정된 이벤트가 등록된 후, 블록 500에서처럼, 블록 502에서 인터럽트 통지가 지정된 이벤트의 발생에 기초하여 트리거링될 수 있다. 예컨대 판독 이벤트는 데이터가 통신 프로토콜 스택(280)의 메모리(즉, 수신큐)에 기록될 때 발생한다. 그러므로 블록 504에서, 판독 이벤트는 이벤트의 발생으로 인하여 트리거링된 인터럽트 통지를 수신할 때 통신 프로토콜 스택(28)에 의하여 검출된다. 통신 프로토콜 스택(280)의 메모리에 저장된 데이터는 통신 네트워크로부터 가능하다. 게다가, 판독된 이벤트의 경우, 저장된 데이터는 애플리케이션(260)에 전송될 수 있다.In FIG. 5, communication protocol stack 280 waits for application 260 to register the designated event as indicated at block 500. During this time, interrupt notification can be disabled. As such, the interrupt notification may or may not be triggered. After the designated event is registered, at block 502, an interrupt notification may be triggered based on the occurrence of the designated event, as in block 500. For example, a read event occurs when data is written to memory (ie, receive queue) of communication protocol stack 280. Thus, at block 504, a read event is detected by communication protocol stack 28 when receiving an interrupt notification triggered due to the occurrence of the event. Data stored in the memory of the communication protocol stack 280 is available from the communication network. In addition, for read events, the stored data can be sent to the application 260.

끝으로, 폐쇄 이벤트는 소켓이 전송층과 같은 데이터 링크가 종료되기 때문에 재사용 가능할 때에 검출된다.Finally, a closure event is detected when the socket is reusable because the data link, such as the transport layer, is terminated.

비동기 접속(도 6참조) 및 비동기 입력(도 7참조)의 다음 예는 비동기 이벤트 통지의 사용을 도시하기 위하여 제공된다.The following example of an asynchronous connection (see FIG. 6) and asynchronous input (see FIG. 7) is provided to illustrate the use of asynchronous event notification.

도 6을 참조하면, 통신 프로토콜 스택(280)이 모두 입력되고 콜백 함수가 함수 open_netlib()에 대한 호출에 의하여 지정된다. 함수 pppopen()(A)에 대한 호출은 네트워크 서브시스템 접속(B)을 개시한다. 네트워크 서브시스템 접속이 설정된 후, 콜백 함수가 네트워크 서브시스템의 이용가능성을 보고하기 위하여 호출된다(C).Referring to FIG. 6, the communication protocol stack 280 is all input and a callback function is designated by a call to the function open_netlib (). The call to function pppopen () (A) initiates a network subsystem connection (B). After the network subsystem connection is established, a callback function is called to report the availability of the network subsystem (C).

소케시이 오픈되고 할당되었다면, 함수 connect()에 대한 호출(D)이 TCP 접속을 개시한다(E). 게다가, 애플리케이션(260)은 수신 통보에 관한 지정 이벤트를 등록하기 위하여 함수 async_select()를 호출한다(F). 이 경우, 중요한 지정된 이벤트는 접속을 설정할 때 발생하는 기록 이벤트이다.If the cache is open and allocated, a call to the function connect () (D) initiates a TCP connection (E). In addition, the application 260 calls the function async_select () to register the specified event regarding the receipt notification (F). In this case, an important designated event is a recording event that occurs when establishing a connection.

접속을 설정할 때, 콜백 함수는 지정된 이벤트가 마스크에서 등록된다면 호출될 것이다. 만일 그러하다면 콜백 함수는 비동기 통지를 제공하기 위하여 호출된다(G). 일단 애플리케이션(260)이 통지되면, 어떤 지정된 이벤트가 발생하였는지를 결정(I)하기 위하여 함수 getnextevent()(H)를 호출할 것이다. 또한 이 호출은 마스크내의 이벤트(즉, 기록 이벤트)의 비트를 소거한다. 애플리케이션(260)은 함수 async_select()에 대한 호출에 의하여 지정된 이벤트의 후속 통지를 재등록하여야 한다.When establishing a connection, the callback function will be called if the specified event is registered in the mask. If so, the callback function is called (G) to provide asynchronous notification. Once the application 260 is notified, it will call the function getnextevent () (H) to determine (I) which specified event has occurred. This call also clears the bits of the event (ie write event) in the mask. The application 260 must re-register subsequent notifications of the events specified by the call to the function async_select ().

도 7에서, 비동기 소켓 판독의 일 예가 제공된다. 판독을 시작하기 위하여, 애플리케이션(260)은 함수 read()에 대한 호출을 작성한다(A). 판독할 데이터가 부족한 것을 가정하면, 애플리케이션(260)은 수신 통지를 위한 이벤트(즉, 마스크의 해당 비트를 세팅)를 등록하기 위하여 함수 async_select()를 호출한다(B). 이 경우, 중요한 지정된 이벤트는 판독 이벤트이며, 이는 애플리케이션(260)에 의하여 판독할 데이터가 존재할 때 발생한다.In FIG. 7, an example of asynchronous socket read is provided. To begin reading, application 260 makes a call to function read () (A). Assuming there is not enough data to read, application 260 calls function async_select () to register an event for receipt notification (i.e., set the corresponding bit of the mask) (B). In this case, an important designated event is a read event, which occurs when there is data to be read by the application 260.

수신 큐에 데이터를 저장할 때, 콜백 함수는 판독 이벤트가 마스크내에서 지정된다면 호출될 것이다. 만일 그러하다면 콜백 함수는 비동기 통지를 제공하기 위하여 호출된다(C). 일단 애플리케이션(260)이 통지되었다면, 어떤 이벤트가 발생하였는지를 결정(E)하기 위하여 함수 getnextevent()를 호출한다(D). 또한 이러한 호출은 마스크의 이벤트의 비트를 소거한다(F). 애플리케이션(260)은 함수 async_select()에 대한 호출에 의하여 이벤트의 후속 통지를 다시 인에이블시켜야 한다. 끝으로, 수신 큐에 저장된 데이터를 판독하기 위하여, 애플리케이션(260)은 함수 read()에 대한 호출을 작성한다(G).When storing data in the receive queue, the callback function will be called if a read event is specified in the mask. If so, the callback function is called to provide asynchronous notification (C). Once the application 260 has been notified, the function getnextevent () is called (D) to determine (E) which event occurred. This call also clears the bit of the event of the mask (F). The application 260 must re-enable subsequent notification of the event by a call to the function async_select (). Finally, in order to read the data stored in the receive queue, the application 260 makes a call to the function read () (G).

도 8-10에서, 본 발명의 일 실시예의 상태 머신이 도시되어 있다. 도 8-9에서, 통신 프로토콜 스택(280)이 오픈되고 네트워크 서브시스템 접속(즉, 트래픽 채널 및 필요하다면 링크층-가공되지 않은 소켓은 네트워크 서브시스템을 우회할 수 있다)이 설정된다. 당업자는 상태에 관한 여러 명칭이 본 발명의 범위를 벗어나지 않는다면 가능하다는 것을 이해할 것이다.8-10, a state machine of one embodiment of the present invention is shown. In Figures 8-9, communication protocol stack 280 is opened and a network subsystem connection is established (i.e., the traffic channel and, if necessary, the link layer-unprocessed socket may bypass the network subsystem). Those skilled in the art will appreciate that various names of states are possible without departing from the scope of the present invention.

상태들사이에서 비동기적으로 전이할 수 있는 상태 머신은 판독, 기록 및 폐쇄와 같은 지정된 이벤트를 제어(즉, 인에이블 및 디스에이블)한다. 지정된 이벤트는 동작의 시작시에 디스에이블될 수 있으며 애플리케이션(260)이 MS(110)의 상태를 식별하는 것을 돕기 위하여 소정의 상태에서 인에이블될 수 있다.State machines that can transition asynchronously between states control (ie, enable and disable) specified events such as reads, writes, and closures. The designated event may be disabled at the start of the operation and may be enabled in a given state to help the application 260 identify the state of the MS 110.

또한, API(270)는 API(270)의 상태 및 애플리케이션(260)에 의하여 호출된 기능타입에 기초하여 애플리케이션(260)에 특정된(즉, 단순히 일반적이지 않은) 지정 상태 메세지를 보고한다. 지정 상태 메세지는 근본적인 통신 네트워크의 상태를 반영한다. 상태 메세지는 함수 호출의 방법으로서 애플리케이션(260)에 보고된다.In addition, API 270 reports a specific status message specific to the application 260 (ie, simply not generic) based on the state of API 270 and the function type called by application 260. Assignment status messages reflect the state of the underlying communications network. Status messages are reported to the application 260 as a method of function invocation.

도 8에서, API(270)의 TCP 소켓을 위한 상태도가 도시되어 있다. 초기화되지 않은 소켓은 "널" 상태(800)에서 시작한다. 소켓은 아직 할당되지 않았기 때문에 "존재"하지 않는다. 소켓이 생성될 수 있으며 소켓관련 함수를 사용하기 위하여 소켓 디스크립터를 복귀시키는 함수 socket()에 대한 호출에 의하여 개시된다. 함수 socket()에 대한 함수이후, 상태 머신은 "초기" 상태(805)로의 전이한다.In FIG. 8, a state diagram for the TCP socket of the API 270 is shown. Uninitialized sockets start in the "null" state 800. The socket does not "exist" because it has not yet been allocated. A socket can be created and initiated by a call to the function socket () which returns a socket descriptor to use the socket-related function. After the function for function socket (), the state machine transitions to the "initial" state 805.

초기 상태(805)에서, 상태 머신은 TCP 접속의 가능성이 함수 close()에 대한 호출에 의하여 종료될 때마다 널 상태(800)로 다시 전이한다. 함수 close()에 대한 호출은 모든 소켓 관련 자원을 릴리스한다. 한편, 호출 connect()에 대한 호출은 TCP 접속을 개시하고 상태 머신을 "오프닝" 상태(810)으로 전이한다.In the initial state 805, the state machine transitions back to the null state 800 whenever the possibility of a TCP connection is terminated by a call to the function close (). The call to the function close () releases all socket related resources. On the other hand, the call to call connect () initiates a TCP connection and transitions the state machine to the "opening" state 810.

오프닝 상태(810)에서, 상태 머신은 (1) 네트워크 서브시스템 실패가 발생하며, (2) TCP 접속실패, 또는 (3) 변경된 IP 어드레스가 존재할 때마다 "폐쇄된" 상태(815)로 전이한다. 또한 TCP 접속을 종결시키는 함수 close()에 대한 호출 이후, 상태머신은 소켓을 "폐쇄" 상태(820)로 전이하며, 종결 절차가 개시된다. 끝으로, 상태 머신은 TCP 접속이 설정될 때 "오픈" 상태(825)로 전이한다.In the opening state 810, the state machine transitions to (closed) state 815 whenever (1) a network subsystem failure occurs, (2) a TCP connection failure, or (3) a changed IP address is present. . Also, after the call to the function close () to close the TCP connection, the state machine transitions the socket to the "closed" state 820, and the termination procedure is initiated. Finally, the state machine transitions to an "open" state 825 when a TCP connection is established.

오픈 상태(825)에서, 소켓은 판독 및 기록을 위하여 오픈된다. 특히, 기록이벤트가 즉각적으로 인에이블되는 동안, 판독 이벤트는 데이터가 통신 프로토콜 스택(280)의 메모리에 저장되는가에 기초하여 인에이블된다. 상태 머신은 (1) 네트워크 서브시스템 실패가 발생하고, (2) TCP 접속을 설정하기 위한 실패, (3) 네크워크 서버에 의하여 개시된 TCP 리셋, TCP 중단 또는 TCP 폐쇄와 같은 TCP 접속을 종결시키려는 시도 및 (4) IP 어드레스의 변화가 발생할 때마다 폐쇄된 상태(815)로 전이한다. 함수 close()에 대한 호출에 의하여 애플리케이션 개시된 TCP 접속 종료는 폐쇄 상태(820)로 상태 머신을 전이시킨다.In the open state 825, the socket is open for reading and writing. In particular, while the write event is enabled immediately, the read event is enabled based on whether the data is stored in the memory of the communication protocol stack 280. The state machine is responsible for (1) a network subsystem failure, (2) a failure to establish a TCP connection, (3) an attempt to terminate a TCP connection, such as a TCP reset initiated by a network server, a TCP abort, or a TCP closure, and (4) Whenever a change in the IP address occurs, the state transitions to the closed state 815. The TCP connection termination initiated by the call to the function close () transitions the state machine to the closed state 820.

폐쇄 상태(815)에서, 판독, 기록 및 폐쇄 이벤트가 모두 선언된다. TCP 접속을 종결하는 함수 close()에 대한 호출이후, 상태 머신은 소켓을 비우고 재사용할 수 있도록 하는 널 상태(800)로 전이한다.In the closed state 815, both read, write and close events are declared. After a call to the function close () which terminates the TCP connection, the state machine transitions to a null state 800 which allows the socket to be emptied and reused.

폐쇄 상태(820)에서, 상태 머신은 (1) 네트워크 서브시스템 실패가 발생하고, (2) 네트워크 서버에 의하여 개시된 TCP 리셋 또는 TCP 폐쇄와 같은 TCP 접속을 종결시키려는 시도, (3) 타이머의 경과 및 (4) IP 어드레스의 변화가 발생할 때마다 "폐쇄 대기" 상태(830)로 전이한다. TCP 접속을 종결시키는 지연에 대한 보호를 위하여, API(270)는 TCP 접속 종결이 시작시 활성화되는 타이머를 실행시킨다. 타이머의 경과는 상태 머신을 폐쇄 대기 상태(830)로 상태 머신을 전이시킨다.In the closed state 820, the state machine may (1) attempt to terminate a TCP connection, such as a network subsystem failure, (2) a TCP reset or a TCP close initiated by a network server, (3) the elapse of a timer, and (4) Whenever a change in the IP address occurs, the state transitions to the "closed wait" state 830. To protect against the delay of terminating a TCP connection, the API 270 runs a timer that is activated at the start of the TCP connection termination. The elapse of the timer transitions the state machine to the closed wait state 830.

폐쇄 대기 상태(830)에서, 함수 close()에 대한 호출은 TCP 접속을 종결시키고 상태 머신을 널 상태(800)로 전이시킨다. 폐쇄 이벤트는 이 상태(830)에서 선언된다.In the closed wait state 830, a call to the function close () terminates the TCP connection and transitions the state machine to the null state 800. A closure event is declared in this state 830.

표 1-3은 API(270)에 의하여 지원되는 지정된 상태 메세지를 도시한다. 널 상태(표 1-3에 도시되지 않음)에서, "어떠한 추가의 자원되 이용될 수 없음"을 기술한 지정된 상태 메세지가 애플리케이션(260)에 보고될 것이다.Table 1-3 shows the designated status messages supported by the API 270. In the null state (not shown in Table 1-3), a designated status message describing "No additional resources are available" will be reported to the application 260.

표 1Table 1

상태condition 접속 함수 타입을 위한 지정된 상태 메세지The specified status message for the connection function type 초기화reset 만일 블록킹 함수 호출이라면, 동작이 블록킹될 것이다.If it is a blocking function call, the operation will block. 오프닝opening 접속 진행중Connection in progress 오픈open 접속 설정Connection settings 폐쇄중Closing TCP 접속이 발생 시도의 부족으로 인하여 존재하지 않거나 접속 시도 실패TCP connection does not exist due to lack of attempts to occur or connection attempt failed 폐쇄대기Closed air TCP 접속이 발생 시도의 부족으로 인하여 존재하지 않거나 접속 시도 실패; 또는일반 네트워크 에러; 근원 네트워크가 이용될 수 없음TCP connection does not exist due to lack of attempt to occur or connection attempt failed; Or a general network error; Source network cannot be used 폐쇄Closure 일반 네트워크 에러; 근원 네트워크가 이용될 수 없음;접속 시도가 서버 리셋으로 인하여 거절됨;진행중인 접속 타임아웃트; 또는PPP resync로 인하여 TCP 접속 리셋을 초래하는 네트워크 레벨의 IP 어드레스가 변화됨.General network error; Source network not available; connection attempt rejected due to server reset; ongoing connection timeout; Or PPP resync caused a network-level IP address change that caused a TCP connection reset.

표 2TABLE 2

상태condition I/O 기능 타입을 위한 지정된 상태 메세지Specified status message for the I / O function type 초기화reset 발생 시도의 부족으로 인하여 TCP 접속이 존재하지 않거나 접속 시도 실패TCP connection does not exist or connection attempt failed due to lack of attempts 오프닝opening 민일 블록킹 함수 호출이었다면, 동작은 블록킹될 것임If it was a private blocking function call, the operation would block 오픈open 만일 블록킹 함수 호출이었다면, 동작은 블록킹될 것임(판독/기록된 바이트수)If it was a blocking function call, the operation would block (read / bytes read) 폐쇄중Closing 생성 시도의 부족으로 인하여 TCP 접속이 존재하지 않거나 접속 시도 실패TCP connection does not exist or connection attempt failed due to lack of creation attempt 폐쇄대기Closed air TCP 접속이 발생 시도의 부족으로 인하여 존재하지 않거나 접속 시도 실패; 또는일반 네트워크 에러; 근원 네트워크가 이용될 수 없음TCP connection does not exist due to lack of attempt to occur or connection attempt failed; Or a general network error; Source network cannot be used 폐쇄Closure 일반 네트워크 에러; 근원 네트워크가 이용될 수 없음;서버가 접속을 리셋함; 서버 리셋의 수신;접속 시도가 서버 리셋으로 인하여 거절됨;타임아웃트 또는 다른 이유로 인하여 TCP 접속 중단; 또는TCP 접속이 생성 시도의 부족으로 인하여 존재하지 않거나 접속 시도 실패General network error; Source network not available; server resets connection; Receiving a server reset; connection attempt rejected due to a server reset; TCP connection interrupted due to timeout or other reasons; Or TCP connection does not exist due to lack of attempt to create or connection attempt failed

표 3TABLE 3

상태condition 폐쇄 함수 타입을 위한 지정된 상태 메세지The specified status message for the closed function type 초기화reset 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported 오프닝opening 블록킹 함수 호출이라면 동작은 블록킹될 것임If it is a blocking function call, the operation will block 오픈open 블록킹 함수 호출이라면 동작은 블록킹될 것임If it is a blocking function call, the operation will block 폐쇄중Closing 블록킹 함수 호출이라면 동작은 블록킹될 것임If it is a blocking function call, the operation will block 폐쇄대기Closed air 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported 폐쇄Closure 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported

도 9는 API(270)의 UDP 소켓을 위한 상태도를 도시한다. 초기화되지 않은 소켓은 "널" 상태(900)에서 시작한다. 상술한 바와 같이, 널 상태(800)와 관련하여, 소켓은 할당되지 않았기 때문에 "존재"하지 않는다. 소켓은 생성될 수 있고 함수 socket()에 대한 함수에 의하여 개시되고, 이 함수는 소켓 관련 함수를 사용하기 위하여 소켓 디스크립터를 복귀시킨다. 함수 socket()에 대한 호출이후, 상태 머신은 "오픈" 상태(905)로 전이한다.9 shows a state diagram for the UDP socket of the API 270. Uninitialized sockets start in a "null" state 900. As discussed above, with respect to the null state 800, the socket is not "present" because it is not allocated. The socket can be created and initiated by a function for function socket (), which returns a socket descriptor to use the socket related functions. After the call to the function socket (), the state machine transitions to the "open" state 905.

오픈 상태(905)에서, 소켓은 판독 및 기록을 위하여 오픈된다. 특히, 기록 이벤트는 즉각적으로 인에이블되며, 판독 이벤트는 데이터가 통신 프로토콜 스택(280)의 메모리에 저장되는가에 따라 인에이블된다. 상태 머신은 네트워크 서브시스템 실패가 발생할 때마다 "폐쇄" 상태(910)로 전이한다. 함수 close()에 해단 호출과 같은 애플리케이션 개시 UDP 접속 종료는 널 상태(900)로 상태머신을 정이시킨다.In the open state 905, the socket is open for reading and writing. In particular, the write event is immediately enabled and the read event is enabled depending on whether the data is stored in the memory of the communication protocol stack 280. The state machine transitions to a "closed" state 910 whenever a network subsystem failure occurs. Application-initiated UDP connection termination, such as a disallow call to function close (), causes the state machine to transition to a null state 900.

폐쇄 상태(910)에서, 판독, 기록 및 폐쇄 이벤트가 모두 인에이블된다. UDP 접속을 종결시키는 함수 close()에 대한 호출이후, 상태 머신은 소켓을 비우고 이를 재사용할 수 있도록 하는 널 상태(900)로 소켓을 전이한다.In the closed state 910, read, write and close events are all enabled. After a call to the function close () that terminates the UDP connection, the state machine transitions the socket to a null state 900 that frees the socket and allows it to be reused.

표 4-6은 API(270)에 의하여 지원된 지정 상태 메세지를 도시한다. 널 상태(표 4-6에는 도시하지 않음)에서, 상술한 바와 같이 "어떠한 추가 자원도 이용될 수 없음"을 나타내는 지정된 상태 메세지가 애플리케이션(260)에 보고될 수 있다.Table 4-6 shows the designated status messages supported by the API 270. In the null state (not shown in Tables 4-6), a designated status message may be reported to the application 260 indicating "no additional resources are available" as described above.

표 4Table 4

상태condition 접속 함수 타입을 위한 지정된 상태 메세지The specified status message for the connection function type 오픈open 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported 폐쇄Closure 일반 네트워크 에러; 근원 네트워크가 이용될 수 없음General network error; Source network cannot be used

표 5Table 5

상태condition I/O 기능 타입을 위한 지정된 상태 메세지Specified status message for the I / O function type 오픈open 만일 블록킹 함수 호출이었다면, 동작은 블록킹될 것임(판독/기록된 바이트수)If it was a blocking function call, the operation would block (read / bytes read) 폐쇄Closure 일반 네트워크 에러; 근원 네트워크가 이용될 수 없음General network error; Source network cannot be used

표 6Table 6

상태condition 폐쇄 함수 타입을 위한 지정된 상태 메세Specified state message for closed function type 오픈open 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported 폐쇄Closure 성공-어떠한 에러 상태도 보고되지 않음Success-no error status reported

도 10은 트래픽 채널(즉, Um) 및 링크층(즉, PPP(206))과 같은 네트워크 서브시스템을 제어하기 위한 상태도를 도시한다. 함수 open_netlib()에 대한 호출은 네트워크 서브시스템을 오픈하고 소켓을 "폐쇄" 상태(1000)으로 초기화시킨다. 함수 pppopen()에 대한 호출은 "오프닝" 상태(1005)으로 소켓을 전이시키는 네트워크 서브시스템 접속을 개시한다. 또한, 입력 PPP 호출에 의하여 MS(110)에 대한 페이지는 소켓을 오프닝 상태(1005)로 전이시킨다. 두 경우, 성공적인 협상이었다면, MS(110)는 트래픽 채널을 통하여 RLP 및 PPP를 모두 동기화 및 설정한다.10 shows a state diagram for controlling network subsystems such as traffic channels (ie, Um) and link layer (ie, PPP 206). The call to the function open_netlib () opens the network subsystem and initializes the socket to the "closed" state (1000). The call to the function pppopen () initiates a network subsystem connection that transitions the socket to the "opening" state 1005. In addition, the page to MS 110 transitions the socket to the opening state 1005 by an input PPP call. In both cases, if successful negotiation, MS 110 synchronizes and establishes both RLP and PPP over the traffic channel.

오프닝 상태(1005)에서, 소켓은 네트워크 서브시스템 접속이 설정될 때 "오픈" 상태(1010)로 전이한다. 한편, 소켓은 다시 네트워크 서브시스템 접속이 설정되지 않는다면 폐쇄 상태(1000)로 전이한다.In the opening state 1005, the socket transitions to an "open" state 1010 when a network subsystem connection is established. Meanwhile, the socket transitions to the closed state 1000 unless a network subsystem connection is established again.

오픈 상태(1010)에서, 콜백 함수는 판독, 기록 및 폐쇄와 같은 애플리케이션(1060) 지정된 이벤트가 인에이블되었는지를 식별하기 위하여 호출된다. 이때, MS(110)는 트래픽 채널을 통하여 통신할 수 있다. 그러나 소켓은 콜백 함수를 호출하는 네트워크 서브시스템 실패가 발생할 때마다 폐쇄 상태(1000)로 전이한다. 함수 close()에 대한 호출에 의하여 애플리케이션 개시 네트워크 서브시스템 접속 종료는 소켓을 "폐쇄" 상태(1015)로 전이시킨다.In the open state 1010, a callback function is called to identify whether an application 1060 specified event, such as read, write, and close, is enabled. In this case, the MS 110 may communicate through a traffic channel. However, the socket transitions to the closed state 1000 whenever a network subsystem failure that calls the callback function occurs. The application initiation network subsystem connection termination by the call to the function close () transitions the socket to the "closed" state 1015.

폐쇄 상태(1015)에서, 소켓은 네트워크 서브시스템 접속이 종료될 때마다 폐쇄 상태(1000)로 전이한다. 폐쇄 상태(1000)에서, 콜백 함수는 애플리케이션(260) 지정 이벤트가 인에이블되는지를 식별하도록 호출된다.In the closed state 1015, the socket transitions to the closed state 1000 whenever the network subsystem connection is terminated. In the closed state 1000, the callback function is called to identify whether the application 260 specified event is enabled.

표 7은 특정 함수 호출에 해당하고 API(270)에 의하여 지원되는 지정 상태 메세지를 도시한다.Table 7 shows the designated status messages that correspond to specific function calls and are supported by the API 270.

표 7TABLE 7

함수 호출(및 설명)Function call (and description) 지정된 상태 메세지The specified status message socket()소켓 생성 및소켓 디스크립터 복귀socket creation and socket descriptor return 어드레스가 지원되지 않음;유효하지 못한 애플리케이션 식별자;프로토콜이 소켓에 대하여 잘못된 타입;유효하지 못하거나 지원되지 않는 소켓 파라미터;지원되지 않는 프로토콜; 또는더이상의 소켓 자원이 이용될 수 없음Address not supported; invalid application identifier; invalid type for protocol socket; invalid or unsupported socket parameter; unsupported protocol; Or no more socket resources are available connect()TCP 접속 초기화connect () Initiate TCP connection 만일 블록킹 함수 호출이라면, 동작이 블록킹됨;유효하지 못한 소켓 디스크립터;접속 시도가 서버 리셋의 수신으로 인하여 거절됨;접속 타임아웃트;애플리케이션 버퍼는 유효 어드레스 공간의 일부가 아님;어드레스 길이 또는 메세지 길이를 위하여 지정된 유효한 크기;PPP resync로 인하여 TCP 접속을 유발시키는 네트워크 레벨 IP 어드레스 변경; 진행중인 접속;소켓 디스크립터가 미리 접속됨;일반 네트워크 에러; 근원 네트워크가 이용불가능;유효하지 못한 서버 어드레스 지정됨;어드레스가 이미 사용중; 또는목적지 어드레스 요구If blocking function call, operation is blocked; invalid socket descriptor; connection attempt rejected due to receipt of server reset; connection timeout; application buffer is not part of the effective address space; address length or message length A valid size specified for the network level IP address change causing a TCP connection due to PPP resync; Connection in progress; socket descriptor pre-connected; general network error; Source network unavailable; invalid server addressed; address already in use; Or destination address request pppopen()네트워크 접속 설정pppopen () Network Connection Setting 만일 블록킹 함수 호출이라며, 동작이 블록킹됨;유효하지 못한 애플리케이션 식별자 지정됨; 또는네트워크 접속 종료 진행If it is a blocking function call, the operation is blocked; invalid application identifier specified; Or terminate network connection net_ioctl()네트워크 문자 세팅net_ioctl () network character settings 유효하지 못한 애플리케이션 식별자 지정됨;유효하지 못한 요청 또는 파라미터;네트워크 접속 설정됨; 또는네트워크 접속 진행Invalid application identifier specified; invalid request or parameter; network connection established; Or network connection open_netlib()통신 프로토콜 스택 오픈open_netlib () Open communication protocol stack 더 이상의 애플리케이션 이용가능-최대 오픈 애플리케이션수가 초과되지 않음No more applications available-maximum open applications not exceeded close_netlib()통신 프로토콜 스택 폐쇄close_netlib () Close communication protocol stack 유효하지 못한 식별자 지정됨;할당된 소켓 존재; 또는네트워크 접속이 여전히 설정Invalid identifier specified; presence of allocated socket; Or network connection is still set up bind()클라이언트 소켓을 위하여, 로컬 어드레스 및 소켓에 포트값 부착bind () For client sockets, attaches a local address and port value to the socket 유효하지 못한 소켓 디스크립터 지정됨;유효하지 못하거나 지원되지 않는 동작 지정됨;어드레스가 이미 사용중;유효하지 못한 동작; 또는유효하지 못한 파라미터 지정됨Invalid socket descriptor specified; invalid or unsupported operation specified; address is already in use; invalid operation; Or invalid parameter specified close()재사용하기 위하여 소켓을 비우도록 폐쇄close () close to empty the socket for reuse 유효하지 못한 디스크립터 지정됨; 또는만일 블록킹 함수 호출이라면, 동작은 블록킹됨Invalid descriptor specified; Or, if it is a blocking function call, the operation is blocked pppclose()네트워크 접속 폐쇄pppclose () Close network connection 만일 블록킹 함수 호출이라면, 동작은 블록킹됨;유효하지 못한 애플리케이션 식별자 지정됨; 또는네트워크 접속의 종료 진행중If it is a blocking function call, the operation is blocked; invalid application identifier specified; Or termination of network connection in progress

netstatus()네트워크 접속 상태를 보고netstatus () reports network connection status 유효하지 못한 식별자 지정됨;근원 네트워크가 이용될 수 없음;네트워크 접속 설정되고 이용가능;네트워크 접속 진행중;네트워크 접속 종료 진행중;어떠한 CDMA(즉, 트래픽 채널) 서비스도 이용될 수 없음;CDMA 서비스 이용가능, 그러나 기지국이 서비스 옵션을 지원하지 않기 때문에 생성 실패; 또는CDMA 서비스 이용가능, 그러나 생성 실패; 그러나 기지국이 서비스 옵션을 지원하지 않기 때문이 아님Invalid identifier specified; source network not available; network connection established and available; network connection in progress; network connection termination in progress; no CDMA (i.e. traffic channel) service is available; CDMA service available, However, creation failed because the base station does not support the service option; Or CDMA service available, but creation failed; But not because the base station does not support the service option async_select()특정 소켓을 위한 지정된 이벤트 등록async_select () Register the specified event for a specific socket 유효하지 못한 소켓 디스크립터 지정됨Invalid socket descriptor specified getnextevent()다음 소켓 스크립터 및 발생된 이벤트를 획득getnextevent () Get the next socket script and the raised event. 유효하지 못한 소켓 스크립터 지정됨; 또는유효하지 못한 애플리케이션 식별자 지정됨Invalid socket script specified; Or invalid application identifier specified write()지정된 개수의 바이트-연속적이거나 비연속적인 버퍼에 기록write () writes to the specified number of byte-contiguous or non-contiguous buffers 유효하지 못한 디스크립터 지정됨;TCP 접속 존재하지 않음;서버가 TCP 접속을 리셋함;타임아웃트 또는 다른 실패로 인하여 TCP 접속 중단;네트워크 레벨 IP 어드레스 변경되며, 이는 PPP resync로 인하여 TCP 접속을 리셋하도록 함;네트워크 이용불능;애플리케이션 버퍼는 어드레스 공간의 유효한 부분이 아님; 또는기록을 위한 이용가능 빈 버퍼 없음Invalid descriptor specified; TCP connection does not exist; server resets TCP connection; TCP connection is interrupted due to timeout or other failure; network level IP address is changed, which causes TCP connection to be reset due to PPP resync Network unavailable; application buffer is not a valid part of the address space; Or no free buffer available for writing read()지정된 개수의 바이트-연속적이거나 비연속ㅈ거인 버퍼를 판독read () Reads the specified number of byte-contiguous or noncontiguous buffers. 유효하지 못한 소켓 디스크립터 지정됨;TCP 접속이 존재하지 않음;서버가 TCP 접속을 리셋시킴;타임아웃트 또는 다른 실패로 인하여 TCP 접속 중지됨;네트워크 레벨 IP 어드레스 변경되며, 이는 PPP resync로 인하여 TCP 접속을 리셋하도록 함;TCP 접속 폐쇄;네트워크 이용불능;애플리케이션 버퍼는 어드레스 공간의 일부로 유효하지 않음;판독을 위한 이용가능 빈 버퍼 없음; 또는수신된 파일 마커의 끝Invalid socket descriptor specified; TCP connection does not exist; server resets TCP connection; TCP connection stopped due to timeout or other failure; network level IP address is changed, which resets TCP connection due to PPP resync TCP connection closed; network unavailable; application buffer not valid as part of address space; no empty buffer available for read; Or end of received file marker sendto()지정된 개수의 바이트 전송sendto () Sends the specified number of bytes 유효하지 못한 소켓 디스크립터 지정됨;어드레스군이 지정되지 않음;기록을 위한 이용가능 빈 버퍼 없음;네트워크 이용불능;애플리케이션 버퍼가 어드레스 공간의 유효한 부분이 아님;지정된 옵션이 지원되지 않음; 또는목적지 어드레스 요청됨Invalid socket descriptor specified; address family not specified; no empty buffer available for writing; network unavailable; application buffer not valid part of address space; specified option not supported; Or destination address requested recvfrom()지정된 개수의 바이트 판독recvfrom () reads a specified number of bytes 유효하지 못한 소켓 디스크립터 지정됨;어드레스군은 지원되지 않음;기록을 위한 이용가능 빈 버퍼 없음;네트워크 이용불능;애플리케이션 버퍼는 어드레스 공간의 유효한 부분이 아님; 또는지정된 옵션은 지원되지 않음Invalid socket descriptor specified; address family not supported; no empty buffer available for writing; network unavailable; application buffer not valid part of address space; Or specified option not supported

다른 실시예에서, 머신은 인코딩된 소프트웨어 코드와 같은 인코딩된 정보를 포함하는 머신 판독가능 매체를 판독할 수 있으며, 이는 이동국 애플리케이션이 지정된 이벤트를 식별할 수 있도록 상술한 처리과정을 유발시킨다. 머신 판독가능 매체는 메모리 또는 저장 디스크와 같은 저장 장치 또는 통신 네트워크로부터 인코딩된 정보를 수신할 수 있다. 또한 머신 판독가능 매체는 매체가 제작될 때 인코딩된 정보로 프로그래밍될 수 있다. 머신은 애플리케이션(260), 통신 프로토콜 스택(280) 및 API(270)중 적어도 하나를 포함할 수 있는 반면, 머신 판독가능 매체는 저장 디스크와 같은 메모리를 포함한다.In another embodiment, the machine can read a machine readable medium containing encoded information, such as encoded software code, which triggers the processing described above to allow the mobile station application to identify the designated event. The machine readable medium may receive encoded information from a storage device or communication network, such as a memory or a storage disk. Machine-readable media can also be programmed with encoded information when the media is produced. The machine may include at least one of the application 260, the communication protocol stack 280, and the API 270, while the machine readable medium includes a memory, such as a storage disk.

본 발명은 특정 실시예로 설명되었지만, 이에 제한받지 않으며, 청구항과 그 동일성의 범위에 의하여만 제한받는다.Although the present invention has been described in particular embodiments, it is not limited thereto, and is only limited by the scope of the claims and their identity.

Claims (24)

지정된 이벤트를 이동국 애플리케이션에게 통지하는 방법으로서:As a way of notifying the mobile station application of the specified event: 이동국 통신 프토토콜 스택 및 통신 네트워크 사이에서 통신하는 단계;Communicating between a mobile station communication protocol stack and a communication network; 상기 이동국 통신 프로토콜 스택 및 상기 이동국 애플리케이션 사이에서 이동국 애플리케이션 인터페이스를 통하여 통신하는 단계;Communicating via a mobile station application interface between the mobile station communication protocol stack and the mobile station application; 상기 이동국 통신 프로토콜 스택 및 이동국 애플리케이션 인터페이스중 적어도 하나에 의하여 상기 지정된 이벤트를 검출하는 단계; 그리고Detecting the designated event by at least one of the mobile station communication protocol stack and a mobile station application interface; And 상기 이동국 애플리케이션으로 상기 지정된 이벤트를 통지하는 것을 호출하는 단계를 포함하는 방법.Invoking the mobile station application to notify the designated event. 제 1 항에 있어서, 비동기 통지를 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.2. The method of claim 1, further comprising invoking an asynchronous notification. 제 1 항에 있어서, 상기 통지 호출은 콜백 함수를 포함하는 것을 특징으로 하는 방법.2. The method of claim 1 wherein the notification call comprises a callback function. 제 1 항에 있어서, 신호에 의하여, 이동국 애플리케이션에게 지정된 이벤트를 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.2. The method of claim 1, further comprising calling, by a signal, a specified event to the mobile station application. 제 1 항에 있어서, 메세지에 의하여, 이동국 애플리케이션에게 지정된 이벤트를 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.2. The method of claim 1, further comprising invoking, by a message, a specified event to a mobile station application. 제 1 항에 있어서, 인터럽트에 의하여, 이동국 애플리케이션에게 지정된 이벤트를 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.2. The method of claim 1, further comprising invoking, by interrupt, a specified event to the mobile station application. 제 3 항에 있어서, 상기 콜백 함수는 네트워크 서브시스템 이벤트를 위하여 호출되는 것을 특징으로 하는 방법.4. The method of claim 3, wherein the callback function is called for a network subsystem event. 제 3 항에 있어서, 상기 콜백 함수는 소켓 이벤트를 위하여 호출되는 것을 특징으로 하는 방법.4. The method of claim 3, wherein the callback function is called for a socket event. 지정된 이벤트를 이동국 애플리케이션에게 통지하는 장치로서:A device for notifying a mobile station application of a specified event: 통신 네트워크와 통신하기 위한 이동국 통신 프로토콜 스택; 그리고A mobile station communication protocol stack for communicating with a communication network; And 상기 이동국 통신 프로토콜 스택과 상기 이동국 애플리케이션 사이의 통신을 용이하게하기 위한 이동국 애플리케이션 인터페이스를 포함하며;A mobile station application interface for facilitating communication between the mobile station communication protocol stack and the mobile station application; 상기 이동국 통신 프로토콜 스택 및 이동국 애플리케이션 인터페이스중 적어도 하나는 상기 지정된 이벤트를 검출하며, 상기 이동국에 대한 지정된 이벤트의 통지가 호출되는 장치At least one of the mobile station communication protocol stack and a mobile station application interface detects the designated event and the notification of the designated event for the mobile station is invoked 제 9 항에 있어서, 상기 통지는 비동기 통지를 포함하는 것을 특징으로 하는 장치.10. The apparatus of claim 9, wherein the notification comprises an asynchronous notification. 제 9 항에 있어서, 상기 호출 통지는 콜백 함수를 포함하는 것을 특징으로 하는 장치.10. The apparatus of claim 9, wherein the call notification comprises a callback function. 제 9 항에 있어서, 상기 통지는 신호에 의하여 통신되는 것을 특징으로 하는 장치.10. The apparatus of claim 9, wherein the notification is communicated by a signal. 제 9 항에 있어서, 상기 통지는 메세지에 의하여 통신되는 것을 특징으로 하는 장치.10. The apparatus of claim 9, wherein the notification is communicated by a message. 제 9 항에 있어서, 상기 통지는 인터럽트에 의하여 통신되는 것을 특징으로 하는 장치.10. The apparatus of claim 9, wherein the notification is communicated by interrupt. 제 11 항에 있어서, 상기 콜백 함수는 네트워크 서브시스템 이벤트를 위하여 호출되는 것을 특징으로 하는 장치.12. The apparatus of claim 11, wherein the callback function is called for a network subsystem event. 제 11 항에 있어서, 상기 콜백 함수는 소켓 이벤트를 위하여 호출되는 것을 특징으로 하는 장치.12. The apparatus of claim 11, wherein the callback function is called for a socket event. 인코딩된 정보를 포함하는 머신 판독가능 매체로서,A machine readable medium comprising encoded information, 상기 인코딩된 정보가 머신에 의하여 판독될 때:When the encoded information is read by the machine: 이동국 통신 프로토콜 스택 및 통신 네트워크 사이에서 통신하며;Communicates between a mobile station communication protocol stack and a communication network; 상기 이동국 통신 프로토콜 스택 및 이동국 애플리케이션 사이에서 이동국 애플리케이션 인터페이스를 통하여 통신하며;Communicate via a mobile station application interface between the mobile station communication protocol stack and a mobile station application; 상기 이동국 통신 프로토콜 스택 및 이동국 애플리케이션 인터페이스중 적어도 하나에 의하여 상기 지정된 이벤트를 검출하며; 그리고Detect the designated event by at least one of the mobile station communication protocol stack and a mobile station application interface; And 상기 이동국 애플리케이션으로 상기 지정된 이벤트를 통지하는 것을 호출하는 과정을 포함하는 머신 판독가능 매체.Invoking the mobile station application to notify the designated event. 제 17 항에 있어서, 비동기 통지를 호출하는 단계를 더 포함하는 것을 특징으로 하는 머신 판독가능 매체.18. The machine readable medium of claim 17, further comprising invoking an asynchronous notification. 제 17 항에 있어서, 상기 호출 통지는 콜백 함수를 포함하는 것을 특징으로 하는 머신 판독가능 매체.18. The machine readable medium of claim 17 wherein the call notification comprises a callback function. 제 17 항에 있어서, 상기 지정된 이벤트를 신호에 의하여 상기 이동국 애플리케이션에게 통지하는 단계를 더 포함하는 것을 특징으로 하는 머신 판독가능 매체.18. The machine readable medium of claim 17, further comprising notifying the mobile station application by signal of the designated event. 제 17 항에 있어서, 상기 지정된 이벤트를 메세지에 의하여 상기 이동국 애플리케이션에게 통지하는 단계를 더 포함하는 것을 특징으로 하는 머신 판독가능 매체.18. The machine readable medium of claim 17, further comprising notifying the mobile station application by message of the designated event. 제 17 항에 있어서, 상기 지정된 이벤트를 인터럽트에 의하여 상기 이동국 애플리케이션에게 통지하는 단계를 더 포함하는 것을 특징으로 하는 머신 판독가능 매체.18. The machine-readable medium of claim 17, further comprising notifying the mobile station application of the designated event by an interrupt. 제 19 항에 있어서, 상기 콜백 함수는 네트워크 서브시스템 이벤트를 위하여 호출되는 것을 특징으로 하는 머신 판독가능 매체.20. The machine readable medium of claim 19, wherein the callback function is called for a network subsystem event. 제 19 항에 있어서, 상기 콜백 함수는 소켓 이벤트를 위하여 호출되는 것을 특징으로 하는 머신 판독가능 매체.20. The machine readable medium of claim 19, wherein the callback function is called for a socket event.
KR1020027011855A 2000-03-30 2001-03-29 Method and apparatus for notifying a mobile station application of specified events KR20030010591A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53949600A 2000-03-30 2000-03-30
US09/539,496 2000-03-30

Publications (1)

Publication Number Publication Date
KR20030010591A true KR20030010591A (en) 2003-02-05

Family

ID=24151466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027011855A KR20030010591A (en) 2000-03-30 2001-03-29 Method and apparatus for notifying a mobile station application of specified events

Country Status (9)

Country Link
EP (1) EP1273154A2 (en)
JP (1) JP2003530021A (en)
KR (1) KR20030010591A (en)
CN (1) CN1422481A (en)
AU (1) AU2001289299A1 (en)
CA (1) CA2402359A1 (en)
IL (1) IL151347A0 (en)
MX (1) MXPA02009369A (en)
WO (1) WO2001076178A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100674091B1 (en) * 2004-12-03 2007-01-24 한국전자통신연구원 Distributed control network apparatus notifying occurrence of event by interrupting and its method

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
EP2403226A1 (en) 2010-06-30 2012-01-04 Runs NV Method for real-time monitoring of packet-based telecom services, and corresponding server and client device
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023721A (en) * 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
US5974541A (en) * 1997-07-22 1999-10-26 National Instruments Corporation GPIB system and method which provides asynchronous event notification

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100674091B1 (en) * 2004-12-03 2007-01-24 한국전자통신연구원 Distributed control network apparatus notifying occurrence of event by interrupting and its method

Also Published As

Publication number Publication date
WO2001076178A2 (en) 2001-10-11
AU2001289299A1 (en) 2001-10-15
MXPA02009369A (en) 2003-02-12
IL151347A0 (en) 2003-04-10
EP1273154A2 (en) 2003-01-08
WO2001076178A3 (en) 2002-02-28
CN1422481A (en) 2003-06-04
CA2402359A1 (en) 2001-10-11
JP2003530021A (en) 2003-10-07

Similar Documents

Publication Publication Date Title
KR100804453B1 (en) Method and apparatus for detecting specified events in a mobile station
JP4971513B2 (en) Method and apparatus for mobile station application to receive and transmit raw packetized data
KR100778605B1 (en) Method and apparatus for a mobile station application to identify specified events
AU2001251105A1 (en) Method and apparatus for a mobile station application to receive and transmit raw packetized data
KR20030010591A (en) Method and apparatus for notifying a mobile station application of specified events
KR20040007214A (en) Method and apparatus for a mobile station application to identify specified status messages
KR20020084257A (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