KR20180060908A - 객체 이동성을 제공하는 통신 방법 및 장치 - Google Patents

객체 이동성을 제공하는 통신 방법 및 장치 Download PDF

Info

Publication number
KR20180060908A
KR20180060908A KR1020170059371A KR20170059371A KR20180060908A KR 20180060908 A KR20180060908 A KR 20180060908A KR 1020170059371 A KR1020170059371 A KR 1020170059371A KR 20170059371 A KR20170059371 A KR 20170059371A KR 20180060908 A KR20180060908 A KR 20180060908A
Authority
KR
South Korea
Prior art keywords
identifier
packet
locator
communication device
network
Prior art date
Application number
KR1020170059371A
Other languages
English (en)
Other versions
KR101984846B1 (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 한국과학기술원
Priority to US15/817,110 priority Critical patent/US20180152379A1/en
Publication of KR20180060908A publication Critical patent/KR20180060908A/ko
Application granted granted Critical
Publication of KR101984846B1 publication Critical patent/KR101984846B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • H04L67/18
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals

Landscapes

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

Abstract

객체의 이동성을 제공하는 통신 방법 및 장치가 개시된다. 네트워크들 간에 이동하는 객체의 이동성을 지원하기 위한 통신 방법에 있어서, 일 실시예에 따른 통신 방법은, 이동하는 상기 객체의 식별자 및 위치자에 기초하여 상기 객체가 이동한 네트워크로 상기 객체로 전송하려는 패킷을 포워딩하는 단계를 포함한다.

Description

객체 이동성을 제공하는 통신 방법 및 장치{COMMUNICATION METHOD AND APPARATUS PROVIDING MOBILITY OF OBJECTS}
아래 실시예들은 객체의 식별자를 이용한 네트워크 시스템에서 객체의 이동성을 제공하는 통신 방법 및 장치에 관한 것이다.
최근 스마트 기기, 사물 인터넷(IoT) 기기를 비롯한 다양한 객체들(things)의 이동성 및 연결성이 중요시 되면서 스마트 홈, 스마트 워크, 스마트 그리드, 스마트 공장, 클라우드 서비스 등과 같은 새로운 기술 트렌드가 등장하였다. 이로 인해, 생활과 문화의 패러다임이 기술 중심에서 인간 중심으로 변화하고 있다.
구글 안경(google glass), 커넥티드 카(connected car), 웨어러블 장치, 스마트 헬스 케어와 같은 사례에서 볼 수 있듯이, 모든 사물에 네트워킹 기능이 탑재되고 있다. 즉, 사용자의 인식 없이 객체들 간에 통신을 하거나, 객체들이 인터넷에 접속하는 일들이 일반화되고 있다. 이에 따라, 사용자는 특정 기기에 종속되지 않은 채, 언제, 어디서나 업무를 수행하거나 서비스를 이용할 수 있게 되었다.
이렇듯 이동성이 중요한 역할을 차지하지만 현재는 이를 지원하기 위한 접근 방법이 이동 통신망, 데이터 센터망, 응용 서비스 제공자 등으로 분리되어 있다.
단말 기반의 인터넷 프로토콜(IP) 이동성 기술은 전통적으로 이동통신망에서 연구가 진행돼 왔으며, 이와 별도로 가상 머신의 이동성과 관련된 연구는 데이터센터 망(또는 클라우드 망)에서 진행돼 오고 있다.
가상 머신의 이동성은 크게 오프라인 이동 방식 및 온라인(또는 라이브) 이동 방식이 존재하며, 라이브 이동 방식의 경우 가상 머신이 실행 중인 상태에서 IP 주소를 유지한 채 임의의 위치로 이동한다는 측면에서 단말 기반의 이동성과 유사성이 있다.
또한, 최근 가상화 기술이 발달함에 따라 Docker, Linux Container (LXC)와 같은 운영체제 수준의 가상화 기술(OS-level Virtualization)이 유망해지고 있으며, 가상 머신의 경량화가 가속화되고 있다. 이러한 경량화 추세 중에는 실행 중인 특정 애플리케이션(또는 프로세스)의 상태를 저장 및 복원하는 애플리케이션 Checkpoint/Restore (CR) 기술이 존재하며, 이는 애플리케이션 이동성 기술을 가능하게 한다. 애플리케이션 이동성은 특정 호스트에 있는 실행 중인 애플리케이션을 다른 호스트로 이동하는 것을 의미한다.
가상 머신 이동성 기술이 클라우드 환경 내에서 제한적으로 사용되고 있는 것에 반해, 애플리케이션 이동성 기술은 이동통신망, 유·무선 통합망 환경에서 사용자들이 새로운 서비스로 유용하게 사용할 수 있다.
실시예들은 객체의 식별자에 기초하여 패킷을 포워딩 함으로써, 객체의 이동성을 제공하는 기술을 제공할 수 있다.
네트워크들 간에 이동하는 객체의 이동성을 지원하기 위한 통신 방법에 있어서, 일 실시예에 따른 통신 방법은, 이동하는 상기 객체의 식별자 및 위치자에 기초하여 상기 객체가 이동한 네트워크로 상기 객체로 전송하려는 패킷을 포워딩하는 단계를 포함한다.
상기 객체는, 유·무선 단말, 가상 머신, 애플리케이션 및 응용 세션을 포함할 수 있다.
상기 식별자는, 상기 객체가 가진 고유 정보에 기초하여 구성되며, 상기 고유 정보는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identity), 휴대폰 번호, 애플리케이션 이름 및 버전을 포함할 수 있다.
상기 식별자는, 상기 고유 정보에 대하여 조합, 가공, 및 해싱(hashing) 중 적어도 하나를 수행하여 생성될 수 있다.
상기 포워딩 하는 단계는, 상기 이동하는 객체의 식별자 및 위치자를 업데이트하는 단계를 포함할 수 있다.
상기 업데이트하는 단계는, 상기 객체가 이동한 후, 상기 식별자 및 위치자를 데이터베이스 시스템에 저장하는 단계와, 상기 데이터베이스 시스템을 통해 상기 식별자 및 위치자를 조회하는 단계와, 상기 식별자 및 위치자를 상기 패킷에 삽입하는 단계를 포함할 수 있다.
상기 데이터베이스 시스템은, 상기 복수의 객체의 집합으로 구성될 수 있다.
상기 조회하는 단계는, 상기 식별자를 이용하여 상기 위치자를 조회하는 단계와, 상기 식별자를 이용하여 상기 객체에 연결된 다른 객체들의 식별자 및 위치자를 조회하는 단계를 포함할 수 있다.
상기 삽입하는 단계는, 상기 객체에 연결된 다른 객체의 식별자 및 위치자를 상기 패킷에 삽입하는 단계를 포함할 수 있다.
상기 식별자 또는 위치자는, 상기 패킷의 예약 필드에 삽입되고, 상기 예약 필드는 옵션 필드 및 확장 헤더를 포함할 수 있다.
상기 포워딩 하는 단계는, 업데이트된 식별자 및 위치자에 기초하여 상기 패킷을 상기 객체와 연결된 다른 객체로 전송하는 단계를 더 포함할 수 있다.
상기 통신 방법은 상기 패킷의 데이터를 삽입, 치환 또는 삭제하는 단계를 더 포함할 수 있다.
네트워크들 간에 이동하는 객체의 이동성을 지원하기 위한 통신 장치에 있어서, 일 실시예에 따른 통신 장치는 이동하는 상기 객체의 식별자 및 위치자에 기초하여 상기 객체가 이동한 네트워크로 상기 객체로 전송하려는 패킷을 포워딩하는 컨트롤러를 포함한다.
상기 객체는, 유·무선 단말, 가상 머신, 애플리케이션 및 응용 세션을 포함할 수 있다.
상기 식별자는, 상기 객체가 가진 고유 정보에 기초하여 구성되며, 상기 고유 정보는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identity), 휴대폰 번호, 애플리케이션 이름 및 버전을 포함할 수 있다.
상기 식별자는, 상기 고유 정보에 대하여 조합, 가공, 및 해싱(hashing) 중 적어도 하나를 수행하여 생성될 수 있다.
상기 컨트롤러는, 상기 이동하는 객체의 식별자 및 위치자를 업데이트하는 업데이트 모듈을 포함할 수 있다.
상기 업데이트 모듈은, 상기 객체가 이동한 후, 상기 식별자 및 위치자를 데이터베이스 시스템에 저장하는 저장 모듈, 상기 데이터베이스 시스템을 통해 상기 식별자 및 위치자를 조회하는 조회 모듈, 상기 식별자 및 위치자를 상기 패킷에 삽입하는 삽입 모듈을 포함할 수 있다.
상기 데이터베이스 시스템은, 상기 복수의 객체의 집합으로 구성될 수 있다.
상기 조회 모듈은, 상기 식별자를 이용하여 상기 위치자를 조회하고, 상기 식별자를 이용하여 상기 객체에 연결된 다른 객체들의 식별자 및 위치자를 조회할 수 있다.
상기 삽입 모듈은, 상기 객체에 연결된 다른 객체의 식별자 및 위치자를 상기 패킷에 삽입할 수 있다.
상기 식별자 또는 위치자는, 상기 패킷의 예약 필드에 삽입되고, 상기 예약 필드는 옵션 필드 및 확장 헤더를 포함할 수 있다.
상기 컨트롤러는, 업데이트된 식별자 및 위치자에 기초하여 상기 패킷을 상기 객체와 연결된 다른 객체로 전송하는 송/수신 모듈을 더 포함할 수 있다.
상기 컨트롤러는, 상기 패킷의 데이터를 삽입, 치환 또는 삭제하는 패킷 수정 모듈을 더 포함할 수 있다.
도 1은 일 실시예에 따른 통신 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 업데이트 모듈의 개략적인 블록도를 나타낸다.
도 3은 도 1에 도시된 통신 장치로 구현되는 통신 시스템의 예시이다.
도 4는 도 1에 도시된 통신 장치의 동작의 흐름의 예시이다.
도 5는 일 실시예에 따른 네트워크 패킷의 예시이다.
도 6은 도 1에 도시된 통신 장치가 제공하는 사물 이동성 플랫폼의 예시이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된(described) 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 통신 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 통신 장치(10)는 객체의 이동성을 지원할 수 있다. 통신 장치(10)는 단일 시스템 내에서 사용자들에게 유기적인 이동성 서비스를 제공할 수 있고, 이동하는 객체가 네트워크 상에서 이동하더라도 네트워킹 서비스를 유지할 수 있게 할 수 있다. 통신 장치(10)는 식별자와 위치자가 구별되어 있는 객체 식별 테이블을 지속적으로 업데이트 함으로써 객체의 이동성을 지원할 수 있다.
기존의 이동성 표준은 객체가 이동하더라도 그 객체의 IP 주소를 유지할 수 없다. 따라서, IP 주소 재할당, 네트워크 연결 재설정 등의 작업을 거쳐야 응용 서비스가 가능할 수 있다. 이러한 주소 재할당, 연결 재설정 등의 작업으로 인해 사용자는 네트워크 및 응용 서비스의 연결 끊김 현상을 경험하고, 다시 응용 서비스가 재개될 때까지 기다려야 하는 불편을 겪을 수 있다.
또한, Mobile IP(MIP), Proxy Mobile IP, Locator/Identifier Separation Protocol(LISP) 등과 같은 기존 이동성 표준은 사용자 단말의 이동성만을 제공하므로, 가상 머신, 애플리케이션, 응용 세션 등의 이동성은 제공할 수 없다. MIP를 포함한 기존의 이동성 지원 프로토콜은 단말의 수정이 필요하여, 느린 문제점을 가질 수 있었다.
기존 표준은 IP 주소를 주로 사용하여 단말을 인식하므로 객체 인식 단위가 단말 수준에 머물러 있으며, 단말 상에서 동작하는 가상 머신, 애플리케이션, 응용 세션 등을 인식하여 이들 객체에 이동성을 제공할 수 없다.
기존 표준은 애플리케이션 또는 응용 세션과 같이 하나의 세분화된 이동 객체가 네트워크상에서 이동하는 경우(즉, 이동 객체의 IP 주소, 포트 번호, 객체가 속한 운영체제 및 시스템 등이 변경되는 경우) 네트워크 연결 재설정이 이루어지지 않도록 네트워크상에서 적절한 패킷 포워딩(또는 라우팅)을 수행할 수 없다.
따라서, 기존 표준은 애플리케이션 또는 응용 세션과 같은 논리 단위의 객체가 이동하더라도 이를 감지할 수 없으며, 감지하더라도 적절한 패킷 포워딩을 수행할 수 없다.
또한, 기존 표준은 객체 수가 폭발적으로 증가하는 경우 이를 적절히 대처할 수 없으며, 이동 객체를 위한 보안성에 떨어질 수 있다. 즉, 기존 표준은 객체 수가 증가하는 경우 특정 네트워크 장비에 트래픽이 집중되는 현상이 있으며, 트래픽이 급증할 경우 이런 네트워크 장비에 장애가 발생하거나 속도가 느려져 사용자 품질이 저하될 수 있다. 기존 표준은 보안성의 측면에서도 특정 이동 단말을 대상으로 하는 중간자 공격에 취약할 수 있다.
통신 장치(10)는 객체의 위치가 아닌 객체의 식별자를 기반으로 포워딩(또는 라우팅)을 수행하여, 객체가 이동하더라도 객체의 식별자에 기초하여 변경된 객체의 위치를 파악하여 패킷을 포워딩(또는 라우팅)할 수 있다.
통신 장치(10)는 Mobile IP, Proxy Mobile IP, Locator/Identifier Separation Protocol 등과 같은 기존 표준에 비해 향상된 사용자 경험과 차별화된 서비스를 제공할 수 있다. 통신 장치(10)는 단말 이동성, 가상 머신 이동성, 애플리케이션 이동성, 응용 세션 이동성 등을 제공할 수 있다. 예를 들어, 통신 장치(10)는 인터넷에 연결되는 다양한 객체들에 이동성을 지원할 수 있다. 이러한 객체들은 스마트폰, 태블릿, 웨어러블 기기, 가전기기, 스마트 미터, 스마트 공장 기계 등을 포함할 수 있다.
통신 장치(10)는 또한, 다수의 사용자 및 이동 객체를 수용하기 위해 다수의 노드를 데이터베이스 시스템에 도입하여 확장성(Scalability)을 제공할 수 있다. 통신 장치(10)는 객체 정보에 관한 데이터를 분산 저장하거나 중앙 집중식으로 저장할 수 있다.
통신 장치(10)가 데이터를 중앙 집중식으로 저장하는 경우 관리의 편의성이 높아지고 데이터의 즉각적인 업데이트가 가능하지만, 단일점 고장(Single Point of Failure) 문제에 취약하고 이동 객체의 수가 급격히 늘어날 때 전체 시스템의 성능이 저하될 수 있다.
반면, 통신 장치(10)가 분산 해시 테이블(Distributed Hash Table (DHT))에서와 같이, 데이터를 분산하여 저장할 경우 확장성이 높아지고 일부 네트워크 장비의 장애에 강건해질 수 있다. 그러나, 분산 저장하는 방법은 시스템의 복잡성을 높이고 데이터 업데이트에 시간이 걸리는 단점을 가질 수 있다.
기존 표준에서는 중간자 공격과 같은 보안 문제에 상대적으로 취약할 수 있었지만, 통신 장치(10)는 다중 해시 기법을 통해 보안성을 강화할 수 있다. 즉, 통신 장치(10) 동일한 객체에 서로 다른 객체 ID(또는 해시) 값을 부여함으로써 인증되지 않은 공격자가 다수의 패킷을 중간에 캡쳐하더라도, 패킷들을 하나의 세션 흐름으로 재구성할 수 없어 공격자의 공격을 어렵게 만들고, 사용자 세션의 보안성을 강화할 수 있다.
통신 장치(10)는 기존 네트워크와의 호환성을 최대한으로 유지할 수 있다. 통신 장치(10)는 효율적인 라우팅을 제공하고, 이동성 정보(예를 들어, 객체의 식별자 및/또는 위치자)의 분산 저장을 통해 부하 분산 등의 이점을 제공할 수 있다.
통신 장치(10)는 네트워크 상에서 이동성 지원을 수행할 수 있어 단말을 수정하지 않고 객체의 이동성을 지원할 수 있다. 즉, 통신 장치(10)는 소프트웨어(S/W) 단위의 이동성을 제공하기 위해서도 단말을 수정하지 않고, 단말 상에서 동작하는 OS, S/W 라이브러리 등을 수정함으로써 이동성을 제공할 수 있다.
또한, 통신 장치(10)는 기존 네트워크 시스템, 장비, 단말과의 호환성을 유지할 수 있다. 통신 장치(10)는 객체의 이동성을 제공하기 위해 네트워크 가장자리에 배치된 네트워크 접근 스위치(또는 라우터)를 제외한, 기존의 네트워크 장비를 그대로 사용할 수 있다.
통신 장치(10)는 효율적인 라우팅을 제공할 수 있다. 기존의 이동성 지원 방법들은 비효율적인 삼각 라우팅 문제를 초래한다. 그에 반해 통신 장치(10)는 이동성 지원을 위한 별도의 고정된 라우팅 경로를 설정하지 않기 때문에, 삼각 라우팅 문제를 발생시키지 않을 수 있다. 통신 장치(10)는 항상 단말이 위치한 네트워크 스위치(또는 라우터)의 정보를 토대로 라우팅을 수행하기 때문에, 네트워크를 통해 객체 이동성에 대해 투명성(Transparency)을 가지고 라우팅을 수행할 수 있다.
통신 장치(10)는 이동성 정보의 분산 저장을 통해 부하를 분산할 수 있다. 이동성 정보를 스위치, 라우터와 같은 네트워크 장비 내에 분산 저장하거나, 별도의 단말, 서버에 분산 저장할 수 있다. 통신 장치(10)는 이러한 분산 저장 구조를 통해 특정 네트워크 장비에 이동성 정보 요청이 집중되는 현상을 방지할 수 있고, 분산에 참여하는 노드의 수를 동적으로 조절하여 분산의 효율을 높일 수 있다. 또한, 통신 장치(10)는 정보의 사본을 분산 저장함으로써, 특정 스위치나 라우터에 장애가 발생하더라도 복사본을 통해 이동성 서비스를 지속해서 제공할 수 있다.
통신 장치(10)가 사용되는 네트워크는 대규모 네트워크와 대규모 네트워크에 포함된 복수의 서브 네트워크로 구성될 수 있다. 서브 네트워크는 하나의 네트워크 접근 스위치에 대응할 수 있다.
네트워크 접근 스위치는 객체와 직접적으로 연결되는 스위치를 말하고, 객체와 직접적으로 연결되지 않는 스위치(예를 들어, 라우터, Border, 게이트웨이)는 네트워크 스위치로 정의할 수 있다.
통신 장치(10)는 컨트롤러(100)를 포함한다.
컨트롤러(100)는 이동하는 객체의 식별자 및 위치자에 기초하여 객체가 이동한 네트워크로 전송하려는 패킷을 포워딩할 수 있다. 컨트롤러(100)는 객체의 식별자 및 위치자를 업데이트 할 수 있다. 컨트롤러(100)는 업데이트된 식별자 및 위치자에 기초하여 상기 패킷을 상기 객체와 연결된 다른 객체로 전송할 수 있고, 패킷의 데이터를 삽입, 치환, 또는 삭제할 수 있다.
컨트롤러(100)는 컨트롤러(100)와 네트워크 스위치 간의 프로토콜을 통해 네트워크 스위치에 이동성을 부여하거나, 오류가 있는 스위치에 대한 복구 작업을 수행할 수 있다. 프로토콜은 Open Flow, 유사 Software-defined Networking (SDN) 프로토콜, Simple Network Management Protocol(SNMP) 등을 포함할 수 있다.
객체는 유·무선 단말, 가상 머신, 애플리케이션 및 응용 세션을 포함할 수 있다. 유·무선 단말은 PC(personal computer), 데이터 서버, 또는 휴대용 장치로 구현될 수 있다.
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 비다이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.
객체의 식별자는 객체가 가진 고유 정보에 기초하여 구성되며, 고유 정보는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identity), 휴대폰 번호, 애플리케이션 이름 및 버전을 포함할 수 있다. 이러한 식별자는 고유 정보에 대하여 조합, 가공, 및 해싱(hashing) 중 적어도 하나를 수행하여 생성될 수 있다.
객체의 식별자는 네트워크 상에서 통신 객체 자체를 식별하는 심벌을 의미할 수 있다. 예를 들어, 객체의 식별자는 DNS 이름 및 객체 ID등을 포함할 수 있다.
객체의 위치자는 네트워크 상에서 통신 객체의 위치를 지정하는 심벌을 의미할 수 있다. 예를 들어, 객체의 위치자는 객체의 IP 주소, IP 주소/포트 번호 조합을 포함할 수 있다.
컨트롤러(100)는 통신 장치(10)를 이용하여 구현되는 네트워크 시스템에 있어서, 하나로 구현될 수도 있고, 네트워크 시스템을 구성하는 복수의 장치 각각에 구현될 수도 있다. 또한, 네트워크 시스템을 구성하는 복수의 장치 각각에는 컨트롤러(100)의 일부 구성만이 구현될 수도 있다.
또한, 컨트롤러(100)는 복수의 객체 내부에도 구현될 수 있으며, 각 객체는 컨트롤러(100)의 일부 구성만을 포함할 수 있다. 객체가 S/W인 경우 컨트롤러(100)는 S/W가 소속된 H/W에 구현될 수 있다.
컨트롤러(100)는 중앙 집중식 또는 분산 방식으로 설계될 수 있으며, 객체 정보(예를 들어, 식별자 및 위치자)를 컨트롤러(100)에 저장하거나 별도의 데이터 베이스 시스템에 저장할 수 있다.
중앙 집중식으로 설계되는 경우, 컨트롤러(100)는 중앙 컨트롤러와 서브 컨트롤러를 포함할 수 있다. 서브 컨트롤러는 네트워크 시스템을 구성하는 복수의 장치에 구현될 수 있고, 중앙 컨트롤러는 복수의 서브 컨트롤러를 제어할 수 있다. 분산 방식으로 설계되는 경우, 컨트롤러(100)는 네트워크 시스템을 구성하는 복수의 장치 각각에 구현될 수 있고, 각각의 컨트롤러(100)가 중앙 컨트롤러와 동일한 동작을 수행할 수 있다.
컨트롤러(100) 내에 객체 정보를 저장할 경우 구현 및 설계가 간단할 수 있지만, 네트워크의 규모가 커질수록 컨트롤러(100)의 부하가 커지고 왕복 지연 시간이 길어질 수 있다. 따라서, 컨트롤러(100)에서 저장 모듈을 독립시켜 별도의 데이터베이스 시스템에 위치시키거나, 데이터베이스 시스템의 저장 모듈과 컨트롤러(100)의 저장 모듈을 주/부로 설정할 수 있다. 또한, 네트워크상의 모든 객체의 저장 모듈이 참여하는 분산 방식의 데이터베이스 시스템이 적용될 수도 있다.
예를 들어, 컨트롤러(100)는 분산 방식인 Distributed Hash Table (DHT) 시스템으로 구현될 수 있다. DHT는 해시 테이블을 분산된 노드에서 관리하는 구조로 확장성이 용이하기 때문에 P2P (Peer-to-Peer) 시스템, Facebook에서 개발한 카산드라와 같은 분산 파일 시스템 등에 이용될 수 있다. 분산 방식은 높은 안정성으로 Bitcoin과 같은 전자 화폐의 기반 시스템으로 사용될 수도 있다.
컨트롤러(100)는 업데이트 모듈(110), 송/수신 모듈(130) 및 패킷 수정 모듈(150)을 포함할 수 있다.
업데이트 모듈(110)은 객체의 식별자 및 위치자를 업데이트할 수 있다. 업데이트 모듈(110)의 동작은 도 2를 참조하여 상세하게 설명할 것이다.
송/수신 모듈(130)은 한 객체와 연결된 다른 객체로부터 패킷을 수신할 수 있고, 한 객체와 연결된 다른 객체로 패킷을 송신할 수 있다.
송/수신 모듈(130)은 업데이트 모듈(110) 및 패킷 수정 모듈(150)에 수신한 패킷을 출력할 수 있다.
패킷 수정 모듈(150)은 패킷의 데이터를 삽입, 치환, 또는 삭제할 수 있다. 패킷 수정 모듈(150)은 임의의 객체에 패킷 수정 규칙을 전송할 수 있다. 임의의 객체는 패킷 수정 규칙을 수신하면 수정 규칙에 따라 패킷을 삽입, 치환, 또는 삭제할 수 있다.
도 2는 도 1에 도시된 업데이트 모듈의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 업데이트 모듈(110)은 이동하는 객체의 식별자 및 위치자를 업데이트할 수 있다. 업데이트 모듈(110)은 객체가 이동하여 객체의 식별자 및 위치자에 변경이 생기면 이를 데이터베이스 시스템에 저장할 수 있고, 데이터베이스 시스템에 저장된 식별자 및 위치자를 조회할 수 있고, 조회된 식별자 및 위치자를 패킷에 삽입할 수 있다.
업데이트 모듈(110)은 저장 모듈(111), 조회 모듈(113) 및 삽입 모듈(115)를 포함할 수 있다.
저장 모듈(111)은 객체가 이동한 후, 객체의 식별자 및 위치자를 데이터베이스 시스템에 저장할 수 있다. 또한, 저장 모듈(111)은 객체의 식별자를 생성할 수 있다.
예를 들어, 객체의 식별자는 다음과 같이 생성될 수 있다. 저장 모듈(111)은 애플리케이션의 이름과 버전 정보, 사용 중인 포트 번호를 조합하여 {RemoteDesktop_v1.00_8039}와 같은 문자열을 생성할 수 있다. 저장 모듈(111)은 생성된 문자열을 SHA-256 해시 알고리즘을 사용하여 {C9EC1DD8B...... (생략)}와 같은 객체 식별자를 생성할 수 있다.
다른 예로, 저장 모듈(111)은 {“Rem”, “ote”, “Des”, “kto”, “p_v”, “1.0”, “0_8”, “039”}와 같이 조합 문자열에서 3자리마다 단어를 슬라이싱한 후, 각 3자리 단어에서 앞 문자를 추출하여 {RoDkp100}와 같은 객체 식별자를 생성할 수 있다.
데이터베이스 시스템은 하나의 객체로 구성되거나 복수의 객체의 집합으로 구성될 수 있다. 즉, 데이터베이스 시스템은 네트워크 스위치, 컨트롤러(100) 및 객체에 구현될 수 있다. 데이터베이스 시스템은 저장 모듈(111)을 포함할 수 있다.
예를 들어, 데이터베이스 시스템은 서버/클라이언트 모델, DHT 시스템을 포함할 수 있다. 또한 데이터 베이스 시스템은 식별자를 빠르게 조회하기 위해, 한번 조회한 식별자 정보를 로컬 캐시(cache)에 저장할 수도 있다.
서버/클라이언트 모델을 예로 들면, 중앙 컨트롤러가 서버의 역할을 하고, 각 네트워크 스위치의 저장 모듈(111)은 클라이언트의 역할을 수행할 수 있다.
DHT 시스템을 예로 들면, 각 네트워크 스위치의 저장 모듈(111)이 각각 DHT 시스템을 구성하는 동등한 수준의 노드가 되어 데이터를 분산 저장할 수 있다.
네트워크 스위치에 있어서, 저장 모듈(111)은 크게 두 개의 계층을 포함할 수 있다. 상위 계층은 서버/클라이언트 또는 DHT 노드 역할을 수행할 수 있고, 하위 계층은 로컬 캐시 역할을 수행할 수 있다. 하위 계층의 로컬 캐시는 상위 계층으로부터 데이터를 전달 받아 캐시할 수 있다. 각 스위치들은 하위 캐시를 보유함으로써, 통신 속도를 향상시킬 수 있다.
네트워크 스위치는 네트워크 접근 스위치를 포함할 수 있다.
저장 모듈(111)에 저장되는 데이터는 해시(hash) 테이블로 표현될 수 있다. 저장 모듈(111)은 해시 테이블의 키(key)로 객체의 식별자를 사용할 수 있고, 값(value)으로 객체와 연결된 하나 이상의 객체의 식별자 및 위치자를 사용할 수 있다.
저장 모듈(111)은 다음 네트워크 스위치(또는 라우터)의 IP 주소, 객체의 위치 정보(IP 주소)를 IP 헤더의 목적지 주소 필드에 명시적으로 저장할 수 있다.
조회 모듈(113)은 데이터베이스 시스템을 통해 객체의 식별자 및 위치자를 조회할 수 있다. 조회 모듈(113)은 객체의 식별자를 이용하여 객체의 위치자를 조회할 수 있고, 객체의 식별자를 이용하여 객체에 연결된 다른 객체들의 식별자 및 위치자를 조회할 수 있다.
조회 모듈(113)은 객체의 식별자에 다양한 정보를 매핑할 수 있다. 조회 모듈(113)이 매핑하는 데이터는 객체의 위치자, 객체와 연결된 네트워크 스위치의 식별자 및 위치자를 포함할 수 있다. 즉, 조회 모듈(113)이 임의의 객체의 식별자를 조회하면 조회된 객체와 연결된 다른 객체의 식별자 및 위치자를 조회할 수 있다.
네트워크 스위치의 조회 모듈(113)은 객체의 식별자를 네트워크 스위치의 저장 모듈(111)에 저장된 로컬 자료구조(캐시 또는 임시 테이블)에서 조회하여 객체의 위치 정보를 얻을 수 있다.
로컬 자료구조에 조회하려는 식별자가 존재하지 않을 경우, 조회 모듈(113)은 DHT 시스템에 해당 식별자를 조회하여 해당 객체의 위치 정보를 얻을 수 있다. 저장 모듈(111)은 로컬 자료구조에 DHT 시스템에서 가져온 데이터를 저장함으로써 다음 번 스위치의 식별자 조회 시간을 줄일 수 있다.
조회 모듈(113)은 객체의 위치 정보(예를 들어, 위치자)를 네트워크 스위치 내의 포워딩(또는 라우팅) 테이블에 조회하여 패킷이 다음에 도착해야 할 네트워크 스위치(또는 라우터)를 알 수 있다.
삽입 모듈(115)은 조회한 객체의 식별자 및 위치자를 패킷에 삽입할 수 있다. 삽입 모듈(115)은 객체에 연결된 다른 객체의 식별자 및 위치자를 패킷에 추가로 삽입할 수 있다. 또한, 삽입 모듈(115)은 패킷에 포워딩 및 전송할 목적지를 설정하여식별자 및 위치자가 삽입되고, 목적지가 설정된 패킷을 송/수신 모듈(130)로 출력할 수 있다.
패킷 내에 식별자 및 위치자가 삽입되는 위치는 예약된 필드일 수 있다. 예약된 필드는 옵션 필드 및 확장 헤더를 포함할 수 있다.
삽입 모듈(115)은 다른 네트워크 시스템 또는 장비와의 호환성을 위해, 객체의 식별자 정보가 포함된 옵션 필드 또는 확장 헤더를 패킷 내에 추가, 변경하거나 삭제할 수 있다.
삽입 모듈(115)은 저장 모듈(111)의 하위 계층의 로컬 캐시와 직접 통신하여 캐시된 객체의 정보를 송/수신할 수 있다.
또한, 삽입 모듈(115)은 삽입된 객체 식별자 및 위치자를 패킷으로부터 제거하여 기존 네트워크 시스템과의 호환성을 높일 수 있다. 이는 삽입 모듈(115)이 패킷으로부터 이동성 헤더를 제거하면 일반적인 IP 패킷을 생성할 수 있기 때문이다.
송/수신 모듈(130)이 이동성 헤더가 없는 패킷을 수신할 경우, 삽입 모듈(115)은 이동성 헤더 내부에 객체의 식별자를 생성하고, 이동성 헤더를 패킷에 삽입할 수 있다.
송/수신 모듈(130)이 이동성 헤더가 있는 패킷을 수신할 경우, 삽입 모듈(115)은 해당 패킷의 이동성 헤더의 객체 식별자를 참조하여, 수신한 패킷을 다른 스위치로 포워딩 할 것인지 또는 이동성 헤더를 제거하여 연결된 객체에 전송할 것인지를 결정할 수 있다. 예를 들어, 객체와 연결되어 객체의 식별자 정보를 가지고 있는 네트워크 스위치의 경우, 그 송/수신 모듈(130)이 이동성 헤더를 가진 패킷을 수신하면 이동성 헤더를 제거하여 객체로 전송할 수 있다. 그 외의 경우에는 이동성 헤더가 포함된 패킷을 수신할 경우 다른 스위치로 포워딩 할 수 있다.
삽입 모듈(115)이 구현될 수 있는 객체 및 네트워크 장치로는 S/W 라이브러리, OS, 단말, 네트워크 스위치가 포함될 수 있다.
도 3은 도 1에 도시된 통신 장치로 구현되는 통신 시스템의 예시이다.
도 3을 참조하면, 통신 시스템은 이동성 기능을 제공하는 네트워크 장치들을 포함할 수 있다. 네트워크 장치들은 네트워크 스위치(또는 라우터)와 유·무선 단말에 연결되는 네트워크 접근 스위치 및 이들을 관리하는 중앙 컨트롤러를 포함할 수 있다. 네트워크 스위치는 유선 스위치, Access Point (AP), Base Station (BS) 등을 포함할 수 있다.
네트워크 장치는 네트워크 스위치, 네트워크 접근 스위치, 별도 DB 및 객체를 포함할 수 있다. 각 네트워크 장치는 통신 장치(10)로 구현되거나, 통신 장치(10)의 일부 구성을 포함하여 구현될 수 있다. 각 네트워크 장치는 서로 상이한 구성을 포함할 수 있다. 즉, 각 네트워크 장치는 도 1 내지 도 2를 통해 설명된 통신 장치(10)의 동작의 전부 및/또는 일부를 실질적으로 동일하게 수행할 수 있다.
예를 들어, 네트워크 스위치, 네트워크 접근 스위치 및 단말은 저장 모듈(111), 조회 모듈(113), 삽입 모듈(115) 및 송/수신 모듈(130)을 포함할 수 있다. 별도 데이터베이스(DB)는 저장 모듈(111) 및 조회 모듈(113)을 포함할 수 있다.
도 3에서는 저장 모듈(111), 조회 모듈(113), 삽입 모듈(115) 및 송/수신 모듈(130)이 별도 구성된 것으로 도시되어 있지만, 도 1 내지 도 2에서 설명한 바와 같이 별도의 컨트롤러에 포함되어 구성될 수 있다. 별도의 컨트롤러가 네트워크 스위치, 네트워크 접근 스위치, 별도 DB 및 객체들을 제어할 수도 있는데, 이때 중앙 컨트롤러는 메인 컨트롤러로 동작하고, 각 네트워크 장치들의 별도의 컨트롤러는 서브 컨트롤러로 동작할 수 있다.
예를 들어, 도 3과 같이, 중앙 집중식으로 설계된 네트워크 시스템은 중앙 컨트롤러와 복수의 서브 컨트롤러로 구현될 수 있고, 중앙 컨트롤러는 복수의 서브 컨트롤러를 제어할 수 있다.
중앙 컨트롤러는 네트워크 스위치에 라우팅 규칙을 포함한 패킷을 전송할 수 있다. 라우팅 규칙을 통해 특정 패킷에 대한 패킷 처리 방식을 지정할 수 있다. 또한, 중앙 컨트롤러는 이동성 헤더를 추가/삭제할 네트워크 스위치를 선별하여 패킷 처리 역할 및 방식을 지정할 수 있다.
중앙 컨트롤러는 특정 네트워크 스위치의 포트에 대해 ‘활성화/비활성화’ 명령 패킷을 전송할 수 있다. 또한, 중앙 컨트롤러는 네트워크 스위치의 상태 정보 및 라우팅 규칙을 얻기 위한 ‘상태 보고’, ‘라우팅 규칙 보고’ 명령 패킷을 개별 네트워크 스위치에 전송할 수 있다.
네트워크 스위치는 네트워크 스위치 간의 통신 프로토콜(예를 들어, SDN 프로토콜, 링크 (또는 라우터) 및 상태 정보 교환을 위한 라우팅 프로토콜 등)을 통해 객체들의 이동성 정보를 공유할 수 있다. 네트워크 스위치는 객체가 있는 네트워크 접근 스위치 또는 AP까지 최적의 경로로 라우팅을 수행할 수 있다.
예를 들어, 네트워크 스위치는 새로 연결된 객체의 정보(식별자 등)를 중앙 컨트롤러 및 주변 스위치에 '새 연결 알림' 패킷을 보냄으로써 통지할 수 있다. 중앙 컨트롤러는 해당 객체가 네트워크 상에 완전히 새로이 진입한 것인지, 기존에 다른 네트워크 스위치에 이미 연결한 후 이동한 것인지를 파악할 수 있다. 후자의 경우, 중앙 컨트롤러는 해당 객체의 정보를 가진 다른 네트워크 스위치에 상기 이동 정보를 통지할 수 있다. 이러한 이동 정보를 통지 받은 스위치는 해당 객체로 향하는 데이터 패킷을 객체에 연결된 네트워크 스위치로 전송할 수 있다.
이동하는 객체가 노트북, 스마트폰과 같은 하드웨어(H/W) 객체인 경우, 네트워크 접근 스위치가 이들 객체의 이동성을 지원할 수 있다. 이동 객체가 가상 머신, 애플리케이션, 응용 세션과 같은 S/W 객체인 경우 이들 객체의 이동성을 지원하기 위해 H/W 객체에 이동성 기능이 설치될 수 있다. 이 경우, 이동성 기능을 설치하는 대상은 S/W가 소속된 H/W일 수 있다. 예를 들어, H/W는 유·무선 단말기 또는 네트워크 스위치일 수 있다.
도 4는 도 1에 도시된 통신 장치의 동작의 흐름의 예시이다.
도 4를 참조하면, 외부 서버와 통신 중인 객체(예를 들어, 단말)가 통신 중에 네트워크 스위치 S1에서 S2로 이동할 경우, 네트워크 스위치S2에서 이동한 객체의 연결을 감지할 수 있다. 네트워크 스위치는 객체가 유·무선으로 주기적으로(일반적으로 Broadcast 방식으로) 전송하는 프레임, 또는 링크 계층에서의 새로운 연결을 맺기 위해 전송하는 연결 요청 프레임 등을 통해서 객체의 연결 여부를 파악할 수 있다.
통신 장치(10)는 객체가 단말인 경우뿐만 아니라, 가상 머신, 애플리케이션, 응용 세션인 경우에도 이동 여부를 파악하기 위해, 송/수신하는 패킷에 객체의 식별자를 삽입할 수 있다.
네트워크 스위치는 이동한 객체가 자신에 연결되어 있다는 정보를 단말의 IP 주소 및 자신의 IP 주소와 함께 컨트롤러(100)에 전송하거나, 또는 데이터베이스 시스템에 전송할 수 있다. 네트워크상의 다른 스위치는 조회 모듈(113)을 통해, 객체가 어느 스위치에 연결되어 있는지를 조회할 수 있다.
네트워크 스위치 S3가 목적지 IP 주소가 객체인 패킷을 수신하는 경우, 컨트롤러(100)는 DHT 및 포워딩 테이블을 통해 수신한 패킷이 네트워크 스위치 S2로 포워딩 되어야 함을 알 수 있다.
초기 수신한 패킷에 이동성 헤더가 포함되어 있지 않은 경우, 네트워크 스위치의 삽입 모듈(115)은 객체의 식별자를 목적지 IP주소로 설정할 수 있다. 이 경우에, 이동성 헤더에 삽입되는 식별자 및 위치자가 모두 IP주소일 수 있다.
네트워크 스위치 S3의 삽입 모듈(115)은 목적지 IP 주소를 스위치 S2로 설정하고, 객체 식별자를 ID 값의 형태로 저장할 수 있다. 삽입 모듈(115)은 패킷에 객체 식별자가 저장된 옵션 필드 또는 확장 헤더를 삽입할 수 있다. 패킷이 스위치 S2에 도착하면 네트워크 접근 스위치 S2의 삽입 모듈(115)은 삽입된 객체 식별자 정보를 토대로 목적지 IP 주소를 객체로 설정할 수 있다. 그 후, 스위치 S2의 송/수신 모듈(130)은 객체로 패킷을 전송할 수 있다.
도 5는 일 실시예에 따른 네트워크 패킷의 예시이다.
도 5를 참조하면, 객체의 식별자는 삽입 모듈(115)에 의해 네트워크 패킷의 'object ID header' 내에 저장될 수 있다. 이 헤더는 기존 IPv4 헤더의 옵션 필드의 형태로, 또는 IPv6 헤더의 확장 헤더의 형태로 추가될 수 있다. 삽입 모듈(115)은 식별자 및 위치자를 기존 패킷 헤더의 예약된 필드 또는 사용하지 않는 필드에 삽입함으로써, 기존 네트워크 시스템과의 호환성을 높일 수 있다.
도 6은 도 1에 도시된 통신 장치가 제공하는 사물 이동성 플랫폼의 예시이다.
도 6을 참조하면, 일 실시예에 따른 통신 장치(10)는 사물 이동성 플랫폼에 기반하여 다양한 객체에 대하여 이동성 기능을 제공할 수 있다. 상술한 바와 같이, 통신 장치(10)는 유·무선 단말, 가상 머신, 애플리케이션, 응용 세션 등의 구분 없이 가능한 모든 객체에 이동성을 제공할 수 있다. 특히 통신 장치(10)는 애플리케이션, 응용 세션과 같이 세분화된 객체의 이동성을 제공할 수 있으며, 이를 통해 기존 컴퓨팅 환경에서 불가능하였던 다양한 활용 시나리오를 가능케 한다. 애플리케이션이나 응용 세션 단위의 이동성을 통해 사용자에게 다음과 같은 새로운 사용자 경험을 제공할 수 있다.
통신 장치(10)는 동적 커널 변경을 수행할 수 있다. 기존 네트워크 시스템에서는 커널을 업데이트하기 위해 재부팅이 필요하며, 이를 위해 실행 중인 사용자의 애플리케이션을 모두 종료해야만 했다. 통신 장치(10)는 사용자 애플리케이션의 중단 없이 애플리케이션을 다른 호스트로 이동함으로써 커널을 변경할 수 있다.
통신 장치(10)는 네트워크의 부하를 분산시킬 수 있다. 통신 장치(10)는 애플리케이션에 이동성을 지원함으로써, 다른 네트워크에 있는 임의의 호스트(예를 들어, 서버)에 실행 중인 애플리케이션을 이동시킬 수 있다. 이로써, 통신 장치(10)는 네트워크의 특정 호스트 및 특정 애플리케이션에 집중되는 네트워크 트래픽을 분산 시킬 수 있다. 또한, 통신 장치(10)는 이동되는 애플리케이션의 네트워킹 서비스의 중단 없이 서비스를 유지시킬 수 있다.
통신 장치(10)는 고성능 컴퓨팅을 제공할 수 있다. 통신 장치(10)를 통해, 저비용 낮은 사양의 기기를 사용할 때에도, 애플리케이션 이동성을 사용하여 고성능이 요구되는 연산을 고성능 기기에서 실행하여 그 결과를 얻을 수 있다. 통신 장치(10)는 애플리케이션 서비스의 네트워크 중단 없이 고성능 연산을 수행하여 결과 애플리케이션을 사용자 단말에 다시 전달할 수 있다.
통신 장치(10)는 애플리케이션 디버깅을 수행할 수 있다. 기존 네트워크 시스템에서는, 사용자 단말에 설치된 애플리케이션에서 문제가 발생하는 경우 이를 디버깅하기 위해 애플리케이션 로그를 전송 받아 분석하거나 원격 접속을 통해 직접 해당 기기에서 디버깅을 수행하였다. 통신 장치(10)는 애플리케이션 이동성을 통해 문제가 발생한 애플리케이션을 사용자의 단말에서 개발자 컴퓨터로 이동하여 이를 분석함으로써 발생한 문제를 즉각 파악하여 디버깅을 수행할 수 있다. 특히, 통신 장치(10)는 네트워크의 중단 없이 디버깅을 수행할 수 있으므로 소켓과 같이 운영체제 내부 네트워크 객체의 문제 상황을 정확히 진단할 수 있다.
통신 장치(10)는 장애 복구(Fault Recovery)를 수행할 수 있다. 통신 장치(10)는 장애 발생 시 많은 인명, 재산 피해를 초래할 수 있는 시스템에서 특정 서버에 장애가 발생하는 경우, 해당 애플리케이션을 신속히 다른 호스트로 이동함으로써 빠른 시간 내에 장애를 복구하고 장애에 따른 피해를 최소화할 수 있다. 통신 장치(10)는 네트워크의 중단 없이 서비스를 지속할 수 있으므로 장애에 따른 서비스 중단을 방지할 수 있다.
즉, 통신 장치(10)는 네트워크상에서 애플리케이션 이동성을 지원함으로써 사용자에게 새로운 컴퓨팅 경험을 제공할 수 있다. 통신 장치(10)는 하드웨어 단말, 기기뿐만 아니라 소프트웨어와 소프트웨어가 실행 중 상태인 세션의 이동성도 가능케 하는 데 그 의의가 있다.
네트워크 사업자 및 네트워크 장비 사업자는 통신 장치(10)를 통해 많은 수의 이동성 표준 및 기술들을 모두 구현해야 하는 부담을 덜 수 있으며, 네트워크 장비 간 상호 호환성을 높일 수 있다. 사업자는 통신 장치(10)를 구현함으로써 다양한 객체에 이동성을 지원할 수 있으며, 애플리케이션 및 응용 세션 이동성이 제공하는 새로운 사용자 경험을 사용자에게 제공할 수 있다.
이외에도 통신 장치(10)는 사용자(또는 객체) 수에 비례하여 원활한 이동성 서비스를 제공할 수 있도록 객체 정보의 분산 저장을 지원한다. 따라서 통신 장치(10)는 특정 네트워크 장비에 집중되는 트래픽을 분산할 수 있어 확장성(Scalability)을 가진다. 네트워크 사업자는 특정 지역 내의 객체 수에 비례하여 네트워크 장비를 배치함으로써 사용자에게 안정적인 이동성 서비스를 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (24)

  1. 네트워크들 간에 이동하는 객체의 이동성을 지원하기 위한 통신 방법에 있어서,
    이동하는 상기 객체의 식별자 및 위치자에 기초하여 상기 객체가 이동한 네트워크로 상기 객체로 전송하려는 패킷을 포워딩하는 단계
    를 포함하는 통신 방법.
  2. 제1항에 있어서,
    상기 객체는,
    유·무선 단말, 가상 머신, 애플리케이션 및 응용 세션
    을 포함하는 통신 방법.
  3. 제1항에 있어서,
    상기 식별자는,
    상기 객체가 가진 고유 정보에 기초하여 구성되며,
    상기 고유 정보는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identity), 휴대폰 번호, 애플리케이션 이름 및 버전을 포함하는
    통신 방법.
  4. 제3항에 있어서,
    상기 식별자는,
    상기 고유 정보에 대하여 조합, 가공, 및 해싱(hashing) 중 적어도 하나를 수행하여 생성되는
    통신 방법.
  5. 제1항에 있어서,
    상기 포워딩 하는 단계는,
    상기 이동하는 객체의 식별자 및 위치자를 업데이트하는 단계;
    를 포함하는 통신 방법.
  6. 제5항에 있어서,
    상기 업데이트하는 단계는,
    상기 객체가 이동한 후, 상기 식별자 및 위치자를 데이터베이스 시스템에 저장하는 단계;
    상기 데이터베이스 시스템을 통해 상기 식별자 및 위치자를 조회하는 단계; 및
    상기 식별자 및 위치자를 상기 패킷에 삽입하는 단계
    를 포함하는 통신 방법.
  7. 제6항에 있어서,
    상기 데이터베이스 시스템은,
    상기 복수의 객체의 집합으로 구성되는
    통신 방법.
  8. 제6항에 있어서,
    상기 조회하는 단계는,
    상기 식별자를 이용하여 상기 위치자를 조회하는 단계; 및
    상기 식별자를 이용하여 상기 객체에 연결된 다른 객체들의 식별자 및 위치자를 조회하는 단계
    를 포함하는 통신 방법.
  9. 제6항에 있어서,
    상기 삽입하는 단계는,
    상기 객체에 연결된 다른 객체의 식별자 및 위치자를 상기 패킷에 삽입하는 단계
    를 포함하는 통신 방법.
  10. 제6항에 있어서,
    상기 식별자 또는 위치자는,
    상기 패킷의 예약 필드에 삽입되고,
    상기 예약 필드는 옵션 필드 및 확장 헤더를 포함하는
    통신 방법.
  11. 제5항에 있어서,
    상기 포워딩 하는 단계는,
    업데이트된 식별자 및 위치자에 기초하여 상기 패킷을 상기 객체와 연결된 다른 객체로 전송하는 단계
    를 더 포함하는 통신 방법.
  12. 제1항에 있어서,
    상기 패킷의 데이터를 삽입, 치환 또는 삭제하는 단계
    를 더 포함하는 통신 방법.
  13. 네트워크들 간에 이동하는 객체의 이동성을 지원하기 위한 통신 장치에 있어서,
    이동하는 상기 객체의 식별자 및 위치자에 기초하여 상기 객체가 이동한 네트워크로 상기 객체로 전송하려는 패킷을 포워딩하는 컨트롤러
    를 포함하는 통신 장치.
  14. 제13항에 있어서,
    상기 객체는,
    유·무선 단말, 가상 머신, 애플리케이션 및 응용 세션
    을 포함하는 통신 장치.
  15. 제13항에 있어서,
    상기 식별자는,
    상기 객체가 가진 고유 정보에 기초하여 구성되며,
    상기 고유 정보는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identity), 휴대폰 번호, 애플리케이션 이름 및 버전을 포함하는
    통신 장치.
  16. 제15항에 있어서,
    상기 식별자는,
    상기 고유 정보에 대하여 조합, 가공, 및 해싱(hashing) 중 적어도 하나를 수행하여 생성되는
    통신 장치.
  17. 제13항에 있어서,
    상기 컨트롤러는,
    상기 이동하는 객체의 식별자 및 위치자를 업데이트하는 업데이트 모듈
    을 포함하는 통신 장치.
  18. 제17항에 있어서,
    상기 업데이트 모듈은,
    상기 객체가 이동한 후, 상기 식별자 및 위치자를 데이터베이스 시스템에 저장하는 저장 모듈;
    상기 데이터베이스 시스템을 통해 상기 식별자 및 위치자를 조회하는 조회 모듈; 및
    상기 식별자 및 위치자를 상기 패킷에 삽입하는 삽입 모듈
    을 포함하는 통신 장치.
  19. 제18항에 있어서,
    상기 데이터베이스 시스템은,
    상기 복수의 객체의 집합으로 구성되는
    통신 장치.
  20. 제18항에 있어서,
    상기 조회 모듈은,
    상기 식별자를 이용하여 상기 위치자를 조회하고, 상기 식별자를 이용하여 상기 객체에 연결된 다른 객체들의 식별자 및 위치자를 조회하는
    통신 장치.
  21. 제18항에 있어서,
    상기 삽입 모듈은,
    상기 객체에 연결된 다른 객체의 식별자 및 위치자를 상기 패킷에 삽입하는
    통신 장치.
  22. 제18항에 있어서,
    상기 식별자 또는 위치자는,
    상기 패킷의 예약 필드에 삽입되고,
    상기 예약 필드는 옵션 필드 및 확장 헤더를 포함하는
    통신 장치.
  23. 제17항에 있어서,
    상기 컨트롤러는,
    업데이트된 식별자 및 위치자에 기초하여 상기 패킷을 상기 객체와 연결된 다른 객체로 전송하는 송/수신 모듈
    을 더 포함하는 통신 장치.
  24. 제13항에 있어서,
    상기 컨트롤러는,
    상기 패킷의 데이터를 삽입, 치환 또는 삭제하는 패킷 수정 모듈
    을 더 포함하는 통신 장치.
