KR20160086949A - 데이터 패킷 헤더들을 통한 데이터 통신 - Google Patents

데이터 패킷 헤더들을 통한 데이터 통신 Download PDF

Info

Publication number
KR20160086949A
KR20160086949A KR1020167016830A KR20167016830A KR20160086949A KR 20160086949 A KR20160086949 A KR 20160086949A KR 1020167016830 A KR1020167016830 A KR 1020167016830A KR 20167016830 A KR20167016830 A KR 20167016830A KR 20160086949 A KR20160086949 A KR 20160086949A
Authority
KR
South Korea
Prior art keywords
data
field
ssid
sequence
data packet
Prior art date
Application number
KR1020167016830A
Other languages
English (en)
Other versions
KR101859923B1 (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 KR20160086949A publication Critical patent/KR20160086949A/ko
Application granted granted Critical
Publication of KR101859923B1 publication Critical patent/KR101859923B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/08Protocols for interworking; Protocol conversion
    • 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/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/037Protecting confidentiality, e.g. by encryption of the control plane, e.g. signalling traffic

Abstract

본원은 전자 기기에서 구현되는, 데이터 통신 방법을 개시한다. 상기 전자 기기는 데이터 패킷 시퀀스를 획득한다. 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 이때, 데이터는 제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들에 할당된다. 상기 전자 기기는 상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스를 암호화한다. 상기 암호화된 데이터 패킷들은 그 후에 무선 통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기로 송신된다. 상기 수신 기기는 상기 제1 및 제2 데이터 포맷들에 따라 상기 데이터 패킷들의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하고 상기 회수된 데이터에 따라 동작들을 수행하도록 구성된다.

Description

데이터 패킷 헤더들을 통한 데이터 통신{Data communication via data packet headers}
관련 출원
본원은 발명의 명칭이 "통신 방법, 통신 시스템 및 정보 송신/수신 장치(Communication method, communication system and information sending/receiving apparatus)"이며 2014년 12월 4일자 출원된 중국 특허출원 제201310649198.1호를 기초로 우선권을 주장하며, 상기 중국 특허출원 전체가 본원에 참조 병합된다.
기술분야
개시된 구현 예는 일반적으로 기술하면 데이터 통신 기술에 관한 것이고 구체적으로 기술하면 (식별 번호들, 패스워드들 및 명령어들과 같은) 특정 데이터를 무선 통신 네트워크를 통해 수신 기기에 전달하여 상기 수신 기기를 원격 제어하는 기술에 관한 것이다.
네트워크 기술이 개발됨에 따라, (컴퓨터들, 모바일폰들 및 소형 가전기기와 같은) 대다수의 전자 기기는 무선 통신 네트워크상에 통신 가능하게 연결된다. 때때로, 주변 통신 컴포넌트는 전자 기기에 부가적으로 통합될 수 있고 그럼으로써 상기 전자 기기가 다른 전자 기기들과 통신하여 유용한 데이터를 수신하게 해준다. 예를 들면, 전자 기기는 또한 블루투스 모듈, 근접장 통신 모듈 따위를 포함할 수 있다. 그러나 그러한 주변 통신 컴포넌트의 사용은 상기 컴포넌트에 기반한 통신이 반드시 더 편리하게 해주지 않으면서 상기 전자 기기의 비용을 증가시킨다. 그러므로 기존의 무선 통신 네트워크들을 이용해 어떠한 주변 통신 컴포넌트에도 의존하지 않고 유용한 데이터를 효율적으로 전자 기기들에 전달할 필요가 있다.
종래의 네트워크 통신의 해결 방안들에 연관된 위의 결함들 및 다른 문제들은 이하에 개시되어 있는 본원에 의해 감축되거나 제거된다. 일부 실시 예들에서, 본원은 하나 이상의 프로세서들, 메모리 및 하나 이상의 모듈들, 다수의 기능을 수행하기 위한 상기 메모리에 저장된 프로그램들 또는 명령어 세트들을 지니는 전자 기기에서 구현된다. 이러한 기능들을 수행하기 위한 명령어들은 하나 이상의 프로세서들에 의해 실행되도록 구성된 컴퓨터 프로그램 제품에 포함될 수 있다.
본원의 한 실시 형태는 전자 기기에서 구현되는 데이터 통신 방법이다. 상기 방법은 데이터 패킷 시퀀스를 획득하는 단계를 포함하며, 이 경우에 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하고 개별 데이터 패킷들의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 상기 방법은 제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들에 데이터를 할당하고 상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스를 암호화하는 단계를 부가적으로 포함한다. 상기 방법은 무선 통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기에 암호화된 데이터 패킷 시퀀스를 송신하는 단계를 부가적으로 포함하며, 이 경우에 상기 수신 기기는 상기 제1 및 제2 데이터 포맷에 따라 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하도록 구성된다.
본원의 다른 한 실시 형태는 전자 기기에서 구현되는 데이터 처리 방법이다. 상기 방법은 무선 통신 네트워크를 통해 수신 기기에 통신 가능하게 연결되는 수신 기기로부터 데이터 패킷 시퀀스를 획득하고 상기 데이터 패킷 시퀀스를 복호화하는 단계를 포함한다. 각각의 복호화된 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 복호화된 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 상기 방법은 제1 데이터 포맷과는 다른 제2 데이터 포맷에 따라 복호화된 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 데이터를 회수하고, 상기 회수된 데이터에 따라 동작들을 수행하는 단계를 포함한다.
본원의 다른 한 실시 형태는 (명령어를 포함하는) 적어도 하나의 프로그램이 저장되어 있는 하나 이상의 프로세서들을 포함하는 전자 기기이며, 상기 적어도 하나의 프로그램은 상기 하나 이상의 프로세서들에 의해 실행될 경우에 상기 프로세서들로 하여금 데이터 패킷 시퀀스를 획득하도록 하는 동작들을 수행하게 한다. 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 상기 적어도 하나의 프로그램은 제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들에 데이터를 할당하고 상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스를 암호화하도록 하는 명령어들을 부가적으로 포함한다. 상기 적어도 하나의 프로그램은 무선 통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기에 상기 암호화된 데이터 패킷 시퀀스를 송신하도록 하는 명령어들을 부가적으로 포함하고, 이 경우에 상기 수신 기기는 상기 제1 및 제2 데이터 포맷들에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하도록 구성된다.
다른 실시 예들 및 이점들이 본원 명세서의 이하의 설명 및 첨부도면들에 비추어 당업자에게는 명백해질 것이다.
위에서 언급한 본 개시내용의 구현 예와 아울러 추가 구현 예들은 첨부도면들과 연관지어 고려된 이하 본 개시내용의 여러 실시 형태의 상세한 설명으로부터 더 명확하게 이해될 것이다.
도 1은 일부 실시 예들에 따른 통신 네트워크에 연관된 복수 개의 전자 기기를 포함하는 전형적인 서비스 세트를 예시하는 도면이다.
도 2a는 일부 실시 예들에 따른 SSID, SSID 패스워드, 수신 기기 식별자, 및 SSID 공유 요청의 사용자 입력들을 수신하는 전형적인 사용자 인터페이스를 예시하는 도면이다.
도 2b는 일부 실시 예들에 따른 수신 기기를 제어하는 명령어들을 생성하는데 사용되는 전형적인 사용자 인터페이스를 예시하는 도면이다.
도 3a는 일부 실시 예들에 따른 네트워크 액세스 프로토콜(예컨대, IEEE 802.2 SNAP)에 상응하는 전형적인 데이터 포맷을 예시하는 도면이다.
도 3b는 일부 실시 예들에 따른 네트워크 액세스 프로토콜(예컨대 IEEE 802.2 SNAP)에 상응하는 제1 데이터 포맷을 각각 지니는 데이터 패킷 시퀀스를 예시하는 도면이다.
도 4a는 일부 실시 예들에 따른 데이터 패킷 헤더들 내에 데이터를 할당하는데 사용되는 전형적인 제2 데이터 포맷(예컨대, 링크 계층 데이터 구조)을 예시하는 도면이다.
도 4b는 일부 실시 예들에 따른 도 4a에 도시된 제2 데이터 포맷에 따라 구성된 전형적인 할당된 데이터를 예시하는 도면이다.
도 5는 일부 실시 예들에 따른 수신 기기로 데이터를 전송하는 전형적인 데이터 통신 방법의 흐름도이다.
도 6은 일부 실시 예들에 따른 수신 기기에서 수신된 데이터를 처리하는 다른 한 전형적인 데이터 처리 방법의 흐름도이다.
도 7은 일부 실시 예들에 따른 데이터를 통신하는 전형적인 전자 기기의 블록도이다.
도 8은 일부 실시 예들에 따른 데이터 통신 방법의 흐름도이다.
도 9는 일부 실시 예들에 따른 802.2 SNAP 데이터 포맷을 지니는 데이터 패킷의 개략도이다.
도 10은 일부 실시 예들에 따른 도 8에 도시된 바와 같은 데이터 패킷의 헤더 필드(예컨대, 헤더 필드 "길이(Length)")에 관심 있는 데이터를 부호화하는 동작(S140)의 흐름도이다.
도 11은 일부 실시 예들에 따른 관심 있는 데이터를 로드하기 위한 데이터 패킷 헤더들에 헤더 필드들을 배치하는 데 사용되는 링크 계층 데이터 구조의 개략도이다.
도 12, 13 및 14는 각각 일부 실시 예들에 따른 링크 계층 데이터 구조에 기반을 두고 구성된 매직 코드 필드, 시퀀스 헤더 및 데이터 필드의 개략도들이다.
도 15는 일부 실시 예들에 따른 SSID, SSID 패스워드 및 난수(random number)를 포함하는 데이터 필드의 개략도이다.
도 16은 일부 실시 예들에 따른 다른 한 전형적인 데이터 통신 방법의 흐름도이다.
도 17은 일부 실시 예들에 따른 각각 마스터 기기에 의해 송신되고 수신 기기에 의해 모니터링되는 데이터 패킷들의 데이터 패킷 길이들의 차이들을 보여주는 수정 테이블이다.
도 18은 일부 실시 예들에 따른 데이터 통신의 에러 확률들을 보여주는 전형적인 테이블이다.
도 19 및 20은 일부 실시 예들에 따른 각각 이더넷 802.2 데이터 포맷 및 이더넷 802.3 데이터 포맷을 지니는 2개의 데이터 패킷의 개략도들이다.
도 21은 일부 실시 예들에 따른 데이터 패킷의 헤더들을 통해 데이터를 전송하는 전형적인 데이터 통신 방법의 흐름도이다.
도 22는 일부 실시 예들에 따른 전자 기기(즉, 마스터 기기)의 전형적인 데이터 통신 시스템의 블록도이다.
도 23은 일부 실시 예들에 따른 전자 기기(즉, 수신 기기)에서의 전형적인 데이터 처리 시스템의 블록도이다.
도 24는 일부 실시 예들에 따른 다른 한 전형적인 데이터 통신 및 처리 시스템의 블록도이다.
첨부도면들 전반에 걸쳐 유사한 참조 부호들은 상응하는 부분들을 지칭한다.
지금부터 예들이 첨부도면들에 예시되어 있는 실시 예들을 구체적으로 참조할 것이다. 이하의 상세한 설명에서는, 다수의 특정 세부들이 본원 명세서에 제시된 주제의 완전한 이해를 위해 제공되어 있다. 그러나 상기 주제는 이러한 특정 세부들 없이도 구현될 수 있음이 당업자에게는 명백할 것이다. 그러나 첨부도면들은 단지 본 개시내용의 더 관련 있는 특징들을 예시한 것뿐이므로 한정적인 것으로 간주하여서는 아니 되는데, 그 이유는 이하의 상세한 설명에 다른 효과적인 특징들이 허용될 수 있기 때문이다. 다른 예들에서는, 공지된 방법들, 절차들, 컴포넌트들, 및 회로들이 실시 예들의 실시 형태들을 불필요하게 모호하게 하지 않도록 구체적으로 설명되지는 않는다.
지금부터 본원의 실시 예의 기술적 스킴이 본원의 일부 실시 예들에서 첨부도면들과 연관지어 설명될 것이다. 분명한 점으로는, 본원의 일부이지만 모두가 아닌 실시 예들이 설명된다는 점이다. 본원의 실시 예들에 기반을 두고, 당업자에 의해 획득되는 다른 실시 예들도 또한 본원의 보호 범위에 포함되는 것이다.
특별한 정의가 없는 한, 본원 명세서에 사용된 본원 기술 및 과학 용어들 모두는 본원의 기술분야에서 숙련된 자들에 의해 이해되는 의미들과 동일한 의미들을 갖는다. 패스워드 공유 및 획득 방법들 및 시스템들의 설명에 대해 본원 명세서에서 사용되는 용어들은 단지 특정 실시 예들을 설명하기 위한 것뿐이며, 본원을 한정하는 것으로 의도된 것이 아니다. 본원 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 리스트 항목들의 임의 조합을 의미한다.
도 1은 일부 실시 예들에 따른 통신 네트워크(30)에 연관된 복수 개의 전자 기기들(예컨대, 기기들(100, 200, 400)을 포함하는 전형적인 서비스 세트(10)를 보여준다. 상기 전자 기기는 무선 액세스 포인트(access point; AP)(300)를 통해 통신 네트워크(30)상에 통신 가능하게 연결된다. 상기 전자 기기들 각각은 데스크톱 또는 랩톱 컴퓨터(100A), 모바일폰(100B 또는 100C), 태블릿 컴퓨터, 또는 개인 휴대 정보 단말기(Personal Digital Assistant; PDA)를 포함하는 것이 바람직할 수 있지만 이들에 국한되지 않는다. 서비스 세트(10)는 또한 전자 기기로 또한 간주할 수 있는 서버(400)를 포함할 수 있다. 통신 네트워크(30)는 인터넷, 인트라넷들, 근거리 통신 네트워크(local area network; LAN)들, 셀룰러 통신 네트워크들, 이더넷, 스토리지 영역 네트워크(Storage Area Network; SAN)들, 전화 통신 네트워크들, 블루투스 통신 등등들을 포함하지만 이에 국한되지 않는다.
서비스 세트(100)는 통신 네트워크(30)를 다른 임의의 통신 네트워크과 구별하는 서비스 세트 식별자(service set identifier; SSID)에 연관되어 있다. 액세스 포인트(300) 및 전자 기기들(100, 200, 400)은 동일한 SSID를 사용하여 통신 네트워크(예컨대, 네트워크(30))에 액세스하여야 한다. 한 특정 예에서, SSID는 32개의 대소문자 구분 영숫자 문자를 포함하는 고유 식별자이며, 모바일 기기(예컨대, 기기(100B)가 통신 네트워크(30)에 연관된 서비스 세트(10)와 접속하려고 할 때 패스워드로서 기능 한다. 일부 상황에서는, 상기 SSID가 통신 네트워크(30)를 통해 송신된 모든 데이터 패킷의 헤더에 부착되어 있다.
일부 구현 예들에서, 서비스 세트(10)의 SSID가 SSID 패스워드에 부가적으로 연관되어 있다. 전자 기기는 통신 네트워크(30)에 연관된 서비스 세트(10)와 접속하기 위해 상기 SSID 및 상기 SSID 패스워드 양자 모두를 제공하여야 한다. 전자 기기가 통신 네트워크(30) 상에 상기 데이터 패킷을 배포하기 전에 상기 SSDI 및 상기 SSID 패스워드에 따라 데이터 패킷을 부호화하여야 할 뿐만 아니라, 전자 기기가 상기 SSID 및 상기 SSID 패스워드에 따라 통신 네트워크(30)를 통해 데이터 패킷을 수신할 때 상기 데이터 패킷을 복호화하여야 한다.
여러 실시 예에서, 상기 SSID 및 상기 SSID 패스워드는 사용자의 입력, 선택 또는 승인에 기반을 두고 서비스 세트(10)에 포함된 전자 기기용으로 정의된다. 그러나 본원의 배경기술에서 논의된 바와 같이, 일부 전자 기기들(예컨대, 기기(200))은 사용자가 상기 SSID 및/또는 상기 SSID 패스워드를 수동 입력하는 것을 허용하는 키보드 또는 터치 디스플레이를 포함하지 않는다. 본원의 일부 실시 예들에 의하면, 그러한 전자 기기는 통신 네트워크(30)에 연관된 동일한 서비스 세트(10)에 포함되어 있는 다른 한 전자 기기로부터 상기 SSID 및 상기 SSID 패스워드를 수신한다. 상기 수신기는 그리하여 다른 전자 기기로부터 전송된 하나 이상의 데이터 패킷들로부터 상기 SSID 및 상기 SSID 패스워드를 복구한다. 상기 복구된 SSID 정보는 그 후에 통신 네트워크(30)를 통해 상기 수신 기기들에서 수신된 데이터 패킷들을 복호화하고 상기 수신 기기들에 의해 브로드캐스트되는 데이터 패킷들을 부호화하는데 사용된다.
하나의 특정 예에서, 수신 기기는 무선 에너지 관리를 위한 다른 한 마스터 컴퓨터에 의해 제어되는 스마트 센서 기기이다. 상기 스마트 센서 기기는 전원 콘센트(wall power outlet) 상에 플러그가 꽂아져 있다. 상기 스마트 센서 기기의 소형 폼 팩터 및 저비용 요건들 때문에, 상기 스마트 센서 기기는 한정된 개수의 제어 스위치들 또는 버튼들을 포함할 수 있지만, 어떠한 디스플레이 또는 키보드도 포함하지 않는다. 이러한 스마트 센서 기기는 상기 마스터 컴퓨터로부터의 명령어들을 수신하고 부가적인 분석을 위해 다시 상기 마스터 컴퓨터들에 센싱 데이터를 반환하도록 통신 네트워크에 의존한다. 그러므로 상기 스마트 센서 기기는 상기 명령어들을 수신하고 상기 센싱 데이터를 반환할 목적으로 상기 통신 네트워크에 액세스하도록 상기 SSID 정보를 수신하여야 한다.
이러한 특정 예에 불구하고, 당업자라면 알 수 있겠지만 일부 실시 예들에서, 수신 기기가 SSID 또는 SSID 패스워드의 입력을 수신하기 위한 입력/출력 인터페이스를 포함할 수 있지만, 상기 SSID 또는 상기 SSID 패스워드를 서비스 세트(10)의 다른 한 전자 기기로부터 수신하도록 선택한다.
본원의 일부 실시 예들에 의하면, (상기 SSID 및 상기 SSID 패스워드를 포함하는) SSID 데이터 세트는 데이터 패킷의 특정 헤더 필드 내에 부호화된다. 한 데이터 패킷의 특정 헤더 필더가 상기 SSID 데이터 세트의 모든 정보를 포함할 정도로 충분하지 않을 경우에는, 데이터 패킷 시퀀스가 포함되고, 상기 SSID 데이터 세트가 특정 링크 계층 데이터 구조에 기반을 두고 다수의 데이터 패킷들의 특정 헤더 필드들 내에 부호화된다. 상기 특정 헤더 필드들은 암호화되어 있지 않은 일반 텍스트(plain text)들을 포함할 수도 있고 수신 기기에 알려진 암호화 방법으로 암호화되어 있는 암호화된 데이터를 포함할 수도 있다. 이 때문에 상기 수신 기기가 먼저 통신 네트워크(30)에 연결되어 있는 경우에, 상기 수신 기기는 간편하게 다른 한 마스터 기기로부터 상기 SSID 데이터 세트를 수신하고, 상기 SSID 및 상기 SSID 패스워드를 복구하며, 그리고 통신 네트워크(30)에 대해 인증된 액세스를 획득할 수 있다.
더욱이, 일부 실시 예들에서, 상기 SSID 또는 상기 SSID 기기가 또한 동일한 서비스 세트에 속하는 다른 한 전자 기기로부터 네트워크(30)를 통해 명령어들을 수신하고, 상기 수신된 명령어들에 따라 동작들을 수행한다. 본원의 일부 실시 예들에 의하면, 명령어에 연관된 데이터는 데이터 패킷의 특정 헤더 필드 내에 부호화된다. 한 데이터 패킷의 특정 헤더 필드가 상기 명령어에 연관된 모든 정보를 포함할 정도로 충분하지 않을 경우에, 데이터 패킷 시퀀스가 포함되고, 상기 명령어에 연관된 데이터가 상기 데이터 패킷의 데이터 포맷과는 다른 데이터 포맷(즉, 특정 링크 계층 데이터 구조)에 기반을 두고 다수의 데이터 패킷들의 특정 헤더 필드들 내에 부호화된다. 상기 특정 헤더 필드들은 암호화되어 있지 않은 일반 데이터를 포함할 수도 있고 상기 수신 기기에 알려진 암호화 방법으로 암호화되어 있는 암호화된 데이터를 포함할 수도 있다.
하나의 특정 예에서, 각각의 특정 헤더 필드는 개별 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 포함하며, 수신 기기로 전달되는 데이터는 데이터 패킷 시퀀스의 헤더들의 데이터 길이 필드들에 할당된다.
도 2a는 일부 실시 예들에 따른 SSID, SSID 패스워드, 수신 기기 식별자, 및 SSID 공유 요청의 사용자 입력들을 수신하는 전형적인 사용자 인터페이스(20)를 보여준다. 상기 사용자 인터페이스(20)는 수신 기기에 상기 SSID 데이터 세트를 제공하는 마스터 전자 기기상에 디스플레이된다. 옵션으로, 상기 마스터 기기의 사용자는 서비스 세트(10)의 SSID 또는 SSID 패스워드를 수동 입력한다. 옵션으로, 상기 사용자는 항목들(22)을 클릭하여 각각의 SSID가 이용 가능한 통신 네트워크에 연관되어 있는 SSID 리스트를 열어서, 이러한 SSID들 중 하나를 선택한다.
일부 실시 예들에서, 상기 SSID 데이터 세트를 수신하도록 지정되어 있는 수신 기기는 수신 기기 식별자에 고유하게 연관되어 있다. 상기 수신 기기 식별자는 종종 상기 수신 기기의 제조업자에 의해 종종 할당되고 상기 수신 기기의 판매시 제공된다. 상기 마스터 기기의 사용자는 옵션으로 상기 수신 기기 식별자를 입력하거나 수신 기기 식별자 리스트로부터 수신 기기 식별자를 선택한다.
그리고 나서, 상기 사용자는 버튼(24)을 클릭하여 SSID 공유 요구를 발행한다. 상기 SSID 공유 요구의 수신시, 상기 마스터 기기는 링크 계층 데이터 구조에 기반을 두고 하나 이상의 데이터 패킷들의 특정 데이터 필드 내에 상기 SSID 및 상기 SSID 패스워드를 포함한다. 그리고 나서, 상기 SSID 데이터 세트를 포함하는 하나 이상의 데이터 패킷들은 상기 수신 기기로 전달된다.
상기 수신기 기기가 사용자 인터페이스(20)에 기반을 두고 요청된 SSID 데이터 세트를 획득하고 통신 네트워크(30)에 대해 인증된 액세스를 이루는 것으로 가정한다.
도 2b는 일부 실시 예들에 따른 수신 기기를 제어하는 명령어들을 생성하는데 사용되는 전형적인 사용자 인터페이스(26)를 보여준다. 일부 실시 예들에서는, 상기 수신 기기가 도 2a에 도시된 바와 같이 마스터 전자 기기로부터 상기 SSID 및 상기 SSID 패스워드를 수신함으로써 네트워크(30)에 액세스한다. 일부 실시 예들에서, 상기 수신 기기는 대체 가능한 소스로부터 상기 SSID 및 상기 SSID 패스워드를 획득한다.
상기 사용자 인터페이스(26)는 마스터 전자 기기상에 디스플레이된다. 이러한 예에서, 상기 수신 기기는 통신 네트워크(30)를 통해 상기 마스터 전자 기기로 온도 데이터를 복귀하고, 그러한 온도 데이터는 사용자 인터페이스(26) 상에 디스플레이된다. 일부 실시 예들에서, 상기 마스터 기기의 사용자는 사용자 인터페이스(26) 상에서 틱(tick)을 드래그함으로써 타깃 온도를 제공하며, 버튼 "이행 및 탈출(Done and Exit)"을 클릭하여 통신 네트워크(30)를 통해 상기 수신 기기로 온도 제어 커맨드를 발행한다. 그리고 나서, 상기 수신 기기가 통신 네트워크(30)를 통해 하나 이상의 데이터 패킷들을 수신할 경우에, 상기 수신 기기는 상기 데이터 패킷들의 사전에 결정된 데이터 포맷들에 따라 상기 데이터 패킷들을 복호화함으로써 상기 데이터 패킷들의 헤더 필드들로부터 상기 온도 제어 커맨드를 회수한다.
일부 구현 예들에서, 사용자 인터페이스들(20, 26)은 WeChat, WhatsApp, Link 및 Facebook과 같은 소셜 네트워크 플랫폼 내에 포함된다. 사용자는 이러한 소셜 네트워크 플랫폼의 그러한 사용자 인터페이스들을 통해 전자 기기에 직접 액세스하여 상기 전자 기기를 제어할 수 있다.
도 3a는 일부 실시 예들에 상응하는 전형적인 데이터 포맷(32)을 보여주며, 도 3b는 네트워크 액세스 프로토콜(예컨대, IEEE 802.2 SNAP)에 상응하는 제1 데이터 포맷을 각각 지니는 데이터 패킷 시퀀스(34)를 보여준다. 여기서, 데이터 패킷들이 상기 네트워크 액세스 프로토콜에 기반을 두고 통신 네트워크상에서 전달되는 경우에 상기 데이터 패킷들이 데이터 포맷(32)에 따라 구성된다. 데이터 포맷(32)에 의하면, 데이터 패킷은 패킷 헤더, 2개의 데이터 필드들(DATA) 및 프레임 체크 시퀀스(frame check sequence; FCS)를 포함한다. 이러한 특정 예에서, 상기 패킷 헤더는 목적지 어드레스(destination address; DA) 필드, 출발지 어드레스(source address; SA), 길이 필드, 및 논리 링크 제어(logical link control; LLC)를 부가적으로 포함한다. 상기 데이터 필드들은 (위의 온도 제어 커맨드와 같은) 데이터를 포함한다. 상기 프레임 체크 시퀀스는 무결성 체크 방법에 따라 상기 데이터 필드의 데이터로부터 생성되는 무결성 데이터를 포함한다. 수신 기기는 상기 데이터 필드의 데이터가 정확하고 상기 프레임 체크 시퀀스에 기반을 두고 상기 마스터 기기에서 생성된 원래 데이터와 일치하는지를 결정한다.
일부 구현 예들에서, 상기 데이터 필드의 데이터는 암호화되지만, 수신 기기는 통신 네트워크(30)에 연관된 SSID 또는 SSID 패스워드 없이 상기 데이터 필드의 데이터를 복호화할 수 없다. 그러나 상기 패킷 헤더는 암호화되어 있지 않을 수도 있고 알려진 암호화 방법으로 암호화되어 있을 수도 있으며, 그럼으로써 상기 수신 기기는 상기 SSID 데이터 세트를 사용하지 않고서 상기 패킷 헤더 내에 포함된 정보를 용이하게 추출할 수 있다.
본원의 일부 실시 예들에 의하면, 상기 패킷 헤더 내의 데이터 필드(예컨대, 데이터 길이 필드)는 SSID, SSID 패스워드, 또는 명령어 데이터와 같은 관심 있는 데이터를 수신 기기로 전달하는데 사용된다. 상기 수신 기기는 통신 네트워크(30)를 통해 데이터 패킷들을 수신 및 복호화하여, 상기 데이터 패킷들의 패킷 헤더들에서 지정된 데이터 필드들로부터 관심 있는 데이터를 회수한다. 일 예에서, 상기 패킷 헤더들의 데이터 길이 필드들은 (상기 SSID 또는 상기 SSID 패스워드를 포함하는) SSID 데이터 세트를 전달하는데 사용되고, 후속 데이터 패킷들의 데이터 필드들(DATA)은 상기 수신 기기를 제어하기 위한 커맨드들(예컨대, 도 2b의 온도 제어 커맨드)을 전송하는데 사용된다. 그러나 다른 한 예에서는, 상기 패킷 헤더들의 데이터 길이 필드들은 상기 수신 기기를 제어하기 위해 명령어 데이터(예컨대, 도 2b의 온도 제어 커맨드)를 직접 전달하는데 사용된다.
일부 구현 예들에서, 관심 있는 데이터(예컨대, SSID 데이터 세트 또는 명령어 데이터)는 링크 계층 데이터 구조에 기반을 두고 상기 데이터 패킷 시퀀스(34)의 각각의 패킷의 개별 헤더 필드(예컨대, 데이터 길이 필드) 내에 부호화된다. 도 4a는 일부 실시 예들에 따른 데이터 패킷 헤더들 내에 데이터를 할당하는데 사용되는 전형적인 제2 데이터 포맷(40)(예컨대, 링크 계층 데이터 구조)을 보여주며, 도 4b는 일부 실시 예들에 따른 도 4a에 도시된 제2 데이터 포맷에 따라 구성된 전형적인 할당된 데이터(42)를 보여준다. 링크 계층 데이터 구조(40)에 의하면, 상기 데이터 패킷 시퀀스(34)의 개별 헤더 필드들은 할당된 데이터(42)를 함께 포함한다. 일부 실시 예들에서, 할당된 데이터(42)는 고정 폭(예컨대, 8비트)을 지니는 다수의 데이터 워드들을 포함한다.
제2 데이터 포맷(40)에 의하면, 할당된 데이터는 데이터 제어 헤더(402), 프리픽스(prefix) 코드 필드(404), 및 다수의 데이터 시퀀스(406)를 포함하며, 각각의 데이터 시퀀스는 시퀀스 헤더(406A) 및 데이터 필드(406B)를 부가적으로 포함한다. 옵션으로, 데이터 제어 헤더(402)는 수신 기기의 식별자(ID), 데이터 무결성 워드 및 데이터 길이 중 하나 이상을 정의한다. 특히, 도 4b에 도시된 바와 같이, 데이터 제어 헤더(402)는 8비트 데이터를 각각 포함하는 8바이트를 포함한다. 최상위 4비트는 이러한 8바이트를 데이터 제어 헤더(402)로서 식별하기 위해 예약되고, 특히 최상위 비트는 고정 값 "1"을 지닌다. 이러한 8바이트의 최하위 4비트는 관련 정보를 정의하는 데 사용되는데, 예컨대 2바이트는 데이터 길이 용으로 사용되고, 2바이트는 데이터 무결성 용으로 사용되며, 그리고 4바이트는 수신 기기 식별자 용으로 사용된다.
일부 실시 예들에서는, 데이터 제어 헤더(402) 내에 포함된 데이터 길이는 할당된 데이터(42)의 총 길이 또는 데이터 제어 헤더(402)의 길이이다. 본원에서는, 데이터 제어 헤더(402)는 또한 매직 코드 필드로서 언급된다.
프리픽스 코드 필드(404) 다음에 다수의 데이터 시퀀스들이 이어지므로, 상기 프리픽스 코드 필드(404)는 그러한 데이터 시퀀스들의 시작을 나타내는 데 사용된다. 하나의 특정 예에서는, 8비트 "1"을 포함하는 바이트는 프리픽스 코드 필드(404)를 채우는데 사용된다.
도 4b에 도시된 바와 같은 특정 예에서, 제1 데이터 시퀀스 필드(406)는 2바이트의 시퀀스 헤더 필드(406A) 및 6바이트의 데이터 필드(406B)를 포함하여 8바이트 길이를 지니는 하나의 데이터 시퀀스를 포함한다. 데이터 제어 헤더(402)와의 구별을 위해, 데이터 시퀀스 필드(406) 내의 각각의 바이트는 "1"에서부터 시작된다. 특히, 최상위 2비트의 시퀀스 필드(406A)는 "11"이고 최상위 2비트의 데이터 필드(406B)는 "10"이다. 더욱이, 2바이트의 시퀀스 헤더 필드(406A)는 시퀀스 무결성 워드 및 시퀀스 인덱스를 각각 포함한다. 상기 시퀀스 무결성 워드는 데이터 무결성 체크 방법에 기반을 두고 데이터 필드(406B) 내의 데이터로부터 생성되고 그럼으로써 데이터 필드(406B) 내의 데이터의 정확성을 유지하는데 사용된다. 상기 시퀀스 인덱스는, 데이터 시퀀스 필드(406)가 2개 이상의 데이터 시퀀스를 포함할 경우에 데이터 시퀀스 필드(406) 내에서 상기 특정 데이터 시퀀스의 위치를 찾아내는 데 사용될 수 있다.
일부 구현 예들에서, 데이터 필드(406B)는 (상기 SSID 및 상기 SSID 패스워드를 포함하여) 상기 SSID 데이터 세트의 적어도 일부를 포함한다. 상기 SSID 데이터 세트가 비교적 길고 6바이트 내로 전달될 수 없는(하나보다 많은 데이터 시퀀스인) 경우에, 상기 SSID 데이터 세트는 데이터 세트(40)의 2개 이상의 데이터 시퀀스 내에 포함되며 각각의 데이터 시퀀스는 시퀀스 헤더 필드(406A)를 가지고 식별된다. 일부 실시 예들에서, 상기 SSID 데이터 세트는 너무 길어서 상기 SSID 데이터 세트가 하나의 데이터 세트(40)의 모든 데이터 시퀀스들 내로 전달될 수 없고 개별 데이터 헤더들 및 프리픽 코드 필드들을 지니는 2개 이상의 데이터 세트들(40)이 상기 SSID 데이터 세트를 전송하는데 사용된다. 이 때문에, 2개 이상의 데이터 패킷들(34)은 상기 긴 SSID 데이터 세트를 포함하고 이를 상기 수신 기기로 전달하도록 관여된다.
일부 실시 예들에서, 상기 SSID 데이터 세트는 통신 네트워크에 연관된 서비스 세트의 SSID, 상응하는 SSID 패스워드, 및 난수를 포함한다. 수신 기기가 상기 난수를 수신하는 경우에, 상기 수신 기기는 상기 SSID 데이터 세트를 상기 수신 기기로 송신하는 마스터 기기로 상기 난수를 다시 브로드캐스트하여 상기 수신 기기가 상기 SSID 데이터 세트를 수신했음을 상기 마스터 기기에 확인시켜 준다.
도 4b에 도시된 예에서, 데이터 필드(406B)는 2바이트 SSID 패스워드를 포함하며, 2바이트 SSDI 패스워드 다음에는 2바이트 난수가 이어지고, 2바이트 난수 다음에는 2바이트 SSID가 이어진다. 상응하는 링크 계층 데이터 구조에 의하면, 데이터 필드(406B) 내의 데이터는 특정 순서에 기반을 두고 배치되고, 데이터 각각은 고정 길이를 지닌다. 개별 데이터가 고정 길이 미만일 경우에, 데이터는 데이터 종단부에 "0"이 채워진다. 그러나 일부 실시 예들에서, 데이터 필드(406B) 내의 데이터는 고정 길이를 지니지 않고, 특정 데이터 시퀀스, 예컨대 4비트 "0000"으로 종단된다. 하나의 특정 예에서, 상기 수신 기기는 SSID 패스워드로서 데이터 필드(406B)에서 "0000"으로 종단되는 제1 데이터, 난수로서 데이터 필드(406B)에서 "0000"으로 종단되는 제2 데이터, 및 SSID로서 데이터 필드(406B)에서 "0000"으로 종단되는 제3 데이터를 사용하였다.
더욱이, 도 4B에 도시된 바와 같이, 제2 데이터 시퀀스 필드(408)는 또한 2바이트의 시퀀스 필드(408A) 및 6바이트의 데이터 필드(408B)를 포함하여 8바이트 길이를 지니는 데이터 시퀀스를 포함한다. 제1 데이터 시퀀스 필드(406)와 같이, 데이터 시퀀스 필드(408) 내의 각각의 바이트는 제어 비트 "1"에서부터 시작되고, 최상위 2비트의 시퀀스 헤더 필드(408A) 및 데이터 필드(408B)는 각각 2개의 제어 비트 "11" 및 "10"이다. 더욱이, 2바이트의 시퀀스 헤더 필드(408A)는 또한 시퀀스 무결성 워드 및 시퀀스 인덱스를 각각 포함한다.
일부 실시 예들에서, 6바이트의 데이터 필드(408B)는 상기 수신 기기가 수신하고 그에 따라 동작할 수 있는 명령어를 식별한다. 일 예에서, 상기 명령어는 명령어 식별(ID) 번호에 따라 정의되고, 상기 수신 기기가 상기 명령어 식별 번호를 수신하는 경우에, 상기 수신 기기는 사전에 결정된 명령어 룩업 테이블에 기반을 두고 상응하는 명령어를 식별한다. 상기 명령어 식별 번호 외에도, 데이터 필드(408B)는 옵션으로 상응하는 명령어에 따라 동작들을 수행하기 위한 파라미터들을 제공하는 명령어 정보를 포함한다. 예를 들어, 도 2에 도시된 바와 같이, 상기 명령어 정보는 상기 타깃 온도를 포함한다. 도 4b에 도시된 바와 같이, 상기 명령어 식별 번호 또는 상기 명령어 정보는 3비트의 데이터 필드(408b)로 나타나 있다.
일부 실시 예들에서, 데이터 시퀀스 필드에 할당된 관심 있는 데이터는 데이터 제어 헤더(402)에서 정의된 바와 같은 길이보다 짧은 길이를 지닌다. 여분의 바이트의 데이터 시퀀스 필드는 0으로 채워진다.
제2 데이터 포맷(40) 및 상응하는 할당된 데이터(42)에 대한 세부들은 도 11 내지 15를 참조하여 이하에서 설명될 것이다.
도 5는 일부 실시 예들에 따른 수신 기기로 데이터를 전송하는 전형적인 데이터 통신 방법의 흐름도이다. 방법(50)은 옵션으로 비-일시적인 컴퓨터 판독가능 저장 매체 내에 저장되어 있으며 전자 기기(예컨대, 기기(100))의 하나 이상의 프로세서들에 의해 실행되는 명령어들에 의해 통제된다. 도 5에 도시된 동작들 각각은 컴퓨터 메모리 또는 비-일시적인 컴퓨터 판독가능 저장 매체 내에 저장된 명령어들에 상응할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 자기 또는 광 디스크 저장 기기, 플래시 메모리와 같은 고체 상태 저장 기기들, 또는 다른 비-휘발성 메모리 기기 또는 기기들을 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체상에 저장된 명령어들은 하나 이상의 프로세서들에 의해 해석되는, 소스 코드, 어셈블리 언어 코드, 목적 코드, 또는 다른 명령어 포맷 중의 하나 이상을 포함할 수 있다. 방법(50)의 일부 동작들은 조합될 수도 있고 그리고/또는 일부 동작들의 순서가 변경될 수도 있다.
방법(50)은 데이터 패킷 시퀀스를 획득(502)하는 전자 기기에 의해 수행된다. 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 데이터 패킷의 길이를 지정하기 위한 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 데이터는 제2 데이터 포맷에 따라 데이터 패킷 시퀀스의 데이터 길이 필드들에 할당(540)된다. 상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스는 그 후에 암호화(506)된다. 더욱이, 상기 암호화된 데이터 패킷 시퀀스는 무선통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기에 송신(508)된다. 상기 수신 기기는 상기 제1 및 제2 데이터 포맷들에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하고 상기 회수된 데이터에 따라 동작들을 수행하도록 구성된다.
일부 실시 예들에서, 상기 할당된 데이터는 SSID 및 SSID 패스워드를 포함하며, 상기 SSID는 상기 데이터 패킷 시퀀스를 전송하며 상기 SSID 패스워드가 확인될 경우에 액세스 가능한 무선 통신 네트워크를 식별한다. 일부 실시 예들에서, 상기 할당된 데이터는 상기 SSID 및 상기 SSID 패스워드와 함께 상기 전자 기기에 의해 상기 수신 기기로 제공되는 난수(random number)를 부가적으로 포함하고, 그럼으로써 상기 SSID 및 상기 SSID 패스워드를 수신한 후에, 상기 수신 기기는 상기 전자 기기에 상기 난수를 복귀하여 상기 수신 기기가 상기 SSID 및 상기 SSID 패스워드를 수신했음을 확인시켜 준다.
일부 실시 예들에서, 상기 데이터 패킷 시퀀스에 연관된 네트워크 액세스 프로토콜은 이더넷 802.2 SNAP, 이더넷 802.2, 이더넷 802.3 SNAP, 및 이더넷 802.3으로 이루어진 IEEE 프로토콜 그룹으로부터 선택된다.
일부 실시 예들에서, 각각의 데이터 길이 필드는 8비트 데이터를 포함한다.
일부 실시 예들에서, 상기 암호화된 데이터 패킷 시퀀스는 상기 식별된 무선 통신 네트워크상에서 또한 통신 가능하게 연결되는 무선 액세스 포인트를 통해 상기 수신 기기에 송신된다.
일부 실시 예들에서, 도 2a 및 2b에 도시된 바와 같이, 상기 전자 기기는 상기 전자 기기의 사용자로부터의 입력들을 수신하기 위한 복수 개의 사용자 입력 스페이스들을 포함하는 사용자 인터페이스를 생성하며; 사용자 입력에 따라, 상기 복수 개의 사용자 입력 스페이스들 상에 상기 사용자 입력에 연관된 데이터 패킷 시퀀스를 디스플레이하고; 그리고 상응하는 사용자 입력 스페이스들에서 디스플레이되는 데이터 패킷 시퀀스를 획득함으로써 데이터 시퀀스를 획득한다.
일부 실시 예들에서, 상기 제2 데이터 포맷에 따라, 상기 할당된 데이터는 상기 할당된 데이터에 연관된 복수 개의 특성들을 지정하는 데이터 필드(예컨대, 데이터 시퀀스 필드들(406, 408))보다 앞서 있는 데이터 제어 헤더를 포함하며, 상기 데이터 제어 헤더 및 상기 데이터 필드는 개별 데이터 패킷 서브세트의 데이터 길이 필드들에 할당된다. 일부 상황에서, 상기 제2 데이터 포맷에 따라, 상기 할당된 데이터는 복수 개의 바이트들을 포함하며, 각각의 바이트는 상기 데이터 제어 헤더에 연관된 것인지 상기 할당된 데이터의 데이터 필드에 연관된 것인지를 식별하는 하나 이상의 제어 비트들을 부가적으로 포함한다. 일부 상황들에서, 상기 제2 데이터 포맷에 따라, 상기 상기 할당된 데이터에 연관된 복수 개의 특징들은 상기 할당된 데이터의 유효성을 포함하며, 상기 데이터 제어 헤더의 하나 이상의 바이트들은 상기 할당된 데이터를 위한 무결성 데이터에 연관되어 있다. 일부 상황들에서, 상기 제2 데이터 포맷에 따라, 상기 할당된 데이터에 연관된 복수 개의 특성들은 상기 할당된 데이터의 데이터 길이를 포함하며, 상기 데이터 제어 헤더의 하나 이상의 바이트들은 상기 할당된 데이터의 데이터 길이를 정의하는데 사용된다. 일부 상황들에서, 상기 제2 데이터 포맷에 따라, 상기 데이터 제어 헤더는 상기 할당된 데이터의 시작을 식별하는 하나 이상의 바이트들을 부가적으로 포함한다.
도 6은 일부 실시 예들에 따른 수신 기기에서 수신된 데이터를 처리하는 다른 한 전형적인 데이터 처리 방법의 흐름도이다. 방법(60)은 옵션으로 비-일시적인 컴퓨터 판독가능 저장 매체 내에 저장되어 있으며 전자 기기(예컨대, 기기(100 또는 200))의 하나 이상의 프로세서들에 의해 실행되는 명령어들에 의해 통제된다. 도 6에 도시된 동작들 각각은 컴퓨터 메모리 또는 비-일시적인 컴퓨터 판독가능 저장 매체 내에 저장된 명령어들에 상응할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 자기 또는 광 디스크 저장 기기, 플래시 메모리와 같은 고체 상태 저장 기기들, 또는 다른 비-휘발성 메모리 기기 또는 기기들을 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체상에 저장된 명령어들은 하나 이상의 프로세서들에 의해 해석되는, 소스 코드, 어셈블리 언어 코드, 목적 코드, 또는 다른 명령어 포맷 중의 하나 이상을 포함할 수 있다. 방법(60)의 일부 동작들은 조합될 수도 있고 그리고/또는 일부 동작들의 순서가 변경될 수도 있다.
방법(60)은 무선 통신 네트워크를 통해 다른 한 전자 기기에 통신 가능하게 연결되는 수신 기기로부터 데이터 패킷 시퀀스를 획득(602)하는 전자 기기에 의해 수행된다. 각각의 복호화된 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 복호화된 데이터 패킷의 길이를 지정하기 위한 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함한다. 상기 데이터 패킷 시퀀스는 상기 수신 기기에서 복호화(604)된다. 데이터는 그 후에 상기 제1 데이터 포맷과는 다른 제2 데이터 포맷에 따라 복호화된 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 회수(606)된다. 상기 수신 기기는 상기 회수된 데이터에 따라 동작들을 수행(608)된다.
일부 실시 예들에서, 상기 회수된 데이터는 SSID 및 SSID 패스워드를 포함하며, 상기 SSID는 상기 데이터 패킷 시퀀스를 전송하며 상기 SSID 패스워드가 확인될 경우에 액세스 가능한 무선 통신 네트워크를 식별한다.
일부 실시 예들에서, 상기 회수된 데이터는 상기 SSID 및 상기 SSID 패스워드와 함께 상기 전자 기기에 의해 상기 수신 기기로 제공되는 난수(random number)를 부가적으로 포함하고, 그럼으로써 상기 SSID 및 상기 SSID 패스워드를 수신한 후에, 상기 수신 기기는 상기 전자 기기에 상기 난수를 복귀하여 상기 수신 기기가 상기 SSID 및 상기 SSID 패스워드를 수신했음을 확인시켜 준다.
일부 실시 예들에서, 상기 데이터 패킷 시퀀스에 연관된 네트워크 액세스 프로토콜은 이더넷 802.2 SNAP, 이더넷 802.2, 이더넷 802.3 SNAP, 및 이더넷 802.3으로 이루어진 IEEE 프로토콜 그룹으로부터 선택된다.
일부 실시 예들에서, 각각의 데이터 길이 필드는 8비트 데이터를 포함한다.
일부 실시 예들에서, 상기 제2 데이터 포맷에 따라, 상기 회수된 데이터는 상기 회수된 데이터에 연관된 복수 개의 특성들을 지정하는 데이터 필드보다 앞서 있는 데이터 제어 헤더를 포함하며, 상기 데이터 제어 헤더 및 상기 데이터 필드는 개별 데이터 패킷 서브세트의 데이터 길이 필드들에 할당된다. 더욱이, 일부 실시 예들에서, 상기 제2 데이터 포맷에 따라, 상기 회수된 데이터는 복수 개의 바이트들을 포함하며, 각각의 바이트는 상기 데이터 제어 헤더에 연관된 것인지 상기 할당된 데이터의 데이터 필드에 연관된 것인지를 식별하는 하나 이상의 제어 비트들을 부가적으로 포함한다.
여기서 이해하여야 할 점은 도 5 및 6의 동작들이 단지 전형적인 것들이며 설명한 순서가 상기 동작들이 수행될 수 있는 유일한 순서임을 나타내는 것으로 의도된 것이 아니다는 점이다. 당업자라면 본원 명세서에 설명한 바와 같은 특정 데이터를 캐시 및 배포할 수 있는 방법이 여러 가지 있음을 인식할 것이다. 그 외에도, 여기서 유념할 점은 방법(50 또는 60)에 대해 본원 명세서에서 설명한 다른 프로세스들의 세부가 또한 도 5 및 6에 대해 위에서 설명한 프로세스들에 유사한 방식으로 또한 적용 가능하다는 점이다. 간결성을 위해, 이들의 세부가 본원 명세서에서는 반복되지 않을 것이다.
도 7은 일부 실시 예들에 따른 데이터를 전달하는 전형적인 전자 기기(70)의 블록도이다. 일부 구현 예들에서, 전자 기기(100)는 하나 이상의 프로세서들(12), 하나 이상의 프로세서들(12)에 의해 실행되게 하는 프로그램들 및 명령어들을 저장하는 메모리(14), 입력/출력 인터페이스(16) 및 네트워크 인터페이스(18)와 같은 하나 이상의 통신 인터페이스들, 및 이러한 컴포넌트들을 상호접속하기 위한 하나 이상의 통신 버스들(80)을 포함한다.
일부 실시 예들에서, 입력/출력 인터페이스(16)는 키보드, 마우스 또는 트랙-패드와 같은 입력 기기들 및 디스플레이를 포함한다. 일부 실시 예들에서, 통신 버스들(80)은 시스템 컴포넌트들을 상호접속하여 시스템 컴포넌트들 간의 통신들을 제어하는 회로(때로는 "칩세트(chipset)"라 지칭함)를 포함한다. 일부 실시 예들에서, 메모리(14)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 기기들과 같은 고속 랜덤 액세스 메모리를 포함하며, 그리고 옵션으로 하나 이상의 자기 디스크 저장 기기들, 광 디스크 저장 기기들, 플래시 메모리 기기들, 또는 다른 비-휘발성 고체 상태 저장 기기들과 같은 비-휘발성 메모리를 포함한다. 일부 실시 예들에서, 메모리(14)는 하나 이상의 프로세서들(12)로부터 원격 위치한 하나 이상의 저장 기기들을 포함한다. 일부 실시 예들에서, 메모리(14), 또는 변형적으로 메모리(14) 내의 비-휘발성 메모리 기기(들)는 비-일시적인 컴퓨터 판독가능 저장 매체를 포함한다.
일부 실시 예들에서, 메모리(14) 또는 변형적으로 메모리(14)의 비-일시적인 컴퓨터 판독가능 저장 매체는 이하의 프로그램들, 모듈들 및 데이터 구조들, 명령어들, 또는 이들의 서브세트를 저장한다:
·다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존 태스크들을 수행하는 절차들을 포함하는 운영 체계(14A);
·하나 이상의 입력 및 출력 기기들을 통해 기본 입력 및 출력 기능들을 핸들링하는 절차들을 포함하는 I/O 모듈(14B); 및
·하나 이상의 (유선 또는 무선) 네트워크 통신 인터페이스들(18) 및 인터넷, 다른 광역 통신 네트워크들, 근거리 통신 네트워크들, 도시권 통신 네트워크들 등등과 같은 하나 이상의 통신 네트워크들을 통해 전자 기기(100)를 다른 기기들(예컨대, 네트워크(30) 내의 다른 전자 기기들) 또는 서버들(예컨대, 서버(400)에 접속하기 위해 사용되는 통신 모듈(14C).
일부 실시 예들에서, 전자 기기(70)는 수신 기기에 상기 SSID 데이터 세트를 제공하는 마스터 기기에 연관되어 있으며 상기 전자 기기(70)의 메모리는,
·하나 이상의 데이터 패킷들의 헤더 필드들에 관심 있는 데이터를 할당하고, 특정 데이터 포맷에 따라 상기 관심 있는 데이터를 구성하며 그리고 수신 기기 데이터로 상기 구성된 데이터 패킷들을 송신함으로써 데이터 공유 요청에 응답하는 데이터 전송 모듈(14D); 및
·사용자 인터페이스(예컨대, 인터페이스(20))를 생성하여 상기 SSID, 상기 SSID 패스워드 및/또는 상기 수신 기기 식별자의 사용자 입력들을 수신하는 사용자 인터페이스 모듈(14E)
을 부가적으로 포함한다. 일부 실시 예들에서, 사용자 인터페이스 모듈(14E)은 또한, 사용자 인터페이스(예컨대, 인터페이스(26))를 생성하여 상기 수신 기기 및 상기 수신 기기를 제어하기 위한 수신 기기 사용자 입력들로부터 수신된 데이터를 디스플레이한다.
일부 실시 예들에서, 전자 기기(70)는 수신 기기에 연관되어 있으며, 상기 전자 기기(70)의 메모리(14)는,
·하나 이상의 데이터 패킷들의 헤더 필드들 내의 관심 있는 데이터를 획득하고, 상기 관심 있는 데이터를 추출하며, 그리고 상기 관심 있는 데이터가 상기 마스터 전자 기기로부터 적절히 전송되는지를 결정하는 데이터 공유 모듈(14F)
을 부가적으로 포함한다.
일부 실시 예들에서, 상기 마스터 기기로부터 상기 수신 기기로 전달되는 데이터 패킷 시퀀스는 암호화된다. 상기 수신 기기가 상기 데이터 패킷들의 헤더 필드로부터 관심 있는 데이터를 추출하기 전에 상기 암호화된 데이터 패킷들을 복호화한다.
본원을 명확하게 이해시키기 위해, 관련 도면들을 참조하여 상기 통신 방법, 통신 시스템 및 정보 송신/수신 장치를 구체적으로 설명하면 다음과 같다. 상기 관련 도면들은 상기 통신 방법, 통신 시스템 및 정보 송신/수신 장치의 바람직한 실시 예들을 보여준다. 그러나 상기 통신 방법, 통신 시스템 및 정보 송신/수신 장치는 다른 여러 형태로 구현될 수 있으며, 본원 명세서에 개시된 실시 예들에 국한되지 않을 수 있다. 이러한 실시 예들의 목적은 상기 통신 방법, 통신 시스템 및 정보 송신/수신 장치를 완전하고 깊이 있게 개시하기 위한 것이다.
특별한 정의가 없는 한, 본원 명세서에서 사용되는 본원 기술 및 과학 용어들 모두는 본원의 기술분야에서 숙련된 자들에 의해 이해되는 의미들과 동일한 의미들을 갖는다. 상기 통신 방법, 통신 시스템 및 정보 송신/수신 장치의 설명에 대해 본원 명세서에서 사용되는 용어들은 단지 특정 실시 예들을 설명하기 위한 것뿐이며, 본원을 한정하는 것으로 의도된 것이 아니다. 본원 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 리스트 항목들의 임의 조합을 의미한다.
도 8은 일부 실시 예들에 따른 데이터 통신 방법(80)의 흐름도이다. 일부 구현 예들에서는, 방법(80)이 마스터 기기 및 수신 기기 간의 무선 통신을 가능하게 하도록 적용된다. 상기 수신 기기는 공간에서 무선 신호들을 모니터링하도록 하이브리드 모드(hybrid mode)에서 동작하고 방법(80)은 상기 무선 신호들을 통해 상기 마스터 기기로부터 상기 수신 기기로 정보를 전송하도록 적용된다. 일부 실시 예들에서, 방법(80)은 상기 수신 기기가 다른 기기들과의 다른 어떠한 실질적인 접속도 갖지 않기 때문에 특히 유용하다.
단계 S120에서, 상기 마스터 기기는 상기 수신 기기로 송신될 필요가 있는 관심 있는 데이터를 획득한다. 상기 관심 있는 데이터는 무선 통신 네트워크(예컨대, 네트워크(30))를 통해 상기 수신 기기로 송신될 필요가 있는 사용자 데이터를 포함하고, 상응하는 전송 프로세스를 위해 상기 시스템에 의해 생성되는 제어 데이터를 포함하지 않는다. 예를 들면, 상기 관심 있는 데이터는 무선 액세스에 필요한 서비스 세트 식별자(service set identifier; SSID) 및 SSID 패스워드, 및 지능형 에어콘을 제어하는 명령어들을 포함할 수 있다. 상기 관심 있는 데이터는 옵션으로 상기 마스터 기기상의 사용자 입력을 수신함으로써 획득된다. 상기 관심 있는 데이터는 옵션으로 네트워크를 통해 다른 한 소스에 의해 제공되거나 상기 마스터 기기의 로컬 메모리로부터 회수된다.
단계 S140에서, 상기 관심 있는 데이터는 데이터 패킷의 헤더 필드 내에 부호화 및 할당된다. 상기 헤더 필드는 데이터 패킷의 일반 데이터 필드이다. 상기 일반 데이터 필드는 직접 모니터링될 수 있고, 그럼으로써 상기 헤더 필드의 데이터는 무선 전송 프로세스 동안 노출된다. 수신 기기가 상응하는 무선 통신 네트워크의 커버리지 범위(coverage range) 내에 있을 때, 비록 상기 수신 기기가 상기 무선 통신 네트워크에 연관된 SSID 및 SSID 패스워드를 지니지 않더라도 상기 헤더 필드의 특정한 구체적인 내용을 획득할 수 있다. 여러 무선 통신 모드에서, 데이터 패킷의 일부 정보는 안전하지 않으며, 단계 S140에서 상기 헤더 필드로서 사용될 수 있다. 예를 들면, IEEE 802.2 SNAP 포맷을 채택하는 데이터 패킷의 헤더의 적어도 데이터 길이 필드는 내부에 저장된 내용에 대한 용이한 액세스를 허용하는 헤더 필드이다.
상기 관심 있는 데이터는 일반 텍스트로 전송될 수도 있고 추가로 암호화하여 전송될 수도 있으며, 상기 암호화 채널을 위한 패스워드는 상기 관심 있는 데이터를 암호화하기 위한 패스워드와는 다른 것이다. 상기 관심 있는 데이터가 암호화되는 경우에, 상기 수신 기기는 상응하는 복호화를 수행할 수 있으며, 상기 관심 있는 데이터의 내용은 상기 암호화 채널로부터의 영향 없이 직접 획득될 수 있다.
단계 S160에서, 상기 데이터 패킷은 상기 마스터 기기에 의해 상기 수신 기기로 송신된다. 일부 실시 예에서, 상기 데이터 패킷이 생성된 후에, 상기 데이터 패킷은 통신 프로토콜에 의해 지정되는 바와 같은 특정 주파수 대역 및 특정 전력 레벨을 사용하여 암호화된다. 일부 실시 예에서, 상기 데이터 패킷이 상기 통신 프로토콜에 따라 상응하는 통신 채널을 통해 전송될 때 상기 데이터 패킷이 데이터 암호화 방법을 사용하여 암호화된다.
위에서 언급한 통신 방법에서, 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷의 헤더 필드를 사용하여, 상기 관심 있는 데이터가 암호화 및 송출되며, 상기 수신 기기에 의해 수신된다. 위에서 언급한 통신 방법의 경우, 상기 관심 있는 데이터를 가지고 부호화되는 헤더 필드의 내용이 직접 모니터링되기 때문에, 상기 관심 있는 데이터는 비록 상기 데이터의 다른 필드들의 내용들이 암호화됨으로써 알 수 없게 되더라도 획득될 수 있고, 그럼으로써 수신 기기로 정보를 송신하고 상기 수신 기기에 의해 상기 정보를 획득하도록 하는 목적을 달성할 수 있게 된다. 상기 수신 기기는 환경과의 접속을 확립하기 위한 사전 구성의 필요 없이 상기 관심 있는 데이터를 수신할 수 있다.
일부 실시 예들에서, Wi-Fi 무선 신호는 상기 마스터 기기 및 수신 기기 간에 데이터를 전송하도록 신호 캐리어로서 사용될 수 있다. 일 예에서, Wi-Fi 채널들 1-14는 상기 데이터를 전송하는데 사용된다. 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷의 헤더 필드를 사용함으로서, 상기 관심 있는 데이터가 상기 헤더 필드, 예컨대 데이터 패킷 헤더의 데이터 길이 필드로 부호화된다. 상기 수신 기기는 공간에서 상기 무선 신호를 모니터링하도록 하이브리드 모드에 있을 수 있고, 그럼으로써 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드를 모니터링하고, 상기 헤더 필드의 복호화에 의해 상기 관심 있는 데이터를 획득하는 것을 허용할 수 있다. 상기 실시 예의 방법은 바람직하게는 소수 데이터(minor data)의 전송에 적합하며, 이는 지능형 기기들 상의 것들의 인터넷 지능형 제어 칩들에 서비스 세트 식별자들 및 패스워드들을 송신하도록 무선 송신 기능을 지니는 모바일폰들 및 태블릿 컴퓨터들과 같은 무선 단말기들에 적용될 수 있다. 단계 S160에서, 상기 데이터 패킷은 무선 액세스 포인트를 통해 수신 기기로 포워드되는 브로드캐스트 패킷일 수 있다. 상기 무선 액세스 포인트는 대량 통신 전력을 지니고, 그럼으로써 상기 데이터 패킷을 반송(搬送)하는 무선 신호의 커버리지 영역은 상기 무선 신호가 상기 무선 액세스 포인트에 의해 포워딩된 후에 확장될 수 있게 한다.
일부 실시 예들에서, 상기 헤더 필드가 정규 소프트웨어 애플리케이션에 의해 제어되는 필드이다. 모바일 단말기의 종래의 운영 체계들(예컨대, iOS 또는 Android)은 데이터 패킷에 대해 한정된 제어 레벨을 지니며, 구체적으로 기술하면 단지 데이터 패킷의 헤더의 모든 필드들만을 제어할 수 있다. 일부 상황들에서, 데이터 패킷 헤더의 특정 필드들(예컨대, DA, SA)은 높은 제어 레벨에 관여되어 있고, 그러한 헤더 필드가 상기 헤더 필드로서 사용하기 위해 구성되는 경우에, 이러한 높은 제어 레벨이 요구된다. 그러나 종래의 운영 시스템들 상에서 동작하게 되는 여러 정규 소프트웨어 애플리케이션들에는 그러한 높은 제어 레벨이 부여되지 않는다. 그러므로 일부 구현 예들에서, 상기 헤더 필드는 바람직하게는 높은 제어 레벨을 요구하지 않으며 정규 소프트웨어 애플리케이션에 의해 제어 가능하다. 이 때문에, 데이터 통신 방법(80)을 구현하는 것이 간편하며, 높은 보안 레벨이 상응하는 전자 기기들에 대해 유지된다.
도 9는 일부 실시 예들에 따른 802.2 SNAP 데이터를 지니는 데이터 패킷의 개략도이다. 일부 실시 예들에서, 상기 데이터 패킷이 IEEE 802.2 SNAP를 준수하는 데이터 포맷을 지니는 경우에, 상기 헤더 필드는 상기 데이터 패킷의 헤더의 데이터 길이 필드이다. 일부 실시 예들에서, IEEE에 의해 제공되는 무선 LAN 프로토콜 802.11에 의하면, 상기 802.11 프로토콜에 연관된 상응하는 IP 패킷은 802.11의 논리 링크 제어 패키징에 의해 반송된다. 그러므로 상기 802.11 프로토콜 하에서 전송되는 무선 통신 네트워크 데이터는 또한 도 9에 도시된 바와 같은 802.2 SNAP 포맷을 지닌다. 도 9에 도시된 바와 같이, Wi-Fi 칩의 하이브리드 모드가 허용되는 경우에, 상기 수신 기기는 공간에서 상기 무선 신호를 모니터링하고 802.2 SNAP 포맷에 따라 상기 데이터 링크 계층으로부터 상기 데이터 패킷을 인터셉트함으로써 상기 데이터 패킷을 획득한다.
도 9의 헤더 필드 "길이(Length)"는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드(논리 링크 제어; Logical Link Control)를 나타내고, 필드 SNAP는 3바이트의 벤더 코드 및 2바이트의 프로토콜 타입 식별 코드를 포함한다. DATA 영역(데이터 영역)은 로드(load)이며, 이는 암호 채널에 대해 암호 텍스트이고, 수신 기기는 상기 암호 채널의 패스워드를 획득하기 전에 상기 데이터 영역의 특정 내용을 알 수 없다. 필드 FCS는 프레임 체크 시퀀스를 나타낸다. 상기 무선 신호의 모니터, 즉 상기 수신 기기에 대하여, 필드들 DA, SA, Length, LLC, SNAP, FCS는 직접 모니터링될 수 있게 되는 무선 채널의 암호에 상관없이 항상 노출된다. 그러나 상기 실시 예의 방법을 수행하는 마스터 기기에 대해, 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어는 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 다시 말하면 마스터 기기에서의 부호화를 위한 애플리케이션이 일반적으로 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어를 이루기 어렵기 때문에 매우 높은 레벨의 제어 권한을 필요로 한다.
그러므로 상기 내용이 여러 소프트웨어 애플리케이션에 의해 직접 모니터링 및 제어될 수 있게 되는 헤더 필드 "Length"를 사용함으로써, 상기 마스터 기기에서의 부호화를 위한 애플리케이션은 필요에 따라 상기 데이터 패킷의 헤더 필드 "Length"에서 데이터를 송신하는 간편한 제어를 하게 된다.
일부 실시 예들에서, 상기 데이터 패킷은 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 기반을 두고 이루어진다. 상기 마스터 기기들은 UDP 브로드캐스트 패킷을 사용하여 관심 있는 데이터를 반송하며, 구체적으로는 각각의 패킷의 개별 헤더 필드 "length"가 상기 관심 있는 데이터와 함께 부호화되게 되는 일련의 UDP 브로드캐스트 패킷들을 송신한다. 상기 수신 기기는 하이브리드 모드로 공간에서 상기 무선 신호를 모니터링하고, 802.2 SNAP 포맷으로 구성되는 데이터 패킷들을 인터셉트하며, 상기 인터셉트된 데이터 패킷들의 부호화된 헤더 필드들 "Length"에서 데이터를 획득하고, 그리고 상기 부호화된 헤더 필드들 내에서 획득된 데이터를 복호화함으로써 상기 관심 있는 데이터(다시 말하면, 관심 있는 데이터)를 회수한다. 일부 실시 예들에서, 상기 데이터 패킷은 전송 제어 프로토콜(transmission control protocol; TCP)을 준수하는 데이터 포맷을 지닌다.
일부 실시 예들에서, 최대 전송 단위(maximum transmission units; MTU)에 대한 제한 때문에, 상기 헤더 필드 "Length"에서 관심 있는 데이터를 반송하는데 사용될 수 있는 최대 비트 개수는 10이다. 그러나 패킷 손실률은 대개 UDP 패킷의 길이에 비례한다. 상기 헤더 필드 "Length"가 상기 관심 있는 데이터를 반송하기 위해 9비트보다 많은 비트를 제공하거나 상응하는 UDP 패킷이 256비트보다 많은 비트를 지니는 경우에, 상기 UDP 브로드캐스트 패킷의 패킷 손실률은 실질적으로 증가하며, 서로 다른 패킷들 간의 순서 손실이 종종 일어난다. 그러므로 일부 바람직한 실시 예들에서, 비트 개수는 관심 있는 데이터를 반송하기 위해 사용되는 일부 헤더 필드들에 대해 8로 제한되고, 상기 UDP 브로드캐스트 패킷은 256비트보다 많지 않은 비트의 길이를 지니도록 제어된다. 이러한 상황들에서, 각각의 UDP 데이터 패킷은 상기 수신 기기에 의해 간편하게 판독 가능한 1바이트의 관심 있는 데이터를 포함한다. 각각의 데이터 패킷 내에서의 그러한 제한된 양의 데이터를 고려해 볼 때, 상기 관심 있는 데이터는 다수의 UDP 데이터 패킷이 상기 마스터 기기로부터 상기 수신 기기로 완전히 전송되는 것을 필요로 할 수 있다.
도 10은 일부 실시 예들에 따른 도 8에 도시된 바와 같은 데이터 패킷의 헤더 필드(예컨대, 헤더 필드 "Length") 내에 상기 관심 있는 데이터를 부호화하는 동작(S140)의 흐름도이다. 각각의 데이터 패킷이 제한된 양의 관심 있는 데이터(예컨대, 일부 실시 예들에서 단지 하나의 바이트)를 반송할 수 있기 때문에, 전체 관심 있는 데이터는 데이터 패킷 시퀀스를 포함하는 데이터 패킷 세트를 통해 송신된다. 그러므로 도 10에 도시된 바와 같이, 단계 S140은 이하의 단계들을 부가적으로 포함한다:
·관심 있는 데이터를 반송하기 위해 사용되는 헤더 필드를 식별하는 제어 필드 및 상기 관심 있는 데이터에 따라 상기 관심 있는 데이터를 로드하기 위한 데이터 필드를 생성하는 단계 S142;
·복수 개의 데이터 패킷들의 헤더 필드들 내의 관심 있는 데이터에 연관된 데이터 필드 및 제어 필드를 순차적으로 부호화하는 단계 S144. 이러한 수단들에 의해, 비록 단일 데이터 패킷만이 제한된 관심 있는 데이터양을 지니는 경우라도, 단일 데이터 패킷에 연관된 것보다 긴 길이를 지니는 관심 있는 데이터는 상기 제어 필드 및 상기 데이터 필드에 따라 정의되는 특정 헤더 필드들을 포함하는 데이터 패킷 세트에 의해 반송될 수 있다.
도 11은 일부 실시 예들에 따른 관심 있는 데이터를 로드하기 위해 데이터 패킷 헤더들 내에 헤더 필드들(예컨대, 헤더 필드 "Length")을 구성하는데 사용되는 링크 계층 데이터 구조의 개략도이다. 상기 링크 계층 데이터 구조는 2개의 클래스, 즉 제어 필드(다시 말하면, 사양(specification)들을 제어하기 위한 필드) 및 데이터 필드(데이터를 반송하기 위한 필드)로 분할된다. 일부 실시 예들에서, 상기 제어 필드는 매직 코드 필드(다시 말하면, 인식(recognition) 필드)(1200), 프리픽스(prefix) 코드 필드(다시 말하면, 프리픽스 필드)(1104), 및 시퀀스 헤더 필드(다시 말하면, 시퀀스 헤더 필드)(1300)를 포함한다. 상기 제어 필드들에서, 식별(인식) 필드(1200)는 가까운 장래에 있을 관심 있는 데이터를 식별하기 위해 사용되고, 상기 프리픽스 필드(1104)는 시퀀스 헤더 필드(1300)보다 앞서 있는 것 외에는 상기 식별 필드와 유사한 기능을 지니며 복수 개의 데이터 시퀀스의 정규 시작을 나타낸다.
상기 데이터 필드(1400)는 상기 체크 데이터의 체크 코드를 로드하기 위해 사용되는 시퀀스 헤더 필드를 포함한다. 상기 데이터 필드(1400)는 상기 관심 있는 데이터를 로드하기 위해 사용되는 시퀀스 필드를 부가적으로 포함한다. 상기 관심 있는 데이터를 반송하기 위해 사용되는 데이터 패킷의 각각의 헤더 필드가 바이트(또는 8비트)를 포함하는 경우에, 상기 제어 필드 및 상기 데이터 필드는 한 바이트의 7번째 비트(때로는 제어 비트라 지칭함)에 의해 구별된다. 구체적으로는, 일 예에서, 7번째 비트 "1"은 데이터 필드를 나타내고, "0"은 제어 필드를 나타낸다. 다른 실시 예들에서, 다른 어떤 비트라도 상기 제어 필드 및 상기 데이터 필드를 식별하기 위한 제어 비트용으로 사용될 수 있고, 이 경우에 상기 제어 필드 및 상기 데이터 필드의 바이트 내의 제어 비트의 코드들이 구별된다. 상기 비트는 0번째 비트 내지 7번째 비트 중 어느 하나일 수 있다. 일부 실시 예들에서, 0은 상기 데이터 필드들을 나타내고, 1은 상기 제어 필드들을 나타낸다. 상기 매직 코드 필드 및 시퀀스 헤더 필드는 6번째 비트에 의해 구별되고, 1은 상기 시퀀스 헤더 필드를 나타내며 0은 상기 식별 필드를 나타낸다. 다른 실시 예들에서, 다른 비트(들)는 또한 상기 매직 코드 필드를 식별하기 위해 사용될 수 있다. 일부 실시 예들에서, 0은 상기 시퀀스 헤더 필드를 나타내고, 1은 상기 식별 필드를 나타낸다.
도 12, 13 및 14는 일부 실시 예들에 따른 링크 계층 데이터 구조에 기반을 두고 각각 구성된 매직 코드 필드(1200), 시퀀스 헤더(1300) 및 데이터 필드(1400)의 개략도들이다. 도 12를 참조하면, 식별 필드(1200)는 매직 코드들(다시 말하면, 식별 바이트)을 포함하며, 각각의 매직 코드 또는 식별 바이트는 상기 매직 코드를 식별하기 위한 매직(즉, 식별 코드)(1202) 및 정보를 로드하기 위한 정보(즉, 정보 코드)(1204)를 포함한다. 일부 실시 예들에서, 상기 식별 필드(1200)는 4바이트를 포함하며, 각각의 바이트의 상위 4비트는 상기 식별 코드(1202)를 포함하고 하위 4비트는 상기 정보 코드(1204)를 포함한다. 하나의 특정 예에서, 상기 정보 코드(1202)의 첫 번째 2바이트는 송신될 데이터의 길이의 상위 4비트 및 하위 4비트를 각각 반송하며, 상기 정보 코드(1202)의 마지막 2바이트는 송신될 데이터의 CRC8(순환 중복 체크 코드: circular redundancy check code) 값의 상위 4비트 및 하위 4비트를 각각 반송한다. 데이터 통신 방법(80)이 Wi-Fi 통신 네트워크의 SSID 및 SSID 패스워드를 전송하는데 사용될 경우에, 상기 식별 필드(1200) 내의 SSID의 CRC8 코드는 전체 전송 절차를 개선한다. 일부 구현 예들에서, 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(access point; AP)들이 무선 환경에서 모든 비-은닉성 AP들의 SSID, RSSI(received signal strength indicator: 수신 신호 강도 표시자) 및 채널들을 획득하도록 스캐닝 된다. 후속 데이터 통신 프로세스 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID에 연관된 CRC8 값을 획득하고, 그리고 나서 이를 사전 스캔으로부터 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC 값이 매치(match) 되는 경우에, 상기 수신 기기는 SSID 정보를 다시 수신할 필요가 없게 되고 그럼으로써 전송 시간을 단축하게 된다.
일부 실시 예들에서, 사전에 결정된 바이트 개수(예컨대, 20)는 식별 필드들(1200) 용으로 송신된다. 상기 수신 기기가 있는 무선 통신 네트워크 환경이 복잡해질 수 있다. 구체적으로 기술하면, 동일 공간 내에 다수의 AP가 존재하게 되고, 이러한 AP들이 동일하거나 다른 채널들을 통해 분포될 수 있다. 그러므로 초기에 상기 수신 기기는 1 내지 14채널들 중 어느 채널이 정보를 송신하는데 상기 마스터 기기에 의해 사용되는지 그리고 특정 채널 상의 다수의 기기 중 어느 하나의 기기가 상기 마스터 기기에 연관되는지를 인식하지 못한다. 이러한 상황에서, 상기 수신 기기는 서로 다른 채널들로부터 서로 다른 기기들에 의해 제공되는 거대한 양의 데이터를 수신할 수 있게 된다.
상기 마스터 기기에 의해 사용되는 채널 및 거대한 양의 데이터로부터의 상기 마스터 기기의 물리적 어드레스(즉, MAC 어드레스)를 찾아내기 위해, 상기 마스터 기기는 다른 정보를 송신하기 전에 식별 필드들(1200)로서 사전에 결정된 바이트 개수를 송신할 수 있다. 이러한 식별 필드들(1200) 각각은 4바이트를 포함하며, 상기 마스터 기기를 식별하는데 사용된다. 그러므로 상기 수신 기기는 상기 마스터 기기의 채널 및 MAC 어드레스를 알고 상기 마스터 기기의 채널 및 MAC 어드레스에 초점을 맞추고, 이들을 후속 정보 모니터링 절차에서 거대한 양의 데이터를 효율적으로 필터링하는데 사용할 수 있다.
도 13을 참조하면, 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 시퀀스 CRC8(즉, 시퀀스 순환 중복 체크 코드)(1302) 및 시퀀스 인덱스(즉, 시퀀스 인덱스)(1304)를 포함한다. 각각의 데이터 시퀀스 필드(1102)는 또한 상기 관심 있는 데이터를 로드하기 위해 사용되는 개별 데이터 필드 내에 다수의 바이트를 포함한다. 시퀀스 헤더 필드(1300) 및 시퀀스 데이터 필드(1400)는 데이터 시퀀스 필드(1102)를 형성하고, 상기 관심 있는 데이터는 복수 개의 데이터 시퀀스 필드들(1102)에 의해 반송될 수 있다. 일부 실시 예들에서, 송신될 관심 있는 데이터는 4바이트의 입자 크기(grain size)로 분할되고(0으로 패딩(padding)하는 것은 상기 관심 있는 데이터의 길이가 정확하게 분할될 수 없는 경우에 필요하게 됨), 각각의 4 시퀀스 바이트는 데이터 시퀀스 필드(1102)로 로드되고, 상기 데이터는 데이터 시퀀스 단위로 송신된다. 더군다나, 일부 실시 예들에서, 상기 관심 있는 데이터는 오류 정정을 위해 사전에 결정된 시간들 동안 송신된다. 상기 관심 있는 데이터가 처음으로 송신된 후에, 다시 말하면 상기 관심 있는 데이터를 포함하는 N 개의 시퀀스가 처음으로 송신된 후에, 그리고 다시 N 개의 시퀀스를 송신하기 시작하기 전에, 프리픽스 필드(1104)가 N 개의 시퀀스의 시작을 나타내기 위해 한 번 송신된다. 다시 말하면, 반복해서 송신할 경우에, 상기 데이터 패킷이 프리픽스 필드(1104), 시퀀스 헤더 필드(1300) 및 데이터 필드(1400)를 포함하며, 이 경우에 상기 식별 필드(1200)는 옵션이다. 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스(1304)의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 상기 CRC 값이 사전에 스캐닝된 CRC 값과 일치하지 않는 경우에, 상기 데이터 시퀀스는 오류들을 가지고 수신되고 그럼으로써 폐기된다.
도 14를 참조하면, 일부 실시 예들에서, 상기 시퀀스 데이터 필드(1400)는 4바이트를 포함하고, 각각의 바이트의 7번째 비트는 제어 비트이고 1로서 고정되며, 나머지 7개의 비트는 관심 있는 데이터를 로드하기 위해 사용된다. 일부 실시 예들에서, 상기 관심 있는 데이터는 SSID, SSID 패스워드, 및 상기 관심 있는 데이터의 수신을 확인하기 위해 사용되는 난수(random number) 중의 하나 이상을 포함한다. 일부 구현 예들에서, AP가 접속된 후에, 상기 마스터 기기는 난수를 포함하는 UDP 브로드캐스트 패킷을 즉시 송신한다. 상기 수신 기기는 상기 난수를 상기 마스터 기기로 복귀시키는 것으로 예정되어 있고 상기 마스터 기기가 어떠한 오류도 없이 상기 난수를 수신한 경우에 상기 수신 기기가 상기 관심 있는 데이터를 올바르게 수신한 것으로 결정될 수 있다. 상기 난수의 크기는 1바이트이며, 그에 따라 상기 난수의 값이 127보다 작다. 일부 실시 예들에서, 상기 SSID 및 상기 SSID 패스워드는 '\0'으로 끝나게 되고 룩업 테이블 또는 사전(dictionary)에 기반을 두고 암호화되며, 상응하는 수신 기기는 동일한 룩업 테이블 또는 사전을 사용하여 상기 수신된 SSID 및 SSID 패스워드를 복호화할 수 있다.
도 15는 일부 실시 예들에 따른 SSID, SSID 패스워드 및 난수를 포함하는 데이터 필드의 개략도이다. 송신 순서에 따라, 상기 마스터 기기는 상기 SSID 패스워드, 상기 난수 및 상기 SSID를 순차적으로 송신한다. 일부 실시 예들에서, 상기 수신 기기는 상기 식별 필드(1200)에서 타깃 AP의 SSID의 CRC8 값을 획득하고 이를 사전에 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC8 값들이 일치하는 경우에, 상기 SSID 정보가 확인되고 상기 수신 기기가 후속 SSID 정보를 처리할 필요가 없으며 그럼으로써 전송 시간을 줄이고 상응하는 전송 효율을 개선하게 된다.
도 16은 일부 실시 예들에 따른 다른 한 전형적인 데이터 통신 방법(1600)의 흐름도이다. 데이터 통신 방법(1600)은 무선 신호들을 송신할 수 있는, 모바일폰, 태블릿 컴퓨터와 같은 마스터 기기들과 같은 마스터 기기들과의 무선 통신을 수행하기 위해 공간에서 무선 신호들을 모니터링하도록 하이브리드 모드로 동작하는 수신 기기들에서 구현될 수 있다. 일부 실시 예들에서, 데이터 통신 방법(1600)은 수신 기기가 단지 하나의 통신 네트워크를 통해서만 다른 기기들에 통신 가능하게 연결될 때 정보를 수신하도록 구현된다.
도 16에 도시된 바와 같이, 데이터 통신 방법(1600)은 이하의 단계들을 포함한다:
상기 헤더 필드 내에 상기 관심 있는 데이터를 부호화함으로써 생성되는 데이터 패킷들을 수신하는 단계 S220. 상기 헤더 필드는 직접 모니터링될 수 있는 데이터 패킷 내의 필드이다. 단계 S220은 단계 S160에 연관된다. 상기 암호화 채널을 통해 전송되는 데이터 패킷을 위해, 상기 데이터 패킷은 상기 암호화 채널을 통해 획득된다.
상기 관심 있는 데이터를 획득하도록 상기 헤더 필드를 복호화하는 단계 S240. 상기 관심 있는 데이터는 상기 부호화에 상응하는 포맷에 따른 복호화를 통해 달성될 수 있다. 암호화 채널을 통해 전송되는 데이터 패킷에 대하여는, 비록 상기 데이터 패킷의 데이터 필드가 암호화되고 그럼으로써 상기 데이터 필드 내에 포함된 특정 내용이 인식될 수 없지만, 상기 관심 있는 데이터를 반송하는 헤더 필드는 상기 데이터 패킷의 데이터 필드를 암호화하는 상응하는 암호화 방법을 알지 않고 직접 모니터링될 수 있다. 상기 관심 있는 데이터는 개방 헤더 필드로부터 회수된다.
데이터 통신 방법(1600)은 Wi-Fi 무선 통신 프로토콜에 기반을 두고 이루어진 Wi-Fi 통신 네트워크에 관여될 수 있으며, 소량의 데이터를 전달하는데 적합하다. 일부 실시 예들에서, 데이터 통신 방법(1600)은 SSID 및 상응하는 SSID 패스워드를 수신하도록 한 것들의 인터넷 지능형 제어 칩을 제어하도록 적용된다. 예를 들어, 수신 모드에서, 지능형 스위치는 SSID의 입력들을 수신하도록 키 및 터치 스크린을 지니지 않으며, 그럼으로써 데이터 통신 방법(1600)을 사용하여 상기 SSID 및 상기 패스워드를 간편하고 신속하게 획득한다. 위에서 언급한 데이터 패킷은 브로드캐스트 패킷일 수 있으며, 무선 액세스 포인트에 의한 포워딩을 통해 수신될 수 있다. 상기 무선 액세스 포인트는 대량의 전력을 지니며, 그럼으로써 상기 무선 액세스 포인트가 상응하는 무선 신호들을 포워딩할 경우에 무선 통신의 물리적 신호 공간의 커버리지 영역이 증가하게 될 수 있다. 상기 수신 기기는 하이브리드 모드로 공간에서 무선 신호들을 모니터링함으로써 단계 S220을 수행한다. 단계 S220에서, 상기 수신 기기는 데이터 링크 계층에서 데이터 패킷으로부터 데이터를 회수한다.
상기 데이터 패킷 및 상기 헤더 필드에 대해, 도 8 - 15에 도시된 실시 예들을 언급하기로 한다. 상기 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 마스터 기기에 의해 패키징 및 암호화된다. 그러므로 상기 단계 S240은 헤더 필드 "Length"를 수정하기 위한 단계를 포함한다. 일부 실시 예들에서, 상기 데이터 패킷은 UDP 계층을 통해 UDP 브로드캐스트 패킷으로서 송신되고, 상기 UDP 계층의 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 패키징되지만, 상기 마스터 기기에 의해 WPA2, WPA 또는 WEP에 기반을 두고 암호화된다. 패키징 및 암호화의 필요성 때문에, 여분의 바이트들이 각각의 데이터 패킷에 추가된다. 따라서, 상기 마스터 기기에 의해 송신되는 UDP 브로드캐스트 패킷의 길이는 상기 수신 기기에 의해 최종적으로 모니터링되는 헤더 필드 "Length"의 값과 다르게 되며, 그럼으로써 수정이 필요하다. 여기서 알 수 있는 점은 상기 UDP 브로드캐스트 패킷의 길이가 상기 MTU의 제한 범위 내에 있는 동안(다시 말하면, UDP 패킷이 교차되지 않게 되는 동안), 상기 마스터 기기에 의해 송신된 UDP 브로드캐스트 패킷의 길이 및 상기 수신 기기에 의해 최종적으로 모니터링된 헤더 필드 "Length"의 값 간의 차이는 상수 값이다. 그리고 상기 상수 값은 상기 UDP 브로드캐스트 패킷의 길이 변화와 함께 변하지 않게 되고, 오히려 단지 상기 데이터 패킷을 암호화하는데 사용되는 Wi-Fi 암호화 방법에 연관될 뿐이다. 그러므로 상이한 암호화 방법 하에서의 차이 값이 알려지게 되면, 상기 수신 기기는 헤더 필드 "Length"를 정확하게 추적할 수 있다.
도 17은 일부 실시 예들에 따른, 마스터 기기에 의해 송신되고 수신 기기에 의해 모니터링되는 데이터 패킷들의 데이터 패킷 길이들의 차이들을 각각 보여주는 수정 테이블이다. 일련의 실험들을 통해, 도 17에 도시된 바와 같이 수정 테이블이 획득된다. AES는 Advanced Encryption Standard의 약어이며, 이는 고급 암호화 표준이다. TKIP는 Temporal Key Integrity Protocol의 약어이며, 이는 임시 키 무결성 프로토콜을 의미한다. RC4는 가변 키 길이를 갖는 스트림 암호화 알고리즘이다. Wi-Fi 암호화 방식이 WPA2(AES)인 경우에, 상기 수신 기기는 모니터링을 통해 링크 계층에서 802.2 SNAP 포맷의 UDP 브로드캐스트 패킷을 인터셉트하고, 필드 Length의 값은 152이며, 상기 수신 기기는 이를 수정하여 152-52=100인 것으로 상기 마스터 기기에 의해 송신된 내용을 획득한다. 그러므로 길이 필드를 수정하는 단계는 상기 길이 필드의 값에서 사전에 설정된 수정 값을 감산하는 것이다.
일부 실시 예들에서, 관심 있는 데이터의 수신이 복수 개의 데이터 패킷들에 의해 구성된 데이터 패킷 세트를 수신함을 통해 완료되는 경우에, 상기 단계 S240은 상기 복수 개의 데이터 패킷들을 복호화하여 상기 복수 개의 데이터 패킷들의 헤더 필드들 내에 암호화되는 관심 있는 데이터를 로드하기 위해 사용되는 데이터 필드 및 식별되기 위해 사용되는 제어 필드를 순차적으로 획득하는 단계를 포함한다. 상기 제어 필드들은 식별 필드 및 시퀀스 헤더 필드를 포함하며, 이 경우에 상기 식별 필드는 식별을 위해 사용되고, 상기 시퀀스 헤더 필드는 상기 체크 데이터의 획득된 체크 코드를 복호화하기 위해 사용된다. 상기 데이터 필드들은 시퀀스 필드를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 로드하기 위해 사용된다.
상기 시퀀스 헤더 필드는 시퀀스 순환 중복 체크 코드, 및 시퀀스 인덱스를 포함한다. 상기 시퀀스 필드는 시퀀스 바이트를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 획득하기 위해 사용된다. 데이터 패킷 세트를 수신한 후에, 시퀀스 순환 중복 체크 코드를 통해 체크가 수행된다. 상기 체크가 실패하는 경우에, 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
일부 실시 예들에서, 시퀀스 헤더 필드 및 시퀀스 필드는 하나의 시퀀스로 이루어지며, 상기 관심 있는 데이터는 복수 개의 시퀀스들에 의해 전송될 수 있다. 상기 시퀀스 헤더 필드는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 동일하지 않은 경우에, 상기 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
상기 관심 있는 데이터를 매번 반송하는 N 개의 시퀀스를 수신하기 전에, 프리픽스 필드가 수신되게 되며, 복호화를 위해 사용되는 SSID의 SSID CRC8이 획득될 수 있다. 상기 실시 예의 통신 방법은 또한 환경 서비스 세트 식별자를 획득하도록 환경에서 AP들을 스캐닝하는 단계를 포함한다. 상기 환경 서비스 세트 식별자는 상기 SSID CRC8을 가지고 체크되고, 성공하는 경우에, 상기 SSID의 수신을 포기한다. 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(AP)들이 스캐닝되고, 이 경우에 무선 환경에서의 모든 비-은닉성 AP들의 SSID, RSSI(수신 신호 강도 표시자; received signal strength indicator) 및 채널들이 획득된 비컨을 통해 얻어질 수 있다. 전송 절차 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID의 CRC8 값을 획득하고, 그리고 나서 이를 이전에 스캐닝함으로써 획득된 SSID의 CRC 값과 비교한다. 동일한 값이 발견되는 경우에, 상기 수신 기기는 이하의 수신 절차에서 상기 SSID 정보를 다시 수신할 필요가 없게 되고, 그럼으로써 전송 시간을 상당히 단축하게 된다.
위에서 설명한 실시 예의 통신 모델은 오류율이 0-5%인 단방향 채널로서 요약될 수 있으며, 전송될 정보의 최대 길이는 68바이트이다. 이 경우에, 오류 정정 알고리즘을 사용하지 않는 경우에, 제한된 시간에 정보를 송신하는 것을 완료하게 하는 것이 어렵다. 일부 실시 예들에서, 누적 오류 정정 알고리즘은 제한된 시간에 전송을 완료하게 하는데 사용된다. 상기 누적 오류 정정 알고리즘의 이론적 기초는 데이터를 송신하는 다수의 프로세스에서 동일 비트에 대한 데이터의 오류 확률이 매우 낮다는 점이다. 그러므로 데이터를 전송하는 다수의 결과가 누적 및 분석될 수 있다. 한 프로세스에서 오류 데이터의 확률이 큰 비트에 대하여는, 그의 상응하는 정확한 값이 다른 프로세스에서 발견될 수 있으며, 그럼으로써 제한된 시간 내에 정보를 송신하는 것을 완료하게 할 수 있다.
도 18은 일부 실시 예들에 따른 데이터 통신 오류 확률들을 보여주는 전형적인 테이블이다. 전송될 정보의 길이가 68바이트라고 가정하면, 최악의 경우에, 성공적인 정보 송신의 확률이 누적 오류 정정 알고리즘을 가지고 그리고 누적 오류 정정 알고리즘을 가지지 않고 계산되며, 송신 횟수 및 결과 간의 관계는 도 18에 도시되어 있다. 바이트를 전송함에 있어서의 오류율이 5%라고 가정하면, 68바이트의 데이터가 전송될 필요가 있는 경우에, 하나의 프로세스에서의 성공적인 전송의 확률은 (1-0.05)68=3%이다. 위에서 언급한 오류 정정 알고리즘이 사용되는 경우에, 하나의 프로세스에서의 성공적인 전송 확률은 또한 3%이며, n 개의 프로세스에서의 성공적인 전송 확률은 (1-0.05n)68이다.
상기 실시 예의 전송률은 마스터 기기에서의 UDP 브로드캐스트 패킷들의 송신 비율에 의존한다. 현재, 송신 브로드캐스트 패킷의 빈도가 1/5 ms이고, 그럼으로써 전송률은 200바이트/초이게 된다. 상기 식별 필드가 계산되지 않게 되는 경우에, 로드의 효율은 66.7%이다. 송신된 정보의 길이가 가장 긴 68바이트인 경우에, 최악의 경우에, 정보의 송신은 많아야 5회로 완료될 수 있으며, 많아야 상기 전송 시간이 68/66.7*5/200=2.549s이다.
도 19 및 20은 일부 실시 예들에 따른 이더넷 802.2 데이터 포맷 및 이더넷 802.3 데이터 포맷을 각각 지니는 2개의 데이터 패킷들의 개략도들이다.
다른 한 실시 예에서, 상기 데이터 패킷은 또한 이더넷 802.2 포맷을 이루고 있을 수 있다. 도 19는 이더넷 802.2 포맷에서의 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 19의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드를 나타내고, 데이터 필드는 로드이며, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 포맷을 이루고 있을 수 있다. 도 20은 이더넷 802.3 포맷을 이루는 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 이더넷 802.3의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 20의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 데이터 필드는 로드이고, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 SNAP 포맷을 이루고 있을 수 있다. 도 9를 참조하면, 이더넷 802.3 SNAP 포맷을 이루는 데이터 패킷의 개략도는 이더넷 802.2 SNAP 포맷의 실시 예에 따른 데이터 패킷의 것과 동일한 것이고, 이 경우에 상기 헤더 필드는 이더넷 802.3 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다.
도 21은 통신 방법의 구현 모드이다. 본 실시 예는 무선 신호들을 송신하는 것이 가능한 단말기들(예컨대, 모바일폰들, 태블릿 컴퓨터들)과의 무선 통신을 수행하도록 공간에서 무선 신호를 모니터링하도록 하이브리드 모드로 수신 기기들에 적용될 수 있다. 구체적으로는 상기 수신 기기가 다른 기기들과 어떠한 실질적인 접속도 지니지 않는 경우에 정보를 수신하도록 적용될 수 있다.
도 21에 도시된 바와 같이 본 실시 예의 통신 방법은 이하의 단계들을 포함한다.
송신될 관심 있는 데이터를 획득하는 단계 S320. 상기 관심 있는 데이터는 무선 통신을 위해 수신 기기들로 송신될 필요가 있는 사용자 데이터이지만, 전송 프로세스를 위한 시스템에 의해 자동으로 생성되는 전송 제어 데이터가 아니다. 예를 들면, 상기 관심 있는 데이터는 무선 액세스에서 필요한 서비스 세트 식별자(service set identifier; SSID) 및 패스워드, 및 지능형 에어콘의 조절 파라미터일 수 있다. 상기 관심 있는 데이터는 사용자 입력을 수신함으로써 획득될 수도 있으며, 네트워크를 통해 획득될 수도 있고 상기 마스터 기기의 로컬 메모리로부터 획득될 수도 있다.
데이터 패킷을 생성하도록 상기 헤더 필드 내에 상기 관심 있는 데이터를 부호화하는 단계로서, 이 경우에 상기 헤더 필드가 직접 모니터링될 수 있게 되는 데이터 패킷 내의 필드인, 관심 있는 데이터의 부호화 단계 S340. 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드는 무선 전송 절차에서 특정 내용을 노출시키기 위한 필드를 언급한다. 신호의 커버리지 내에 있는 한은, 무선 전송 기능을 지니는 어떠한 수신 기기라도 비록 상기 무선 통신의 패스워드를 지니지 않지만 상기 헤더 필드의 특정한 구체적인 내용을 획득할 수 있다. 여러 무선 통신 모드에서, 데이터 패킷 내의 일부 정보는 은닉될 필요가 없는 정보, 예를 들면 802.2 SNAP 포맷의 데이터 패킷 내의 길이 필드 등등이며, 이들은 직접 노출된다.
상기 데이터 패킷을 송신하는 단계 S360. 특히, 상기 데이터 패킷은 예를 들면 데이터 패킷이 생성된 후에 무선 통신의 요건에 따라 주어진 주파수, 전력 등등을 사용하여 송신된다. 데이터 패킷을 송신하기 위한 채널이 암호화되는 경우에, 상기 데이터 패킷은 암호화 채널을 통해 송신된다.
데이터 패킷들을 수신하는 단계 S380. 이러한 단계는 단계 S360에 대응된다. 상기 암호화 채널을 통해 전송되는 데이터 패킷에 대해, 상기 데이터 패킷은 상기 암호화 채널을 통해 획득된다.
상기 관심 있는 데이터를 획득하도록 상기 헤더 필드를 복호화하는 단계 S390. 상기 관심 있는 데이터는 상기 부호화에 상응하는 포맷에 따라 복호화를 통해 획득될 수 있다. 상기 데이터 패킷의 데이터 영역이 암호화되고 그럼으로써 특정 내용이 알려지지 않게 될 수 있는 암호화 채널을 통해 전송되는 데이터 패킷에 대해, 상기 헤더 필드는 상기 내용이 상기 암호화 채널의 영향 없이 직접 모니터링될 수 있게 되는 데이터 패킷의 필드이고, 그럼으로써 상기 헤더 필드의 내용이 복호화를 위해 획득될 수 있게 된다.
위에서 언급한 통신 방법에서, 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화 및 송출되어 상기 수신 기기에 의해 수신된다. 위에서 언급한 방법의 경우에, 상기 관심 있는 데이터를 가지고 부호화되는 헤더 필드의 내용이 직접 모니터링될 수 있기 때문에, 상기 관심 있는 데이터는 비록 상기 데이터 패킷 내의 다른 필드들의 내용들이 암호화됨으로써 알려지지 않게 될 수 있더라도 획득될 수 있고, 그럼으로써 수신 기기로 정보를 송신하고 상기 수신 기기에 의해 상기 정보를 수신 및 획득하도록 하는 목적을 실현할 수 있게 된다. 상기 수신 기기는 환경과의 접속을 확립하는 사전 구성의 필요 없이 상기 관심 있는 데이터를 수신할 수 있다.
신호 반송을 위해, Wi-Fi 무선 신호가 정보 전송을 위해 채택될 수 있다. 바람직하게는, 1 내지 14채널 모두가 지원을 위해 사용될 수 있다. 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화된다. 상기 수신 기기는 공간에서 무선 신호를 모니터링하도록 하이브리드 모드를 이루고 있을 수 있고, 그럼으로써 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드를 모니터링하고, 상기 헤더 필드를 복호화함으로써 상기 관심 있는 데이터를 획득하는 것을 허용한다. 상기 실시 예의 방법은 바람직하게는 소수 데이터(minor data)의 전송에 적합하며, 이는 지능형 기기들 상의 것들의 인터넷 지능형 제어 칩들에 서비스 세트 식별자들 및 패스워드들을 송신하도록 무선 송신 기능을 지니는 모바일폰들 및 태블릿 컴퓨터들과 같은 무선 단말기들에 적용될 수 있다. 단계 S360에서, 상기 데이터 패킷은 무선 액세스 포인트를 통해 수신 기기로 포워드되는 브로드캐스트 패킷일 수 있다. 상기 무선 액세스 포인트는 대량 전력을 지니고, 그럼으로써 물리적 무선 통신 공간의 커버리지 영역은 상기 무선 액세스 포인트의 포워딩에 의해 증가될 수 있게 한다.
일부 실시 예들에서, 상기 헤더 필드가 정규 애플리케이션에 의해 직접 제어되는 필드이다. 모바일 단말기의 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 매우 높은 레벨의 제어 권한은 상기 내용이 직접 모니터링될 수 있게 되는 필드에 대한 제어에 대해 필요하고, 그럼으로써 부호화를 위한 그러한 애플리케이션은 그러한 제어를 이루기란 어렵다. 정규 애플리케이션에 의해 직접 제어될 수 있게 되는 필드가 상기 헤더 필드로서 선택되는 경우에, 매우 높은 레벨의 제어 권한이 상기 실시 예의 애플리케이션을 수행하는데 필요하지 않으며, 이는 사용하기에 간편할 뿐만아니라 시스템의 보안을 유지한다. 일부 실시 예들에서, 상기 데이터 패킷이 802.2 SNAP의 포맷을 이루고 있을 수 있고, 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다. 802.11은 IEEE에 의해 설정된 무선 LAN 프로토콜이며, 이를 가지고 IP 패킷이 802.2의 논리 링크 제어 패키징에 의해 반송되고, 결과적으로는 무선 네트워크 데이터가 802.2 SNAP 포맷으로 수신될 수 있다. Wi-Fi 칩의 하이브리드 모드가 허용되는 경우에, 도 9에 도시된 바와 같은 데이터 패킷은 공간에서 상기 무선 신호를 모니터링하고 802.2 SNAP 포맷에 따라 상기 데이터 링크 계층으로부터 상기 데이터를 인터셉트함으로써 획득될 수 있다.
도 9의 헤더 필드 "길이(Length)"는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드(논리 링크 제어; Logical Link Control)를 나타내고, 필드 SNAP는 3바이트의 벤더 코드 및 2바이트의 프로토콜 타입 식별 코드를 포함한다. DATA 영역(데이터 영역)은 로드(load)이며, 이는 암호 채널에 대해 암호 텍스트이고, 수신 기기는 상기 암호 채널의 패스워드를 획득하기 전에 상기 데이터 영역의 특정 내용을 알 수 없다. 필드 FCS는 프레임 체크 시퀀스를 나타낸다. 상기 무선 신호의 모니터, 즉 상기 수신 기기에 대하여, 필드들 DA, SA, Length, LLC, SNAP, FCS는 직접 모니터링될 수 있게 되는 무선 채널의 암호에 상관없이 항상 노출된다. 그러나 상기 실시 예의 방법을 수행하는 마스터 기기에 대해, 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어는 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 다시 말하면 마스터 기기에서의 부호화를 위한 애플리케이션이 일반적으로 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어를 이루기 어렵기 때문에 매우 높은 레벨의 제어 권한을 필요로 한다.
그러므로 상기 내용이 여러 소프트웨어 애플리케이션에 의해 직접 모니터링 및 제어될 수 있게 되는 헤더 필드 "Length"를 사용함으로써, 상기 마스터 기기에서의 부호화를 위한 애플리케이션은 필요에 따라 상기 데이터 패킷의 헤더 필드 "Length"에서 데이터를 송신하는 간편한 제어를 하게 된다.
일부 실시 예들에서, 상기 데이터 패킷은 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 기반을 두고 이루어진다. 상기 마스터 기기들은 UDP 브로드캐스트 패킷을 사용하여 관심 있는 데이터를 반송하며, 구체적으로는 각각의 패킷의 개별 헤더 필드 "length"가 상기 관심 있는 데이터와 함께 부호화되게 되는 일련의 UDP 브로드캐스트 패킷들을 송신한다. 상기 수신 기기는 하이브리드 모드로 공간에서 상기 무선 신호를 모니터링하고, 802.2 SNAP 포맷으로 구성되는 데이터 패킷들을 인터셉트하며, 상기 인터셉트된 데이터 패킷들의 부호화된 헤더 필드들 "Length"에서 데이터를 획득하고, 그리고 상기 부호화된 헤더 필드들 내에서 획득된 데이터를 복호화함으로써 상기 관심 있는 데이터(다시 말하면, 관심 있는 데이터)를 회수한다. 일부 실시 예들에서, 상기 데이터 패킷은 전송 제어 프로토콜(transmission control protocol; TCP)을 준수하는 데이터 포맷을 지닌다.
일부 실시 예들에서, 최대 전송 단위(maximum transmission units; MTU)에 대한 제한 때문에, 상기 헤더 필드 "Length"에서 관심 있는 데이터를 반송하는데 사용될 수 있는 최대 비트 개수는 10이다. 그러나 패킷 손실률은 대개 UDP 패킷의 길이에 비례한다. 상기 헤더 필드 "Length"가 상기 관심 있는 데이터를 반송하기 위해 9비트보다 많은 비트를 제공하거나 상응하는 UDP 패킷이 256비트보다 많은 비트를 지니는 경우에, 상기 UDP 브로드캐스트 패킷의 패킷 손실률은 실질적으로 증가하며, 서로 다른 패킷들 간의 순서 손실이 종종 일어난다. 그러므로 일부 바람직한 실시 예들에서, 비트 개수는 관심 있는 데이터를 반송하기 위해 사용되는 일부 헤더 필드들에 대해 8로 제한되고, 상기 UDP 브로드캐스트 패킷은 256비트보다 많지 않은 비트의 길이를 지니도록 제어된다. 이러한 상황들에서, 각각의 UDP 데이터 패킷은 상기 수신 기기에 의해 간편하게 판독 가능한 1바이트의 관심 있는 데이터를 포함한다. 각각의 데이터 패킷 내에서의 그러한 제한된 양의 데이터를 고려해 볼 때, 상기 관심 있는 데이터는 다수의 UDP 데이터 패킷이 상기 마스터 기기로부터 상기 수신 기기로 완전히 전송되는 것을 필요로 할 수 있다.
각각의 데이터 패킷이 더 적은 데이터를 반송할 수 있기 때문에, 일부 실시 예들에서, 전체 관심 있는 데이터는 복수 개의 데이터 패킷들로 이루어진 데이터 패킷 세트를 통해 송신되고, 그럼으로써 단계 S340은 이하의 단계들을 부가적으로 포함한다:
·관심 있는 데이터에 따라 상기 관심 있는 데이터를 로드하기 위한 데이터 필드 및 식별되기 위한 제어 필드를 생성하는 단계;
·복수 개의 데이터 패킷들을 생성하도록 복수 개의 데이터 패킷들의 헤더 필드들 내에 상기 데이터 필드 및 상기 제어 필드를 순차적으로 부호화하는 단계.
상기 데이터 필드 및 제어 필드를 사용하여, 단일 데이터 패킷이 제한된 관심 있는 데이터양을 지니는 경우에, 단일 데이터 패킷의 것보다 많은 양을 갖는 데이터 전송이 데이터 패킷 세트에 의해 실현될 수 있다.
도 11은 일부 실시 예들에 따른 관심 있는 데이터를 로드하기 위해 데이터 패킷 헤더들 내에 헤더 필드들(예컨대, 헤더 필드 "Length")을 구성하는데 사용되는 링크 계층 데이터 구조의 개략도이다. 상기 링크 계층 데이터 구조는 2개의 클래스, 즉 제어 필드(다시 말하면, 사양(specification)들을 제어하기 위한 필드) 및 데이터 필드(데이터를 반송하기 위한 필드)로 분할된다. 일부 실시 예들에서, 상기 제어 필드는 매직 코드 필드(다시 말하면, 인식(recognition) 필드)(1200), 프리픽스(prefix) 코드 필드(다시 말하면, 프리픽스 필드)(1104), 및 시퀀스 헤더 필드(다시 말하면, 시퀀스 헤더 필드)(1300)를 포함한다. 상기 제어 필드들에서, 식별(인식) 필드(1200)는 가까운 장래에 있을 관심 있는 데이터를 식별하기 위해 사용되고, 상기 프리픽스 필드(1104)는 시퀀스 헤더 필드(1300)보다 앞서 있는 것 외에는 상기 식별 필드와 유사한 기능을 지니며 복수 개의 데이터 시퀀스의 정규 시작을 나타낸다.
상기 데이터 필드(1400)는 상기 체크 데이터의 체크 코드를 로드하기 위해 사용되는 시퀀스 헤더 필드를 포함한다. 상기 데이터 필드(1400)는 상기 관심 있는 데이터를 로드하기 위해 사용되는 시퀀스 필드를 부가적으로 포함한다. 상기 관심 있는 데이터를 반송하기 위해 사용되는 데이터 패킷의 각각의 헤더 필드가 바이트(또는 8비트)를 포함하는 경우에, 상기 제어 필드 및 상기 데이터 필드는 한 바이트의 7번째 비트(때로는 제어 비트라 지칭함)에 의해 구별된다. 구체적으로는, 일 예에서, 7번째 비트 "1"은 데이터 필드를 나타내고, "0"은 제어 필드를 나타낸다. 다른 실시 예들에서, 다른 어떤 비트라도 상기 제어 필드 및 상기 데이터 필드를 식별하기 위한 제어 비트용으로 사용될 수 있고, 이 경우에 상기 제어 필드 및 상기 데이터 필드의 바이트 내의 제어 비트의 코드들이 구별된다. 상기 비트는 0번째 비트 내지 7번째 비트 중 어느 하나일 수 있다. 일부 실시 예들에서, 0은 상기 데이터 필드들을 나타내고, 1은 상기 제어 필드들을 나타낸다. 상기 매직 코드 필드 및 시퀀스 헤더 필드는 6번째 비트에 의해 구별되고, 1은 상기 시퀀스 헤더 필드를 나타내며 0은 상기 식별 필드를 나타낸다. 다른 실시 예들에서, 다른 비트(들)는 또한 상기 매직 코드 필드를 식별하기 위해 사용될 수 있다. 일부 실시 예들에서, 0은 상기 시퀀스 헤더 필드를 나타내고, 1은 상기 식별 필드를 나타낸다.
도 12를 참조하면, 식별 필드(1200)는 매직 코드들(다시 말하면, 식별 바이트)을 포함하며, 각각의 매직 코드 또는 식별 바이트는 상기 매직 코드를 식별하기 위한 매직(즉, 식별 코드)(1202) 및 정보를 로드하기 위한 정보(즉, 정보 코드)(1204)를 포함한다. 일부 실시 예들에서, 상기 식별 필드(1200)는 4바이트를 포함하며, 각각의 바이트의 상위 4비트는 상기 식별 코드(1202)를 포함하고 하위 4비트는 상기 정보 코드(1204)를 포함한다. 하나의 특정 예에서, 상기 정보 코드(1202)의 첫 번째 2바이트는 송신될 데이터의 길이의 상위 4비트 및 하위 4비트를 각각 반송하며, 상기 정보 코드(1202)의 마지막 2바이트는 송신될 데이터의 CRC8(순환 중복 체크 코드: circular redundancy check code) 값의 상위 4비트 및 하위 4비트를 각각 반송한다. 데이터 통신 방법(80)이 Wi-Fi 통신 네트워크의 SSID 및 SSID 패스워드를 전송하는데 사용될 경우에, 상기 식별 필드(1200) 내의 SSID의 CRC8 코드는 전체 전송 절차를 개선한다. 일부 구현 예들에서, 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(access point; AP)들이 무선 환경에서 모든 비-은닉성 AP들의 SSID, RSSI(received signal strength indicator: 수신 신호 강도 표시자) 및 채널들을 획득하도록 스캐닝 된다. 후속 데이터 통신 프로세스 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID에 연관된 CRC8 값을 획득하고, 그리고 나서 이를 사전 스캔으로부터 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC 값이 매치(match) 되는 경우에, 상기 수신 기기는 SSID 정보를 다시 수신할 필요가 없게 되고 그럼으로써 전송 시간을 단축하게 된다.
일부 실시 예들에서, 사전에 결정된 바이트 개수(예컨대, 20)는 식별 필드들(1200) 용으로 송신된다. 상기 수신 기기가 있는 무선 통신 네트워크 환경이 복잡해질 수 있다. 구체적으로 기술하면, 동일 공간 내에 다수의 AP가 존재하게 되고, 이러한 AP들이 동일하거나 다른 채널들을 통해 분포될 수 있다. 그러므로 초기에 상기 수신 기기는 1 내지 14채널들 중 어느 채널이 정보를 송신하는데 상기 마스터 기기에 의해 사용되는지 그리고 특정 채널 상의 다수의 기기 중 어느 하나의 기기가 상기 마스터 기기에 연관되는지를 인식하지 못한다. 이러한 상황에서, 상기 수신 기기는 서로 다른 채널들로부터 서로 다른 기기들에 의해 제공되는 거대한 양의 데이터를 수신할 수 있게 된다.
상기 마스터 기기에 의해 사용되는 채널 및 거대한 양의 데이터로부터의 상기 마스터 기기의 물리적 어드레스(즉, MAC 어드레스)를 찾아내기 위해, 상기 마스터 기기는 다른 정보를 송신하기 전에 식별 필드들(1200)로서 사전에 결정된 바이트 개수를 송신할 수 있다. 이러한 식별 필드들(1200) 각각은 4바이트를 포함하며, 상기 마스터 기기를 식별하는데 사용된다. 그러므로 상기 수신 기기는 상기 마스터 기기의 채널 및 MAC 어드레스를 알고 상기 마스터 기기의 채널 및 MAC 어드레스에 초점을 맞추고, 이들을 후속 정보 모니터링 절차에서 거대한 양의 데이터를 효율적으로 필터링하는데 사용할 수 있다.
도 13을 참조하면, 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 시퀀스 CRC8(즉, 시퀀스 순환 중복 체크 코드)(1302) 및 시퀀스 인덱스(즉, 시퀀스 인덱스)(1304)를 포함한다. 각각의 데이터 시퀀스 필드(1102)는 또한 상기 관심 있는 데이터를 로드하기 위해 사용되는 개별 데이터 필드 내에 다수의 바이트를 포함한다. 시퀀스 헤더 필드(1300) 및 시퀀스 데이터 필드(1400)는 데이터 시퀀스 필드(1102)를 형성하고, 상기 관심 있는 데이터는 복수 개의 데이터 시퀀스 필드들(1102)에 의해 반송될 수 있다. 일부 실시 예들에서, 송신될 관심 있는 데이터는 4바이트의 입자 크기(grain size)로 분할되고(0으로 패딩(padding)하는 것은 상기 관심 있는 데이터의 길이가 정확하게 분할될 수 없는 경우에 필요하게 됨), 각각의 4 시퀀스 바이트는 데이터 시퀀스 필드(1102)로 로드되고, 상기 데이터는 데이터 시퀀스 단위로 송신된다. 더군다나, 일부 실시 예들에서, 상기 관심 있는 데이터는 오류 정정을 위해 사전에 결정된 시간 동안 송신된다. 상기 관심 있는 데이터가 처음으로 송신된 후에, 다시 말하면 상기 관심 있는 데이터를 포함하는 N 개의 시퀀스가 처음으로 송신된 후에, 그리고 다시 N 개의 시퀀스를 송신하기 시작하기 전에, 프리픽스 필드(1104)가 N 개의 시퀀스의 시작을 나타내기 위해 한 번 송신된다. 다시 말하면, 반복해서 송신할 경우에, 상기 데이터 패킷이 프리픽스 필드(1104), 시퀀스 헤더 필드(1300) 및 데이터 필드(1400)를 포함하며, 이 경우에 상기 식별 필드(1200)는 옵션이다. 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스(1304)의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 상기 CRC 값이 사전에 스캐닝된 CRC 값과 일치하지 않는 경우에, 상기 데이터 시퀀스는 오류들을 가지고 수신되고 그럼으로써 폐기된다.
도 14를 참조하면, 일부 실시 예들에서, 상기 시퀀스 데이터 필드(1400)는 4바이트를 포함하고, 각각의 바이트의 7번째 비트는 제어 비트이고 1로서 고정되며, 나머지 7개의 비트는 관심 있는 데이터를 로드하기 위해 사용된다. 일부 실시 예들에서, 상기 관심 있는 데이터는 SSID, SSID 패스워드, 및 상기 관심 있는 데이터의 수신을 확인하기 위해 사용되는 난수(random number) 중의 하나 이상을 포함한다. 일부 구현 예들에서, AP가 접속된 후에, 상기 마스터 기기는 난수를 포함하는 UDP 브로드캐스트 패킷을 즉시 송신한다. 상기 수신 기기는 상기 난수를 상기 마스터 기기로 복귀시키는 것으로 예정되어 있고 상기 마스터 기기가 어떠한 오류도 없이 상기 난수를 수신한 경우에 상기 수신 기기가 상기 관심 있는 데이터를 올바르게 수신한 것으로 결정될 수 있다. 상기 난수의 크기는 1바이트이며, 그에 따라 상기 난수의 값이 127보다 작다. 일부 실시 예들에서, 상기 SSID 및 상기 SSID 패스워드는 '\0'으로 끝나게 되고 룩업 테이블 또는 사전(dictionary)에 기반을 두고 암호화되며, 상응하는 수신 기기는 동일한 룩업 테이블 또는 사전을 사용하여 상기 수신된 SSID 및 SSID 패스워드를 복호화할 수 있다.
도 15에 부가적으로 도시되어 있는 바와 같이, 송신 순서에 따라, 상기 마스터 기기는 상기 SSID 패스워드, 상기 난수 및 상기 SSID를 순차적으로 송신한다. 일부 실시 예들에서, 상기 수신 기기는 상기 식별 필드(1200)에서 타깃 AP의 SSID의 CRC8 값을 획득하고 이를 사전에 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC8 값들이 일치하는 경우에, 상기 SSID 정보가 확인되고 상기 수신 기기가 후속 SSID 정보를 처리할 필요가 없으며 그럼으로써 전송 시간을 줄이고 상응하는 전송 효율을 개선하게 된다.
상기 실시 예의 수신 기기는 Wi-Fi 무선 통신 프로토콜에 기반을 두고 이루어질 수 있으며, 소량의 데이터를 수신하는데 적합하고, SSID 및 패스워드를 수신하도록 한 것들의 인터넷 지능형 제어 칩에서 적용될 수 있다. 예를 들면, 이러한 수신 모드를 통해, SSID의 입력을 위해 키 또는 터치 스크린을 지니지 않고 지능형 스위치는 상기 SSID 및 패스워드를 간편하고 신속하게 획득할 수 있다. 위에서 언급한 데이터 패킷은 브로드캐스트 패킷일 수 있으며, 무선 액세스 포인트에 의한 포워딩을 통해 수신될 수 있다. 상기 무선 액세스 포인트는 대량의 전력을 지니며, 그럼으로써 무선 통신의 물리적 신호 공간의 커버리지 영역은 그의 포워딩에 의해 증가하게 될 수 있다. 상기 수신 기기는 하이브리드 모드로 공간에서 무선 신호들을 모니터링함으로써 단계 S380을 수행한다. 단계 S380은 데이터 링크 계층에서 데이터를 인터셉트하고 데이터 패킷을 획득하는 것이다.
송신하기 전에, 상기 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 패키징 및 암호화된다. 그러므로 상기 단계 S390은 길이 필드를 수정하기 위한 단계를 포함한다. 일부 실시 예들에서, 상기 데이터 패킷은 UDP 브로드캐스트 패킷으로서 송신된다. UDP 계층의 데이터 패킷은 먼저 IP 계층 및 데이터 링크 계층 내에 패키징되고, (WPA2, WPA 또는 WEP의 방식으로) 암호화된 다음에 송출된다. 이러한 방식으로 상기 마스터 기기에 의해 송신되는 UDP 브로드캐스트 패킷의 길이는 상기 수신 기기에 의해 최종적으로 모니터링되는 헤더 필드 "Length"의 값과 다르게 되며, 그럼으로써 수정이 필요하다. 여기서 알 수 있는 점은 상기 UDP 브로드캐스트 패킷의 길이가 상기 MTU의 제한 범위 내에 있는 동안(다시 말하면, UDP 패킷이 교차되지 않게 되는 동안), 상기 마스터 기기에 의해 송신된 UDP 브로드캐스트 패킷의 길이 및 상기 수신 기기에 의해 최종적으로 모니터링된 필드 "Length"의 값 간의 차이는 상수 값이다. 그리고 상기 상수 값은 상기 UDP 브로드캐스트 패킷의 길이 변화와 함께 변하지 않게 되고, 단지 상기 채널을 위한 Wi-Fi 암호화 방식에 연관될 뿐이다. 그러므로 상이한 암호화 방식 하에서의 차이 값이 찾아지게 되면, 상기 수신 기기는 헤더 필드 "Length"를 수정할 수 있다.
일련의 실험들을 통해, 도 17에 도시된 바와 같이 수정 테이블이 획득된다. AES는 Advanced Encryption Standard의 약어이며, 이는 고급 암호화 표준이다. TKIP는 Temporal Key Integrity Protocol의 약어이며, 이는 임시 키 무결성 프로토콜을 의미한다. RC4는 가변 키 길이를 갖는 스트림 암호화 알고리즘이다. Wi-Fi 암호화 방식이 WPA2(AES)인 경우에, 상기 수신 기기는 모니터링을 통해 링크 계층에서 802.2 SNAP 포맷의 UDP 브로드캐스트 패킷을 인터셉트하고, 필드 Length의 값은 152이며, 상기 수신 기기는 이를 수정하여 152-52=100인 것으로 상기 마스터 기기에 의해 송신된 내용을 획득한다. 그러므로 길이 필드를 수정하는 단계는 상기 길이 필드의 값에서 사전에 설정된 수정 값을 감산하는 것이다.
일부 실시 예들에서, 관심 있는 데이터의 수신이 복수 개의 데이터 패킷들에 의해 구성된 데이터 패킷 세트를 수신함을 통해 완료되는 경우에, 상기 단계 S390은 상기 복수 개의 데이터 패킷들을 복호화하여 상기 복수 개의 데이터 패킷들의 헤더 필드들 내에 암호화되는 관심 있는 데이터를 로드하기 위해 사용되는 데이터 필드 및 식별되기 위해 사용되는 제어 필드를 순차적으로 획득하는 단계를 포함한다. 상기 제어 필드들은 식별 필드 및 시퀀스 헤더 필드를 포함하며, 이 경우에 상기 식별 필드는 식별을 위해 사용되고, 상기 시퀀스 헤더 필드는 상기 체크 데이터의 획득된 체크 코드를 복호화하기 위해 사용된다. 상기 데이터 필드들은 시퀀스 필드를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 로드하기 위해 사용된다.
상기 시퀀스 헤더 필드는 시퀀스 순환 중복 체크 코드, 및 시퀀스 인덱스를 포함한다. 상기 시퀀스 필드는 시퀀스 바이트를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 획득하기 위해 사용된다. 데이터 패킷 세트를 수신한 후에, 시퀀스 순환 중복 체크 코드를 통해 체크가 수행된다. 상기 체크가 실패하는 경우에, 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
일부 실시 예들에서, 시퀀스 헤더 필드 및 시퀀스 필드는 하나의 시퀀스로 이루어지며, 상기 관심 있는 데이터는 복수 개의 시퀀스들에 의해 전송될 수 있다. 상기 시퀀스 헤더 필드는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 동일하지 않은 경우에, 상기 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
상기 관심 있는 데이터를 매번 반송하는 N 개의 시퀀스를 수신하기 전에, 프리픽스 필드가 수신되게 되며, 복호화를 위해 사용되는 SSID의 SSID CRC8이 획득될 수 있다. 상기 실시 예의 통신 방법은 또한 환경 서비스 세트 식별자를 획득하도록 환경에서 AP들을 스캐닝하는 단계를 포함한다. 상기 환경 서비스 세트 식별자는 상기 SSID CRC8을 가지고 체크되고, 성공하는 경우에, 상기 SSID의 수신을 포기한다. 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(AP)들이 스캐닝되고, 이 경우에 무선 환경에서의 모든 비-은닉성 AP들의 SSID, RSSI(수신 신호 강도 표시자; received signal strength indicator) 및 채널들이 획득된 비컨을 통해 얻어질 수 있다. 전송 절차 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID의 CRC8 값을 획득하고, 그리고 나서 이를 이전에 스캐닝함으로써 획득된 SSID의 CRC 값과 비교한다. 동일한 값이 발견되는 경우에, 상기 수신 기기는 이하의 수신 절차에서 상기 SSID 정보를 다시 수신할 필요가 없게 되고, 그럼으로써 전송 시간을 상당히 단축하게 된다.
위에서 설명한 실시 예의 통신 모델은 오류율이 0-5%인 단방향 채널로서 요약될 수 있으며, 전송될 정보의 최대 길이는 68바이트이다. 이 경우에, 오류 정정 알고리즘을 사용하지 않는 경우에, 제한된 시간에 정보를 송신하는 것을 완료하게 하는 것이 어렵다. 일부 실시 예들에서, 누적 오류 정정 알고리즘은 제한된 시간에 전송을 완료하게 하는데 사용된다. 상기 누적 오류 정정 알고리즘의 이론적 기초는 데이터를 송신하는 다수의 프로세스에서 동일 비트에 대한 데이터의 오류 확률이 매우 낮다는 점이다. 그러므로 데이터를 전송하는 다수의 결과가 누적 및 분석될 수 있다. 한 프로세스에서 오류 데이터의 확률이 큰 비트에 대하여는, 그의 상응하는 정확한 값이 다른 프로세스에서 발견될 수 있으며, 그럼으로써 제한된 시간 내에 정보를 송신하는 것을 완료하게 할 수 있다.
전송될 정보의 길이가 68바이트라고 가정하면, 최악의 경우에, 성공적인 정보 송신의 확률이 누적 오류 정정 알고리즘을 가지고 그리고 누적 오류 정정 알고리즘을 가지지 않고 계산되며, 송신 횟수 및 결과 간의 관계는 도 18에 도시되어 있다. 바이트를 전송함에 있어서의 오류율이 5%라고 가정하면, 68바이트의 데이터가 전송될 필요가 있는 경우에, 하나의 프로세스에서의 성공적인 전송의 확률은 (1-0.05)68=3%이다. 위에서 언급한 오류 정정 알고리즘이 사용되는 경우에, 하나의 프로세스에서의 성공적인 전송 확률은 또한 3%이며, n 개의 프로세스에서의 성공적인 전송 확률은 (1-0.05n)68이다.
상기 실시 예의 전송률은 마스터 기기에서의 UDP 브로드캐스트 패킷들의 송신 비율에 의존한다. 현재, 송신 브로드캐스트 패킷의 빈도가 1/5 ms이고, 그럼으로써 전송률은 200바이트/초이게 된다. 상기 식별 필드가 계산되지 않게 되는 경우에, 로드의 효율은 66.7%이다. 송신된 정보의 길이가 가장 긴 68바이트인 경우에, 최악의 경우에, 정보의 송신은 많아야 5회로 완료될 수 있으며, 많아야 상기 전송 시간이 68/66.7*5/200=2.549s이다.
다른 실시 예들에서, 상기 데이터 패킷은 또한 이더넷 802.2 포맷을 이루고 있을 수 있다. 도 19는 이더넷 802.2 포맷에서의 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 19의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드를 나타내고, 데이터 필드는 로드이며, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 포맷을 이루고 있을 수 있다. 도 20은 이더넷 802.3 포맷을 이루는 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 이더넷 802.3의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 20의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 데이터 필드는 로드이고, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 SNAP 포맷을 이루고 있을 수 있다. 도 9를 참조하면, 이더넷 802.3 SNAP 포맷을 이루는 데이터 패킷의 개략도는 이더넷 802.2 SNAP 포맷의 실시 예에 따른 데이터 패킷의 것과 동일한 것이고, 이 경우에 상기 헤더 필드는 이더넷 802.3 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다.
도 21은 일부 실시 예들에 따른 데이터 패킷의 헤더들을 통해 데이터를 전송하는 전형적인 데이터 통신 방법의 흐름도이다.
도 22는 일부 실시 예들에 따른 전자 기기(즉, 마스터 기기)의 전형적인 데이터 통신 시스템의 블록도이다. 본 실시 예는 공간에서 무선 신호를 모니터링하기 위해 하이브리드 모드를 이루고 있는 수신 기기와의 무선 통신을 수행하는데 특히 적용될 수 있으며, 구체적으로는 다른 기기들과 어떠한 실질적인 접속도 지니지 않는 수신 기기로 정보를 전달하도록 적용될 수 있다. 도 22에 도시된 바와 같이 본 실시 예의 정보 송신 장치(100)는 이하의 모듈들을 포함한다.
송신될 관심 있는 데이터를 획득하는데 사용되는 획득 모듈(120). 상기 관심 있는 데이터는 무선 통신을 위해 수신 기기들로 송신될 필요가 있는 사용자 데이터이지만, 전송 프로세스를 위한 시스템에 의해 자동으로 생성되는 전송 제어 데이터가 아니다.
예를 들면, 상기 관심 있는 데이터는 무선 액세스에서 필요한 서비스 세트 식별자(service set identifier; SSID) 및 패스워드, 및 지능형 에어콘의 조절 파라미터일 수 있다. 상기 관심 있는 데이터는 사용자 입력을 수신함으로써 획득될 수도 있으며, 네트워크를 통해 획득될 수도 있고 상기 정보 송신 장치(100)의 로컬 메모리로부터 획득될 수도 있다.
데이터 패킷을 생성하도록 상기 헤더 필드 내에서 상기 관심 있는 데이터를 부호화하는데 사용되는 부호화 모듈로서, 이 경우에 상기 헤더 필드가 직접 모니터링될 수 있게 되는 데이터 패킷 내의 필드인, 부호화 모듈(140). 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드는 무선 전송 절차에서 특정 내용을 노출시키기 위한 필드를 언급한다. 신호의 커버리지 내에 있는 한은, 무선 전송 기능을 지니는 어떠한 수신 기기라도 비록 상기 무선 통신의 패스워드를 지니지 않지만 상기 헤더 필드의 특정한 구체적인 내용을 획득할 수 있다.
여러 무선 통신 모드에서, 데이터 패킷 내의 일부 정보는 은닉될 필요가 없는 정보, 예를 들면 802.2 SNAP 포맷의 데이터 패킷 내의 길이 필드 등등이며, 이들은 직접 노출된다. 상기 관심 있는 데이터는 일반 텍스트로 전송될 수도 있고 추가로 암호화하여 전송될 수도 있으며, 상기 암호화 채널을 위한 패스워드는 상기 관심 있는 데이터를 암호화하기 위한 패스워드와는 다른 것이다. 상기 관심 있는 데이터가 암호화되는 경우에, 상기 수신 기기는 상응하는 복호화를 수행할 수 있으며, 상기 관심 있는 데이터의 내용은 상기 암호화 채널로부터의 영향 없이 직접 획득될 수 있다.
상기 데이터 패킷을 송신하는데 사용되는 송신 모듈(160). 특히, 상기 데이터 패킷은 예를 들면 데이터 패킷이 생성된 후에 무선 통신의 요건에 따라 주어진 주파수, 전력 등등을 사용하여 송신된다. 데이터 패킷을 송신하기 위한 채널이 암호화되는 경우에, 상기 데이터 패킷은 암호화 채널을 통해 송신된다.
위에서 언급한 정보 송신 장치(100)에서, 상기 내용이 직접 모니터링되게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화 및 송출되어 상기 수신 기기에 의해 수신된다. 정보 송신 장치(100)의 경우에, 상기 관심 있는 데이터를 가지고 부호화되는 헤더 필드의 내용이 직접 모니터링될 수 있기 때문에, 상기 관심 있는 데이터는 비록 상기 데이터 패킷 내의 다른 필드들의 내용들이 암호화됨으로써 알려지지 않게 될 수 있더라도 획득될 수 있고, 그럼으로써 수신 기기로 정보를 송신하고 상기 수신 기기에 의해 상기 정보를 수신 및 획득하도록 하는 목적을 실현할 수 있게 된다. 상기 수신 기기는 환경과의 접속을 확립하는 사전 구성의 필요 없이 상기 관심 있는 데이터를 수신할 수 있다.
신호 반송을 위해, Wi-Fi 무선 신호가 정보 전송을 위해 채택될 수 있다. 바람직하게는, 1 내지 14채널 모두가 지원을 위해 사용될 수 있다. 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화된다. 상기 수신 기기는 공간에서 무선 신호를 모니터링하도록 하이브리드 모드를 이루고 있을 수 있고, 그럼으로써 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드를 모니터링하고, 상기 헤더 필드를 복호화함으로써 상기 관심 있는 데이터를 획득하는 것을 허용한다. 상기 정보 송신 장치(100)는 바람직하게는 소수 데이터(minor data)의 전송에 적합하며, 이는 지능형 기기들 상의 것들의 인터넷 지능형 제어 칩들에 서비스 세트 식별자들 및 패스워드들을 송신하도록 무선 송신 기능을 지니는 모바일폰들 및 태블릿 컴퓨터들과 같은 무선 단말기들에 적용될 수 있다. 송신 모듈(160)에서, 상기 데이터 패킷은 무선 액세스 포인트를 통해 수신 기기로 포워드되는 브로드캐스트 패킷일 수 있다. 상기 무선 액세스 포인트는 대량 전력을 지니고, 그럼으로써 물리적 무선 통신 공간의 커버리지 영역은 상기 무선 액세스 포인트의 포워딩에 의해 증가될 수 있게 한다.
일부 실시 예들에서, 상기 헤더 필드가 정규 애플리케이션에 의해 직접 제어될 수 있게 되는 필드이다. 모바일 단말기의 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 매우 높은 레벨의 제어 권한은 상기 내용이 직접 모니터링될 수 있게 되는 필드에 대한 제어에 대해 필요하고, 그럼으로써 부호화를 위한 그러한 애플리케이션은 그러한 제어를 이루기란 어렵다. 정규 애플리케이션에 의해 직접 제어될 수 있게 되는 필드가 상기 헤더 필드로서 선택되는 경우에, 매우 높은 레벨의 제어 권한이 상기 실시 예의 애플리케이션을 수행하는데 필요하지 않으며, 이는 사용하기에 간편할 뿐만아니라 시스템의 보안을 유지한다. 일부 실시 예들에서, 상기 데이터 패킷이 802.2 SNAP의 포맷을 이루고 있을 수 있고, 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다. 802.11은 IEEE에 의해 설정된 무선 LAN 프로토콜이며, 이를 가지고 IP 패킷이 802.2의 논리 링크 제어 패키징에 의해 반송되고, 결과적으로는 무선 네트워크 데이터가 802.2 SNAP 포맷으로 수신될 수 있다. Wi-Fi 칩의 하이브리드 모드가 허용되는 경우에, 도 9에 도시된 바와 같은 데이터 패킷은 공간에서 상기 무선 신호를 모니터링하고 802.2 SNAP 포맷에 따라 상기 데이터 링크 계층으로부터 상기 데이터를 인터셉트함으로써 획득될 수 있다.
도 9의 헤더 필드 "길이(Length)"는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드(논리 링크 제어; Logical Link Control)를 나타내고, 필드 SNAP는 3바이트의 벤더 코드 및 2바이트의 프로토콜 타입 식별 코드를 포함한다. DATA 영역(데이터 영역)은 로드(load)이며, 이는 암호 채널에 대해 암호 텍스트이고, 수신 기기는 상기 암호 채널의 패스워드를 획득하기 전에 상기 데이터 영역의 특정 내용을 알 수 없다. 필드 FCS는 프레임 체크 시퀀스를 나타낸다. 상기 무선 신호의 모니터, 즉 상기 수신 기기에 대하여, 필드들 DA, SA, Length, LLC, SNAP, FCS는 직접 모니터링될 수 있게 되는 무선 채널의 암호에 상관없이 항상 노출된다. 그러나 상기 실시 예의 방법을 수행하는 마스터 기기에 대해, 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어는 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 다시 말하면 마스터 기기에서의 부호화를 위한 애플리케이션이 일반적으로 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어를 이루기 어렵기 때문에 매우 높은 레벨의 제어 권한을 필요로 한다.
그러므로 상기 내용이 여러 소프트웨어 애플리케이션에 의해 직접 모니터링 및 제어될 수 있게 되는 헤더 필드 "Length"를 사용함으로써, 상기 마스터 기기에서의 부호화를 위한 애플리케이션은 필요에 따라 상기 데이터 패킷의 헤더 필드 "Length"에서 데이터를 송신하는 간편한 제어를 하게 된다.
일부 실시 예들에서, 상기 데이터 패킷은 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 기반을 두고 이루어진다. 상기 마스터 기기들은 UDP 브로드캐스트 패킷을 사용하여 관심 있는 데이터를 반송하며, 구체적으로는 각각의 패킷의 개별 헤더 필드 "length"가 상기 관심 있는 데이터와 함께 부호화되게 되는 일련의 UDP 브로드캐스트 패킷들을 송신한다. 상기 수신 기기는 하이브리드 모드로 공간에서 상기 무선 신호를 모니터링하고, 802.2 SNAP 포맷으로 구성되는 데이터 패킷들을 인터셉트하며, 상기 인터셉트된 데이터 패킷들의 부호화된 헤더 필드들 "Length"에서 데이터를 획득하고, 그리고 상기 부호화된 헤더 필드들 내에서 획득된 데이터를 복호화함으로써 상기 관심 있는 데이터(다시 말하면, 관심 있는 데이터)를 회수한다. 일부 실시 예들에서, 상기 데이터 패킷은 전송 제어 프로토콜(transmission control protocol; TCP)을 준수하는 데이터 포맷을 지닌다.
일부 실시 예들에서, 최대 전송 단위(maximum transmission units; MTU)에 대한 제한 때문에, 상기 헤더 필드 "Length"에서 관심 있는 데이터를 반송하는데 사용될 수 있는 최대 비트 개수는 10이다. 그러나 패킷 손실률은 대개 UDP 패킷의 길이에 비례한다. 상기 헤더 필드 "Length"가 상기 관심 있는 데이터를 반송하기 위해 9비트보다 많은 비트를 제공하거나 상응하는 UDP 패킷이 256비트보다 많은 비트를 지니는 경우에, 상기 UDP 브로드캐스트 패킷의 패킷 손실률은 실질적으로 증가하며, 서로 다른 패킷들 간의 순서 손실이 종종 일어난다. 그러므로 일부 바람직한 실시 예들에서, 비트 개수는 관심 있는 데이터를 반송하기 위해 사용되는 일부 헤더 필드들에 대해 8로 제한되고, 상기 UDP 브로드캐스트 패킷은 256비트보다 많지 않은 비트의 길이를 지니도록 제어된다. 이러한 상황들에서, 각각의 UDP 데이터 패킷은 상기 수신 기기에 의해 간편하게 판독 가능한 1바이트의 관심 있는 데이터를 포함한다. 각각의 데이터 패킷 내에서의 그러한 제한된 양의 데이터를 고려해 볼 때, 상기 관심 있는 데이터는 다수의 UDP 데이터 패킷이 상기 마스터 기기로부터 상기 수신 기기로 완전히 전송되는 것을 필요로 할 수 있다.
각각의 데이터 패킷이 더 적은 데이터를 반송할 수 있기 때문에, 일부 실시 예들에서, 전체 관심 있는 데이터는 복수 개의 데이터 패킷들로 이루어진 데이터 패킷 세트를 통해 송신된다. 특히, 데이터 패킷을 생성하도록 상기 헤더 필드 내에서 상기 관심 있는 데이터를 부호화하는 단계(이 경우에 상기 헤더 필드가 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 필드임)는 이하의 단계들을 부가적으로 포함한다:
·관심 있는 데이터에 따라 상기 관심 있는 데이터를 로드하기 위한 데이터 필드 및 식별되기 위한 제어 필드를 생성하는 단계;
·복수 개의 데이터 패킷들을 생성하도록 복수 개의 데이터 패킷들의 헤더 필드들 내에 상기 데이터 필드 및 상기 제어 필드를 순차적으로 부호화하는 단계.
상기 데이터 필드 및 제어 필드를 사용하여, 단일 데이터 패킷이 제한된 관심 있는 데이터양을 지니는 경우에, 단일 데이터 패킷의 것보다 많은 양을 갖는 데이터 전송이 데이터 패킷 세트에 의해 실현될 수 있다.
도 11을 참조하면, 도 11은 상기 정보 송신 장치(100)에 의해 송신되는 정보의 링크 계층 데이터 구조의 개략도이다. 상기 링크 계층 데이터 구조는 2개의 클래스, 즉 제어 필드(다시 말하면, 사양(specification)들을 제어하기 위한 필드) 및 데이터 필드(데이터를 반송하기 위한 필드)로 분할된다. 일부 실시 예들에서, 상기 제어 필드는 매직 코드 필드(다시 말하면, 인식(recognition) 필드)(1200), 프리픽스(prefix) 코드 필드(다시 말하면, 프리픽스 필드)(1104), 및 시퀀스 헤더 필드(다시 말하면, 시퀀스 헤더 필드)(1300)를 포함한다. 상기 제어 필드들에서, 식별(인식) 필드(1200)는 가까운 장래에 있을 관심 있는 데이터를 식별하기 위해 사용되고, 상기 프리픽스 필드(1104)는 시퀀스 헤더 필드(1300)보다 앞서 있는 것 외에는 상기 식별 필드와 유사한 기능을 지니며 복수 개의 데이터 시퀀스의 정규 시작을 나타낸다.
상기 데이터 필드(1400)는 상기 체크 데이터의 체크 코드를 로드하기 위해 사용되는 시퀀스 헤더 필드를 포함한다. 상기 데이터 필드(1400)는 상기 관심 있는 데이터를 로드하기 위해 사용되는 시퀀스 필드를 부가적으로 포함한다. 상기 관심 있는 데이터를 반송하기 위해 사용되는 데이터 패킷의 각각의 헤더 필드가 바이트(또는 8비트)를 포함하는 경우에, 상기 제어 필드 및 상기 데이터 필드는 한 바이트의 7번째 비트(때로는 제어 비트라 지칭함)에 의해 구별된다. 구체적으로는, 일 예에서, 7번째 비트 "1"은 데이터 필드를 나타내고, "0"은 제어 필드를 나타낸다. 다른 실시 예들에서, 다른 어떤 비트라도 상기 제어 필드 및 상기 데이터 필드를 식별하기 위한 제어 비트용으로 사용될 수 있고, 이 경우에 상기 제어 필드 및 상기 데이터 필드의 바이트 내의 제어 비트의 코드들이 구별된다. 상기 비트는 0번째 비트 내지 7번째 비트 중 어느 하나일 수 있다. 일부 실시 예들에서, 0은 상기 데이터 필드들을 나타내고, 1은 상기 제어 필드들을 나타낸다. 상기 매직 코드 필드 및 시퀀스 헤더 필드는 6번째 비트에 의해 구별되고, 1은 상기 시퀀스 헤더 필드를 나타내며 0은 상기 식별 필드를 나타낸다. 다른 실시 예들에서, 다른 비트(들)는 또한 상기 매직 코드 필드를 식별하기 위해 사용될 수 있다. 일부 실시 예들에서, 0은 상기 시퀀스 헤더 필드를 나타내고, 1은 상기 식별 필드를 나타낸다.
도 12를 참조하면, 식별 필드(1200)는 매직 코드들(다시 말하면, 식별 바이트)을 포함하며, 각각의 매직 코드 또는 식별 바이트는 상기 매직 코드를 식별하기 위한 매직(즉, 식별 코드)(1202) 및 정보를 로드하기 위한 정보(즉, 정보 코드)(1204)를 포함한다. 일부 실시 예들에서, 상기 식별 필드(1200)는 4바이트를 포함하며, 각각의 바이트의 상위 4비트는 상기 식별 코드(1202)를 포함하고 하위 4비트는 상기 정보 코드(1204)를 포함한다. 하나의 특정 예에서, 상기 정보 코드(1202)의 첫 번째 2바이트는 송신될 데이터의 길이의 상위 4비트 및 하위 4비트를 각각 반송하며, 상기 정보 코드(1202)의 마지막 2바이트는 송신될 데이터의 CRC8(순환 중복 체크 코드: circular redundancy check code) 값의 상위 4비트 및 하위 4비트를 각각 반송한다. 데이터 통신 방법(80)이 Wi-Fi 통신 네트워크의 SSID 및 SSID 패스워드를 전송하는데 사용될 경우에, 상기 식별 필드(1200) 내의 SSID의 CRC8 코드는 전체 전송 절차를 개선한다. 일부 구현 예들에서, 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(access point; AP)들이 무선 환경에서 모든 비-은닉성 AP들의 SSID, RSSI(received signal strength indicator: 수신 신호 강도 표시자) 및 채널들을 획득하도록 스캐닝 된다. 후속 데이터 통신 프로세스 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID에 연관된 CRC8 값을 획득하고, 그리고 나서 이를 사전 스캔으로부터 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC 값이 매치(match) 되는 경우에, 상기 수신 기기는 SSID 정보를 다시 수신할 필요가 없게 되고 그럼으로써 전송 시간을 단축하게 된다.
일부 실시 예들에서, 사전에 결정된 바이트 개수(예컨대, 20)는 식별 필드들(1200) 용으로 송신된다. 상기 수신 기기가 있는 무선 통신 네트워크 환경이 복잡해질 수 있다. 구체적으로 기술하면, 동일 공간 내에 다수의 AP가 존재하게 되고, 이러한 AP들이 동일하거나 다른 채널들을 통해 분포될 수 있다. 그러므로 초기에 상기 수신 기기는 1 내지 14채널들 중 어느 채널이 정보를 송신하는데 상기 마스터 기기에 의해 사용되는지 그리고 특정 채널 상의 다수의 기기 중 어느 하나의 기기가 상기 마스터 기기에 연관되는지를 인식하지 못한다. 이러한 상황에서, 상기 수신 기기는 서로 다른 채널들로부터 서로 다른 기기들에 의해 제공되는 거대한 양의 데이터를 수신할 수 있게 된다.
상기 마스터 기기에 의해 사용되는 채널 및 거대한 양의 데이터로부터의 상기 마스터 기기의 물리적 어드레스(즉, MAC 어드레스)를 찾아내기 위해, 상기 마스터 기기는 다른 정보를 송신하기 전에 식별 필드들(1200)로서 사전에 결정된 바이트 개수를 송신할 수 있다. 이러한 식별 필드들(1200) 각각은 4바이트를 포함하며, 상기 마스터 기기를 식별하는데 사용된다. 그러므로 상기 수신 기기는 상기 마스터 기기의 채널 및 MAC 어드레스를 알고 상기 마스터 기기의 채널 및 MAC 어드레스에 초점을 맞추고, 이들을 후속 정보 모니터링 절차에서 거대한 양의 데이터를 효율적으로 필터링하는데 사용할 수 있다.
도 13을 참조하면, 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 시퀀스 CRC8(즉, 시퀀스 순환 중복 체크 코드)(1302) 및 시퀀스 인덱스(즉, 시퀀스 인덱스)(1304)를 포함한다. 각각의 데이터 시퀀스 필드(1102)는 또한 상기 관심 있는 데이터를 로드하기 위해 사용되는 개별 데이터 필드 내에 다수의 바이트를 포함한다. 시퀀스 헤더 필드(1300) 및 시퀀스 데이터 필드(1400)는 데이터 시퀀스 필드(1102)를 형성하고, 상기 관심 있는 데이터는 복수 개의 데이터 시퀀스 필드들(1102)에 의해 반송될 수 있다. 일부 실시 예들에서, 송신될 관심 있는 데이터는 4바이트의 입자 크기(grain size)로 분할되고(0으로 패딩(padding)하는 것은 상기 관심 있는 데이터의 길이가 정확하게 분할될 수 없는 경우에 필요하게 됨), 각각의 4 시퀀스 바이트는 데이터 시퀀스 필드(1102)로 로드되고, 상기 데이터는 데이터 시퀀스 단위로 송신된다. 더군다나, 일부 실시 예들에서, 상기 관심 있는 데이터는 오류 정정을 위해 사전에 결정된 시간 동안 송신된다. 상기 관심 있는 데이터가 처음으로 송신된 후에, 다시 말하면 상기 관심 있는 데이터를 포함하는 N 개의 시퀀스가 처음으로 송신된 후에, 그리고 다시 N 개의 시퀀스를 송신하기 시작하기 전에, 프리픽스 필드(1104)가 N 개의 시퀀스의 시작을 나타내기 위해 한 번 송신된다. 다시 말하면, 반복해서 송신할 경우에, 상기 데이터 패킷이 프리픽스 필드(1104), 시퀀스 헤더 필드(1300) 및 데이터 필드(1400)를 포함하며, 이 경우에 상기 식별 필드(1200)는 옵션이다. 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스(1304)의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 상기 CRC 값이 사전에 스캐닝된 CRC 값과 일치하지 않는 경우에, 상기 데이터 시퀀스는 오류들을 가지고 수신되고 그럼으로써 폐기된다.
도 14를 참조하면, 일부 실시 예들에서, 상기 시퀀스 데이터 필드(1400)는 4바이트를 포함하고, 각각의 바이트의 7번째 비트는 제어 비트이고 1로서 고정되며, 나머지 7개의 비트는 관심 있는 데이터를 로드하기 위해 사용된다. 일부 실시 예들에서, 상기 관심 있는 데이터는 SSID, SSID 패스워드, 및 상기 관심 있는 데이터의 수신을 확인하기 위해 사용되는 난수(random number) 중의 하나 이상을 포함한다. 일부 구현 예들에서, AP가 접속된 후에, 상기 마스터 기기는 난수를 포함하는 UDP 브로드캐스트 패킷을 즉시 송신한다. 상기 수신 기기는 상기 난수를 상기 마스터 기기로 복귀시키는 것으로 예정되어 있고 상기 마스터 기기가 어떠한 오류도 없이 상기 난수를 수신한 경우에 상기 수신 기기가 상기 관심 있는 데이터를 올바르게 수신한 것으로 결정될 수 있다. 상기 난수의 크기는 1바이트이며, 그에 따라 상기 난수의 값이 127보다 작다. 일부 실시 예들에서, 상기 SSID 및 상기 SSID 패스워드는 '\0'으로 끝나게 되고 룩업 테이블 또는 사전(dictionary)에 기반을 두고 암호화되며, 상응하는 수신 기기는 동일한 룩업 테이블 또는 사전을 사용하여 상기 수신된 SSID 및 SSID 패스워드를 복호화할 수 있다.
도 15에 부가적으로 도시되어 있는 바와 같이, 송신 순서에 따라, 상기 마스터 기기는 상기 SSID 패스워드, 상기 난수 및 상기 SSID를 순차적으로 송신한다. 일부 실시 예들에서, 상기 수신 기기는 상기 식별 필드(1200)에서 타깃 AP의 SSID의 CRC8 값을 획득하고 이를 사전에 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC8 값들이 일치하는 경우에, 상기 SSID 정보가 확인되고 상기 수신 기기가 후속 SSID 정보를 처리할 필요가 없으며 그럼으로써 전송 시간을 줄이고 상응하는 전송 효율을 개선하게 된다.
도 23은 일부 실시 예들에 따른 전자 기기(즉, 수신 기기)에서의 전형적인 데이터 처리 시스템의 블록도이다. 본 실시 예의 정보 수신 장치는 하이브리드 모드로 공간에서 무선 신호를 모니터링하기 위해 적용될 수 있다. 상기 정보 수신 장치(200)는 무선 송신 기능을 지니는 모바일폰들 및 태블릿 컴퓨터들과 같은 무선 단말기들과의 무선 통신을 수행할 수 있으며, 구체적으로는 수신 기기가 다른 기기들과 어떠한 실질적인 접속도 지니지 않는 경우에 정보를 수신하는데 적용될 수 있다. 도 23에 도시된 바와 같이 본 실시 예의 정보 수신 장치(200)는 이하의 모듈들을 포함한다.
상기 헤더 필드 내에 상기 관심 있는 데이터를 부호화함으로써 생성되는 데이터 패킷들을 수신하는데 사용되는 수신 모듈로서, 상기 헤더 필드는 직접 모니터링될 수 있는 데이터 패킷 내의 필드인, 수신 모듈(220). 상기 수신 모듈(220)은 송신 모듈(160)에 대응하는 것이므로, 반복해서 설명되지 않을 것이다. 상기 암호화 채널을 통해 전송되는 데이터 패킷을 위해, 상기 데이터 패킷은 상기 암호화 채널을 통해 획득된다.
상기 관심 있는 데이터를 획득하도록 상기 헤더 필드를 복호화하데 사용되는 복호화 모듈(240). 상기 관심 있는 데이터는 상기 부호화에 상응하는 포맷에 따른 복호화를 통해 달성될 수 있다. 상기 데이터 패킷의 데이터 영역이 암호화되고 그럼으로써 특정 내용이 알려지지 않게 될 수 있는, 암호화 채널을 통해 전송되는 데이터 패킷에 대해, 상기 헤더 필드는 상기 내용이 상기 암호화 채널의 영향 없이 직접 모니터링될 수 있게 되는 데이터 패킷의 필드이고, 그럼으로써 상기 헤더 필드의 내용이 복호화를 위해 획득될 수 있게 된다.
상기 정보 수신 장치(200)는 Wi-Fi 무선 통신 프로토콜에 기반을 두고 이루어질 수 있으며, 소량의 데이터를 전달하는데 적합하고, SSID 및 패스워드를 수신하도록 한 것들의 인터넷 지능형 제어 칩에서 적용될 수 있다. 예를 들어, 이러한 수신 모드를 통해, SSID의 입력을 위해 키 또는 터치 스크린을 지니지 않고 지능형 스위치는 상기 SSID 및 패스워드를 간편하고 신속하게 획득할 수 있다. 위에서 언급한 데이터 패킷은 브로드캐스트 패킷일 수 있으며, 무선 액세스 포인트에 의한 포워딩을 통해 수신될 수 있다. 상기 무선 액세스 포인트는 대량의 전력을 지니며, 그럼으로써 무선 통신의 물리적 신호 공간의 커버리지 영역이 무선 액세스 포인트에 의한 포워딩에 의해 증가하게 될 수 있다. 상기 수신 모듈(220)은 하이브리드 모드로 공간에서 무선 신호들을 모니터하고, 데이터 링크 계층에서 데이터를 인터셉트하고 데이터 패킷을 획득한다.
상기 데이터 패킷 및 상기 헤더 필드에 대해, 도 8 - 15에 도시된 실시 예들을 언급하기로 한다. 상기 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 마스터 기기에 의해 패키징 및 암호화된다. 그러므로 상기 단계 S240은 헤더 필드 "Length"를 수정하기 위한 단계를 포함한다. 일부 실시 예들에서, 상기 데이터 패킷은 UDP 계층을 통해 UDP 브로드캐스트 패킷으로서 송신되고, 상기 UDP 계층의 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 패키징되지만, 상기 마스터 기기에 의해 WPA2, WPA 또는 WEP에 기반을 두고 암호화된다. 패키징 및 암호화의 필요성 때문에, 여분의 바이트들이 각각의 데이터 패킷에 추가된다. 따라서, 상기 마스터 기기에 의해 송신되는 UDP 브로드캐스트 패킷의 길이는 상기 수신 기기에 의해 최종적으로 모니터링되는 헤더 필드 "Length"의 값과 다르게 되며, 그럼으로써 수정이 필요하다. 여기서 알 수 있는 점은 상기 UDP 브로드캐스트 패킷의 길이가 상기 MTU의 제한 범위 내에 있는 동안(다시 말하면, UDP 패킷이 교차되지 않게 되는 동안), 상기 마스터 기기에 의해 송신된 UDP 브로드캐스트 패킷의 길이 및 상기 수신 기기에 의해 최종적으로 모니터링된 헤더 필드 "Length"의 값 간의 차이는 상수 값이다. 그리고 상기 상수 값은 상기 UDP 브로드캐스트 패킷의 길이 변화와 함께 변하지 않게 되고, 오히려 단지 상기 데이터 패킷을 암호화하는데 사용되는 Wi-Fi 암호화 방법에 연관될 뿐이다. 그러므로 상이한 암호화 방식 하에서의 차이 값이 알려지게 되면, 상기 수신 기기는 헤더 필드 "Length"를 정확하게 추적할 수 있다.
일련의 실험들을 통해, 도 17에 도시된 바와 같이 수정 테이블이 획득된다. AES는 Advanced Encryption Standard의 약어이며, 이는 고급 암호화 표준이다. TKIP는 Temporal Key Integrity Protocol의 약어이며, 이는 임시 키 무결성 프로토콜을 의미한다. RC4는 가변 키 길이를 갖는 스트림 암호화 알고리즘이다. Wi-Fi 암호화 방식이 WPA2(AES)인 경우에, 상기 수신 기기는 모니터링을 통해 링크 계층에서 802.2 SNAP 포맷의 UDP 브로드캐스트 패킷을 인터셉트하고, 필드 Length의 값은 152이며, 상기 정보 수신 장치(200)는 이를 수정하여 152-52=100인 것으로 상기 마스터 기기에 의해 송신된 내용을 획득한다. 그러므로 길이 필드를 수정하는 단계는 상기 길이 필드의 값에서 사전에 설정된 수정 값을 감산하는 것이다.
일부 실시 예들에서, 관심 있는 데이터의 수신이 복수 개의 데이터 패킷들에 의해 구성된 데이터 패킷 세트를 수신함을 통해 완료된다. 복호화 모듈(240)은 상기 복수 개의 데이터 패킷들을 복호화하여 상기 복수 개의 데이터 패킷들의 헤더 필드들 내에 순차적으로 암호화되는, 관심 있는 데이터를 로드하기 위해 사용되는 데이터 필드 및 식별되기 위해 사용되는 제어 필드를 획득한다. 상기 제어 필드들은 식별 필드 및 시퀀스 헤더 필드를 포함하며, 이 경우에 상기 식별 필드는 식별을 위해 사용되고, 상기 시퀀스 헤더 필드는 상기 체크 데이터의 획득된 체크 코드를 복호화하기 위해 사용된다. 상기 데이터 필드들은 시퀀스 필드를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 로드하기 위해 사용된다.
상기 시퀀스 헤더 필드는 시퀀스 순환 중복 체크 코드, 및 시퀀스 인덱스를 포함한다. 상기 시퀀스 필드는 시퀀스 바이트를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 획득하기 위해 사용된다. 데이터 패킷 세트를 수신한 후에, 시퀀스 순환 중복 체크 코드를 통해 체크가 수행된다. 상기 체크가 실패하는 경우에, 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
일부 실시 예들에서, 시퀀스 헤더 필드 및 시퀀스 필드는 하나의 시퀀스로 이루어지며, 상기 관심 있는 데이터는 복수 개의 시퀀스들에 의해 전송될 수 있다. 상기 시퀀스 헤더 필드는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 동일하지 않은 경우에, 상기 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
상기 관심 있는 데이터를 매번 반송하는 N 개의 시퀀스를 수신하기 전에, 프리픽스 필드가 수신되게 되며, 복호화를 위해 사용되는 SSID의 SSID CRC8이 획득될 수 있다. 수신 모듈(220)은 또한 환경 서비스 세트 식별자를 획득하도록 환경에서 AP들을 스캐닝하기 위해 사용된다. 상기 환경 서비스 세트 식별자는 상기 SSID CRC8을 가지고 체크되고, 성공하는 경우에, 상기 SSID의 수신을 포기한다. 상기 정보 수신 장치(200)가 데이터를 수신하기 전에, 상기 AP들이 스캐닝되고, 이 경우에 무선 환경에서의 모든 비-은닉성 AP들의 SSID, RSSI(수신 신호 강도 표시자; received signal strength indicator) 및 채널들이 획득된 비컨을 통해 얻어질 수 있다. 전송 절차 동안, 상기 정보 수신 장치(200)는 먼저 타깃 AP의 SSID의 CRC8 값을 획득하고, 그리고 나서 이를 이전에 스캐닝함으로써 획득된 SSID의 CRC 값과 비교한다. 동일한 값이 발견되는 경우에, 상기 정보 수신 장치(200)는 이하의 수신 절차에서 상기 SSID 정보를 다시 수신할 필요가 없게 되고, 그럼으로써 전송 시간을 상당히 단축하게 된다.
위에서 설명한 실시 예의 통신 모델은 오류율이 0-5%인 단방향 채널로서 요약될 수 있으며, 전송될 정보의 최대 길이는 68바이트이다. 이 경우에, 오류 정정 알고리즘을 사용하지 않는 경우에, 제한된 시간에 정보를 송신하는 것을 완료하게 하는 것이 어렵다. 일부 실시 예들에서, 누적 오류 정정 알고리즘은 제한된 시간에 전송을 완료하게 하는데 사용된다. 상기 누적 오류 정정 알고리즘의 이론적 기초는 데이터를 송신하는 다수의 프로세스에서 동일 비트에 대한 데이터의 오류 확률이 매우 낮다는 점이다. 그러므로 데이터를 전송하는 다수의 결과가 누적 및 분석될 수 있다. 한 프로세스에서 오류 데이터의 확률이 큰 비트에 대하여는, 그의 상응하는 정확한 값이 다른 프로세스에서 발견될 수 있으며, 그럼으로써 제한된 시간 내에 정보를 송신하는 것을 완료하게 할 수 있다.
전송될 정보의 길이가 68바이트라고 가정하면, 최악의 경우에, 성공적인 정보 송신 정보의 확률이 누적 오류 정정 알고리즘을 가지고 그리고 누적 오류 정정 알고리즘을 가지지 않고 계산되며, 송신 횟수 및 결과 간의 관계는 도 18에 도시되어 있다. 바이트를 전송함에 있어서의 오류율이 5%라고 가정하면, 68바이트의 데이터가 전송될 필요가 있는 경우에, 하나의 프로세스에서의 성공적인 전송의 확률은 (1-0.05)68=3%이다. 위에서 언급한 오류 정정 알고리즘이 사용되는 경우에, 하나의 프로세스에서의 성공적인 전송 확률은 또한 3%이며, n 개의 프로세스에서의 성공적인 전송 확률은 (1-0.05n)68이다.
상기 실시 예의 전송률은 마스터 기기에서의 UDP 브로드캐스트 패킷들의 송신 비율에 의존한다. 현재, 송신 브로드캐스트 패킷의 빈도가 1/5 ms이고, 그럼으로써 전송률은 200바이트/초이게 된다. 상기 식별 필드가 계산되지 않게 되는 경우에, 로드의 효율은 66.7%이다. 송신된 정보의 길이가 가장 긴 68바이트인 경우에, 최악의 경우에, 정보의 송신은 많아야 5회로 완료될 수 있으며, 많아야 상기 전송 시간이 68/66.7*5/200=2.549s이다.
다른 한 실시 예에서, 상기 데이터 패킷은 또한 이더넷 802.2 포맷을 이루고 있을 수 있다. 도 19는 이더넷 802.2 포맷에서의 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 19의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드를 나타내고, 데이터 필드는 로드이며, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 포맷을 이루고 있을 수 있다. 도 20은 이더넷 802.3 포맷을 이루는 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 이더넷 802.3의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 20의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 데이터 필드는 로드이고, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 SNAP 포맷을 이루고 있을 수 있다. 도 9를 참조하면, 이더넷 802.3 SNAP 포맷을 이루는 데이터 패킷의 개략도는 이더넷 802.2 SNAP 포맷의 실시 예에 따른 데이터 패킷의 것과 동일한 것이고, 이 경우에 상기 헤더 필드는 이더넷 802.3 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다.
도 24는 일부 실시 예들에 따른 다른 한 전형적인 데이터 통신 및 처리 시스템의 블록도이다. 본 실시 예는 무선 신호들을 송신하는 것이 가능한 단말기들(예컨대, 모바일폰들, 태블릿 컴퓨터들 등등)과의 무선 통신을 수행하도록 공간에서 무선 신호를 모니터링하도록 하이브리드 모드로 수신 기기들에 적용될 수 있다. 구체적으로는 상기 수신 기기가 다른 기기들과 어떠한 실질적인 접속도 지니지 않는 경우에 정보를 수신하도록 적용될 수 있다.
도 24에 도시된 바와 같이 본 실시 예의 통신 시스템은 이하의 모듈들을 포함한다.
송신될 관심 있는 데이터를 획득하는데 사용되는 획득 모듈(120). 상기 관심 있는 데이터는 무선 통신을 위해 수신 기기들로 송신될 필요가 있는 사용자 데이터이지만, 전송 프로세스를 위한 시스템에 의해 자동으로 생성되는 전송 제어 데이터가 아니다.
예를 들면, 상기 관심 있는 데이터는 무선 액세스에서 필요한 서비스 세트 식별자(service set identifier; SSID) 및 패스워드, 및 지능형 에어콘의 조절 파라미터일 수 있다. 상기 관심 있는 데이터는 사용자 입력을 수신함으로써 획득될 수도 있으며, 네트워크를 통해 획득될 수도 있고 상기 마스터 기기의 로컬 메모리로부터 획득될 수도 있다.
데이터 패킷을 생성하도록 상기 헤더 필드 내에서 상기 관심 있는 데이터를 부호화하는데 사용되는 부호화 모듈로서, 이 경우에 상기 헤더 필드가 직접 모니터링될 수 있게 되는 데이터 패킷 내의 필드인, 부호화 모듈(140). 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드는 무선 전송 절차에서 특정 내용을 노출시키기 위한 필드를 언급한다. 신호의 커버리지 내에 있는 한은, 무선 전송 기능을 지니는 어떠한 수신 기기라도 비록 상기 무선 통신의 패스워드를 지니지 않지만 상기 헤더 필드의 특정한 구체적인 내용을 획득할 수 있다.
여러 무선 통신 모드에서, 데이터 패킷 내의 일부 정보는 은닉될 필요가 없는 정보, 예를 들면 802.2 SNAP 포맷의 데이터 패킷 내의 길이 필드 등등이며, 이들은 직접 노출된다.
상기 데이터 패킷을 송신하는데 사용되는 송신 모듈(160). 특히, 상기 데이터 패킷은 예를 들면 데이터 패킷이 생성된 후에 무선 통신의 요건에 따라 주어진 주파수, 전력 등등을 사용하여 송신된다. 데이터 패킷을 송신하기 위한 채널이 암호화되는 경우에, 상기 데이터 패킷은 암호화 채널을 통해 송신된다.
데이터 패킷을 수신하는데 사용되는 수신 모듈(220). 이는 상기 송신 모듈(160)에 대응되는 것으로, 상기 송신 모듈(160)에 의해 송신된 데이터 패킷을 수신한다. 상기 암호화 채널을 통해 전송되는 데이터 패킷에 대해, 상기 데이터 패킷은 상기 암호화 채널을 통해 획득된다.
상기 관심 있는 데이터를 획득하도록 상기 헤더 필드를 복호화하는데 사용되는 복호화 모듈(240). 상기 관심 있는 데이터는 상기 부호화에 상응하는 포맷에 따라 복호화를 통해 획득될 수 있다. 상기 데이터 패킷의 데이터 영역이 암호화되고 그럼으로써 특정 내용이 알려지지 않게 될 수 있는 암호화 채널을 통해 전송되는 데이터 패킷에 대해, 상기 헤더 필드는 상기 내용이 상기 암호화 채널의 영향 없이 직접 모니터링될 수 있게 되는 데이터 패킷의 필드이고, 그럼으로써 상기 헤더 필드의 내용이 복호화를 위해 획득될 수 있게 된다.
위에서 언급한 통신 시스템에서, 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화 및 송출되어 상기 수신 기기에 의해 수신된다. 위에서 언급한 통신 시스템의 경우에, 상기 관심 있는 데이터를 가지고 부호화되는 헤더 필드의 내용이 직접 모니터링될 수 있기 때문에, 상기 관심 있는 데이터는 비록 상기 데이터 패킷 내의 다른 필드들의 내용들이 암호화됨으로써 알려지지 않게 될 수 있더라도 획득될 수 있고, 그럼으로써 수신 기기로 정보를 송신하고 상기 수신 기기에 의해 상기 정보를 수신 및 획득하도록 하는 목적을 실현할 수 있게 된다. 상기 수신 기기는 환경과의 접속을 확립하는 사전 구성의 필요 없이 상기 관심 있는 데이터를 수신할 수 있다.
신호 반송을 위해, Wi-Fi 무선 신호가 정보 전송을 위해 채택될 수 있다. 바람직하게는, 1 내지 14채널 모두가 지원을 위해 사용될 수 있다. 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 헤더 필드를 사용함으로써, 상기 관심 있는 데이터가 부호화된다. 상기 수신 기기는 공간에서 무선 신호를 모니터링하도록 하이브리드 모드를 이루고 있을 수 있고, 그럼으로써 상기 내용이 직접 모니터링될 수 있게 되는 헤더 필드를 모니터링하고, 상기 헤더 필드를 복호화함으로써 상기 관심 있는 데이터를 획득하는 것을 허용한다. 상기 실시 예의 통신 시스템은 바람직하게는 소수 데이터(minor data)의 전송에 적합하며, 이는 지능형 기기들 내의 것들의 인터넷 지능형 제어 칩들에 서비스 세트 식별자들 및 패스워드들을 송신하도록 무선 송신 기능을 지니는 모바일폰들 및 태블릿 컴퓨터들과 같은 무선 단말기들에 적용될 수 있다. 상기 송신 모듈(160)에 의해 송신되는 데이터 패킷은 무선 액세스 포인트를 통해 수신 기기로 포워드되는 브로드캐스트 패킷일 수 있다. 상기 무선 액세스 포인트는 대량 전력을 지니고, 그럼으로써 물리적 무선 통신 공간의 커버리지 영역은 상기 무선 액세스 포인트의 포워딩에 의해 증가될 수 있게 한다.
일부 실시 예들에서, 상기 헤더 필드가 정규 애플리케이션에 의해 직접 제어되는 필드이다. 모바일 단말기의 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 매우 높은 레벨의 제어 권한은 상기 내용이 직접 모니터링될 수 있게 되는 필드에 대한 제어에 대해 필요하고, 그럼으로써 부호화를 위한 그러한 애플리케이션은 그러한 제어를 이루기란 어렵다. 정규 애플리케이션에 의해 직접 제어될 수 있게 되는 필드가 상기 헤더 필드로서 선택되는 경우에, 매우 높은 레벨의 제어 권한이 상기 실시 예의 애플리케이션을 수행하는데 필요하지 않으며, 이는 사용하기에 간편할 뿐만아니라 시스템의 보안을 유지한다. 일부 실시 예들에서, 상기 데이터 패킷이 802.2 SNAP의 포맷을 이루고 있을 수 있고, 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다. 802.11은 IEEE에 의해 설정된 무선 LAN 프로토콜이며, 이를 가지고 IP 패킷이 802.2의 논리 링크 제어 패키징에 의해 반송되고, 결과적으로는 무선 네트워크 데이터가 802.2 SNAP 포맷으로 수신될 수 있다. Wi-Fi 칩의 하이브리드 모드가 허용되는 경우에, 도 9에 도시된 바와 같은 데이터 패킷은 공간에서 상기 무선 신호를 모니터링하고 802.2 SNAP 포맷에 따라 상기 데이터 링크 계층으로부터 상기 데이터를 인터셉트함으로써 획득될 수 있다.
도 9의 헤더 필드 "길이(Length)"는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드(논리 링크 제어; Logical Link Control)를 나타내고, 필드 SNAP는 3바이트의 벤더 코드 및 2바이트의 프로토콜 타입 식별 코드를 포함한다. DATA 영역(데이터 영역)은 로드(load)이며, 이는 암호 채널에 대해 암호 텍스트이고, 수신 기기는 상기 암호 채널의 패스워드를 획득하기 전에 상기 데이터 영역의 특정 내용을 알 수 없다. 필드 FCS는 프레임 체크 시퀀스를 나타낸다. 상기 무선 신호의 모니터, 즉 상기 수신 기기에 대하여, 필드들 DA, SA, Length, LLC, SNAP, FCS는 직접 모니터링될 수 있게 되는 무선 채널의 암호에 상관없이 항상 노출된다. 그러나 상기 실시 예의 방법을 수행하는 마스터 기기에 대해, 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어는 운영 체계(예컨대, iOS 또는 Android)의 제한 때문에, 다시 말하면 마스터 기기에서의 부호화를 위한 애플리케이션이 일반적으로 5개의 필드 DA, SA, LLC, SNAP, FCS에 대한 제어를 이루기 어렵기 때문에 매우 높은 레벨의 제어 권한을 필요로 한다.
그러므로 상기 내용이 여러 소프트웨어 애플리케이션에 의해 직접 모니터링 및 제어될 수 있게 되는 헤더 필드 "Length"를 사용함으로써, 상기 마스터 기기에서의 부호화를 위한 애플리케이션은 필요에 따라 상기 데이터 패킷의 헤더 필드 "Length"에서 데이터를 송신하는 간편한 제어를 하게 된다.
일부 실시 예들에서, 상기 데이터 패킷은 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 기반을 두고 이루어진다. 상기 마스터 기기들은 UDP 브로드캐스트 패킷을 사용하여 관심 있는 데이터를 반송하며, 구체적으로는 각각의 패킷의 개별 헤더 필드 "length"가 상기 관심 있는 데이터와 함께 부호화되게 되는 일련의 UDP 브로드캐스트 패킷들을 송신한다. 상기 수신 기기는 하이브리드 모드로 공간에서 상기 무선 신호를 모니터링하고, 802.2 SNAP 포맷으로 구성되는 데이터 패킷들을 인터셉트하며, 상기 인터셉트된 데이터 패킷들의 부호화된 헤더 필드들 "Length"에서 데이터를 획득하고, 그리고 상기 부호화된 헤더 필드들 내에서 획득된 데이터를 복호화함으로써 상기 관심 있는 데이터(다시 말하면, 관심 있는 데이터)를 회수한다. 일부 실시 예들에서, 상기 데이터 패킷은 전송 제어 프로토콜(transmission control protocol; TCP)을 준수하는 데이터 포맷을 지닌다.
일부 실시 예들에서, 최대 전송 단위(maximum transmission units; MTU)에 대한 제한 때문에, 상기 헤더 필드 "Length"에서 관심 있는 데이터를 반송하는데 사용될 수 있는 최대 비트 개수는 10이다. 그러나 패킷 손실률은 대개 UDP 패킷의 길이에 비례한다. 상기 헤더 필드 "Length"가 상기 관심 있는 데이터를 반송하기 위해 9비트보다 많은 비트를 제공하거나 상응하는 UDP 패킷이 256비트보다 많은 비트를 지니는 경우에, 상기 UDP 브로드캐스트 패킷의 패킷 손실률은 실질적으로 증가하며, 서로 다른 패킷들 간의 순서 손실이 종종 일어난다. 그러므로 일부 바람직한 실시 예들에서, 비트 개수는 관심 있는 데이터를 반송하기 위해 사용되는 일부 헤더 필드들에 대해 8로 제한되고, 상기 UDP 브로드캐스트 패킷은 256비트보다 많지 않은 비트의 길이를 지니도록 제어된다. 이러한 상황들에서, 각각의 UDP 데이터 패킷은 상기 수신 기기에 의해 간편하게 판독 가능한 1바이트의 관심 있는 데이터를 포함한다. 각각의 데이터 패킷 내에서의 그러한 제한된 양의 데이터를 고려해 볼 때, 상기 관심 있는 데이터는 다수의 UDP 데이터 패킷이 상기 마스터 기기로부터 상기 수신 기기로 완전히 전송되는 것을 필요로 할 수 있다.
각각의 데이터 패킷이 더 적은 데이터를 반송할 수 있기 때문에, 일부 실시 예들에서, 전체 관심 있는 데이터는 복수 개의 데이터 패킷들로 이루어진 데이터 패킷 세트를 통해 송신된다. 특히, 데이터 패킷을 생성하도록 상기 헤더 필드 내에서 상기 관심 있는 데이터를 부호화하는 단계(이 경우에 상기 헤더 필드가 상기 내용이 직접 모니터링될 수 있게 되는 데이터 패킷 내의 필드임)는 이하의 단계들을 부가적으로 포함한다:
·관심 있는 데이터에 따라 상기 관심 있는 데이터를 로드하기 위한 데이터 필드 및 식별되기 위한 제어 필드를 생성하는 단계;
·복수 개의 데이터 패킷들을 생성하도록 복수 개의 데이터 패킷들의 헤더 필드들 내에 상기 데이터 필드 및 상기 제어 필드를 순차적으로 부호화하는 단계.
상기 데이터 필드 및 제어 필드를 사용하여, 단일 데이터 패킷이 제한된 관심 있는 데이터양을 지니는 경우에, 단일 데이터 패킷의 것보다 많은 양을 갖는 데이터 전송이 데이터 패킷 세트에 의해 실현될 수 있다.
도 11은 일부 실시 예들에 따른 관심 있는 데이터를 로드하기 위해 데이터 패킷 헤더들 내에 헤더 필드들(예컨대, 헤더 필드 "Length")을 구성하는데 사용되는 링크 계층 데이터 구조의 개략도이다. 상기 링크 계층 데이터 구조는 2개의 클래스, 즉 제어 필드(다시 말하면, 사양(specification)들을 제어하기 위한 필드) 및 데이터 필드(데이터를 반송하기 위한 필드)로 분할된다. 일부 실시 예들에서, 상기 제어 필드는 매직 코드 필드(다시 말하면, 인식(recognition) 필드)(1200), 프리픽스(prefix) 코드 필드(다시 말하면, 프리픽스 필드)(1104), 및 시퀀스 헤더 필드(다시 말하면, 시퀀스 헤더 필드)(1300)를 포함한다. 상기 제어 필드들에서, 식별(인식) 필드(1200)는 가까운 장래에 있을 관심 있는 데이터를 식별하기 위해 사용되고, 상기 프리픽스 필드(1104)는 시퀀스 헤더 필드(1300)보다 앞서 있는 것 외에는 상기 식별 필드와 유사한 기능을 지니며 복수 개의 데이터 시퀀스의 정규 시작을 나타낸다.
상기 데이터 필드(1400)는 상기 체크 데이터의 체크 코드를 로드하기 위해 사용되는 시퀀스 헤더 필드를 포함한다. 상기 데이터 필드(1400)는 상기 관심 있는 데이터를 로드하기 위해 사용되는 시퀀스 필드를 부가적으로 포함한다. 상기 관심 있는 데이터를 반송하기 위해 사용되는 데이터 패킷의 각각의 헤더 필드가 바이트(또는 8비트)를 포함하는 경우에, 상기 제어 필드 및 상기 데이터 필드는 한 바이트의 7번째 비트(때로는 제어 비트라 지칭함)에 의해 구별된다. 구체적으로는, 일 예에서, 7번째 비트 "1"은 데이터 필드를 나타내고, "0"은 제어 필드를 나타낸다. 다른 실시 예들에서, 다른 어떤 비트라도 상기 제어 필드 및 상기 데이터 필드를 식별하기 위한 제어 비트용으로 사용될 수 있고, 이 경우에 상기 제어 필드 및 상기 데이터 필드의 바이트 내의 제어 비트의 코드들이 구별된다. 상기 비트는 0번째 비트 내지 7번째 비트 중 어느 하나일 수 있다. 일부 실시 예들에서, 0은 상기 데이터 필드들을 나타내고, 1은 상기 제어 필드들을 나타낸다. 상기 매직 코드 필드 및 시퀀스 헤더 필드는 6번째 비트에 의해 구별되고, 1은 상기 시퀀스 헤더 필드를 나타내며 0은 상기 식별 필드를 나타낸다. 다른 실시 예들에서, 다른 비트(들)는 또한 상기 매직 코드 필드를 식별하기 위해 사용될 수 있다. 일부 실시 예들에서, 0은 상기 시퀀스 헤더 필드를 나타내고, 1은 상기 식별 필드를 나타낸다.
도 12를 참조하면, 식별 필드(1200)는 매직 코드들(다시 말하면, 식별 바이트)을 포함하며, 각각의 매직 코드 또는 식별 바이트는 상기 매직 코드를 식별하기 위한 매직(즉, 식별 코드)(1202) 및 정보를 로드하기 위한 정보(즉, 정보 코드)(1204)를 포함한다. 일부 실시 예들에서, 상기 식별 필드(1200)는 4바이트를 포함하며, 각각의 바이트의 상위 4비트는 상기 식별 코드(1202)를 포함하고 하위 4비트는 상기 정보 코드(1204)를 포함한다. 하나의 특정 예에서, 상기 정보 코드(1202)의 첫 번째 2바이트는 송신될 데이터의 길이의 상위 4비트 및 하위 4비트를 각각 반송하며, 상기 정보 코드(1202)의 마지막 2바이트는 송신될 데이터의 CRC8(순환 중복 체크 코드: circular redundancy check code) 값의 상위 4비트 및 하위 4비트를 각각 반송한다. 데이터 통신 방법(80)이 Wi-Fi 통신 네트워크의 SSID 및 SSID 패스워드를 전송하는데 사용될 경우에, 상기 식별 필드(1200) 내의 SSID의 CRC8 코드는 전체 전송 절차를 개선한다. 일부 구현 예들에서, 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(access point; AP)들이 무선 환경에서 모든 비-은닉성 AP들의 SSID, RSSI(received signal strength indicator: 수신 신호 강도 표시자) 및 채널들을 획득하도록 스캐닝 된다. 후속 데이터 통신 프로세스 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID에 연관된 CRC8 값을 획득하고, 그리고 나서 이를 사전 스캔으로부터 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC 값이 매치(match) 되는 경우에, 상기 수신 기기는 SSID 정보를 다시 수신할 필요가 없게 되고 그럼으로써 전송 시간을 단축하게 된다.
일부 실시 예들에서, 사전에 결정된 바이트 개수(예컨대, 20)는 식별 필드들(1200) 용으로 송신된다. 상기 수신 기기가 있는 무선 통신 네트워크 환경이 복잡해질 수 있다. 구체적으로 기술하면, 동일 공간 내에 다수의 AP가 존재하게 되고, 이러한 AP들이 동일하거나 다른 채널들을 통해 분포될 수 있다. 그러므로 초기에 상기 수신 기기는 1 내지 14채널들 중 어느 채널이 정보를 송신하는데 상기 마스터 기기에 의해 사용되는지 그리고 특정 채널 상의 다수의 기기 중 어느 하나의 기기가 상기 마스터 기기에 연관되는지를 인식하지 못한다. 이러한 상황에서, 상기 수신 기기는 서로 다른 채널들로부터 서로 다른 기기들에 의해 제공되는 거대한 양의 데이터를 수신할 수 있게 된다.
상기 마스터 기기에 의해 사용되는 채널 및 거대한 양의 데이터로부터의 상기 마스터 기기의 물리적 어드레스(즉, MAC 어드레스)를 찾아내기 위해, 상기 마스터 기기는 다른 정보를 송신하기 전에 식별 필드들(1200)로서 사전에 결정된 바이트 개수를 송신할 수 있다. 이러한 식별 필드들(1200) 각각은 4바이트를 포함하며, 상기 마스터 기기를 식별하는데 사용된다. 그러므로 상기 수신 기기는 상기 마스터 기기의 채널 및 MAC 어드레스를 알고 상기 마스터 기기의 채널 및 MAC 어드레스에 초점을 맞추고, 이들을 후속 정보 모니터링 절차에서 거대한 양의 데이터를 효율적으로 필터링하는데 사용할 수 있다.
도 13을 참조하면, 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 시퀀스 CRC8(즉, 시퀀스 순환 중복 체크 코드)(1302) 및 시퀀스 인덱스(즉, 시퀀스 인덱스)(1304)를 포함한다. 각각의 데이터 시퀀스 필드(1102)는 또한 상기 관심 있는 데이터를 로드하기 위해 사용되는 개별 데이터 필드 내에 다수의 바이트를 포함한다. 시퀀스 헤더 필드(1300) 및 시퀀스 데이터 필드(1400)는 데이터 시퀀스 필드(1102)를 형성하고, 상기 관심 있는 데이터는 복수 개의 데이터 시퀀스 필드들(1102)에 의해 반송될 수 있다. 일부 실시 예들에서, 송신될 관심 있는 데이터는 4바이트의 입자 크기(grain size)로 분할되고(0으로 패딩(padding)하는 것은 상기 관심 있는 데이터의 길이가 정확하게 분할될 수 없는 경우에 필요하게 됨), 각각의 4 시퀀스 바이트는 데이터 시퀀스 필드(1102)로 로드되고, 상기 데이터는 데이터 시퀀스 단위로 송신된다. 더군다나, 일부 실시 예들에서, 상기 관심 있는 데이터는 오류 정정을 위해 사전에 결정된 시간 동안 송신된다. 상기 관심 있는 데이터가 처음으로 송신된 후에, 다시 말하면 상기 관심 있는 데이터를 포함하는 N 개의 시퀀스가 처음으로 송신된 후에, 그리고 다시 N 개의 시퀀스를 송신하기 시작하기 전에, 프리픽스 필드(1104)가 N 개의 시퀀스의 시작을 나타내기 위해 한 번 송신된다. 다시 말하면, 반복해서 송신할 경우에, 상기 데이터 패킷이 프리픽스 필드(1104), 시퀀스 헤더 필드(1300) 및 데이터 필드(1400)를 포함하며, 이 경우에 상기 식별 필드(1200)는 옵션이다. 일부 실시 예들에서, 상기 시퀀스 헤더 필드(1300)는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스(1304)의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 상기 CRC 값이 사전에 스캐닝된 CRC 값과 일치하지 않는 경우에, 상기 데이터 시퀀스는 오류들을 가지고 수신되고 그럼으로써 폐기된다.
도 14를 참조하면, 일부 실시 예들에서, 상기 시퀀스 데이터 필드(1400)는 4바이트를 포함하고, 각각의 바이트의 7번째 비트는 제어 비트이고 1로서 고정되며, 나머지 7개의 비트는 관심 있는 데이터를 로드하기 위해 사용된다. 일부 실시 예들에서, 상기 관심 있는 데이터는 SSID, SSID 패스워드, 및 상기 관심 있는 데이터의 수신을 확인하기 위해 사용되는 난수(random number) 중의 하나 이상을 포함한다. 일부 구현 예들에서, AP가 접속된 후에, 상기 마스터 기기는 난수를 포함하는 UDP 브로드캐스트 패킷을 즉시 송신한다. 상기 수신 기기는 상기 난수를 상기 마스터 기기로 복귀시키는 것으로 예정되어 있고 상기 마스터 기기가 어떠한 오류도 없이 상기 난수를 수신한 경우에 상기 수신 기기가 상기 관심 있는 데이터를 올바르게 수신한 것으로 결정될 수 있다. 상기 난수의 크기는 1바이트이며, 그에 따라 상기 난수의 값이 127보다 작다. 일부 실시 예들에서, 상기 SSID 및 상기 SSID 패스워드는 '\0'으로 끝나게 되고 룩업 테이블 또는 사전(dictionary)에 기반을 두고 암호화되며, 상응하는 수신 기기는 동일한 룩업 테이블 또는 사전을 사용하여 상기 수신된 SSID 및 SSID 패스워드를 복호화할 수 있다.
도 15에 부가적으로 도시되어 있는 바와 같이, 송신 순서에 따라, 상기 마스터 기기는 상기 SSID 패스워드, 상기 난수 및 상기 SSID를 순차적으로 송신한다. 일부 실시 예들에서, 상기 수신 기기는 상기 식별 필드(1200)에서 타깃 AP의 SSID의 CRC8 값을 획득하고 이를 사전에 획득된 SSID의 CRC8 값과 비교한다. 이러한 2개의 CRC8 값들이 일치하는 경우에, 상기 SSID 정보가 확인되고 상기 수신 기기가 후속 SSID 정보를 처리할 필요가 없으며 그럼으로써 전송 시간을 줄이고 상응하는 전송 효율을 개선하게 된다.
상기 실시 예의 수신 기기는 Wi-Fi 무선 통신 프로토콜에 기반을 두고 이루어질 수 있으며, 소량의 데이터를 수신하는데 적합하고, SSID 및 패스워드를 수신하도록 한 것들의 인터넷 지능형 제어 칩에서 적용될 수 있다. 예를 들면, 이러한 수신 모드를 통해, SSID의 입력을 위해 키 또는 터치 스크린을 지니지 않고 지능형 스위치는 상기 SSID 및 패스워드를 간편하고 신속하게 획득할 수 있다. 위에서 언급한 데이터 패킷은 브로드캐스트 패킷일 수 있으며, 무선 액세스 포인트에 의한 포워딩을 통해 수신될 수 있다. 상기 무선 액세스 포인트는 대량의 전력을 지니며, 그럼으로써 무선 통신의 물리적 신호 공간의 커버리지 영역은 그의 포워딩에 의해 증가하게 될 수 있다. 상기 수신 모듈(220)은 하이브리드 모드로 공간에서 무선 신호를 모니터하고, 데이터 패킷을 수신하는 단계를 수행한다. 수신 모듈(220)은 데이터 링크 계층에서 데이터를 인터셉트하고 데이터 패킷을 획득한다.
송신하기 전에, 상기 데이터 패킷은 IP 계층 및 데이터 링크 계층 내에 패키징 및 암호화된다. 또한, 상기 복호화 모듈(240)은 길이 필드를 수정하기 위해 사용된다. 일부 실시 예들에서, 상기 데이터 패킷은 UDP 브로드캐스트 패킷으로서 송신된다. UDP 계층의 데이터 패킷은 먼저 IP 계층 및 데이터 링크 계층 내에 패키징되고, (WPA2, WPA 또는 WEP의 방식으로) 암호화된 다음에 송출된다. 이러한 방식으로 상기 마스터 기기에 의해 송신되는 UDP 브로드캐스트 패킷의 길이는 상기 수신 기기에 의해 최종적으로 모니터링되는 헤더 필드 "Length"의 값과 다르게 되며, 그럼으로써 수정이 필요하다. 여기서 알 수 있는 점은 상기 UDP 브로드캐스트 패킷의 길이가 상기 MTU의 제한 범위 내에 있는 동안(다시 말하면, UDP 패킷이 교차되지 않게 되는 동안), 상기 마스터 기기에 의해 송신된 UDP 브로드캐스트 패킷의 길이 및 상기 수신 기기에 의해 최종적으로 모니터링된 필드 "Length"의 값 간의 차이는 상수 값이다. 그리고 상기 상수 값은 상기 UDP 브로드캐스트 패킷의 길이 변화와 함께 변하지 않게 되고, 단지 상기 채널을 위한 Wi-Fi 암호화 방식에 연관될 뿐이다. 그러므로 상이한 암호화 방식 하에서의 차이 값이 찾아지게 되면, 상기 수신 기기는 헤더 필드 "Length"를 수정할 수 있다.
일련의 실험들을 통해, 도 17에 도시된 바와 같이 수정 테이블이 획득된다. AES는 Advanced Encryption Standard의 약어이며, 이는 고급 암호화 표준이다. TKIP는 Temporal Key Integrity Protocol의 약어이며, 이는 임시 키 무결성 프로토콜을 의미한다. RC4는 가변 키 길이를 갖는 스트림 암호화 알고리즘이다. Wi-Fi 암호화 방식이 WPA2(AES)인 경우에, 상기 수신 기기는 모니터링을 통해 링크 계층에서 802.2 SNAP 포맷의 UDP 브로드캐스트 패킷을 인터셉트하고, 필드 Length의 값은 152이며, 상기 수신 기기는 이를 수정하여 152-52=100인 것으로 상기 마스터 기기에 의해 송신된 내용을 획득한다. 그러므로 길이 필드를 수정하는 단계는 상기 길이 필드의 값에서 사전에 설정된 수정 값을 감산하는 것이다.
일부 실시 예들에서, 관심 있는 데이터의 수신이 복수 개의 데이터 패킷들에 의해 구성된 데이터 패킷 세트를 수신함을 통해 완료된다. 복호화 모듈(240)은 상기 복수 개의 데이터 패킷들을 복호화하여 상기 복수 개의 데이터 패킷들의 헤더 필드들 내에 순차적으로 암호화되는, 관심 있는 데이터를 로드하기 위해 사용되는 데이터 필드 및 식별되기 위해 사용되는 제어 필드를 획득한다. 상기 제어 필드들은 식별 필드 및 시퀀스 헤더 필드를 포함하며, 이 경우에 상기 식별 필드는 식별을 위해 사용되고, 상기 시퀀스 헤더 필드는 상기 체크 데이터의 획득된 체크 코드를 복호화하기 위해 사용된다. 상기 데이터 필드들은 시퀀스 필드를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 로드하기 위해 사용된다.
상기 시퀀스 헤더 필드는 시퀀스 순환 중복 체크 코드, 및 시퀀스 인덱스를 포함한다. 상기 시퀀스 필드는 시퀀스 바이트를 포함하며, 상기 시퀀스 필드는 상기 관심 있는 데이터를 획득하기 위해 사용된다. 데이터 패킷 세트를 수신한 후에, 시퀀스 순환 중복 체크 코드를 통해 체크가 수행된다. 상기 체크가 실패하는 경우에, 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
일부 실시 예들에서, 시퀀스 헤더 필드 및 시퀀스 필드는 하나의 시퀀스로 이루어지며, 상기 관심 있는 데이터는 복수 개의 시퀀스들에 의해 전송될 수 있다. 상기 시퀀스 헤더 필드는 2바이트를 포함하며, 이 경우에 제1 바이트의 하위 6비트는 상기 시퀀스 인덱스의 시작에서부터 상기 시퀀스의 끝에 이르기까지 모든 송신된 데이터의 CRC8을 반송한다. 데이터 시퀀스를 수신한 후에, CRC8 값에 대한 체크가 수행된다. 동일하지 않은 경우에, 상기 데이터 시퀀스는 오류들과 함께 수신됨이 드러나게 되는데, 이는 폐기되어야 한다.
상기 관심 있는 데이터를 매번 반송하는 N 개의 시퀀스를 수신하기 전에, 프리픽스 필드가 수신되게 되며, 복호화를 위해 사용되는 SSID의 SSID CRC8이 획득될 수 있다. 상기 실시 예의 통신 시스템은 또한 환경 서비스 세트 식별자를 획득하도록 환경에서 AP들을 스캐닝하는 단계를 포함한다. 상기 환경 서비스 세트 식별자는 상기 SSID CRC8을 가지고 체크되고, 성공하는 경우에, 상기 SSID의 수신을 포기한다. 상기 수신 기기가 데이터를 수신하기 전에, 상기 무선 액세스 포인트(AP)들이 스캐닝되고, 이 경우에 무선 환경에서의 모든 비-은닉성 AP들의 SSID, RSSI(수신 신호 강도 표시자; received signal strength indicator) 및 채널들이 획득된 비컨을 통해 얻어질 수 있다. 전송 절차 동안, 상기 수신 기기는 먼저 타깃 AP의 SSID의 CRC8 값을 획득하고, 그리고 나서 이를 이전에 스캐닝함으로써 획득된 SSID의 CRC 값과 비교한다. 동일한 값이 발견되는 경우에, 상기 수신 기기는 이하의 수신 절차에서 상기 SSID 정보를 다시 수신할 필요가 없게 되고, 그럼으로써 전송 시간을 상당히 단축하게 된다.
위에서 설명한 실시 예의 통신 모델은 오류율이 0-5%인 단방향 채널로서 요약될 수 있으며, 전송될 정보의 최대 길이는 68바이트이다. 이 경우에, 오류 정정 알고리즘을 사용하지 않는 경우에, 제한된 시간에 정보를 송신하는 것을 완료하게 하는 것이 어렵다. 일부 실시 예들에서, 누적 오류 정정 알고리즘은 제한된 시간에 전송을 완료하게 하는데 사용된다. 상기 누적 오류 정정 알고리즘의 이론적 기초는 데이터를 송신하는 다수의 프로세스에서 동일 비트에 대한 데이터의 오류 확률이 매우 낮다는 점이다. 그러므로 데이터를 전송하는 다수의 결과가 누적 및 분석될 수 있다. 한 프로세스에서 오류 데이터의 확률이 큰 비트에 대하여는, 그의 상응하는 정확한 값이 다른 프로세스에서 발견될 수 있으며, 그럼으로써 제한된 시간 내에 정보를 송신하는 것을 완료하게 할 수 있다.
전송될 정보의 길이가 68바이트라고 가정하면, 최악의 경우에, 성공적인 정보 송신의 확률이 누적 오류 정정 알고리즘을 가지고 그리고 누적 오류 정정 알고리즘을 가지지 않고 계산되며, 송신 횟수 및 결과 간의 관계는 도 18에 도시되어 있다. 바이트를 전송함에 있어서의 오류율이 5%라고 가정하면, 68바이트의 데이터가 전송될 필요가 있는 경우에, 하나의 프로세스에서의 성공적인 전송의 확률은 (1-0.05)68=3%이다. 위에서 언급한 오류 정정 알고리즘이 사용되는 경우에, 하나의 프로세스에서의 성공적인 전송 확률은 또한 3%이며, n 개의 프로세스에서의 성공적인 전송 확률은 (1-0.05n)68이다.
상기 실시 예의 전송률은 마스터 기기에서의 UDP 브로드캐스트 패킷의 송신 비율에 의존한다. 현재, 송신 브로드캐스트 패킷의 빈도가 1/5 ms이고, 그럼으로써 전송률은 200바이트/초이게 된다. 상기 식별 필드가 계산되지 않게 되는 경우에, 로드의 효율은 66.7%이다. 송신된 정보의 길이가 가장 긴 68바이트인 경우에, 최악의 경우에, 정보의 송신은 많아야 5회로 완료될 수 있으며, 많아야 상기 전송 시간이 68/66.7*5/200=2.549s이다.
다른 한 실시 예에서, 상기 데이터 패킷은 또한 이더넷 802.2 포맷을 이루고 있을 수 있다. 도 19는 이더넷 802.2 포맷에서의 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 802.2 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 19의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 필드 LLC는 LLC 헤드를 나타내고, 데이터 필드는 로드이며, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 포맷을 이루고 있을 수 있다. 도 20은 이더넷 802.3 포맷을 이루는 데이터 패킷의 개략도이며, 이 경우에 상기 헤더 필드는 이더넷 802.3의 포맷을 이루는 데이터 패킷 내의 길이 필드이고, 나머지들은 이더넷 802.2 SNAP의 실시 예에 따른 데이터 패킷 내의 것들과 동일한 것들이다. 도 20의 필드 Length는 위에서 언급한 길이 필드인 추종 데이터의 길이를 나타낸다. 필드 DA는 타깃 MAC 어드레스를 나타내고, 필드 SA는 소스 MAC 어드레스를 나타내며, 데이터 필드는 로드이고, 필드 FCS는 프레임 체크 시퀀스를 나타낸다.
상기 데이터 패킷은 또한 이더넷 802.3 SNAP 포맷을 이루고 있을 수 있다. 도 9를 참조하면, 이더넷 802.3 SNAP 포맷을 이루는 데이터 패킷의 개략도는 이더넷 802.2 SNAP 포맷의 실시 예에 따른 데이터 패킷의 것과 동일한 것이고, 이 경우에 상기 헤더 필드는 이더넷 802.3 SNAP의 포맷을 이루는 데이터 패킷 내의 길이 필드이다.
당업자라면 이해할 수 있겠지만, 위에서 언급한 실시 예들의 방법들의 전체 또는 일부 흐름이 컴퓨터 프로그램의 명령어를 통해 관련 하드웨어에 의해 수행될 수 있다. 상기 프로그램은 컴퓨터 판독가능 저장 매체 내에 저장될 수 있으며, 수행될 경우에 위에서 언급한 실시 예들의 방법들을 구현할 수 있다. 여기서 상기 저장 매체는 자기 디스크, 광 디스크, 판독 전용 메모리(Read-Only Memory; ROM) 또는 랜덤 액세스 메모리(Random Access Memory; RAM) 등등일 수 있다.
앞서 언급한 실시 예들은 단지 특정적이고 구체적인 본원의 여러 구현 형태를 나타낸 것뿐이고, 본원의 보호 범위를 한정하는 것은 아니다. 당업자라면 본원의 보호 범위 내에 있게 되는 일부 수정 및 개선이 본원의 사상으로부터 벗어나지 않고 이루어지게 할 수 있다. 그러므로 본원의 보호 범위는 청구항들에 의해 결정되어야 한다.
위에서 특정 실시 예들이 기재되어 있지만, 여기서 이해할 점은 이러한 특정 실시 예들로 본 발명을 한정하는 것으로 의도된 것이 아니라는 점이다. 이와는 반대로, 본 발명은 첨부된 청구항들의 사상 및 범위에 속하는 변형 예들, 수정 예들 및 등가 예들을 포함한다. 다수의 특정한 세부들은 본원 명세서에 기재된 주제의 완전한 이해를 제공하기 위해 제시된 것들이다. 그러나 당업자에게는 명백하겠지만, 상기 주제는 이러한 특정한 세부들 없이 실시될 수 있다. 다른 예시들에서, 공지된 방법들, 절차들, 컴포넌트들, 및 회로들이 상기 실시 예들의 실시 형태들을 불필요하게 모호하게 하지 않도록 구체적으로 설명되지는 않았다.
용어들 "제1", "제2" 등등은 본원 명세서에서 여러 요소를 기재하는데 사용될 수 있지만, 이러한 요소들이 이러한 용어들에 의해 한정되어서는 아니 된다. 상기 용어들은 단지 하나의 요소를 다른 하나의 요소와 구분짓기 위해 사용된 것뿐이다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고, 제1 순위 기준이 제2 순위 기준으로 지칭될 수 있을 것이고, 마찬가지로 제2 순위 기준이 제1 순위 기준으로 지칭될 수도 있을 것이다. 제1 순위 기준 및 제2 순위 기준 양자 모두는 순위 기준들이지만, 이들은 동일한 순위 기준이 아니다.
본원 명세서에서의 발명의 설명에서 사용되는 기술용어는 단지 특정 실시 예들을 기재하기 위한 것이고 본 발명을 한정하고자 한 것이 아니다. 본 발명의 설명 및 첨부된 청구항들에서 사용된 바와 같이, 단수 형태들 "하나의", "어떤 하나의" 그리고 "상기"는 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 형태들을 또한 포함하고자 한 것이다. 여기서 또한 이해할 점은 본원 명세서에서 사용되는 용어 "및/또는"이 하나 이상의 리스트 항목들 중 어느 하나 그리고 가능한 모든 조합들을 언급 및 포함한다는 점이다. 여기서 더 이해할 점은 용어들 "지니다", "지니는", "포함하다", 그리고/또는 "포함하는"이 본원 명세서에서 사용되는 경우에 기재된 특징들, 동작들, 요소들, 및/도는 컴포넌트들의 존재를 지정하지만, 다른 특징들, 동작들, 요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하는 것이 아니라는 점이다.
본원 명세서에서 사용된 바와 같이, 문맥에 따라 기재된 선행 조건이 참인 용어 "경우"가 "때" 또는 "시" 또는 "결정함에 응답하여" 또는 "결정에 따라" 또는 "검출에 응답하여"를 의미하는 것으로 해석될 수 있다. 마찬가지로, 문구 "[기재된 선행 조건이 참인 것으로] 결정되는 경우" 또는 "[기재된 선행 조건이 참인] 경우" 또는 "[기재된 선행 조건이 참일] 때"는 문맥에 따라, 기재된 선행 조건이 참인 것으로 "결정할 시에" 또는 기재된 선행 조건이 참인 것으로 "결정함에 응답하여" 또는 기재된 선행 조건이 참이라는 "결정에 따라" 또는 기재된 선행 조건이 참임을 "검출함에 응답하여"를 의미하는 것으로 해석될 수 있다.
비록 여러 도면 중 일부에는 특정 순서로 다수의 논리 단계가 예시되어 있지만, 순서에 의존하지 않는 단계들이 재순서화될 수 있으며 다른 단계들이 조합될 수도 있고 세분화될 수도 있다. 일부 재순서화 또는 다른 그룹화들이 특정하게 언급되어 있지만, 다른 것들이 당업자에게는 명확해질 것이므로 변형 예들의 완전한 리스트를 제공한 것이 아니다. 더욱이, 여기서 인식되어야 할 점은 상기 단계들이 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의 조합으로 구현될 수 있을 것이라는 점이다.
위의 기재내용은 설명을 위해 특정 구현 예들을 참조하여 기재되었다. 그러나 위에 기재한 전형적인 논의들은 완전한 것이거나 본 발명을 개시된 정확한 형태들로 한정하고자 한 것이 아니다. 여러 수정 및 변경들이 위의 교시들에 비추어 볼 때 가능하다. 상기 구현 예들은 본 발명의 원리들 및 본 발명의 실제 적용들을 가장 양호하게 설명하여 당 업게에 숙련된 다른 자들이 본 발명 및 고려되는 특정 용도에 적합한 여러 변형을 갖는 여러 구현 예를 가장 양호하게 활용하도록 선택 및 기재되었다. 구현 예들에는 첨부된 청구항의 사상 및 범위에 속하는 변형 예들, 수정 예들 및 등가 예들이 포함된다. 다수의 특정 세부가 본원 명세서에서 제시된 완전한 주제를 제공하도록 제시된 것이다. 그러나 당업자에게는 분명해지겠지만, 상기 주제가 특정 세부들 없이 구현될 수 있다. 다른 예들에서는, 공지된 방법들, 절차들, 컴포넌트들, 및 회로들이 상기 구현 예들의 실시 형태들을 불필요하게 모호하게 하지 않도록 구체적으로 설명되지는 않다.

Claims (20)

  1. 데이터 통신 방법으로서,
    상기 데이터 통신 방법은,
    하나 이상의 프로세서들 및 상기 하나 이상의 프로세서들에 의해 실행될 프로그램 모듈들을 저장하는 메모리를 지니는 전자 기기에서:
    데이터 패킷 시퀀스를 획득하는 단계로서, 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함하는, 데이터 패킷 시퀀스 획득 단계;
    제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들에 데이터를 할당하는 단계;
    상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스를 암호화하는 단계; 및
    무선 통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기로 암호화된 데이터 패킷 시퀀스를 송신하는 단계로서, 상기 수신 기기는 상기 제1 및 제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하고 상기 회수된 데이터에 따라 동작들을 수행하도록 구성되는, 암호화된 데이터 패킷 시퀀스 송신 단계;
    를 포함하는, 데이터 통신 방법.
  2. 제1항에 있어서,
    상기 할당된 데이터는 SSID 및 SSID 패스워드를 포함하며, 상기 SSID는 상기 데이터 패킷 시퀀스를 전송하고 상기 SSID 패스워드가 확인될 때 액세스 가능한 무선 통신 네트워크를 식별하는, 데이터 통신 방법.
  3. 제2항에 있어서,
    상기 할당된 데이터는 상기 SSID 및 상기 SSID 패스워드와 함께 상기 전자 기기에 의해 상기 수신 기기에 제공되는 난수(random number)를 부가적으로 포함하고, 그럼으로써 상기 SSID 및 상기 SSID 패스워드를 수신한 후에, 상기 수신 기기가 상기 SSID 및 상기 SSID 패스워드를 수신했음을 확인하도록 상기 수신 기기가 상기 난수를 상기 전자 기기로 복귀시키게 하는, 데이터 통신 방법.
  4. 제1항에 있어서,
    상기 데이터 패킷 시퀀스에 연관된 네트워크 액세스 프로토콜은 이더넷 802.2 SNAP, 이더넷 802.2, 이더넷 802.3 SNAP, 및 이더넷 802.3으로 이루어진 IEEE 프로토콜 그룹으로부터 선택되는, 데이터 통신 방법.
  5. 제1항에 있어서,
    각각의 데이터 길이 필드는 8비트 데이터를 포함하는, 데이터 통신 방법.
  6. 제1항에 있어서,
    상기 암호화된 데이터 패킷 시퀀스는 상기 식별된 무선 통신 네트워크상에 또한 통신 가능하게 연결되는 무선 액세스 포인트를 통해 상기 수신 기기로 송신되는, 데이터 통신 방법.
  7. 제1항에 있어서,
    상기 데이터 패킷 시퀀스 획득 단계는,
    상기 전자 기기의 사용자로부터의 입력들을 수신하는 복수 개의 사용자 입력 스페이스들을 포함하는 사용자 인터페이스를 생성하는 단계;
    사용자 입력에 따라, 상기 복수 개의 사용자 입력 스페이스들 상에서 상기 사용자 입력에 연관된 데이터 패킷 시퀀스를 디스플레이하는 단계; 및
    상응하는 사용자 입력 스페이스들에서 디스플레이되는 데이터 패킷 시퀀스를 획득하는 단계;
    를 부가적으로 포함하는, 데이터 통신 방법.
  8. 제1항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 할당된 데이터는 상기 할당된 데이터에 연관된 복수 개의 특징들을 지정하는 데이터 필드보다 앞서 있는 데이터 제어 헤더를 포함하며, 상기 데이터 제어 헤더 및 상기 데이터 필드는 개별 데이터 패킷 서브세트의 데이터 길이 필드들에 할당되는, 데이터 통신 방법.
  9. 제8항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 할당된 데이터는 복수 개의 바이트들을 포함하며, 각각의 바이트는 개별 바이트가 상기 데이터 제어 헤더에 연관된 것인지 상기 할당된 데이터의 데이터 필드에 연관된 것인지를 식별하는 하나 이상의 제어 비트들을 부가적으로 포함하는, 데이터 통신 방법.
  10. 제8항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 할당된 데이터에 연관된 복수 개의 특징들은 상기 할당된 데이터의 유효성(validity)을 포함하며, 상기 데이터 제어 헤더의 하나 이상의 바이트들은 상기 할당된 데이터에 대한 무결성 데이터(integrity data)에 연관되어 있는, 데이터 통신 방법.
  11. 제8항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 할당된 데이터에 연관된 복수 개의 특징들은 상기 할당된 데이터의 데이터 길이를 포함하며, 상기 데이터 제어 헤더의 하나 이상의 바이트들은 상기 할당된 데이터의 데이터 길이를 정의하는데 사용되는, 데이터 통신 방법.
  12. 제8항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 데이터 제어 헤더는 상기 할당된 데이터의 시작을 식별하는 하나 이상의 바이트들을 부가적으로 포함하는, 데이터 통신 방법.
  13. 데이터 처리 방법으로서,
    상기 데이터 처리 방법은,
    하나 이상의 프로세서들 및 상기 하나 이상의 프로세서들에 의해 실행될 프로그램 모듈들을 저장하는 메모리를 지니는 수신 기기에서:
    무선 통신 네트워크를 통해 상기 수신 기기에 통신 가능하게 연결되는 다른 한 전자 기기로부터 데이터 패킷 시퀀스를 획득하는 단계;
    상기 데이터 패킷 시퀀스를 복호화하는 단계로서, 각각의 복호화된 데이터 패킷이 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 복호화된 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함하는, 데이터 패킷 시퀀스 복호화 단계;
    상기 제1 데이터 포맷과는 다른 제2 데이터 포맷에 따라 상기 복호화된 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 데이터를 회수하는 단계; 및
    상기 회수된 데이터에 따라 동작들을 수행하는 단계;
    를 포함하는, 데이터 처리 방법.
  14. 제13항에 있어서,
    상기 회수된 데이터는 SSID 및 SSID 패스워드를 포함하며, 상기 SSID는 상기 데이터 패킷 시퀀스를 전송하고 상기 SSID 패스워드가 확인될 때 액세스 가능한 무선 통신 네트워크를 식별하는, 데이터 처리 방법.
  15. 제14항에 있어서,
    상기 회수된 데이터는 상기 SSID 및 상기 SSID 패스워드와 함께 상기 전자 기기에 의해 상기 수신 기기에 제공되는 난수(random number)를 부가적으로 포함하고, 그럼으로써 상기 SSID 및 상기 SSID 패스워드를 수신한 후에, 상기 수신 기기가 상기 SSID 및 상기 SSID 패스워드를 수신했음을 확인하도록 상기 수신 기기가 상기 난수를 상기 전자 기기로 복귀시키게 하는, 데이터 처리 방법.
  16. 제13항에 있어서,
    상기 데이터 패킷 시퀀스에 연관된 네트워크 액세스 프로토콜은 이더넷 802.2 SNAP, 이더넷 802.2, 이더넷 802.3 SNAP, 및 이더넷 802.3으로 이루어진 IEEE 프로토콜 그룹으로부터 선택되는, 데이터 처리 방법.
  17. 제13항에 있어서,
    각각의 데이터 길이 필드는 8비트 데이터를 포함하는, 데이터 처리 방법.
  18. 제13항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 회수된 데이터는 상기 회수된 데이터에 연관된 복수 개의 특징들을 지정하는 데이터 필드보다 앞서 있는 데이터 제어 헤더를 포함하며, 상기 데이터 제어 헤더 및 상기 데이터 필드는 개별 데이터 패킷 서브세트의 데이터 길이 필드들에 할당되는, 데이터 처리 방법.
  19. 제18항에 있어서,
    상기 제2 데이터 포맷에 따라, 상기 회수된 데이터는 복수 개의 바이트들을 포함하며, 각각의 바이트는 개별 바이트가 상기 데이터 제어 헤더에 연관된 것인지 상기 할당된 데이터의 데이터 필드에 연관된 것인지를 식별하는 하나 이상의 제어 비트들을 부가적으로 포함하는, 데이터 처리 방법.
  20. 전자 기기로서,
    상기 전자 기기는,
    하나 이상의 프로세서들; 및
    명령어들이 저장되어 있는 메모리;
    를 포함하며,
    상기 명령어들은,
    상기 하나 이상의 프로세서들에 의해 실행될 때 상기 프로세서들로 하여금,
    데이터 패킷 시퀀스를 획득하는 동작으로서, 각각의 데이터 패킷은 네트워크 액세스 프로토콜에 상응하는 제1 데이터 포맷을 준수하며 개별 데이터 패킷의 길이를 지정하는 데이터 길이 필드를 부가적으로 포함하는 개별 헤더를 포함하는, 데이터 패킷 시퀀스 획득 동작;
    제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들에 데이터를 할당하는 동작;
    상기 할당된 데이터를 포함하는 데이터 패킷 시퀀스를 암호화하는 동작; 및
    무선 통신 네트워크를 통해 상기 전자 기기에 통신 가능하게 연결되는 수신 기기로 암호화된 데이터 패킷 시퀀스를 송신하는 동작으로서, 상기 수신 기기는 상기 제1 및 제2 데이터 포맷에 따라 상기 데이터 패킷 시퀀스의 데이터 길이 필드들로부터 상기 할당된 데이터를 회수하고 상기 회수된 데이터에 따라 동작들을 수행하도록 구성되는, 암호화된 데이터 패킷 시퀀스 송신 동작;
    을 수행하게 하는, 전자 기기.
KR1020167016830A 2013-12-04 2014-12-01 데이터 패킷 헤더들을 통한 데이터 통신 KR101859923B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310649198.1A CN104144086B (zh) 2013-12-04 2013-12-04 通信方法和系统及信息发送和接收装置
CN201310649198.1 2013-12-04
PCT/CN2014/092652 WO2015081823A1 (en) 2013-12-04 2014-12-01 Data communication via data packet headers

Publications (2)

Publication Number Publication Date
KR20160086949A true KR20160086949A (ko) 2016-07-20
KR101859923B1 KR101859923B1 (ko) 2018-05-21

Family

ID=51853156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167016830A KR101859923B1 (ko) 2013-12-04 2014-12-01 데이터 패킷 헤더들을 통한 데이터 통신

Country Status (7)

Country Link
US (2) US9918250B2 (ko)
EP (1) EP3078164B1 (ko)
KR (1) KR101859923B1 (ko)
CN (1) CN104144086B (ko)
ES (1) ES2702889T3 (ko)
MY (1) MY183511A (ko)
WO (1) WO2015081823A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789143B2 (en) 2018-02-09 2020-09-29 SK Hynix Inc. Controller with ROM, operating method thereof and memory system including the controller
US11205361B2 (en) 2019-12-24 2021-12-21 Silicon Works Co., Ltd. Display driving device and display device including the same
US11295650B2 (en) 2019-12-24 2022-04-05 Silicon Works Co., Ltd Display driving device and display device including the same

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104144086B (zh) 2013-12-04 2018-09-11 腾讯科技(深圳)有限公司 通信方法和系统及信息发送和接收装置
CN104378758B (zh) * 2014-05-12 2016-08-17 腾讯科技(深圳)有限公司 接入点连接方法、终端及服务器
US10205776B2 (en) * 2014-12-23 2019-02-12 Xiaomi Inc. Method and device for wireless connection
CN105119957A (zh) * 2015-07-10 2015-12-02 普联技术有限公司 用于智能设备的信息传递方法及装置
CN107801230A (zh) * 2016-09-07 2018-03-13 阿里巴巴集团控股有限公司 发送及接收信息的方法及装置
CN110072267A (zh) * 2018-01-22 2019-07-30 阿拉的(深圳)人工智能有限公司 智能音箱联网的方法、装置、存储介质以及智能音箱
CN108200634A (zh) * 2018-02-12 2018-06-22 天津天地伟业信息系统集成有限公司 一种嵌入式设备的无线网络添加方法
CN109450937A (zh) * 2018-12-24 2019-03-08 深圳市华讯方舟卫星产业科技有限公司 信息安全通信方法、系统、网卡和存储介质
US10855609B2 (en) * 2019-02-07 2020-12-01 Arm Limited Interconnect and method of operation of such an interconnect
CN112069094A (zh) * 2019-06-10 2020-12-11 海信视像科技股份有限公司 一种数据包封装方法及显示设备
US11368382B2 (en) * 2019-10-04 2022-06-21 Nxp B.V. Communications device and method of communications
CN111600662A (zh) * 2020-04-13 2020-08-28 云知声智能科技股份有限公司 一种通过crc16校验缩短声波传输WIFI热点信息的系统和方法
DE102020114415A1 (de) * 2020-05-29 2021-12-02 Miele & Cie. Kg Datenübertragung zu WLAN-fähigen Haushaltsgeräten
CN111881108B (zh) * 2020-07-27 2021-05-14 广州锦行网络科技有限公司 一种基于web ssh的文件传输方法及装置
CN112181883B (zh) * 2020-09-24 2022-11-08 深圳市乐唯科技开发有限公司 一种串口通讯的数据传输方法、系统及存储介质
CN115134142B (zh) * 2022-06-28 2023-09-22 南京信息工程大学 一种基于文件分割的信息隐藏方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100344121C (zh) * 2003-03-13 2007-10-17 华为技术有限公司 一种提高无线局域网系统网络传输效率的方法
US7987499B2 (en) 2004-08-18 2011-07-26 Broadcom Corporation Method and system for exchanging setup configuration protocol information in beacon frames in a WLAN
US8014529B2 (en) * 2006-08-18 2011-09-06 Eye-Fi, Inc. In-band device enrollment without access point support
US8259691B2 (en) 2006-09-05 2012-09-04 Marvell International Ltd. System and method for identifying an access point
US20080310452A1 (en) * 2007-06-14 2008-12-18 Texas Instruments Incorporated Data link layer headers
CN101471937B (zh) * 2007-12-27 2011-08-24 华为技术有限公司 以太报文复用、解复用方法及设备
CN101488954A (zh) * 2009-01-09 2009-07-22 中兴通讯股份有限公司 语音监听方法以及接入网关
US8831568B2 (en) 2011-09-27 2014-09-09 Qualcomm Incorporated Automatic configuration of a wireless device
US8925069B2 (en) * 2013-01-07 2014-12-30 Apple Inc. Accessory device authentication using list of known good devices maintained by host device
CN103237313B (zh) * 2013-04-07 2015-09-02 杭州电子科技大学 基于数据输出过滤机制的无线传感器网络数据收集方法
CN103327030B (zh) * 2013-07-10 2016-04-06 上海庆科信息技术有限公司 一种利用Wi-Fi报文长度进行信息传输的方法
CN104144086B (zh) * 2013-12-04 2018-09-11 腾讯科技(深圳)有限公司 通信方法和系统及信息发送和接收装置
CN104144034B (zh) * 2013-12-04 2016-04-13 腾讯科技(深圳)有限公司 密码共享和获取方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789143B2 (en) 2018-02-09 2020-09-29 SK Hynix Inc. Controller with ROM, operating method thereof and memory system including the controller
US11205361B2 (en) 2019-12-24 2021-12-21 Silicon Works Co., Ltd. Display driving device and display device including the same
US11295650B2 (en) 2019-12-24 2022-04-05 Silicon Works Co., Ltd Display driving device and display device including the same

Also Published As

Publication number Publication date
ES2702889T3 (es) 2019-03-06
EP3078164A1 (en) 2016-10-12
US20160112901A1 (en) 2016-04-21
WO2015081823A1 (en) 2015-06-11
CN104144086B (zh) 2018-09-11
US9918250B2 (en) 2018-03-13
EP3078164B1 (en) 2018-10-03
CN104144086A (zh) 2014-11-12
MY183511A (en) 2021-02-23
US10542458B2 (en) 2020-01-21
EP3078164A4 (en) 2016-10-12
US20180167846A1 (en) 2018-06-14
KR101859923B1 (ko) 2018-05-21

Similar Documents

Publication Publication Date Title
KR101859923B1 (ko) 데이터 패킷 헤더들을 통한 데이터 통신
US10165446B2 (en) Methods and systems for enabling communication with a receiver device in a network
US9338130B2 (en) Apparatus and method to register Wi-Fi clients on a Wi-Fi network
US20170359344A1 (en) Network-visitability detection control
CN107005927A (zh) 用户设备ue的接入方法、设备及系统
US10064059B1 (en) Autonomous pairing of internet of things devices utilizing broadcast packets
US20230239770A1 (en) Method and device for wireless transmission
US9113408B2 (en) Method and system for improved communication network setup utilizing extended terminals
US10986677B2 (en) Method and apparatus for connecting to access point in WLAN network
US20070116290A1 (en) Method of detecting incorrect IEEE 802.11 WEP key information entered in a wireless station
CN113596742B (zh) 一种数据传输方法及装置
US9807674B1 (en) Autonomous pairing of internet of things devices utilizing broadcast packets
US9882988B1 (en) Autonomous pairing of internet of things devices
US9172580B1 (en) Selecting transceiver for wireless network based on security keys
EP3350964B1 (en) Provisioning of a wireless device without keypad
CN111465007A (zh) 一种认证方法、装置和系统
US11736272B2 (en) Identifiable random medium access control addressing
CN117202313A (zh) 智能设备的自动配网方法及相关装置

Legal Events

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