KR20080005481A - 슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용시스템 및 방법 - Google Patents

슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용시스템 및 방법 Download PDF

Info

Publication number
KR20080005481A
KR20080005481A KR1020077017106A KR20077017106A KR20080005481A KR 20080005481 A KR20080005481 A KR 20080005481A KR 1020077017106 A KR1020077017106 A KR 1020077017106A KR 20077017106 A KR20077017106 A KR 20077017106A KR 20080005481 A KR20080005481 A KR 20080005481A
Authority
KR
South Korea
Prior art keywords
data
network
state
response
communication
Prior art date
Application number
KR1020077017106A
Other languages
English (en)
Other versions
KR101172930B1 (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 KR20080005481A publication Critical patent/KR20080005481A/ko
Application granted granted Critical
Publication of KR101172930B1 publication Critical patent/KR101172930B1/ko

Links

Images

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
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/02Data link layer protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • 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
    • 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/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

슬레이브 장치와 네트워크 자원 간의 피어-투-피어 통신을 위한 시스템 및 방법으로서, 이때, 작은 휴대용 장치 상에서 설치되기에 적합하도록 전력을 보존하는 방식으로 애플리케이션과 네트워크 노드가 완전한(full-fledged) 네트워크 노드로서 나타나는 동안, 상기 슬레이브 장치, 예를 들어 스마트 카드는 상기 스마트 카드가 반-이중 시리얼 통신 링크를 통해 통신할 수 있게 해주는 프로토콜을 이용하여 통신한다.

Description

슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용 시스템 및 방법{SYSTEM AND METHOD FOR DATA COMMUNICATIONS ALLOWING SLAVE DEVICES TO BE NETWORK PEERS}
본원발명은 2005년 2월 11일에 출원된 U.S. 가특허출원 제 60/652,291 호의 35 U.S.C 119로부터 우선권을 주장하고 있다. 상기 가출원은 본원에서 참조로서 인용된다.
함께 출원된 2004년 5월 19일자 U.S. 출원 제 10/848,738 호 “자원 제약형 장치를 이용하는 보안 네트워킹(Secure Networking Using a Resource-Constrained Device)”에서, 반-이중 통신 채널을 이용하여 통신하는 자원-제약형 장치(resource-constrained device)와 네트워크로 연결되는 원격 노드(remote node) 간의 통신을 제공하는 시스템 및 방법이 기재되어 있다. 본원발명에서는 이를 바탕으로 하는 개선점을 제공한다.
함께 출원된 2005년 9월 23일자 U.S. 특허 출원 제 11/234,577 호 “인터넷 프로토콜을 이용하는 모바일 장치에서의 UICC의 통신(Communications of UICC in mobile devices using Internet Protocols)”에서, 모바일 장치에서의 UICC가 네트워크 피어(peer)로서 기능하기 위한 시스템 및 방법이 기재되어 있다.
함께 출원된 2000년 11월 30일자 U.S. 특허 출원 제09/727,174호 “단말기와 네트워크 자원의 스마트 카드 제어(Smart Card Control of Terminal and Network Resources)”와, 연속 출원 1998년 6월 29일자 U.S. 특허 출원 제09/107,033호(현 U.S. 특허 제6,157,966호)에서, 자원-제약형 장치는 호스트 장치와의 피어로서 여전히 기능하면서, 반-이중 통신 채널 상에서 통신하는 자원-제약형 장치와 호스트 장치 간의 비동기 통신에 대한 시스템 및 방법이 기재되어 있다.
본원발명은 네트워크-기반의 전자 장치의 동작에 관한 것이며, 더욱 세부적으로, 전통적으로 슬레이브(slave)인 장치가 네트워크 피어가 되게 하는 시스템 및 방법에 관한 것이다.
새로운 정보화 시대에서, 연산의 영향력이 커지고 있다. "덤(dumb)" 머신은 어느 정도 수준의 "지능(intelligence)"을 요구한다. 이러한 경향이 지속됨에 따라, 더 높은 수준의 기대가 존재한다. 예를 들어, 이전 세대의 머신은 임의의 연산 능력을 가질 것을 기대받지 않았으며, 그 다음 세대는 어느 정도의 연산 능력만을 갖는다. 이러한 진화의 추가적인 단계는 머신을 네트워크로 연결하는 것이다. 그러나 물리적인 크기 제약 때문에, 또는 연산 파워 및 데이터 저장소가 머신의 주 기능이 아니기 때문에, 연산 파워 및 메모리 크기는 매우 제한적일 수 있다. 이러한 제약사항은 네트워크 상에서 다른 노드와 상호작용하는 자원-제약형 장치(resource-contrained device)의 기능에 큰 영향을 미친다.
이러한 자원-제약형 장치의 예로는 스마트 카드가 있다. 스마트 카드는 단순히 일부 메모리 및 마이크로프레섯를 갖는 집적 회로를 포함하는 플라스틱 카드이 다. 통상적으로 이러한 메모리는 6KByte RAM으로 제한된다. 다음 몇년 안에, 스마트 카드 RAM이 수 킬로바이트까지 증가될 수 있는 것이 예상될 수 있다. 그러나 메모리 크기는 스마트 카드 애플리케이션에게 있어 계속해서 장애물이 될 것이다. 대부분의 스마트 카드는 8-비트 마이크로프로세서를 갖는다.
통신 인프라구조는 스마트 카드 및 이와 유사한 장치에게 또 다른 자원 제약을 제공한다. 스마트 카드는 완전한 속도의 USB 통신을 갖지 않으며, 전-이중 시리얼 인터페이스가 결핍되어 있다. 현재 스마트 카드는 반-이중에서 동작하는 ISO-7816 인터페이스를 사용한다.
유사한 자원 제약을 갖는 또 다른 장치가 존재한다. 예를 들어, USB 동글(가령 SafeNet, inc(메릴랜드, 벨캠프)의 iKey 장치), 또는 SD 카드, 또는 PC 마더보드에 직접 접착된 보안 집적 회로 칩이 있다.
여기서, 유사한 자원 제한, 가령 64K미만으로 제한된 RAM을 공통으로 갖는 장치가 "자원-제약형 장치(resource-constrained device)"라고 일컬어진다. 자원-제약형 장치는 스마크 카드, USB 동글, SD 카드, PC 마더보드에 직접 부착된 보안 집적 회로 칩을 포함한다. 덧붙이자면, 용어 자원-제약형 장치는 유사한 자원 제약을 갖는 그 밖의 다른 임의의 장치일 수 있다. 명료성을 위해, 본원은 스마트 카드의 맥락에서 주로 서술된다. 이는 본원발명의 사상 및 범위를 제한하도록 구성되지 않으며, 그 밖의 다른 자원-제약형 장치에도 동일하게 적용될 수 있다.
스마트 카드는 스마트 카드 판독기를 탑재한 컴퓨터, 또는 셀 폰 등일 수 있는 단말기, 또는 호스트와 함께 사용된다. 스마트 카드가 컴퓨터로 연결될 때, 표 준 메인스트림 네트워크 인터페이스를 이용하여, 호스트 애플리케이션은 그들과 통신하지 않는다. 스마트 카드 판독기 장치와 미들-웨어 애플리케이션의 형태인 특정 하드웨어 및 소프트웨어는 카드 서비스에 접근할 필요가 있다.
함께 출원되고, 함께 양도된 특허 출원 제10/848,738호 "(자원제약형 장치를 이용한 보안 네트워킹(Secure Networking Using a Resource Constraint Device"는 새로운 프로토콜, 이른바 Peer I/O에 대해 기술하고 있으며, 이로 인하여, 스마트 카드 및 그 밖의 다른 반-이중 시리얼 커맨드/응답 통신 프로토콜을 이용하는 자원-제약형 장치가 전-이중 피어-투-피어 통신을 다룰 수 있다. 따라서 이러한 Peer I/O를 이용하는 장치는 네트워트에 네트워크 피어로서 가입할 수 있다.
반-이중 시리얼 커맨드/응답 통신 프로토콜을 이용하여 통신하는 장치가 비동기성 전-이중 피어-투-피어 통신을 다룰 수 있도록 일반적으로 적용되는 시스템 및 방법을 갖는 것이 유용하다.
현재의 경향에서, 전자 통신 장치는 계속하여 휴대 가능하고 소형이며 무선형이 되어간다. 이러한 경향으로부터 해결되어야하는 과제는 무선의 이점에 의해, 장치가 자신의 전력원, 통상 배터리를 지녀야한다는 것이다. 상기 배터리는 장치가 다시 유선 전력원으로 연결되기 전까지는 한정된 자원이기 때문에, 가용 전력의 길이, 즉 단순히 말하자면 배터리 수명이 주요 관건이 된다. 휴대용 장치의 판매 요인은 그 크기에 있다. 물론, 장치가 더 작아질수록, 배터리도 더 작아지고, 결과적으로, 배터리 수명은 더 짧아진다.
한 가지 가장 일반적인 자원-제약형 장치로는 모바일 전화기용 SIM 모듈이 있다. 지난 수년 동안, 모바일 전화기에 다수의 특징과 기능이 포함되어 왔다. 함께 출원되고 함께 양도된 특허 출원 제11/234,577호, "인터넷 프로토콜을 이용하는 모바일 장치에서의 UICC의 통신(Communications of UICC in mobile devices using Internet Protocols)"이 SIM 카드 상에서 웹 서버를 실행시킴으로써, SIM 카드가 네트워크 피어로서 기능할 수 있는 적용예를 기재하고 있다. 전력 소모 및 이에 관련된 효과인 배터리 수명이 모바일 전화기의 관점에서 매우 중요하다. 따라서 반-이중 시리얼 커맨드/응답을 이용하여 통신하는 전자 장치가, 전력은 보존하고, 그에 따라 모바일 장치의 배터리 수명을 연장시키면서, 비동기 전-이중 피어-투-피어 통신을 가능하게 해주는 시스템 및 방법을 갖는 것이 바람직할 수 있다.
앞선 기재로부터, 반-이중 시리얼 커맨드/응답 통신 링크를 이용하여 통신하는 네트워크 연결된 자원-제약형 장치에 의해, 모바일 장치 상의 자원-제약형 장치에 의해 소모되는 전력을 보존하면서, 전-이중 피어-투-피어 통신을 가능하게 해주는 개선된 시스템 및 방법에 대한 필요성이 여전히 존재함이 자명할 것이다.
본원발명은 바람직한 실시예에서, 슬레이브 장치(slave device)와 네트워크 자원 간의 피어-투-피어 통신을 위한 시스템 및 방법을 제공하며, 이때 상기 슬레이브 장치, 예를 들어 스마트 카드는 상기 스마트 카드가 반-이중 시리얼 커맨드/응답 통신 링크를 통해 통신하도록 설계된 프로토콜을 이용하여 통신하고, 동시에, 작은 휴대용 장치 상에서 위치되기에 적합하도록 전력을 보존하는 방식으로 플리케이션과 네트워크 노드는 완전한(full-fledged) 네트워크 노드로서 보여진다.
본원발명의 그 밖의 다른 태양과 이점이 다음의 기재로부터 명백해질 것이다.
도 1은 본원발명에 따르는 네트워크 연결된 전자 장치가 전개되는 동작 환경의 개념적 도면이다.
도 2는 본원발명과 조합되어 사용될 수 있는 네트워크 연결된 전자 장치(101)의 하드웨어의 예시적 구조의 개념적 도면이다.
도 3은 자원 제약형 장치와 호스트 컴퓨터을 위한 소프트웨어 구조의 개념적 도면이다.
도 4는 Peer I/O 서버의 동작을 제어하는 유한 상태 머신의 개념적 도면이다.
도 5는 Peer I/O 클라이언트의 동작을 제어하는 유한 상태 머신의 개념적 도면이다.
도 6은 본원발명에 따르는 무-인프라구조 스마트 카드의 네트워크로의 연결에 대한 첫번째 대안예를 도시한 도면이다.
도 7은 APDU가 PPP 프레임을 운반하는 Peer I/O 프로토콜을 구현하는 통신 프로토콜 스택과 호스트 컴퓨터와 네트워크 스마트 카드의 하이-레벨 개념도이다.
도 8은 반-이중 시리얼 I/O를 갖는 시리얼 연결을 이용하여 스마트 카드가 호스트 컴퓨터와 통신하는 스마트 카드와 네트워크 간의 통신을 구현하기 위한 구성요소의 개념적 도면이다.
도 9는 반-이중 시리얼 연결을 통해 스마트 카드가 하드웨어 인터페이스 장치와 통신하고, 반-이중 연결을 이용하여 인터페이스가 호스트 컴퓨터와 통신하는 스마트 카드와 네트워크 간의 통신을 구현하기 위한 구성요소의 개념적 도면이다.
도 10은 MMC 카드와 조합되는 본원 발명을 전개하기 위한 구성요소의 실시예를 도시하는 개념적 도면이다.
다음의 자세한 설명에서, 본원발명이 구현될 수 있는 특정 실시예를 도시하는 도면에 대한 참조가 이뤄진다. 이러한 실시예는 해당업계 종사자가 본원발명을 구현할 수 있도록 충분히 상세하게 이뤄진다. 본원발명의 다양한 실시예는 서로 다르지만 상호 배재적인 것은 아니다. 예를 들어, 하나의 실시예와 연계되어 본원에서 설명되는 특정한 특징부, 또는 구조, 또는 특성은 보원발명의 사상 및 범위내에서 또 다른 실시예 내에서 구현될 수 있다. 덧붙이자면, 각각의 기재되는 실시예 내의 개별 구성요소의 위치, 또는 배열이 본워발명의 사상 및 범위 내에서 수정될 수 있다. 다음의 자세한 설명은 제한하기 위한 것이 아니며, 본원발명의 범위는 첨부된 청구범위에 의해서만 정의된다. 도면에서, 유사한 참조번호는 동일하거나 유사한 기능을 참조한다.
설명의 목적으로 도면에서 도시되는 바와 같이, 본원발명은 전력 소모는 최소화하면서 네트워크 가능형 전자 장치를 위한 피어-투-피어 통신(peer-to-peer communication) 기능이 탑재된 네트워크 가능형 전자 장치, 가령 네트워크 스마트 카드에서 구현된다.
도 1은 본원발명에 따르는 네트워크-연결된 전자 장치가 전개될 수 있는 동작 환경의 개략적인 도시이다.
하나의 실시예에서, 네트워크-가능형 전자 장치(101)는 핸드세트(103)에 설치된 네트워크 스마트 카드이다. 상기 핸드세트(103)는 일반적인 부속품(accoutrement), 가령 키패드(105)와, 디스플레이(107)와, 마이크로폰(109)과, 스피커(111)를 갖는 모바일 전화기일 수 있다. 대안적 실시예에서, 상기 핸드세트(103)는 PDA이거나, 또는 SIM 카드를 이용하는 그 밖의 다른 모바일 장치일 수 있다. 또한 상기 핸드세트(103)는 중앙 처리 유닛과 메모리를 포함하는 전자 회로를 포함한다. 덧붙이자면, 사용가능한 다양한 스마트 모바일 장치가 존재하며, 예를 들어 웹-가능형 전화기, 스마트 전화기, PDA, 핸드헬드 PC, 타블렛 PC가 있다. 스마트 폰과 PDA 중 다수는 셀방식 전화기와 PDA 기능을 조합한다. 스마트 모바일 장치를 위한 일반적인 운영 체제로는 Symbian, Palm OS, Microsoft Smartphone이 있다. 이러한 장치가 SIM 장치, 즉 네트워크 스마트 카드(101)를 갖는 경우, 본원발명은 이러한 장치에 적용될 수 있다.
전자 회로가 핸드세트(103)를 위하여 무선 링크를 통해 무선 전화 안테나(119)로의 무선 네트워크(117)와의 통신 기능을 제공한다. 마이크로프로세서가 핸드세트(103)의 제어 기능 중 일부, 가령 핸드세트(103)의 동작을 관리하는 기능, 그리고 무선 네트워크(117)와 통신하기 위해 사용되는 통신 프로토콜을 관리하는 기능을 제공한다. 네트워크 스마트 카드(101)는 전자 회로로 연결되어, 네트워크 스마트 카드(101)와 핸드세트(103) 사이의 통신을 가능하게 한다.
무선 네트워크(117)는 다른 스테이션, 가령 다른 모바일 스테이션, 또는 지상 기반의 전화 시스템(land-based telephone system)과의 연결을 제공하기 위한 복잡한 통신 인트라구조로 구성되어 있다. 이러한 스테이션은 인터넷(12)으로의 무선 네트워크(117) 액세스를 제공하는 인터넷 게이트웨이(121)일 수 있다. 일반적으로 알려진 바와 같이, 다수의 컴퓨터가 인터넷을 통해 연결되어 있다. 본원에서 제공된 시나리오에서, 핸드세트, 가령 모바일 전화기나 PDA의 사용자가 도 1에서 도시된 인프라구조를 사용하여, 핸드세트(103), 또는 인터넷(125)으로 연결된 그 밖의 다른 컴퓨터를 통해 네트워크 스마트 카드(101)와 통신할 수 있다. 이러한 통신의 일부 양태에서, 네트워크 스마트 카드(101) 상에 저장된 일부 정보를 원격 개체(127)로 통신하기 위한 목적으로, 네트워크 스마트 카드(101)와 원격 개체(127) 간의 직접 통신(direct communication)이 사용된다.
네트워크-연결된 전자 장치(101')의 또 다른 예로는 신용 카드 폼 팩터(form factor)를 갖고 호스트 컴퓨터(103')를 통해 인터넷(125)으로 연결되는 네트워크 스마트 카드가 있다.
네트워크 스마트 카드(101, 또는 101')는 자율 인터넷 노드(autonomous Internet node)로서 기능할 수 있는 스마트 카드이다. 네트워크 스마트 카드는 함께 출원된 2004년 5월 19일자 특허 출원 제10/848,738호 “자원-제약형 장치를 이용하는 보안 네트워킹(SECURE NETWORKING USING A RESOURCE-CONSTRAINED DEVICE)”에 기재되어 있으며, 상기 출원은 본원에서 참조로서 인용된다. 네트워크 스마트 카드(101)는 카드에 내장되는 인터넷 프로토콜(TCP/IP)과 보안 프로토콜(SSL/TLS) 를 이행하고, 다음에서 기재될 그 밖의 다른 통신 프로토콜을 이행할 수 있다. 상기 네트워크 스마트 카드(101)는 그 밖의 다른 인터넷 노드와의 보안 인터넷 연결을 확립하고 유지관리할 수 있다. 인터넷 통신을 가능하게 하기 위해, 상기 네트워크 스마트 카드(101)는 호스트 상의 프록시(proxy)에 따라 좌우되지 않는다. 덧붙여, 상기 네트워크 스마트 카드(101)는 로컬 인터넷 클라이언트/서버, 또는 원격 인터넷 클라이언트/서버가 상기 스마트 카드와 통신하기 위해 수정될 것을 필요로 하지 않는다.
본원발명은 또한 그 밖의 다른 장치, 가령 그 밖의 다른 네트워크-가능형 자원-제약형 장치에서 사용되기 적합하며, 자원 제약형 장치로 국한되는 것은 아니다. 예를 들어, 본원발명에 따르는 네트워크-가능형 전자-장치는 컴퓨터(101")일 수 있다. 본원에서, 용어 네트워크-가능형 전자-장치(network-enabled electronic-device)는 그 밖의 다른 전자-장치로 네트워크를 통해 연결되며, 다른 장치와 전기적으로 통신할 수 있는 임의의 전자 장치를 일컫는다. 이와 유사하게, 참조번호(101)는 임의의 이러한 장치를 일컫기 위해 사용되며, 하나의 장치를 특히 일컫는 것은 아니다.
네트워크-연결된 전자 장치는 네트워크 스마트 카드, 가령 스마트 카드(101')일 수 있다. 함께 출원된 2004년 5월 19일자 특허 출원 제10/848,738 “자원-제약형 장치를 이용하는 보안 네트워킹(SECURE NETWORKING USING A RESOURSE-CONSTRAINED DEVICE)”(상기 출원은 본원에서 참조로 인용된다)에서 기재되어 있는 네트워크 스마트 카드는, 네트워크 통신을 위해 사용되는 통신 프로토콜 스 택(communication protocol stack)을 구현함으로써, 종래의 스마트 카드의 기능에 자율 네트워크 노드로서 동작하는 기능을 조합한다. 네트워크-연결된 전자 장치(101)가 호스트 컴퓨터(103')를 통해 네트워크로 연결되는 경우, 상기 호스트 컴퓨터(103')는 공격자 컴퓨터(attacking computer)가 될 수 있다, 예를 들자면, 리플렉터(reflector)로서, 또는 자신에게 설치된 일부 악성웨어를 가짐으로써 말이다.
도 2는 본원발명과 조합되어 사용될 수 있는 네트워크-연결된 전자 장치(101)의 하드웨어의 예시적인 구조를 도시하고 있다. 도 2의 예제에 따르는 네트워크-연결된 전자 장치(101)는 중앙 프로세싱 유닛(203)과, 판독 전용 메모리(ROM, 205)와, 랜덤 액세스 메모리(RAM, 207)와, 비-휘발성 메모리(NVM, 209)와, 입력을 수신하고 출력을 인터넷 등의 컴퓨터 네트워크로 전달하는 통신 인터페이스(211)를 가지며, 이때 직접 또는 호스트 컴퓨터(103') 등의 중계 장치를 통해, 상기 통신 인터페이스(211)로 네트워크-연결된 전자 장치(101)가 연결된다. 이러한 다양한 구성요소들은, 예를 들어 버스(213)에 의해 서로 연결되어 있다. 본원발명의 하나의 실시예에서, 통신 모듈(321)뿐 아니라, 본원의 이하에서 설명되는 그 밖의 다른 소프트웨어 모듈이 ROM(205)의 자원-제약형 장치(101) 상에 저장된다. 대안적 실시예에서, ROM(205)에 저장된 소프트웨어 모듈은 플래시 메모리, 또는 그 밖의 다른 타입의 비-휘발성 메모리에 저장된다. 설명을 목적으로, 본 발명은 ROM을 예시를 들어 기재된다. 그러나 본원발명의 범위를 제한하고자 하는 것은 아니며, ROM이 사용되는 곳은 어디든지, 플래시 메모리와 그 밖의 다른 타입의 비-휘발성 메모리가 대 안예로서 구성될 수 있다.
상기 ROM(205)은 또한 일부 타입의 운영 체제, 가령 Java 가상 머신(Java Virtual Machine)을 내포한다. 대안적으로, 통신 모듈(321)은 운영 체제의 한 부분이다. 동작 동안, 상기 CPU(203)가 RMO(205)이나 NVM(209)에 저장된 다양한 소프트웨어 모듈의 인스트럭션에 따라서 동작한다.
따라서 본원발명에 따라, 상기 CPU(203)는 통신 모듈(321)내의 인스트럭션에 따라 동작하여, 다음에서 설명될 통신 모듈(321)의 다양한 동작을 수행할 수 있다.
도 3은 자원 제약형 장치(301)와 호스트 컴퓨터(303)에 대한 소프트웨어 구조(software architecture)를 개념적으로 도시한다. 도 1 및 2의 맥락에서, 상기 자원 제약형 장치(301)는 SIM 카드(101), 또는 네트워크 스마트 카드(101')일 수 있으며, 핸드세트(303)는 핸드세트(103), 또는 호스트 컴퓨터(103')일 수 있다.
상기 호스트 컴퓨터(303)는 자신에게 로딩되어 있는 네트워크 애플리케이션(305a, 305b 및 305c)을 갖는다(주의할 것은 핸드세트(103)의 경우, 상기 핸드세트의 물리 구조가 컴퓨터의 물리 구조와 매우 유사하다. 따라서 핸드세트(103)는 메모리와 프로세서를 갖는다. 상기 메모리는 RAM, ROM, EEPROM 등으로 구성되어 있다. 상기 메모리는 상기 프로세서의 동작을 제어하는 소프트웨어 모듈을 내포한다. 따라서 도 3에서 호스트 컴퓨터(303)의 일부인 듯 도시된 다양한 소프트웨어 모듈은 일반적으로 모바일 장치의 비-휘발성 메모리에 저장되고, 실행되는 동안 RAM으로 로딩된다. 이로부터 이러한 소프트웨어 모듈 명령이 프로세서의 동작을 제어하고 모바일 장치가 특정 동작, 가령 네트워크 연결 확립하기를 하도록 한다). 이러 한 애플리케이션의 예로는 웹 브라우저와, 네트워크 접속 리스트(network contacts list) 애플리케이션이 있다. 웹 브라우저의 경우, 자원 제약형 장치(301)를 액세스하기 위해, 또는 더욱 정확히는 상기 자원 제약형 장치(301) 상에서 실행되는 웹 서버, 가령 SIM 카드 네트워크 애플리케이션(307a)과 통신하도록 애플리케이션(305a)이 사용될 수 있다.
호스트 컴퓨터(303) 및 자원 제약형 장치(301)는 통신 프로토콜의 몇 개의 레이어에 걸쳐 통신한다. 하나의 실시예에서, 이러한 레이어는 몇 개의 통신 소프트웨어 모듈로 나타날 수 있으며, 그 예로는 호스트 컴퓨터(303) 상에서 TCP/IP 레벨에서의 통신을 다루는 TCP/IP 모듈(317)과, 자원-제약형 장치(301) 상의 이에 대응하는 TCP/IP 모듈(327)이 있으며, PPP 레벨에서의 통신을 다루기 위한 PPP 모듈(318, 329)과, Peer I/O 프로토콜에 따라 통신하기 위한, 호스트 컴퓨터(303) 상의 Peer I/O 서버 모듈(315)과 자원-제약형 장치(301) 상의 이에 대응하는 Peer 클라이언트 모듈(325)이 있다. 상기 Peer I/O 클라이언트 모듈(325)과 Peer I/O 서버 모듈(315)의 동작은 다음에서 상세하게 설명된다.
자원-제약형 장치(301)와 호스트 컴퓨터(303)는 하드웨어 레이어로서, 가령 USB나 무선 연결을 통해 연결되며, 따라서 하드웨어 레벨 통신을 유지관리하기 위한 하드웨어 통신 모듈(318, 319)을 갖는다.
상기 호스트 컴퓨터(303)는 외부 데이터 네트워크와의 연결을 확립하고, 몇가지 애플리케이션(305a-c)을 지원할 수 있다. 호스트 컴퓨터 상의 애플리케이션 프로그램이 통신 모듈(311)을 사용하여 외부 네트워크로의 연결을 확립하고, 자원 제약형 장치(301) 상의 애플리케이션(307a-c)과 통신할 수 있다.
호스트 컴퓨터(303)를 통한 자원 제약형 장치(301)와 네트워크 간의 통신은 앞서 참조된 함께 출원된 2004년 5월 19일자 특허 출원 제10/848,738 “자원-제약형 장치를 이용하는 보안 네트워킹(SECURE NETWORKING USING A RESOURCE-CONSTRAINED DEVICE)”에서 상세하게 기술되어 있으며, 이 문헌이 본원에서 참조로 인용된다. 가상 시리얼 포트(virtual serial port, 313)가 핸드세트(303)의 운영 체제에 의해 정의된 시리얼 포트 인터페이스를 구현한다. 네트워크 SIM 카드(또한 네트워크 UICC 카드락 알려짐) 간의 통신은 함께 출원된 2005년 9월 23일자 특허 출원 “인터넷 프로토콜을 이용하는 모바일 장치에서의 UICC의 통신(COMMUNICATIONS OF UICC IN MOBILE DEVICE USING INTERNET PROTOCOLS)”에서 더욱 상세히 기재되어 있으며, 상기 출원은 본원에서 참조로서 인용된.
Peer I/O 구현은 호스트(303)와 장치(301) 상에 위치한다. 호스트 측에서, 상기 Peer I/O는 장치(301)와 네트워크(117) 간의 메시지를 발송하기 위한 서비스를 제공한다. 이때 이러한 서비스 모듈은 Peer I/O 서버(315)라고 일컬어진다. 상기 장치(301)는 커맨드/응답(command/response)에서 동작하는 저-레벨인 반-이중 시리얼 통신 프로토콜(318) 위에 위치하고, 전-이중 프로토콜, 가령 PPP(329) 아래에 위치하는 Peer I/O 클라이언트(325)를 내포한다. 이러한 전-이중 통신은 비동기적이다. 왜냐하면 통신 채널의 종단은 나머지 종단과 동기화하거나, 타이밍 없이 언제라도 송신할 수 있기 때문이다. 상기 Peer I/O 프로토콜은 수행되는 상위 레벨의 프로토콜에 독립적이다. 상위 레이어 프로토콜의 관점에서, Peer I/O는 양 방향 으로 메시지를 전달할 수 있다. 예를 들어, PPP 프레임, 또는 이더넷 프레임, 또는 IP 데이터그램을 운반하기 위해 Peer I/O를 사용할 수 있다. 다시 말하자면, 자원-제약형 장치(301)와 호스트(303) 간의 데이터 통신이 반-이중 시리얼 커맨드/응답 링크를 통해 수행된다는 사실이, 자원-제약형 장치(301)와, 호스트(303)와, 상기 자원-제약형 장치(301)와 통신할 수 있는 그 밖의 다른 네트워크 노드 상의 상위 레벨 애플리케이션 및 통신 프로토콜에게는 투명(transparent)하다.
네트워크 상의 컴퓨터(또는 단순히 네트워크)가 장치로 메시지를 전송할 때, 메시지를 포함하는 커맨드/응답 통신 프로토콜의 하나 이상의 커맨드를 장치(301)로 전송함으로써, Peer I/O 서버(315)가 메시지를 발송한다. 장치(301)가 전송할 필요가 있을 때는 언제든지 네트워크(117)로 메시지를 전송하게 하기 위해, 상기 Peer I/O 서버(315)가 장치(301)로 정기적으로 폴링(poll)한다. 장치가 메시지를 가질 때, Peer I/O 서버(315)는 장치 메시지를 획득하여 이를 네트워크로 발송하기 위한 하나 이상의 커맨드를 발행(issue)한다. 장치(301, 303)를 연결하는 반-이중 시리얼 커맨드/응답 링크를 통한 통신에 영향을 주기 위한 이러한 장치(301, 303)의 동작이 Peer I/O 서버(315)와 Peer I/O 클라이언트(325)에 의해 제어된다. 본원발명의 하나의 실시예에서, 이러한 동작은 자원-제약형 장치(301)와 호스트 장치(303) 상의 유한 상태 머신(finite state machine)에 따라 실행된다. 상기 Peer I/O 유한 상태 머신에 의해, 명시적인 분할 및 합체(fragmentation and assembly) 메커니즘을 이용하지 않고, 임의의 길이의 상위 레벨 메시지를 이용하는 통신이 수행될 수 있다.
Peer I/O 프로토콜 포맷( Peer I/O Protocol Format )
상기 Peer I/O 프로토콜은 3개의 커맨드를 정의한다, 즉 Put Packet(패킷 넣기), Get Packet(패킷 얻기), Poll(폴)이다. 상기 Put Packet 커맨드는 호스트로부터 장치로 데이터를 전송한다. 상기 Get Packet 커맨드는 상기 장치로부터 호스트로 데이터를 얻는다. 상기 Poll 커맨드는 호스트가 장치를 체크하여 상기 장치가 전송될 데이터를 갖고 있는지의 여부를 알기 위해 사용된다. 이러한 커맨드의 실행은 프로토콜 의존적이다. 실현가능할 때, 상기 Poll 커맨드는 데이터를 갖지 않고 Put Packet 커맨드로서 실행될 수 있다. 이러한 경우, 상기 Peer I/O 프로토콜은 두 개의 커맨드만 필요로 한다, 즉 Put Packet과 Get Packet이다.
상기 Peer I/O 커맨드 타입은 하위 프로토콜에 따라서, 1바이트(byte), 또는 2비트(bit), 또는 심지어 1비트로 표현될 수 있다. 상기 Put Packet 커맨드는 다음의 포맷을 갖는 것이 일반적이다.
Put Packet Length Data
이때, Length는 호스트에서 장치로 전송되는 데이터의 길이이다. 호스트로부터 Put Packet 커맨드를 수신한 후, 상기 장치는 데이터를 얻고, 상태(status)를 반환(return)시킨다.
상기 Get Packet 커맨드는 일반적으로 다음의 포맷을 가지며, 이때 Length는 장치로부터 호스트로 얻어질 데이터의 길이이다.
Get Packet Length
Get Packet 커맨드를 호스트로부터 수신한 후, 장치는 상기 호스트로 요청된 길이의 데이터를 전송하고 상태(status)를 전송한다.
Poll 커맨드는 매개변수를 필요로 하지 않는 것이 일반적이다. 호스트로부터 Poll 커맨드를 수신한 후, 장치는 상태(status)를 전송한다.
상기 장치로부터 호스트로 반환되는 상태는 다음을 포함하는 몇 가지 것을 나타낼 수 있다.
ㆍ전송될 길이 n의 데이터를 갖고 있다.
ㆍ전송될 데이터가 없다.
ㆍ전송될 데이터가 없으며; 폴링(polling) 간격을 설정한다. 상기 폴링 간격은 무한(infinite)일 수 있으며, 이는 "폴하지 마라, 데이터를 기다리는 중이다."라는 것을 의미한다.
하위 프로토콜은 패킷내로 데이터의 길이를 제한하는 것이 일반적이다. 예를 들어, 이부 프로토콜은 데이터를 256바이트로 제한한다. 상기 Peer I/O 프로토콜은 하위 프로토콜의 한계와 관계가 있다. 이로 인해서, 필요에 따라 다수의 넣기(put), 또는 얻기(get) 커맨드를 발행함으로써, 더 큰 패킷을 전송하고 수신하는 것이 가능하다. 상기 Peer I/O 프로토콜은 상위 레이어 프로토콜이 자신의 패킷의 경계를 알고 있다고 가정한다.
Peer I/O 프로토콜의 동작( Operations of the Peer I/O Protocol )
이 섹션에서는 Peer I/O 프로토콜의 통상적인 동작을 기재한다. 네트워크가 데이터를 장치로 전송할 때, Peer I/O 서버(315)는 Put Packet 커맨드를 장치로 발행한다.
Put Packet Length Data
장치가 데이터를 네트워크로 전송하기를 원할 때, 기회를 기다릴 필요가 있다. 장치에게 전송할 기회를 제공하기 위해, 상기 Peer I/O 서버(315)가 정기적으로 폴링(poll)한다. 상기 서버는 POLL 커맨드를 발행한다.
POLL
Peer I/O 서버(315)로부터 커맨드를 수신한 후, 장치가 전송할 어떠한 데이터도 갖지 않는 경우, 그렇다고 나타내는 상태를 전송한다. 장치가 전송할 데이터를 갖는 경우, "데이터 가짐(has data)" 상태를 전송하고, 상기 장치가 전송하려고 하는 데이터의 길이를 전송한다.
Peer I/O 서버(315)가 상기 장치가 전송할 데이터를 가짐을 나타내는 상태를 수신하는 경우, Get Packet 커맨드를 발행한다.
GET_PACKET Length
상기 장치는 데이터를 내포하는 응답(response)으로 응답한다.
Data Status
상태가 전송할 추가 데이터를 나타내는 경우, Peer I/O 서버(315)는 또 다른 Get Packet 커맨드를 발행할 수 있다.
제어된 폴링( Controlled Polling )
호스트의 Peer I/O 서버(315)가 장치가 전송할 데이터를 갖고 있는지의 여부를 알아보기 위해, 정기적으로 상기 장치에 폴링(poll)한다. 이러한 폴링은 폴링 간격(polling interval)에 의해 제어되며, 상기 폴링 간격은 무한하다. 이러한 제어된 폴링이 장치(301)가 호스트(303)에 의해 지속적으로 폴링되는 경우 발생하는 파워 소모를 감소시킨다.
Peer I/O는 폴링 간격을 특정할 수 있는 새로운 반환 상태를 형성한다. 디폴트 폴링 간격은 "가능한 자주(as often as possible)"이다. 상기 간격은 초, 또는 분, 또는 시간으로 특정될 수 있다. 상기 Peer I/O 서버(315)는 폴링 간격과 가능한 비슷하게 폴링할 것이다. 상기 폴링 간격은 또한 무한할 수 있다. 상기 장치는 데이터를 수신하기를 기다릴 때, 무한 폴링 간격을 특정할 수 있다. 이러한 경우, Peer I/O 서버(315)는 장치에 폴링하지 않을 것이며, 상기 장치에 가용한 데이터가 존재할 때 단지 장치에 접촉한다. 예를 들어, 장치가 웹 서버이며, 클라이언트 연결을 기다리고 있을 때, 상기 장치는 폴링 간격을 무한대로 설정할 수 있다. 예를 들어, 호스트가 배터리로 구동되는 작은 모바일 장치이고, 사기 장치가 호스트에 의해 공급되는 파워를 소모할 때, 이러한 Peer I/O로의 새로운 추가가 모바일 애플리케이션에 매우 중요하다.
예를 들어, 반환 상태는 두 개의 옥텟(octet)으로 표현될 수 있다. 가장 중요한 4비트는 "데이터를 가짐", 또는 "데이터 없음"을 나타낸다. "데이터를 가짐"의 경우, 나머지 비트가 데이터의 길이를 나타낼 수 있다. "데이터 없음"의 경우, 나머지 비트는 모두 0이며, 이는 "현재 폴링 간격을 사용(use current polling interval)"을 의미하고, 이것이 디폴트 폴링일 수 있다. 나머지 모든 비트가 1일 경우, 이는 "폴을 하지 말 것(do not poll)"을 의미한다. 그렇지 않을 경우, 다음 두개의 비트가 폴링 간격의 단위, 가령 초, 또는 분, 또는 시간을 나타낸다. 나머지 10비트는 폴링 간격을 나타낸다.
예를 들어, 다음의 그림은 데이터 없음의 경우에 대한 반환 상태를 나타낸 다.
Figure 112007053779215-PCT00001
다음의 그림은 데이터를 가짐의 경우에 대한 반환 상태를 나타낸다.
Figure 112007053779215-PCT00002
Peer I/O 서버(315)와 Peer I/O 클라이언트(325)의 동작은 두 개의 유한 상태 머신에 의해 각각 제어된다.
도 9는 Peer I/O 서버(315)의 동작을 제어하는 유한 상태 머신(901)의 개념적 도시이다.
상기 유한 상태 머신(FSM, 901)은 다섯 개의 상태를 갖는다.
ㆍ초기 상태(902)
ㆍ폴링(903)
ㆍ클라이언트로부터 얻기(905)
ㆍ데이터를 클라이언트로 넣기(909)
ㆍ데이터에 대하여 네트워크 체크하기(907)
4개의 이벤트가 있다.
ㆍ클라이언트로부터의 4종류의 반환 상태
°클라이언트가 데이터를 갖고 있다(cd)
°클라이언트가 데이터를 갖지 않고, 폴링 간격을 변경시키기 않는다(cnd)
°클라이언트가 데이터를 갖지 않고, 폴링 간격을 변경시킨다(cnd+p)
°클라이언트가 데이터를 갖지 않고, 폴하지 않는다(cnd+np)
ㆍ네트워크 체킹으로부터의 두 개의 결과
°네트워크가 데이터를 갖지 않는다(nnd)
°네트워크가 데이터를 갖는다(nd)
ㆍ4개의 액션(action)이 존재한다.
°클라이언트로부터 패킷을 얻기(get)
°패킷을 클라이언트로 넣기(put)
°네트워크로부터 패킷을 얻기
°네크워크로 패킷을 넣기
Peer I/O 서버(315)는 Peer I/O 클라이언트(325)에 의해 시작한다. 이에 응답하여, Peer I/O 클라이언트(325)로 다시 송신하기 전에 기다리기 위해, 상기 클라이언트(325)는 데이터 송신과, Peer I/O 서버(315)에 대한 폴링 간격을 갖는지의 여부를 나타낼 수 있다.
Peer I/O 클라이언트(325)가 상태(cd)를 반환할 때는 언제든지, 천 이(transition, 401)는 클라이언트(325)가 전송할 데이터를 가짐을 나타낸다. 이에 응답하여, Peer I/O 서버(315)는 클라이언트(325)로부터 데이터를 얻어서, 네트워크(117)로 데이터를 발송한다. Get_Packet 액션, 상태(905)를 발행함으로써, 서버(325)는 클라이언트(315)로부터 계속하여 데이터를 얻으며, 클라이언트(315)가 상태(cd)를 반환하는 한(천이(403)), 상기 데이터를 네트워크로 발송한다.
값(cnd)를 반환함으로써, 클라이언트가 자신은 전송할 어떠한 데이터도 갖지 않는다는 상태를 반환할 때, 또는 수신할 준비가 될 때, Peer I/O 서버(315)는 네트워크를 체크한다(상태(907)로의 천이(407)). 네트워크가 데이터를 갖는 경우, Peer I/O 서버(315)는 네트워크로부터 데이터를 얻고, 상기 데이터를 클라이언트(325)로 발송한다(상태(909)로의 천이(409)). 네트워크가 어떠한 데이터도 갖지 않는 경우(nnd), Peer I/O 서버(315)는 폴링 간격 설정에 따라서 클라이언트(325)를 폴하거나, 폴하지 않을 수 있다. 예를 들어, 폴링 간격이 설정되고(pintv) 클라이언트(325)로의 마지막 전송이 폴링 간격에 도달하는 경우(timeout), Peer I/O 서버(315)가 클라이언트(325)를 폴하며(상태(903)로의 천이(411)), 그렇지 않을 경우, 폴링 간격에 도달하지 않은 경우(!timeout), 서버(315)는 "네트워크 체킹"을 유지한다(상태(907), 천이(413)).
도 5는 Peer I/O 클라이언트(325)의 동작을 제어하는 유한 상태 머신(501)의 개념적 도시이다.
상기 Peer I/O 클라이언트 상태 머신은 4개의 상태를 갖는다.
ㆍ초기 상태, 상태(503)
ㆍ상위 레이어 인스트럭션을 대기(판독, 또는 기록), 상태(505)
ㆍ기록 준비, Peer I/O 서버 대기, 상태(507)
ㆍ판독 준비, Peer I/O 서버 대기, 상태(509)
5개의 이벤트가 존재한다.
ㆍ상위 레이어로부터 인스트럭션 판독하기
ㆍ상위 레이어로부터 인스트럭션 기록하기
ㆍPeer I/O 서버(315)로부터 Poll 커맨드
ㆍPeer I/O 서버(315)로부터 Put 커맨드
ㆍPeer I/O 서버(315)로부터 Get 커맨드
4개의 액션이 존재한다.
ㆍPeer I/O 서버(315)로 상태 "클라이언트가 데이터를 가짐"(cd)을 전송하기
ㆍPeer I/O 서버(315)로 상태 "클라이언트가 데이터를 갖지 않음"(cnd) 전송하기
°클라이언트가 데이터를 갖지 않고, 폴링 간격을 변경하지 않음(cnd)
°클라이언트가 데이터를 갖지 않고, 폴링 간격을 변경함(cnd+p)
°클라이언트가 데이터를 갖지 않고, 폴하지 않음(cnd+np)
ㆍPeer I/O 서버(315)로부터 데이터 얻기
ㆍPeer I/O 서버(315)로 데이터 전송하기
상기 장치(301)는 초기 상태(503)에서 시작하는 Peer I/O 클라이언트(325)를 동작시킨다. 상위 레이어, 가령 TCP/IP 모듈(327)을 통해 통신하는 애플리케이 션(307a-c)은 기록, 또는 판독을 요청할 수 있다. 예를 들어, 장치(301)가 연결을 개시하기를 원할 때, 상기 장치(301) 상의 애플리케이션(307)은 첫 번째 메시지를 전송하여 연결을 개시할 수 있다(Peer I/O 프로토콜은 상기 연결을 개시하는 것이 장치인지 또는 호스트인지에 무관하다). 상위 레이어가 기록 인스트럭션을 발행하는 경우, 상기 Peer I/O 클라이언트(325)는 자신의 "초기(initial)" 상태(503)를 출발하여, "기록 준비(ready write)" 상태(507)로 이동한다(천이(511)). 서버(315)가 Get Packet 커맨드를 발행할 때, 상기 클라이언트(325)는 데이터를 전송하고, 상위 레이어의 인스트럭션을 대기하는 "상위 대기(wait upper)" 상태(505)로 이동한다(천이(514)).
클라이언트(325)가 "상위 대기(wait upper)" 상태(505)에 있을 때, 상위 레이어가 "기록"을 발행하는 경우, 상기 클라이언트9325)가 상태(cd)를 Peer I/O 서버(315)로 전송하고, "기록 준비(ready write)" 상태(507)로 이동한다(천이(516)). 한편으로는, 상위 레이어가 "판독"을 발행하는 경우, 클라이언트(325)는 상태(cnd)를 Peer I/O 서버(315)로 전송하고, "판독 준비(ready read)" 상태(509)로 이동한다(천이(517)). 상기 클라이언트(325)는 상기 클라이언트(325)가 "초기" 상태(503)에 있는 동안 "판독" 인스트럭션을 상위 레이어로부터 수신한 경우, "초기(initial)" 상태(503)로부터 "판독 준비(ready read)" 상태(509)로 천이(transition)할 수 있다(천이(521)). "판독 준비(ready read)" 상태(509)에 있을 때, 상기 클라이언트(325)는 또 다른 cnd를 전송하고, "판독 준비(ready read)" 상태(509)에 남아 있는다(천이(519)). 서버(315)가 Put Packet 커맨드를 발행하는 경 우, 클라이언트(325)는 데이터를 얻으며, "상위 대기(wait upper)" 상태(505)로 이동한다(천이(515)).
적용예( application )
상기 Peer I/O 프로토콜은 많은 적용예를 갖는다. 첫 번째 예로는 호스트 컴퓨터를 통해 네트워크 스마트 카드를 인터텟으로 연결하는 것이 있다.
스마트 카드는 마이크로프로세서 칩을 내포하는 작은 카드이다. ISO는 스마트 카드에 대하여 두 개의 폼 팩터(form factor)를 정의한다, 즉, 신용 카드 형태의 카드와 SIM(Subscriver Indentification Module) 카드가 그것이다. 스마트 카드는 보안에 뛰어나고, 휴대성이 뛰어나며, 견고(tamper resistant)하다. 이들은 넓은 범위의 적용예에 대하여 보안의 목적을 수행한다, 가령 모바일 통신(셀 폰에 내장된 SIM 카드), 뱅킹, 물리적 접근 제어, 네트워크 접근 제어, 수송, 디지털 신원 등에 있어서 그렇다. 바람직하지 않게도, 스마트 카드 통신 표준은 메인스트림 컴퓨팅의 표준과 부합하지 않으며, 이것이 스마트 카드의 성공을 제한한다.
현재의 스마트카드 표준 ISO 7816(비-접촉 스마트 카드에 대해서는 ISO 1443)은 반-이중 시리얼 커맨드/응답 통신 프로토콜을 특정하며, 반면에 표준 인터넷 프로토콜, 가령 PPP, IP 및 TCP는 전-이중 및 피어-투-피어 모드로 동작한다. Peer I/O를 적용함으로써, ISO 7816(또는 ISO 14443) 표준과 호환되는 현재의 스마트카드가 인터넷 노드가 될 수 있다. 이 섹션에서는 ISO 7816 커맨드를 이용하는 Peer I/O의 구현을 설명한다.
도 6은 본원발명에 따르는 무-인프라구조 네트워크 스마트 카드(301)를 네트 워크(117)로 연결하기 위한 첫 번째 대안예를 도시한다. 상기 무-인프라구조(infrastructureless) 네트워크 스마트 카드(301)는 판독기(302)로 연결되며, 상기 판독기는 호스트 컴퓨터(303)로 연결된다. 상기 컴퓨터(303)는 네트워크(117)로 연결된다. 상기 컴퓨터(303)는 인터넷 통신을 카드(301)로 라우팅(routing: 경로 설정)하거나, 상기 카드로부터 인터넷 통신을 라우팅하기 위한 라우터(router) 기능을 한다. 상기 컴퓨터(303)는 네트워크(117)로의 연결을 위한 제 1 IP 어드레스와, 무-인프라구조 네트워크 스마트 카드(301)로의 연결을 위한 제 2 IP 어드레스를 갖는다. 상기 무-인프라구조 네트워크 스마트 카드(301)와 연계되어 있는 제 3 IP 어드레스가 존재한다. 상기 제 3 IP 어드레스는 카드(301)로 할당되거나, 동적으로 배정될 수 있다.
상기 컴퓨터(303)는 인터넷 서비스를 자신에게 연결되어 있는 그 밖의 다른 컴퓨터에게 제공하는 RAS(Remote Access Server)를 갖는다. 스마트카드(301)가 전-이중 시리얼 I/O을 갖는 경우, 다른 전-이중 시리얼 장치와 마찬가지로, TCP/IP/PPP를 갖는 스마트 카드는 컴퓨터(303) 상의 임의의 추가적인 소프트웨어를 로딩하지 않고 RAS를 통해 인터넷 연결을 확립할 수 있다. 실제로, 스마트카드 표준은 반-이중 시리얼 I/O를 특정한다. 전 이중 vs 반-이중 문제에 추가로, 인터넷 프로토콜은 피어-투-피어(peer-to-peer)이며, 이는 노드는 원할 때 토킹할 수 있는 반면에, ISO 7816 및 ISO 14443 프로토콜은, 스마트카드가 단지 단말기에 의해 발행된 커맨드에 응답하는 커맨드/응답 작업을 특정한다. 본원발명에 따라 구현된 Peer I/O 프로토콜은 이러한 프로토콜 미부합 문제 모두를 해결한다.
본원발명에 따르는 Peer I/O 구현은 호스트 컴퓨터(303)(또는 판독기(302)) 상에서와 스마트 카드(301)에서 함께 동작하는 통신 모듈로서 존재한다. 상기 호스트 컴퓨터(또는 판독기)는 카드와 상기 호스트 상의 RAS 간에서 메시지를 발송하기 위한 서비스를 제공하는 Peer I/O 서버(315)를 내포한다. 상기 카드는 ISO 7816 우위에 존재하고 그 밖의 다른 프로토콜, 가령 PPP 보다 아래 위치하는 Peer I/O 클라이언트를 내포한다.
RAS가 카드로 메시지를 전송할 때, 상기 메시지를 포함하는 하나 이상의 APDU 커맨드를 상기 카드로 전송함으로써, 상기 Peer I/O 서버(315)는 메시지를 발송한다. 카드가 메시지를 RAS로 전송하게 하기 위해, Peer I/O 서버(315)가 폴링 간격(polling interval)에 따라 카드로 정기적으로 폴(poll)한다.
도 7은 Peer I/O 프로토콜을 구현하는 호스트 컴퓨터(303)와 네트워크 스마트 카드(301)에 대한 통신 프로토콜 스택의 하이-레벨 개념도이다.
링크-레이어(link-layer) 프로토콜, 본원에서는 Peer I/O를 포함하는 본원발명의 실시예에서, 상기 Peer I/O 모듈은 호스트 컴퓨터(303)(또는 판독기)와 카드(301)에 모두 존재한다. 호스트 PC 측(303)의 프로토콜 스택에서, Peer I/O 서버 모듈(315)이 Peer I/O 프로토콜 레이어를 구현하고, 카드(301)와, 상기 호스트 컴퓨터(303) 상의 RAS(Remote Access Server, 701) 간에서 메시지를 발송하기 위한 서비스를 제공한다. 스마트 카드(301) 측에서, 상기 프로토콜 스택은 APDU(807) 우위에 위치하고 PPP(329) 등의 다른 프로토콜 아래에 위치하는 Peer I/O 프로토콜 레이어(325)를 내포한다. APDU는 호스트(303)와 카드(301) 사이의 통신을 제공한 다. 상기 Peer I/O 프로토콜은 실행되는 인터넷 프로토콜에 독립적이다. 상위 레이어로부터의 프로토콜의 관점에서, Peer I/O는 메시지를 양 방향으로 운반할 수 있다. 예를 들어, Peer I/O는 PPP 프레임, 또는 이더넷 프레임, 또는 IP 데이터그램을 운반하기 위해 사용될 수 있다. Peer I/O는 PPP 프레임, 또는 이더넷 프레임, 또는 IP 데이터그램 등의 메시지를 운반하기 위해 APDU를 사용한다. Peer I/O에 대한 다음의 설명에서, PAS와 PPP를 예로서 사용한다. 이 경우에서, Peer I/O는 PPP 프레임을 운반하기 위해 APDU를 사용한다.
RAS가 메시지를 카드(301)로 전송할 때, 상기 메시지를 내포하는 하나 이상의 APDU 커맨드를 카드(301)로 전송함으로써, 상기 Peer I/O 서버(315)는 메시지를 발송한다. 카드(301)가 RAS로 메시지를 전송하게 하기 위해, Peer I/O 서버(315)는 카드(301)를 정기적으로 폴한다. Peer I/O 서버(315) 및 Peer I/O 클라이언트(325)의 유한 상태 머신이 명시적인 분할 및 조합(fragmentation and assembly) 메커니즘을 사용하지 않고 임의의 길이의 메시지를 발송하기 위한 메커니즘을 형성한다.
Peer I/O 프로토콜 포맷( Peer I/O protocol Format )
다음은 ISO 7816 통신 프로토콜 상에 구축되는 Peer I/O의 한 가지 구현예이다. Peer I/O 구현예는 다음의 정의되는 클래스, 인스트럭션, 상태 워드 세트에 제한받지 않는다. 상기 Peer I/O 프로토콜은 Peer I/O 프로토콜에 대하여 새로운 ISO 7816 클래스 CLA = 0x12를 정의한다(ISO 7816-4가 장래의 사용을 위해 0x10 - 0x7F CLA 숫자를 예약했다, ISimplify는 0x10을 사용한다). 이 Peer I/O 클래스에 대하여 3개의 인스트럭션, 즉, POLL, GET_PACKET 및 PUT_PACKET이 정의된다. 상기 Peer I/O 서버(315)는 POLL을 사용하여, 카드가 임의의 것을 전송하기를 원하는지의 여부를 알아보기 위해 상기 카드에 폴(poll)할 수 있으며, GET_PACKET을 사용하여 카드로부터 데이터를 얻을 수 있고, PUT_PACKET을 이용하여 상기 카드로 데이터를 전송할 수 있다. 상기 Peer I/O 프로토콜은 자신의 프로토콜 데이터 유닛을 갖지 않는다. APDU를 직접 사용한다.
Peer I/O 커맨드 APDU는 다음의 포맷을 갖는다.
0x12 INS Null Null Length (Data)
인스트럭션 INS는 다음 중 하나일 수 있다.
ㆍPOLL (0xE8) : Length = 1; 데이터는 임의의 1바이트(byte)이다
ㆍPUT_PACKTET (0xEA) : Length는 카드로 전송될 Data(데이터)의 바이트의 수이다
ㆍGET_PACKET (0xEC) : Length는 상기 카드로부터 수신된 Data(데이터)의 바이트의 수이다
Length는 1바이트이며, 따라서 최대 데이터 길이는 256바이트이다. POLL 커맨드가 임의의 1바이트를 전송함을 명심하라. 이는 카드에 의해 전송될 어떠한 ACK도 없고 일부 판독기는 잘 동작하지 않는 ISO 7816 Case 1 커맨드를 피하기 위한 것이다.
응답 APDU는 다음의 포맷을 갖는다.
ACK (Data) SW1 SW2
상기 ACK는 Peer I/O 서버(315)로부터 커맨드를 수신하기 위한 카드로부터의 긍정 응답(acknowledgement)을 나타낸다. 상기 ACK는 수신된 커맨드의 INC 코드이 다. 카드 측의 프로세스의 상태는 응답 APDU에서 SW1 및 SW2에 의해 나타난다. Peer I/O 인스트럭션 3가지 모두에 대하여, 응답 상태는 다음과 같다.
ㆍREADY-WRITExx (가령, 6Cxx) : xx는 카드가 전송할 준비를 하는 바이트의 수를 나타낸다
ㆍNO-DATA (가령 9000) : 카드는 수신할 준비가 되었다
ㆍ9xxx : 카드가 폴링 간격을 설정한다
보통의 상태에 대하여 6Cxx를 사용하는 이유는 다음과 같다. 호스트 측에서의 IOP API가 APDU 커맨드의 상태를 내보내지 않는다. 따라서 6Cxx는 Peer I/O 서버(315)가 예외로서 이를 포획할 수 있도록 사용된다.
Peer I/O 동작( Peer I/O Operation )
RAS가 데이터를 카드로 전송할 때, Peer I/O 서버(315)는 PUT_PACKET 커맨드를 카드에게로 발행한다. 상기 APDU는 데이터를 내포한다.
0x12 PUT_PACKET Null Null Length Data
카드가 데이터를 RAS로 전송하기를 원할 때, 기회를 기다릴 필요가 있다. t아기 Peer I/O 서버(315)는 정기적으로 폴하여, 카드에게 전송할 기회를 제공할 수 있다. 상기 서버는 POLL 커맨드를 발행한다.
0x12 POLL Null Null 1 1
커맨드 APDU를 Peer I/O 서버(315)로부터 수신한 후, 우선 상기 카드는 ACK로 응답한다. 카드가 전송할 데이터를 갖고 있지 않을 경우, SW1 SW2를 NO-DATA로 설정한다(가령 90 00).
ACK 90 00
카드가 전송할 데이터를 가질 경우, SW1 SW2를 6Cxx로 설정하며, 이때 xx는 카드가 전송하기를 원하는 데이터의 길이이다.
ACK 6C xx
Peer I/O 서버(315)가 상태 READY-WRITE(6Cxx)의 응답을 수신하면, 그 밖의 다른 커맨드를 발행하기에 앞서서, Length = xx를 갖는 GET_PACKET 커맨드를 발행한다.
0x12 GET_PACKET Null Null xx
카드는 데이터를 포함하는 응답 APDU로 응답한다.
ACK Data SW1 SW2
SW1 SW2 = 6Cxx일 때, Peer I/O 서버(315)는 또 다른 GET-PACKET 커맨드를 발행할 수 있다.
스마트 카드 상에서의 구현( Implementation on a Smart Card )
도 8 및 9는 스마트 카드 시스템에서의, 본원발명에 따르는 피어-투-피어 통신 시스템의 두 개의 대안적 구현예를 도시한다.
도 8은 스마트 카드와 네트워크 간의 통신을 구현하기 위한 성부의 개념적 도시이며, 이때 반-이중 시리얼 I/O를 갖는 시리얼 연결을 이용하여 스마트 카드는 호스트 컴퓨터로 통신한다. 상기 스마트 카드(301)는 호스트 컴퓨터(303)로 판독기(302)로 연결된다. 상기 판독기의 드라이버는 Peer I/O 서버(315)를 구현한다. 시리얼 포트 드라이버(803)와 함께, 복합 드라이버가 호스트 컴퓨터(303)의 시점에서 (가상의) 시리얼 포트로서 동작한다. 가상 시리얼 포트로의 표준 RAS 연결에 의해, 스마트 카드(301)로의 네트워크 연결이 가능해진다.
Peer I/O 서버(315)는 스마트 카드 판독기의 하드웨어에서 구현될 수 있다. 도 9는 스마트 카드와 네트워크 간의 통신을 구현하기 위한 구성요소의 개념적 도시이며, 이때 스마트 카드는 하드웨어 인터페이스 장치와 반-이중 시리얼 연결을 통해 통신하고, 상기 인터페이스는 전-이중 연결을 이용하여 호스트 컴퓨터와 통신한다. 판독기(302)는 시리얼 연결, 또는 USB 연결을 통해 호스트 컴퓨터(303)로 연결된다(USB 연결을 이용할 때, USB/시리얼 변환이 판독기와 호스트 컴퓨터에서 요구된다). 다시, 시리얼 포트로의 표준 RAS 연결에 의해, 스마트 카드(301)로의 네트워크 연결이 가능해진다.
멀티미디어 카드( MMC )
또 다른 실시예에서, 본원발명은 MMC(MultiMedia Card)를 네트워크로 연결하기 위해 사용된다. 이 실시예에서, MMC 카드는 본원에서 설명된 네트워크 스마트 카드(201)와 거의 동일한 역할을 한다.
멀티미디어 카드(MMC)는 모바일 적용예, 가령 셀 폰, 디지털 카메라, MP-3 음악 재생기, PDA를 위한 작고(24mm x 32mm, 또는 18mm x 1.4mm), 이동가능하며, 고형의 메모리 카드이다. MMC의 저장 용량은 1Gbyte의 데이터에 이른다. 고속 MMCs는 52Mbits/초까지의 속도로 데이터를 전송할 수 있다. MMC는 애플리케이션을 판독/기록하기 위한 플래시 기법(flash technology), 또는 애플리케이션을 단지 판독만하기 위한 ROM, 또는 플래시 기법을 사용한다.
MMC는 7-핀 시리얼 인터페이스를 가지며, 상기 인터페이스는 3개의 통신 라인(커맨드, 클럭 및 데이터)과, 4개의 공급 라인을 갖는다. MMC 초기화 및 데이터 전송은 MMC 버스 프로토콜을 기반으로 이뤄진다. 각각의 메시지가 3개의 토큰(token: 커맨드, 응답 및 데이터) 중 하나를 이용한다. 상기 커맨드 토큰은 호스트에서 하나 이상의 카드로 전송되는 동작을 개시한다. 상기 응답 토큰은 어드레스된 하나 이상의 카드로부터 호스트로 전송된다. 데이터 토큰은 어느 방향으로나 진행할 수 있다. 데이터 및 커맨드 라인 상의 모든 비트는 클럭을 이용하여 동기화되어 전송된다.
보안 MMC는 콘텐츠 보호 및 전자 거래를 위해 스마트 카드 보안 특징을 MMC에 추가한 것이다. 상기 카드 내에서 보안 저장을 위해 변형 억제 모듈(tamper resistant module)을 포함하며, 암호화 및 인증화를 할 수 있다. 예를 들어, Infineon 기법은 자신의 보안 MMC에서 자신의 스마트 카드 하드웨어 기법을 사용한다. 상기 보안 MMC는 표준 MMC와 완전하게 호환된다.
최근, 멀티미디어 카드 연합(www.mmca.org)은 차세대 보안 멀티미디어 카드(보안 MMC)를 표준화하기 위한 작업 그룹을 형성하였다(www.mmca.org/press/SecurityFinal.pdf). 이러한 새로운 규격 V.2.0은 스마트 카드 기법을 적용하기 위한 통신 인터페이스를 생성하기 위해 MMC 표준 프로토콜의 확장을 정의하고 있다. 이에 따라서, MMC가 스마트 카드 보안 특징, 가령 암호화 및 인증화를 제공할 수 있다. 확장된 MMC 커맨드 세트에 의해, MMC 인터페이스가 표준 스마트 카드 ISO 7816 APDU를 운반할 수 있다.
스마트 카드가 인터넷 노드가 될 수 있게 해주는 본원발명은 보안 MMC를 특징짓기 위해 적용되며, 이는 도 7(e)에서 도시된다. 이 실시예에서, Peer I/O 프로 토콜(추후 더욱 상세히 설명)은 MMC 버스 프로토콜을 이용하여 Peer I/O 클라이언트(325)에서 구현되어, 인터넷 프로토콜 데이터, 가령 PPP 프레임을 운반할 수 있다. SPI는 MMC 버스 외에, MMC로의 또 다른 통신 인터페이스이다. 일부 MMC 카드는 MMC, 또는 SPI 모드를 선택할 수 있다. 따라서 네트워크 스마트 카드에서의 SPI의 이용을 설명하는 앞서 제공된 방법은 보안 MMC에서도 역시 적용된다. 호스트, 또는 네트워크와 통신하기 위해, 상기 보안 MMC는 그 밖의 다른 멀티미디어 전송 프로토콜(multimedia transport protocol)을 사용할 수 있다. 도 10은 보안 MMC를 인터넷 노드로서 만들기 위한 하나의 예시적인 구성을 도시한다. 그 밖의 다른 예로는 PPP 및 Peer I/O를 그 밖의 다른 링크 레이어 프로토콜로 대체하는 것과, TCP를 그 밖의 다른 전송 프로토콜, 가령 UDP로 대체하는 것이 있다.
근거리 장 통신( NFC : Near Field Communication )
상기 근거리 장 통신(NFC)은 무선 인터페이스 및 프로토콜이다. 이는 고립된 장치(isolated device)로부터 네트워크 장치로 이동하는 가전제품을 표적으로 한다. 사용자가 네트워크를 구성할 필요없이, 서로 가까워짐으로써, 상기 NFC 장치는 통신한다. 상기 NFC 인터페이스는 13.56MHz의 조정되지 않은 RF 대역에서 동작한다. 상기 통신은 반-이중 통신이다. 동작 거리(operating distance)는 약 0 내지 20㎝이다(NFC는 "근거리 장 통신-백서(Near Field Communication)", ECMA 인터내셔날, Ecma/TC32-TG19/2004/1에서 기재되어 있다).
NFC 프로토콜은 개시자(Initiator)와 표적(Target)을 구분한다. 상기 개시자 장치는 데이터 교환을 개시하고 제어한다. 상기 표적 장치는 상기 개시자로부터의 요청에 답한다. 상기 NFC 프로토콜은 두 개의 동작 모드를 가지며, 능동 모드(active mode)와 수동 모드(passive mode)가 그것이다. 능동 모드에서, 두 장치는 모두 데이터를 운반하기 위한 자신들의 고유 RF 장(field)을 생성한다. 수동 모드에서, 단지 개시자만이 RF 장을 생성하며, 이것을 개시자 장치와 표적 장치가 데이터를 전송하기 위해 모두 사용한다. 상기 NFC 장치는 106,212, 또는 424 kbit/s로 초기 통신 속도를 설정한다. 상기 능동 통신 모드는 더 높은 비트율인 6Mbit/s까지 도달할 수 있다("Near Field Communication-Interface and Protocol(NFCIP-I)", 표준 ECMA-340, 2002년11월).
상기 NFC는 매우 짧은 범위의 무선 프로토콜이다. 직관적으로, 통시하기 위해 두 개의 NFC 장치가 서로 매우 가까이 위치해야하기 때문에, 이는 안전하다. 통신의 수동 모드는 NFC의 중요한 특징이다. 배터리에 의해 파워가 공급되는 모바일 장치, 가령 모바일 폰, 또는 파워 소스가 없는 모바일 장치가 RF 장을 생성할 필요없이, 그 밖의 다른 NFC 장치와 통신할 수 있다.
상기 NFC 장치는 NFC의 데이터 교환 프로토콜(DEP: Data Exchange Protocol)을 이용하여 데이터를 교환한다. 상기 DEP은 요청/응답 프로토콜이다. 개시자가 요층을 전송하고, 표적이 응답을 송신한다. RF 장을 생성하지 않는 NFC 장치는 항상 통신의 수동 모드에서 동작하며, 표적 장치가 된다. 이는 표준 ISO 7816, 또는 ISO 14443 스마트 카드와 유사한 상황이다. 앞서 언급된 기법과 유사하게, DEP을 이용하는 Peer I/O를 구현할 수 있다. 예를 들자면, Peer I/O 커맨드를 정의하기 위해, DEP 프로토콜 헤더의 정해지지 않은 비트(bit) 설정을 사용할 수 있다.
네트워크 프로토콜이 수동 NFC 표적 장치에서 구현되는 경우, Peer I/O는 이러한 장치가 네트워크 피어(peer)로서 동작할 수 있게 한다, 즉, 활성 장치(active device)가 될 수 있게 한다.
기타 적용예
Dallas Semiconductor의 iButton은 16mm의 스테인리스 스틸에 내장된 컴퓨터 칩이다(http://www.ibutton.com).
상기 iButton은 전자 열쇠(key fob), 반지, 시계, 또는 그 밖의 다른 개인용 물품에 부착될 수 있다. 상기 iButton의 적용예는, 빌딩 및 컴퓨터로의 접근 제어를 포함한다. 상기 iButton은 판독기/기록기 장치를 통해 호스트 컴퓨터와 통신한다. 이러한 통신은 데이터 전송이 비트 시퀀스형이고 반-이중형식인 단일-와이어 프로토콜(1-wire protocol)을 사용한다. 판독기/기록기를 포함하는 호스트가 매스터(master)인 동안, 상기 iButton은 슬레이브(slave)로 간주되어진다. 이러한 iButton의 단일-와이어 프로토콜을 이용하여 Peer I/O는 구현될 수 있다. 이러한 구현에 의해, 상기 iButton은 활성 피러가 될 수 있고, 통신을 개시할 수 있다.
그 밖의 다른 많은 장치가 반-이중 시리얼 커맨드/응답(마스터/슬레이브) 통신 프로토콜을 이용한다, 예를 들어, 원격 모니터링 장치(가령 위성 모뎀 모니터링, 환자의 홈 모니터링), 오디오 장치 및 다양한 제어 시스템이 있다. Peer I/O 구현예에 의해, 이러한 장치들은 네트워킹 프로토콜을 지원하게 되고 네트워크에서 활성 피어가 될 수 있다.
앞선 설명으로부터, 본원발명이 제공하는 피어-투-피어 통신 방법 및 시스템 이 자원-제약형 장치가 네트워크 피어(peer)로서 통신할 수 있게 해주면서 효과적이며 유연한 피어-투-피어 통신을 제공함이 자명해질 것이다. 본원발명의 방법에 따라 구현되거나 동작하는 로직(logic)을 포함하는 전자 장치가 반-이중 시리얼 커맨드/응답 통신 링크를 통해 호스트 장치와 통신하도록 설계된다할지라도, 비동기 반-이중 방식으로 통신함이 자명하다. 본원발명에 따르는 피어-투-피어 통신을 위한 시스템 및 방법은 호스트와 자원-제약형 장치에 최소 전력 소모를 추가하고, 따라서 제한된 전력 공급 용량을 갖는 작은 휴대용 장치에 유리하게 전개될 수 있다. 따라서 본원발명에 따르는 피어-투-피어 통신의 시스템 및 방법이 기존의 통신 시스템의 우위에 있는 몇 가지 이점을 제공한다.

Claims (12)

  1. 자원-제약형 장치(resource-constrained device)와 원격 네트워크 노드(remote network node) 간의 네트워크를 통한 통신에 대한 방법으로서, 이때, 미-수정된(un-modified) 네트워크 클라이언트 및 서버를 이용하여 상기 원격 노드는 상기 자원-제약형 장치와 통신하며, 상기 자원-제약형 장치는 중앙 프로세싱 유닛과, 랜덤 액세스 메모리와, 비-휘발성 메모리와, 판독-전용 메모리와, 입력 및 출력 소자를 가지며, 상기 자원-제약형 장치는 물리 통신 링크 연결(physical communication link connection)을 통해 호스트 컴퓨터(host computer)로 연결되어 있으며, 상기 방법은
    - 상기 자원-제약형 장치와 상기 호스트 컴퓨터 간의 물리 링크 연결을 확립하는 단계,
    - 네트워킹 프로토콜과 하나 이상의 링크 레이어(link layer) 통신 프로토콜을 이행하며, 인터페이스 장치와 통신하도록 동작하고, 원격 네트워크 노드와 통신하도록 동작하는 통신 모듈을 상기 자원-제약형 장치 상에서 실행시키는 단계,
    - 통신 모듈에 따라서 상기 자원-제약형 장치를 동작시키는 단계로서, 이때 상기 통신 모듈은 입력 이벤트(input event)와, 상기 자원-제약형 장치 상에서 실행되는 하나 이상의 보안 네트워크 애플리케이션에 의해 구동되며, 상기 네트워크 애플리케이션은 호스트 컴퓨터와 원격 네트워크 노드 간에서 통신할 것을 상기 자원-제약형 장치의 통신 모듈에게 요청하는 단계,
    - 상기 자원-제약형 장치와 상기 인터페이스 장치 간의 반-이중(half-duplex)과, 상기 인터페이스와 상기 호스트 컴퓨터 간의 전-이중(full-duplex)을 갖는 시리얼 연결(serial connection)인 물리 링크를 이용하여 상기 자원-제약형 장치와 호스트 컴퓨터 사이에 연결된 인터페이스 장치를 동작시키는 단계,
    - 상기 인터페이스 장치가 상기 자원 제약형 장치와 상기 네트워크 간에서 메시지를 발송하도록 하는 유한 상태 머신(finite state machine)에 따라서 인터페이스 장치를 동작시키는 단계로서, 이때 인터페이스 장치는, 상기 자원 제약형 장치가 개시하고 메시지를 전송하도록 하는 상태와, 개시하고 메시지를 전송하려는 의도가 없음을 나타내는 상기 자원-제약형 장치에 응답하여, 상기 자원-제약형 장치와의 상호작용을 일정한 시간 주기 동안 지연시키는 상태인 하나 이상의 상태(state) 중 하나의 상태에 있는 단계
    를 포함하는 것을 특징으로 하는 통신 방법.
  2. 제 1 항에 있어서, 상기 인터페이스 장치는 호스트 컴퓨터와 자원-제약형 장치 사이에 연결된 하드웨어 장치임을 특징으로 하는 통신 방법.
  3. 제 1 항에 있어서, 상기 인터페이스 장치는, 물리 링크와 상위 레벨 통신 프로토콜을 이행하는 통신 모듈 사이의 호스트 컴퓨터 상에서 실행되는 소프트웨어 모듈임을 특징으로 하는 통신 방법.
  4. 제 1 항에 있어서,
    - 상기 인터페이스 장치를 동작시켜서, 상기 반-이중 시리얼 연결과 전-이중 연결 사이의 브리징(bridging) 기능을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 통신 방법.
  5. 제 4 항에 있어서, 상기 브리징 기능을 수행하는 단계는
    커맨드/응답 모드(command/response mode)에서 동작하는 자원 제약형 장치를 피어(peer)로서 네트워크 노드와 통신하게 해주는 기능,
    반-이중 시리얼 통신 모드에서 동작하는 자원 제약형 장치가 전-이중 통신 트래픽을 다루게 해주는 기능,
    상위 레이어 프로토콜(upper layer protocol) 프레임을 캡슐화하는 기능,
    하위 링크 레이어의 프레임 크기 한계를 초과하는 상위 레이어 프로토콜 프레임의 전송을 활성화시키는 기능, 그리고
    상위 레이어 프로토콜의 다수의 논리적 연결(logical connection)을 지원하는 기능
    중 하나 이상의 기능을 제공하는 단계를 더 포함하는 것을 특징으로 하는 통신 방법.
  6. 전자 장치(electronic device)와 호스트 장치(host device)를 동작시키기 위한 방법에 있어서, 이때 상기 호스트 장치가 연결되어 있는 컴퓨터 네트워크를 통 해 통신하도록 상기 전자 장치는 호스트 장치로 연결되어 있고, 상기 방법은
    제 1 상태 머신(state machine)에 따라 전자 장치를 동작시키는 단계와,
    제 2 상태 머신(state machine)에 따라 전자 장치를 동작시키는 단계
    를 포함하며, 이때
    - 상기 제 1 상태 머신은
    상기 전자 장치가 전송될 데이터를 갖고 있는지의 여부를 묻기 위해, 상기 호스트 장치가 상기 전자 장치로 폴(poll)한 폴링 상태( polling state ),
    상기 호스트 장치가 네트워크 상의 원격 장치로부터 데이터를 수신하도록 준비되어 있음을 나타내는, 네트워크 체킹 상태( checking - network state )
    상기 호스트 장치가 상기 전자 장치가 전송될 데이터를 가진다는 지시(indicating)를 수신하였음을 나타내는, 클라이언트로부터 데이터를 얻기 상태( getting - data - from - client state ),
    상기 호스트 장치는 네트워크로부터 수신된 데이터를 가지며 상기 데이터는 상기 전자 장치로 향하는 것을 나타내는, 데이터를 클라이언트에게 주기 상태( putting - data - to - client state )
    를 가지고, 이때 호스트 장치가
    반-이중 시리얼 커맨드/응답 통신 링크(half-duplex serial command/response communications link)를 통해 상기 전자 장치에게 폴(poll)하고, 지정 타임아웃(time-out) 간격의 만료에 의해 트리거(trigger)되는 조건에 응답하여 상기 네트워크 체킹 상태로부터 상기 폴링 상태로의 천이(transition)를 행하 며,
    상기 전자 장치로부터 패킷을 얻고(getting), 폴(poll)에 대한 응답으로서 클라이언트는 데이터를 갖고 있다(client-has-data)라는 응답 메시지에 응답하여, 상기 전자 장치가 트리거(trigger)하는 조건에 응답하여, 상기 폴링 상태로부터 상기 클라이언트로부터 데이터를 얻기 상태로의 천이(transition)를 행하며,
    폴(poll)에 대한 응답으로서 클라이언트는 데이터를 갖고 있지 않다( client -has-no-data)라는 응답 메시지에 응답하여, 상기 전자 장치에 응답하여 타임아웃(time-out) 간격을 설정하고, 이때, 상기 타임아웃 간격은 상기 응답 메시지의 매개변수이며,
    네트워크로부터 데이터를 수신하고 타임아웃 간격을 무효화(overriding)하는 것에 응답하여 패킷을 상기 전자 장치로 주며,
    - 상기 제 2 상태 머신은
    상기 전자 장치의 통신 모듈이 상위 레벨 프로토콜 통신을 위해 대기하고 있음을 나타내는, 상위 레벨 대기 상태( wait - for - upper - level state ),
    상기 전자 장치가 전송할 데이터를 갖고 있음을 나타내는, 서버가 기록할 준비가 되기 위한 대기 상태( wait - for - server - ready - write state ),
    상기 전자 장치는 데이터를 판독할 준비를 함을 나타내는, 서버가 판독할 준비가 되기 위한 대기 상태( wait - server - ready - read state )
    를 가지며, 이때 상기 전자 장치가
    상위 레벨 대기 상태에서의 상위 레벨 기록 커맨드에 응답하여, 상기 상위 레벨 대기( wait - for - upper - level state ) 상태로부터 상기 서버가 기록할 준비가 되기 위한 대기 상태( wait - for - server - ready - write state )로의 천이를 행하고,
    상기 서버가 기록할 준비가 되기 위한 대기 상태(wait-for-server-ready-write state ) 중에 반-이중 시리얼 커맨드/응답 통신 링크를 통해 수신된 폴링 메시지(polling message)에 응답하여, 클라이언트는 데이터를 갖고 있다( client - has -data)라는 메시지를 송신하고, 상기 서버가 기록할 준비가 되기 위한 대기 상태( wait - for - server - ready - write state )를 유지하며,
    상기 서버가 판독할 준비가 되기 위한 대기 상태(wait-for-server-ready-read state ) 중에 반-이중 시리얼 커맨드/응답 통신 링크를 통해 수신된 폴링 메시지(polling message)에 응답하여, 클라이언트는 데이터를 갖고 있지 않다( client -has-no-data)라는 메시지를 송신하고, 상기 서버가 판독할 준비가 되기 위한 대기 상태( wait - for - server - ready - read state )를 유지하는 것을 특징으로 하는 전자 장치와 호스트 장치를 동작시키기 위한 방법.
  7. 동기형 반-이중 시리얼 링크(synchronous half-duplex serial link)를 통해 통신하는 마스터 장치(master device)와 슬레이브 장치(slave device)를 갖는 시스템에 있어서, 상기 시스템이
    마스터 장치 및 슬레이브 장치 사이에서 물리적 링크를 확립하는 수단,
    마스터 장치가 전송할 준비가 되어 있는 어떠한 데이터도 갖지 않을 때, 상기 슬레이브 장치에게 주기적으로 패킷을 전송하도록 상기 마스터 장치를 구성하는 수단,
    슬레이브 장치가 전송할 준비가 된 어떠한 데이터도 갖지 않을 때조차, 현재 진행중이거나 방금 수신된 커맨드를 처리하기 위해 대기하지 않으면서, 현재 가용한 데이터의 응답 패킷을 이용하여 상기 슬레이브 장치가 최소 간격으로 대답하도록 구성하는 수단
    을 포함하여, 상기 링크가 비동기 논리 전-이중 프로토콜을 전송하도록 구성되며, 이때 상기 응답 패킷은 이전 호스트의 요청, 또는 슬레이브 장치에 의해 개시되는 요청에 대한 응답을 하나도 포함하지 않거나, 하나 이상의 응답을 포함하는 것을 특징으로 하는 시스템.
  8. 제 7 항에 있어서, 전력 소모와 통신 대기시간(communication latency) 간의 균형을 위해, 상기 마스터 장치, 또는 슬레이브 장치의 요구를 충족시키도록 주기적으로 조정되는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서, 외부 소스(external source)로부터 상기 마스터 장치로 요청을 넣음으로써, 주기적으로 판단되는 것을 특징으로 하는 시스템.
  10. 제 7 항에 있어서, 사용되는 논리 전-이중 프로토콜은, 이더넷(Ethernet), PPP, IP, TCP, UDP, ICMP, DHCP, HTTP, HTTPS, FTP, Telnet, SSH의 인터넷 프로토콜 중에서의 하나 이상인 것을 특징으로 하는 시스템.
  11. 제 7 항에 있어서, 한 쌍의 같이 동작하는 상태 머신(state machine)을 포함하며, 이때 마스터 장치는 제 1 상태 머신에 따라 동작하고, 슬레이브 장치는 제 2 상태 머신에 따라 동작하며, 이때 상기 제 1 상태 머신은, 마스터 장치가 슬레이브 장치와의 추가적인 상호작용을 하기에 앞서서, 상기 슬레이브 장치에 의해 특정된 주기(period)를 기다리는 하나 이상의 상태를 포함하는 것을 특징으로 하는 시스템.
  12. 제 7 항에 있어서, 상기 슬레이브 장치는 짧은 범위의 무선 장치(short range radio device)이며, 이때 상기 짧은 범위의 무선 장치는 상기 짧은 범위의 장치가 전송될 데이터를 가졌는지의 여부에 대한 질의(inquiry)를 수신한 것에 응답하여 동작하고, 상기 짧은 범위의 장치가 전송할 어떠한 데이터도 갖지 않을 경우, 폴링 간격(polling interval)을 포함하는 응답을 전송하는 통신 모듈을 포함하며,
    상기 마스터 장치는 무선 장치(radio device)이며, 상기 무선 장치는 상기 슬레이브로의 추가적인 통신을 시작하기 전에 만료시키도록 특정된 폴링-간격 동안 대기하도록 동작하는 통신 모듈을 포함하는 것을 특징으로 하는 시스템.
KR1020077017106A 2005-02-11 2006-02-11 슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용시스템 및 방법 KR101172930B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US65229105P 2005-02-11 2005-02-11
US60/652,291 2005-02-11
PCT/US2006/004925 WO2006086729A1 (en) 2005-02-11 2006-02-11 System and method for data communications allowing slave devices to be network peers

Publications (2)

Publication Number Publication Date
KR20080005481A true KR20080005481A (ko) 2008-01-14
KR101172930B1 KR101172930B1 (ko) 2012-08-14

Family

ID=36501861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077017106A KR101172930B1 (ko) 2005-02-11 2006-02-11 슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용시스템 및 방법

Country Status (4)

Country Link
EP (1) EP1864470A1 (ko)
JP (1) JP4869259B2 (ko)
KR (1) KR101172930B1 (ko)
WO (1) WO2006086729A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8400913B2 (en) * 2007-05-23 2013-03-19 Microsoft Corporation Method for optimizing near field links
US9032058B2 (en) * 2009-03-13 2015-05-12 Assa Abloy Ab Use of SNMP for management of small footprint devices
US8068011B1 (en) 2010-08-27 2011-11-29 Q Street, LLC System and method for interactive user-directed interfacing between handheld devices and RFID media
CN102404414B (zh) * 2010-09-17 2016-05-18 中国银联股份有限公司 基于mmc/sd接口的以太网通信系统及方法
JP5935235B2 (ja) 2011-02-18 2016-06-15 ソニー株式会社 通信装置、通信システムおよび通信方法
JP5900226B2 (ja) * 2012-08-03 2016-04-06 ブラザー工業株式会社 通信装置
JP6986835B2 (ja) * 2016-11-29 2021-12-22 大日本印刷株式会社 電子情報記憶装置、データ処理方法、及びデータ処理プログラム
JP7017185B2 (ja) * 2021-02-19 2022-02-08 大日本印刷株式会社 電子情報記憶装置、データ処理方法、及びデータ処理プログラム
CN114301925B (zh) * 2021-12-31 2023-12-08 展讯通信(天津)有限公司 数据传输方法及相关设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0468721A (ja) * 1990-07-04 1992-03-04 Toyota Motor Corp データ取込み方法
US6157966A (en) * 1997-06-30 2000-12-05 Schlumberger Malco, Inc. System and method for an ISO7816 complaint smart card to become master over a terminal
JP2002078027A (ja) * 2000-09-05 2002-03-15 Matsushita Electric Ind Co Ltd 無線ネットワークシステム
US7054624B2 (en) * 2002-04-02 2006-05-30 X-Cyte, Inc. Safeguarding user data stored in mobile communications devices
WO2005034052A1 (en) * 2003-09-29 2005-04-14 Axalto Sa Method and apparatus for secure networking between a resource-constrained device and a remote network node

Also Published As

Publication number Publication date
JP4869259B2 (ja) 2012-02-08
EP1864470A1 (en) 2007-12-12
WO2006086729A1 (en) 2006-08-17
KR101172930B1 (ko) 2012-08-14
JP2008538458A (ja) 2008-10-23

Similar Documents

Publication Publication Date Title
US7941660B2 (en) System and method for data communications allowing slave device to be network peers
KR101172930B1 (ko) 슬레이브 장치를 네트워크 피어가 되게 하는 데이터 통신용시스템 및 방법
US9843889B2 (en) Method and system for managing multiple applications in near field communication
EP2819014B1 (en) Near field communication host controller interface
JP5301533B2 (ja) ニアフィールド・リンクを最適化する方法
US8540164B2 (en) Answer to reset (ATR) pushing
WO2003053008A1 (fr) Dispositif de communication et procede associe
US20040003059A1 (en) Active key for wireless device configuration
US20220382920A1 (en) Terminal and communication method
CA2591172C (en) Answer to reset (atr) pushing
EP4187984A1 (en) Bluetooth low energy connection power consumption

Legal Events

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

Payment date: 20160801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 8