KR1020170059371A 2016-11-29 2017-05-12 객체 이동성을 제공하는 통신 방법 및 장치 KR101984846B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/817,110 US20180152379A1 (en) 2016-11-29 2017-11-17 Communication Method and Apparatus Providing Mobility of Object

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160160859 2016-11-29
KR20160160859 2016-11-29

Publications (2)

Publication Number Publication Date
KR20180060908A true KR20180060908A (ko) 2018-06-07
KR101984846B1 KR101984846B1 (ko) 2019-05-31

Family

ID=62621687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170059371A KR101984846B1 (ko) 2016-11-29 2017-05-12 객체 이동성을 제공하는 통신 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101984846B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200030856A (ko) * 2018-09-13 2020-03-23 한국과학기술원 이동성 관리 및 프라이버시 보호를 동시에 제공하는 방법 및 장치
KR102361138B1 (ko) * 2020-08-24 2022-02-09 숭실대학교 산학협력단 Lisp 네트워크를 기반으로 한 통신 매핑 시스템 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SIMM 확장 및 상호운용 가능한 이동성 관리(한상엽 외 4인, 2016 한국 컴퓨터종합학술대회, 2016.07.01.) *
Stateful session handoff for mobile WWW(M. Hsieh et al, 2006.05.08.) 1부.* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200030856A (ko) * 2018-09-13 2020-03-23 한국과학기술원 이동성 관리 및 프라이버시 보호를 동시에 제공하는 방법 및 장치
US10715998B2 (en) 2018-09-13 2020-07-14 Korea Advanced Institute Of Science And Technology Method and apparatus for simultaneously providing mobility management and privacy protection
KR102361138B1 (ko) * 2020-08-24 2022-02-09 숭실대학교 산학협력단 Lisp 네트워크를 기반으로 한 통신 매핑 시스템 및 방법

Also Published As

Publication number Publication date
KR101984846B1 (ko) 2019-05-31

Similar Documents

Publication Publication Date Title
US10484337B2 (en) Scalable proxy clusters
US11765057B2 (en) Systems and methods for performing end-to-end link-layer and IP-layer health checks between a host machine and a network virtualization device
US9923786B2 (en) System and method for performing a service discovery for virtual networks
US20220206908A1 (en) Techniques for replicating state information for high availability
Abdelaziz et al. Distributed controller clustering in software defined networks
KR102046700B1 (ko) 메시지 버스 서비스 디렉토리
US9178829B2 (en) System for communication in a tactical network
EP3353952B1 (en) Managing groups of servers
US20160072678A1 (en) Systems and methods for enhanced discovery
US10819659B2 (en) Direct replying actions in SDN switches
WO2014089799A1 (zh) 一种确定虚拟机漂移的方法和装置
US20200305042A1 (en) Interest packet routing in information centric networks
US11968080B2 (en) Synchronizing communication channel state information for high flow availability
Zhong et al. An efficient SDN load balancing scheme based on variance analysis for massive mobile users
EP3178215B1 (en) Routing requests with varied protocols to the same endpoint within a cluster
Chaudhary et al. A comprehensive survey on software‐defined networking for smart communities
KR101984846B1 (ko) 객체 이동성을 제공하는 통신 방법 및 장치
US20220210086A1 (en) Managing network state for high flow availability within distributed network platform
US11032389B1 (en) Applying application-based policy rules using a programmable application cache
Safdar et al. ARP Overhead Reduction Framework for Software Defined Data Centers
US20180152379A1 (en) Communication Method and Apparatus Providing Mobility of Object
US20240223440A1 (en) Synchronizing communication channel state information for high flow availability
WO2023005317A1 (zh) 通信系统、方法及装置
Ojala State management in coreless mobile networks
CN116319514A (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