KR20220076826A - Ndn 기반의 인-네트워크 처리 방법 및 시스템 - Google Patents

Ndn 기반의 인-네트워크 처리 방법 및 시스템 Download PDF

Info

Publication number
KR20220076826A
KR20220076826A KR1020200165701A KR20200165701A KR20220076826A KR 20220076826 A KR20220076826 A KR 20220076826A KR 1020200165701 A KR1020200165701 A KR 1020200165701A KR 20200165701 A KR20200165701 A KR 20200165701A KR 20220076826 A KR20220076826 A KR 20220076826A
Authority
KR
South Korea
Prior art keywords
container image
ndn
container
request
image
Prior art date
Application number
KR1020200165701A
Other languages
English (en)
Inventor
신지수
강세훈
고남석
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020200165701A priority Critical patent/KR20220076826A/ko
Publication of KR20220076826A publication Critical patent/KR20220076826A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 NDN(Named Data Networking) 기반의 인-네트워크 처리 방법을 제공할 수 있다. NDN 기반의 인-네트워크 처리 방법은 INC(In-Network Computing) 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'INC 라우터' 라 함) 및 적어도 하나의 Non-INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'Non-INC 라우터' 라 함)를 구비한 적어도 하나의 서브 네트워크를 포함하는 네트워크 시스템 내에서, 상기 INC 라우터가 INC 요청 인터레스트 패킷을 수신하는 과정과, 상기 INC 라우터가, 상기 적어도 하나의 서브 네트워크에서, INC 요청의 수행을 위한 컨테이너 이미지가 존재하는지 여부를 확인하는 과정과, 상기 컨테이너 이미지의 존재 여부에 대응하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 과정과, 상기 컨테이너 이미지를 사용하여 상기 INC 요청의 수행을 처리하는 과정을 포함한다.

Description

NDN 기반의 인-네트워크 처리 방법 및 시스템{METHOD FOR NDN BASED IN-NETWORK COMPUTING AND APPARATUS FOR THE SAME}
본 발명은 NDN(Named Data Networking) 기반의 인-네트워크 컴퓨팅 기술에 대한 것이며, 보다 구체적으로는 인-네트워크 컴퓨팅에서 사용되는 컨테이너를 처리하는 방법 및 장치에 대한 것이다.
최근의 인터넷의 주된 응용은 전통적인 점-대-점(point-to-point) 형태의 통신보다는 대규모의 콘텐츠에 대한 생산과 전달로 변화했으며, 인터넷 유저는 그들이 원하는 콘텐츠가 무엇인지에 신경을 쓰지 그 콘텐츠가 어디에 위치하는가는 관심이 없다. 이에 대한 대응으로 기존의 호스트 중심의 통신 메커니즘에서 벗어나 네임드 인포메이션(또는 콘텐츠 또는 데이터)에 초점을 맞춘 정보 중심 네트워킹(ICN: Information Centric Networking)의 개념이 등장하게 되었으며, 이를 위한 네임 기반 네트워크 프로세싱 방법이 필요할 수 있다. ICN에서는 모든 데이터에 이름을 부여하고 이 이름을 기반으로 통신이 수생된다. ICN의 대표적인 프로젝트로는 CCN(Content Centric Networking), NDN(Named Data Networking) 등이 있다. CCN과 NDN은 같은 뿌리를 가진 프로젝트로서 개념적으로 큰 차이는 없기 때문에 하기에서는 NDN으로 통칭한다. 또한, 콘텐츠, 데이터 등의 용어도 NDN에서 사용하는 데이터로 통일하여 지칭한다.
한편, 인-네트워크 프로세싱(INP; In-Network Processing)라고도 불리는 인-네트워크 컴퓨팅(INC, In-Network Computing) 기술은 사용자 장비나 서버에서 수행되는 컴퓨팅 연산을 네트워크 장비로 이전시켜 수행하는 기술이다. IoT와 빅-데이터 환경에서 INC 기술을 활용하면 데이터와 컴퓨팅 연산의 특징에 따라 최적의 네트워크 위치에서 연산을 수행할 수 있기 때문에 연산을 위한 컴퓨팅 리소스가 부족한 사용자를 지원할 뿐만 아니라 빠른 서비스가 가능하고, 네트워크의 트래픽 오버헤드를 줄일 수 있다.
이러한, INC 기술을 NDN에 적용하여 시스템을 구축하고자 하는 시도가 이루어지고 있다.
어플리케이션의 개발과 배포를 위해 컨테이너 서비스가 사용되고 있다. 컨테이너는 어플리케이션이 필요로 하는 서버 장치의 환경을 재구축하는 부가적인 작업을 수행하지 않고, 로컬 장치에서 개발에 필요한 라이브러리와 종속 요소들을 포함하는 환경을 애뮬레이션하는 기술이다. 즉, 기존 가상 머신 기술이 호스트 OS 상에서 게스트 OS 전체를 가상화하는 방식이라면, 컨테이너 기술은 하이퍼바이저를 사용하지 않고 컴퓨팅 자원 및 프로세스를 격리하는 기술이다. 두 기술 모두 호스트 OS 자원을 논리적으로 분리하여 어플리케이션 구동을 위한 격리된 환경을 제공하지만, 컨테이너는 OS를 공유하기 때문에 필요한 만큼의 컴퓨팅 자원을 동적으로 할당할 수 있으며, 빠르게 구동할 수 있는 장점이 있다.
하나의 컨테이너 환경은, 구동할 함수가 필요로 하는 라이브러리나, 하나 이상의 레이어로 빌드된 하나의 컨테이너 이미지로 구동된다. 사용자의 요청이 빈번하게 발생하여 자주 사용되는 컨테이너 이미지의 경우, 컴퓨팅 노드에 캐싱되어 있을 확률이 높지만, 사용자가 요구하는 어플리케이션에 적합한 컨테이너 이미지가 없을 경우에는 새로운 컨테이너 이미지를 빌드해야 한다. 그러나 새로운 이미지를 빌드하기 위해서는 상대적으로 매우 오랜 시간이 걸릴 수 있다.
본 개시의 기술적 과제는 전술한 문제를 고려한 것으로써, 컨테이너 이미지에 대한 정보를 네트워크 내에서 공유할 수 있는 NDN 기반의 인-네트워크 처리 방법 및 시스템을 제공하는데 있다.
본 개시의 다른 기술적 과제는 컨테이너 이미지의 빌드와, 컨테이너 이미지의 다운로드를 선택적으로 수행하는 NDN 기반의 인-네트워크 처리 방법 및 시스템을 제공하는데 있다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따르면, NDN 기반의 인-네트워크 처리 방법이 개시된다. 상기 방법은, INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, ' INC 라우터' 라 함) 및 적어도 하나의 Non-INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'Non-INC 라우터' 라 함)를 구비한 적어도 하나의 서브 네트워크를 포함하는 네트워크 시스템 내에서, 상기 INC 라우터가 INC 요청 인터레스트 패킷을 수신하는 과정과, 상기 INC 라우터가, 상기 적어도 하나의 서브 네트워크에서, INC 요청의 수행을 위한 컨테이너 이미지가 존재하는지 여부를 확인하는 과정과, 상기 컨테이너 이미지의 존재 여부에 대응하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 과정과, 상기 컨테이너 이미지를 사용하여 상기 INC 요청의 수행을 처리하는 과정을 포함할 수 있다.
본 개시의 다른 기술적 과제는 NDN 기반의 인-네트워크 처리 시스템을 개시한다. 상기 시스템은 INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'INC 라우터' 라 함)와, 적어도 하나의 Non-INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'Non-INC 라우터' 라 함)를 구비한 적어도 하나의 서브 네트워크와, 상기 적어도 하나의 서브 네트워크에 결합되는 코어 네트워크를 포함할 수 있다. 여기서, 상기 INC 라우터는 사용자 노드로부터 INC 요청 인터레스트 패킷을 수신하고, 상기 적어도 하나의 서브 네트워크에서, INC 요청의 수행을 위한 컨테이너 이미지가 존재하는지 여부를 확인하고, 상기 컨테이너 이미지의 존재 여부에 대응하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하고, 상기 컨테이너 이미지를 사용하여 상기 INC 요청의 수행을 처리할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 발명에 따르면, 컨테이너 이미지에 대한 정보를 네트워크 내에서 공유할 수 있는 NDN 기반의 인-네트워크 처리 방법 및 시스템을 제공할 수 있다.
본 발명에 따르면, 컨테이너 이미지의 빌드와, 컨테이너 이미지의 다운로드를 선택적으로 수행하는 NDN 기반의 인-네트워크 처리 방법 및 시스템을 제공할 수 있다.
본 발명에 따르면, 컨테이너 이미지를 빌드하지 않고 공유하여 사용하므로 빠른 컨테이너 실행 환경을 제공할 수 있으며, 빠른 연산 결과를 얻을 수 있다.
본 발명에 따르면, 서브 네트워크 내에서만 컨테이너 이미지 정보 목록을 공유하므로 코어 네트워크의 트래픽 오버헤드 없이 컨테이너 이미지의 공유를 실현할 수 있다.
본 발명에 따르면, 서브 네트워크 내에서 컨테이너 이미지를 다운로드하므로 클라우드로 향하는 트래픽을 줄일 수 있으며, 클라우드의 작업을 줄일 수 있으므로 전력 등 자원 사용량을 최소화할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 NDN을 나타낸 도면이다.
도 2는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템이 적용되는 NDN 환경을 나타낸 도면이다.
도 3a 내지 도 3c는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에서 사용되는 컨테이너 이미지와 레이어를 예시하는 도면이다.
도 4는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템이 적용되는 네트워크 구조를 예시하는 도면이다.
도 5는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 서브 네트워크의 세부 구성을 예시하는 도면이다.
도 6은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에서 사용되는 컨테이너 정보 테이블 엔트리를 예시하는 도면이다.
도 7은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 INC 에이전트의 동작을 예시하는 도면이다.
도 8은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 컴퓨팅 노드의 동작을 예시하는 도면이다.
도 9는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 장치의 구성을 나타낸 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 제시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 NDN에 기초하여 동작하는 방법을 나타낸 도면이다.
도 1을 참조하면, 상술한 NDN은 유저(110)와 연결된 하나 이상의 노드를 포함할 수 있다. 이때, 각각의 노드는 스토리지를 포함하거나 부착하고 있는 엔티티일 수 있다. 이때, 유저(110)가 요청한 콘텐츠는 유저(110) 근처에 위치한 노드에 포함되거나 부착된 스토리지로부터 획득할 수 있다. 즉, NDN은 콘텐츠가 각각의 노드에 배치될 수 있으며, 이를 통해 유저(110)에게 빠른 서비스가 가능할 수 있다. 또한, 일 예로, NDN은 IP 헤더 대신 콘텐츠의 명칭을 이용하여 콘텐츠를 송수신할 수 있다. 보다 상세하게는, 유저(110)가 요청하는 콘텐츠의 명칭으로 구성된 인터레스트를 브로드캐스팅할 수 있다. 이때, 인터레스트는 유저(110)의 콘텐츠 요청 패킷일 수 있다. 즉, 유저(110)는 콘텐츠를 요청하기 위해 인터레스트를 전송할 수 있다. 한편, 요청된 콘텐츠를 저장하고 있는 노드가 인터레스트를 수신하는 경우, 해당 노드는 인터레스트에 대한 응답으로 콘텐츠를 전달할 수 있다. 이때, 일 예로, 상술한 NDN은 유무선 네트워크에 기초하여 구현될 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 일 예로, NDN에서 포워딩 테이블은 펜딩 인터레스트 테이블(PIT; Pending Interest Table)과 포워딩 정보 베이스(FIB; Forwarding Information Base)로 나뉠 수 있다. 이때, PIT는 콘텐츠 요청자가 어디에 있는지를 지시하는 정보일 수 있다. 또한, FIB는 인터레스트가 어디로 전달되는지를 지시할 수 있다. PIT는 인터레스트의 명칭과 인터레스트의 도착 지점 간의 맵핑을 저장할 수 있다.
NDN에서는 두 가지 패킷 타입이 사용될 수 있다. 이때, 패킷 타입은 상술한 인터레스트(Interest)와 데이터(Data) 패킷일 수 있다. 또한, NDN에서는 데이터 컨슈머(또는 유저)에 의해 통신이 시작될 수 있다. 이때, 컨슈머는 원하는 데이터의 이름을 인터레스트 패킷에 포함시켜 네트워크에 보내고, 라우터는 FIB(Forwarding Information Base)를 기반으로 라우팅을 수행할 수 있다. 만약 라우터가 인터레스트 패킷에 포함된 이름과 매칭되는 데이터를 갖고 있다면 해당 데이터를 데이터 패킷에 포함시켜 반대 방향으로 보낼 수 있다.
또한, 라우터는 다음 노드로 포워딩된 인터레스트 패킷 및 그에 대한 데이터 패킷이 도착하는 경우, 라우터는 목적지 정보를 PIT(Pending Information Table)을 통해 관리할 수 있다. 또한, 라우터는 미래의 동일한 요청을 보다 빨리 처리하기 위해 자신이 전달한 데이터를 CS(Content Store)에 일정시간 캐싱할 수 있다.
또한, 일 예로, 로컬 호스트에서의 프로세싱(또는 컴퓨팅) 기능마저도 네트워크에 위탁하는 인-네트워크 프로세싱(INP, In-network Processing) 또는 인-네트워크 컴퓨팅(INP, In-network Computing)을 고려할 수 있다. 이하, 인-네트워크 프로세싱(INP, In-network Processing) 및 인-네트워크 컴퓨팅(INC, In-network Computing)을 통칭하여, INC로 지칭하지만, 본 개시가 이를 한정하는 것은 아니다.
상술한 바를 통해, 로컬 호스트에 충분한 리소스가 없을 때에도 필요한 프로세싱 작업을 가능하게 할 수 있다. 또한, 프로세싱에 필요한 호스트를 로컬 호스트에 수신할 필요 없이 데이터 인접 노드에서 처리함으로써 보다 빠른 처리가 가능하고 네트워크 오버헤드를 줄일 수 있다.
이때, ICN 기반의 INC로서 NFN(Named Function Networking)과 NFaaS(Named Function as a Service)를 고려할 수 있다. 일 예로, NFN에서는 NDN에서의 네임 레졸루션(resolution)을 익스프레션 레졸루션(expression resolution)으로 확장하여 네트워크에서 원하는 정보를 찾아주는 것뿐만 아니라 계산 기능까지 제공하여 그 결과를 전달할 수 있다.
하기에서는 상술한 바에 기초하여 ICN 기술에 대해 NDN을 기준으로 서술하지만, 본 개시가 이를 한정하는 것은 아니다.
도 2는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템이 적용되는 NDN 환경을 나타낸 도면이다.
도 2를 참조하면, 네트워크는 NDN 라우터를 포함할 수 있는데, NDN 라우터는 INC 처리를 지원하는 INC 처리를 지원하는 INC 노드와 INC 처리를 지원하지 않는 Non-INC 노드를 포함할 수 있다. 이때, Non-INC 노드는 INC 인터레스트 패킷을 네임 기반으로 다음 라우터로 포워딩 하는 역할만을 수행할 수 있다. 이때, INC 인터레스트는 일반적인 NDN 인터레스트 패킷과 동일한 동작에 의해 처리될 수 있다.
INC 노드로서 동작하는 NDN 라우터(이하, 'INC 라우터'라 함)는 INC 처리를 위한 INC 클러스터를 포함할 수 있다.
INC 라우터는 INC 인터레스트 패킷을 수신하면 인터레스트에 포함된 유저 정책과 실행환경 제한조건을 참조하여 자신이 INC 실행을 수행할지 또는 다음 노드로 전달할지 여부를 결정할 수 있다.
이때, 일 예로, INC 라우터에서 INC 실행이 결정된 경우, 사전에 설정된 컴퓨팅 노드 중 하나를 선택하여 해당 컴퓨팅 노드에서 실행환경의 생성을 요청할 수 있다. 이때, 해당 컴퓨팅 노드는 실행 환경을 생성하고 요청된 함수를 실행시켜 함수의 실행 인스턴스(running instance)를 생성할 수 있다. 이때, 컴퓨팅 노드의 로컬 환경에 실행 함수의 실행 코드 데이터가 없는 경우에는 별도의 NDN 데이터 전달 과정을 거쳐 실행 코드를 다운로드할 수 있다. 그 후, 생성된 함수의 실행 인스턴스는 함수 처리에 필요한 데이터를 데이터 발행자로부터 전달받아 데이터 처리를 수행한 후 그 결과를 유저에게 전달할 수 있다. 이때, 전달 과정은 NDN의 전달에 기초하여 처리될 수 있다.
도 3a 내지 도 3c는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에서 사용되는 컨테이너 이미지와 레이어를 예시하는 도면이다.
모든 컨테이너 이미지들은 쓰기 가능(Writable) 레이어를 최상위에 포함하는데 일반적으로 쓰기 가능 레이어를 제외한 레이어들은 읽기 전용이며, 함수 코드나 함수 코드 실행 중 필요한 저장 자원은 쓰기 가능 레이어를 사용한다.
예를 들어, 도 3a에서, 함수 A가 NDN 라이브러리와 Python 라이브러리를 필요로 할 경우, 컴퓨팅 노드는 컨테이너 이미지 A(310)를 생성하고, 컨테이너 이미지 A(310)를 사용하여 함수 A의 함수 코드를 실행할 수 있다. 이때, 컨테이너 이미지 A(310)는 베이스 레이어(311), NDN 라이브러리(레이어 a)(312), Python 라이브러리(레이어 b)(313)를 포함하여 빌드되어 구성될 수 있다.
마찬가지로, 도 3b에서, 함수 B의 함수 코드가 함수 A와 동일한 라이브러리를 필요로 한다면, 컴퓨팅 노드는 함수 B를 구동하기 위한 컨테이너 B(320)를 별도의 빌드하여 구성할 필요 없이, 컨테이너 A(310)의 이미지를 동일하게 사용하여 함수 B의 함수 코드를 실행할 수 있다.
도 3c에서, 함수 C가 Python 라이브러리만을 필요로 한다면, 컴퓨팅 노드는 베이스 레이어(331)와 레이어 b(332)를 포함하는 컨테이너 C(330)를 빌드라여 구성하고, 컨테이너 C(330)를 사용하여 함수 C의 함수 코드를 실행할 수 있다. 다른 예로서, 컴퓨팅 노드는 컨테이너 C(330)를 빌드하지 않고, 컨테이너 A(310)를 사용하여 함수 C의 함수 코드를 실행할 수도 있다.
도 4는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템이 적용되는 네트워크 구조를 예시하는 도면이다.
도 4를 참조하면, 네트워크는 코어 네트워크(410)를 중심으로 4 개의 서브 네트워크(421, 422, 423, 424)로 구성됨을 예시한다. 서브 네트워크(421, 422, 423, 424)는 NDN에서는 리젼(Region)으로 정의하고 있으며, 본 발명에서는 NLSR(Named Data Link State Routing Protocol) 등을 통해 정보를 공유하는 네트워크 범위로 정의한다. 도 4에서 사용자는 서브 네트워크 A에 위치함을 예시한다. 일반적으로 INC 실행을 위한 함수 코드는 클라우드 또는 별도의 저장소에 의해 관리되거나 네트워크 내에 분산 형태로 관리될 수 있다. INC 수행을 위해 함수 코드가 사용하는 파라미터인 데이터는 네트워크에 연결된 모든 데이터가 될 수 있으므로 별도로 표시하지 않는다.
도 4에서 사용자는 임의의 연산 f(x)를 네트워크에 위탁하기 위해 INC 수행을 요청한다. 이 때 f는 함수의이름, x는 함수의 파라미터에 대한 이름이다. 만약 데이터 x의 크기가 큰 경우 데이터 소스와 가까운 네트워크 노드에서 연산을 수행하면 연산을 수행한 후 그 결과만 사용자에게 전달되므로 네트워크 대역폭 오버헤드를 크게 줄일 수 있다. 반면 함수 f가 실시간성을 요구하는 응용이라면 사용자로부터 가까운 네트워크 노드에서 연산을 수행하여 빠른 결과를 수신할 수 있다.
도 5는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 서브 네트워크의 세부 구성을 예시하는 도면이다.
예를 들어, 도 5는 도 4의 서브 네트워크 B임을 예시한다. 도 5은 NDN에서 INC를 지원하기 위한 추가 구성 요소를 포함하고 있으며, 4개의 NDN 라우터를 포함하여 구성될 수 있는데, 전술한 바와 같이 INC라우터와 Non-INC 라우터로 구분될 수 있다. 도 5에서, 라우터 A, B, C라우터 INC라우터(501, 502, 503)로 설정되고, 라우터 D(504)는 Non-INC 라우터로 설정됨을 예시한다.
라우터 A, B, C(501, 502, 503)는 하나 이상의 INC 클러스터(511, 512, 513)와 연결될 수 있다. 각 INC 클러스터(511, 512, 513)는 하나의 INC 에이전트와 하나 이상의 컴퓨팅 노드를 포함하여 구성될 수 있다. INC 에이전트는 사용자의 INC 요청을 수신하여 적절한 컴퓨팅 노드에 작업을 할당하고 INC 함수가 수행될 수 있도록 컴퓨팅 노드에 대한 전반적인 관리를 담당한다. 컴퓨팅 노드 에이전트는 INC 에이전트의 INC 요청을 처리하고 컨테이너와 컨테이너 이미지에 대한 전반적인 관리를 담당한다.
도 4 및 도 5의 환경에서 INC의 동작은 아래와 같이 예시될 수 있다.
함수 f는 네트워크 내의 임의의 컴퓨팅 자원(INC 클러스터)을 활용하여 동영상 데이터로부터 특정 객체를 인식하고 그 결과를 텍스트 형태로 반환함을 예시한다. 또한, 서브 네트워크 A(421)의 사용자가 서브 네트워크 B(422)에 위치한 대용량 영상 데이터 x에서 특정 객체를 인식하고자 하지만 사용자 노드는 이를 수행할 수 있는 충분한 컴퓨팅 리소스를 구비하고 있지 않음을 예시한다.
전술한 환경에서, 서브 네트워크 A(421)의 사용자는 데이터 x에 대한 객체 인식 연산 f(x)에 대한 INC 수행을 네트워크에 요청한다. INC를 이용하면 사용자가 영상 데이터 x를 직접 수신할 필요가 없고 f(x)의 처리 결과만을 수신하면 되므로 네트워크 대역폭 측면에서 효율적이다. 본 실시 예에서 컴퓨팅 자원 현황, 데이터의 위치 등을 고려하여 INC를 서브 네트워크 B에서 수행하는 것이 효율적인 것으로 결정되었다고 가정한다. 예를 들어, 도 5에서 INC 클러스터 B(512)의 컴퓨팅 노드만 객체 인식을 위한 GPU 등의 리소스를 가지고 있는 것을 예시한다. 사용자의 인터레스트(Interest)는 INC 수행을 위해 서브 네트워크 B(422)의 게이트웨이를 통해 INC 클러스터 B(512)의 INC 에이전트로 전달된다. 여기서 사용자 인터레스트가 서브 네트워크 B(422)나 서브 네트워크 B의 INC 클러스터로 포워딩 되는 과정은 NDN의 포워딩 방법(NDN 패킷의 이름이나 포워딩 힌트)으로 이루어질 수 있다.
INC 에이전트가 사용자 인터레스트(Interest)를 수신하면 자신이 관리하는 컴퓨팅 노드 중 가장 적절한 노드에 f(x)를 처리하기 위한 함수 인스턴스를 생성한다. 생성된 함수 인스턴스는 함수 코드 f와 동영상 데이터 x를 각각의 제공자로부터 가져오기 위해 인터레스트를 전송하여 f와 x를 수신하고 연산을 수행한 후 f(x)의 결과를 Data 패킷에 담아 사용자에게 회신한다. 일반적으로 함수 인스턴스는 연산이 끝나고 결과를 전송하고 나면 프로세스가 종료되고 점유했던 자원을 반환한다.
상기 INC 에이전트의 함수 인스턴스 생성 과정은 다음과 같다.
INC 에이전트는 먼저 자신이 관리하는 컴퓨팅 노드 중 어느 컴퓨팅 노드에서 인스턴스를 생성할지를 결정한다. INC 에이전트는 결정된 컴퓨팅 노드의 에이전트에게 인스턴스 생성을 명령과 함께 컨테이너 생성에 필요한 정보들을 전달한다. 컴퓨팅 노드는 그 정보에 따라서 컨테이너를 생성한다. 예를 들어, 일 실시 예로 앞서 설명한 객체 인식 함수 코드가 Python으로 작성되어 있으며 연산 결과를 NDN Data 패킷으로 전달되어야 하기 때문에 NDN 라이브러리를 필요로 한다고 가정하면, NDN 기본 포워딩 스택 (NFD)과 함께 Python 라이브러리가 필요함을 전달한다. 컴퓨팅 노드는 도 3의 레이어 1에 NFD를, 레이어 2에 Python 라이브러리로 설정한 컨테이너 이미지 A를 생성하고 쓰기 가능 레이어에 함수 코드 f와 파라미터 데이터 x를 다운로드하여 f(x) 연산을 수행한다.
이때, 컴퓨팅 노드 에이전트는 자신에게 캐싱되어있는 컨테이너 이미지 목록과 외부 저장소 등을 검색하여 각각 필요한 레이어에 해당되는 파일을 수신하고 빌드 과정을 거쳐 하나의 컨테이너 이미지 파일을 생성한다. 이때, 각 레이어가 포함하는 라이브러리나 어플리케이션에 따라 이미지 파일을 빌드하는 시간이 상당히 오래 걸릴 수 있기 때문에 컴퓨팅 노드 에이전트는 클라우드로부터 이미지 파일을 다운로드하는 것이 더 효율적일 수도 있다.
본 발명에 따르면 INC 에이전트는 자신이 관리하는 컴퓨팅 노드가 보유하고 있는 컨테이너 이미지 정보를 서브 네트워크 내에서 INC 에이전트끼리 공유한다. INC 에이전트가 INC 수행 요청을 받으면 연산을 수행할 컴퓨팅 노드를 결정한 후 공유된 컨테이너 이미지 정보를 기반으로 컴퓨팅 노드가 컨테이너 이미지를 다운로드하여야 하는지, 빌드하여야 하는지를 결정하여 컨테이너 이미지를 준비한다. 이렇게 함으로써 빠른 컨테이너 서비스 가능하도록 하고, 경우에 따라 클라우드로부터 다운로드를 위한 네트워크 대역폭 사용의 최소화가 가능하다.
본 발명의 확장을 통하여 서브 네트워크 간의 컨테이너 이미지 정보 공유도 가능하다. 다만, 다른 서브 네트워크로부터 이미지를 다운로드하는 시간과 대역폭 소모가 클라우드보다 크게 적지 않고 오히려 컨테이너 이미지 정보를 공유하기 위한 오버헤드가 더 커질 것으로 판단되는 경우 서브 네트워크 간 정보 공유는 큰 효과를 얻지 못할 수도 있다.
서브 네트워크 내에서 INC 에이전트는 컨테이너 이미지에 대한 다음 정보들을 유지하고 전체 또는 일부 정보를 공유한다.
도 6은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에서 사용되는 컨테이너 정보 테이블 엔트리를 예시하는 도면이다.
도 6에서 컨테이너 정보 테이블은 노드 이름, 및 노드가 보유하고 있는 컨테이너 이미지에 대한 속성정보를 포함할 수 있다. 이미지 속성정보는 이미지의 크기, 이미지를 구성하는 레이어의 이름, 및 레이어의 버전정보를 포함할 수 있다.
INC 에이전트는 INC 요청을 수신했을 때 컨테이너 정보 테이블을 참조하여 컨테이너 이미지를 빌드할지 다른 노드로부터 다운로드할지 결정할 수 있다. 예컨대, 도 6에서와 같이 이미지 정보 #a가 컨테이너 이미지를 하나 이상의 노드가 캐싱하고 있을 경우, INC 에이전트는 컴퓨팅 노드가 어떤 노드로부터 컨테이너 이미지를 다운로드할지에 대해 판단할 필요가 있다. 이때, INC 에이전트는 FIB를 참조하여 어떤 노드로부터 컨테이너 이미지를 다운로드할지를 결정할 수 있다.
사용자의 INC 수행 요청 인터레스트를 수신하면, INC 에이전트는 우선적으로 컨테이너 정보 테이블을 확인하여, INC 수행에 필요한 컨테이너 이미지가 존재하는지 여부를 확인할 수 있다. INC 수행에 필요한 컨테이너 이미지가 목록에 있을 경우, INC 에이전트는 해당 컨테이너 이미지를 컴퓨팅 노드가 다운로드하여 사용하도록 제어할 수 있다.
나아가, 동일한 서브 네트워크 내에 INC 수행에 적합한 컨테이너 이미지가 있음에 불구하고, 컨테이너의 레이어에 포함된 라이브러리나 어플리케이션에 따라 빌드 시간이 짧을 수도 있다. 이에 따라, INC 에이전트는 컨테이너 이미지의 빌드에 소요되는 제1시간과, 컨테이너 이미지를 다운로드 하는데 소요되는 제2시간을 예측할 수 있다. 그리고, INC 에이전트는 전술한 제1시간과 제2시간을 기반으로, 컨테이너 이미지에 대한 빌드를 수행할지 또는 컨테이너 이미지를 다운로드할지 여부를 결정할 수 있다. 이후, INC 에이전트는, 결정된 결과에 맞는 제어 명령을 컴퓨팅 노드에 제공할 수 있다.
다른 예로서, 사용자가 요구하는 라이브러리 목록과 정확하게 일치하는 컨테이너 이미지가 존재하지 않을 수 있다. 예컨대, 컨테이너 이미지 내에, 사용자가 요구하는 레이어 외에 추가적이 레이어가 존재하거나, 사용자가 요구하는 레이어의 일부만 구비하는 컨테이너 이미지가 존재할 수 있다.
이에 따라, INC 에이전트는 사용자가 요구하는 라이브러리 목록과 정확하게 일치하는 컨테이너 이미지만을 다운로드 할것인지, 사용자가 요구하는 레이어 외에 추가적이 레이어를 포함하는 컨테이너 이미지를 다운로드 할 것인지, 또는 사용자가 요구하는 레이어를 일부 포함하는 컨테이너 이미지를 다운로드하고, 추가 레이어를 다운로드하여 재빌드를 수행할 것인지를 결정할 수 있다. 이때, INC 에이전트는 사용자가 요청하는 함수의 특성, 빌드 시간, 컴퓨팅 노드의 리소스 등의 요소를 고려하여 다운로드 방법과 빌드 방법을 결정할 수 있다.
INC 에이전트는 컴퓨팅 노드에서 실행되는 컨테이너 이미지에 대한 캐싱 여부나, 해당 컨테이너이미지의 정보 공유 여부를 결정할 수 있다. 예컨대, INC 에이전트는 컴퓨팅 노드의 리소스 상태, 미리 설정된 관리자 정책 등을 확인하고, 이를 고려하여 컨테이너 이미지에 대한 캐싱 여부나, 해당 컨테이너 이미지의 정보 공유 여부를 결정할 수 있다. 일 예로, INC 에이전트는 컴퓨팅 노드의 리소스 상태에 맞춰, 컨테이너 이미지의 캐싱 시간이나, 횟수 등을 설정할 수 있다. 다른 예로서, INC 에이전트는 해당 컨테이너의 레이어의 사용 빈도를 확인하고, 사용 빈도에 따라 컨테이너 이미지 정보를 서브 네트워크 내에 공유할 지를 결정할 수 있다. 또 다른 예로서, INC 에이전트는 컨테이너 이미지가 공유되지 않는 상태를 유지하는 시간(예, 휴지시간)을 확인할 수 있으며, 확인된 휴지시간이 설정된 기준을 초과할 경우, 해당 컨테이너 이미지에 대한 삭제를 처리할 수 있다. 이때, INC 에이전트는 컨테이너 이미지의 삭제에 대한 정보를 네트워크 내에 공유할 수 있다.
한편, NDN에서는 패킷 전달을 위한 포워딩 정보를 공유하기 위해 NLSR을 사용한다. NLSR은 ChronoSync와 PSync와 같은 동기화 프로토콜을 사용하여 포워딩 정보를 공유한다. 나아가, 컨테이너 이미지 정보의 공유는 전술한 동기화 프로토콜에 기초하여 수행될 수 있다. 다른 예로서, NLSR의 공유 항목에 컨테이너 이미지 정보를 반영하여 컨테이너 이미지 정보의 공유를 수행할 수도 있다.
비록, 본 개시의 일 실시예에서, 컨테이너 이미지 정보의 공유 방법을 예시하고 있으나, 본 개시가 이를 한정하는 것은 아니며 다양하게 변경되어 적용될 수 있다.
도 6에서 레이어 이름과 버전 정보는 테이블에 엔트리를 최초 삽입할 때 결정될 수 있다. 따라서 INC 에이전트가 컨테이너 정보 테이블에서 필요한 레이어를 정확하게 검색하기 위해서는 컨테이너 정보 테이블에 엔트리를 삽입할 때 레이어의 속성을 명확하게 표현해야 하므로 레이어의 속성에 대한 표현은 INC 에이전트들 사이에 미리 정해진 규칙에 의해 작성될 필요가 있다. 일 예로, INC 에이전트는 해당 레이어에 포함된 어플리케이션이나 라이브러리의 영문 이름(대소문자를 구분하지 않으며 공백은 '_' 문자를 사용)을 포함하여 레이어 이름을 구성할 수 있다. 나아가, INC 에이전트는 레이어 이름에 뒤따르는 버전정보를 삽입할 수 있는데, 버전정보는 미리 정해진 식별자(예, ':')를 사용하여 구분하도록 구성될 수 있다.
비록, 본 개시의 일 실시예에서, 레이어 이름과 버전 정보를 수록하는 방법을 예시하고 있으나, 본 개시가 이를 한정하는 것은 아니며 다양하게 변경되어 적용될 수 있음은 물론이다.
도 7은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 INC 에이전트의 동작을 예시하는 도면이다.
도 7을 참조하면, INC 에이전트가 사용자의 INC 요청 인터레스트를 수신하면 해당 요청을 자신이 포함된 INC 클러스터에서 수행할지를 판단한다(S701). 만약 해당 요청을 자신의 클러스터에서 처리할 필요가 없다면 인터레스트(Interest) 패킷을 포워딩하거나 다른 INC 에이전트로 전달한다(S702). 자신의 클러스터에서 처리해야한다고 판단하면 연산을 수행할 컴퓨팅 노드를 결정할 수 있다(S703).
이후, INC 에이전트는 클러스터에서 미리 공유된 컨테이너 정보 테이블을 확인하고, 해당 요청을 수행할 수 있는 컨테이너 이미지가 존재하는지 여부를 확인할 수 있다(S704). 이때, 사용자가 요구하는 라이브러리 목록과 정확하게 일치하는 컨테이너 이미지가 존재하지 않을 수 있다. 예컨대, 컨테이너 이미지 내에, 사용자가 요구하는 레이어 외에 추가적이 레이어가 존재하거나, 사용자가 요구하는 레이어의 일부만 구비하는 컨테이너 이미지가 존재할 수 있다. 따라서, 다운로드 방법과 빌드 방법을 고려하여, 컨테이너 이미지가 존재하는지 여부를 결정하는데 반영할 수 있다.
한편, 해당 요청을 수행할 수 있는 컨테이너 이미지가 컨테이너 정보 테이블에 존재할 경우, INC 에이전트는 서브 네트워크 내에서 컨테이너 이미지를 다운로드할지 또는 컨테이너 이미지를 빌드할 여부를 결정할 수 있다(S705). 예컨대, INC 에이전트는 컨테이너 이미지의 빌드에 소요되는 제1시간과, 컨테이너 이미지를 다운로드 하는데 소요되는 제2시간을 예측할 수 있다. 그리고, INC 에이전트는 전술한 제1시간과 제2시간을 기반으로, 컨테이너 이미지에 대한 빌드를 수행할지 또는 컨테이너 이미지를 다운로드할지 여부를 결정할 수 있다.
다운로드가 유리하다고 판단될 경우 선택한 컴퓨팅 노드로 사용자의 인터레스트와 함께 컨테이너 이미지가 저장되어 있는 위치를 전달한다. 마찬가지로 클라우드에 해당 컨테이너 이미지가 존재하고, 컨테이너 이미지를 빌드하는 것보다 다운로드하는 것이 유리하다고 판단하는 경우에도 이미지를 다운로드할 수 있는 클라우드의 컨테이너 이미지의 이름 정보를 인터레스트와 함께 컴퓨팅 노드로 전달한다. 반면, 컨테이너 이미지를 컴퓨팅 노드가 빌드해야 하는 상황이라면 최초 수신한 INC 요청 인터레스트 만을 전달한다(S707).
나아가, INC 에이전트는 컨테이너 이미지를 캐싱하고 공유할지 여부를 결정할 수 있다(S708). 공유할 경우 컨테이너 정보 테이블에 해당 컨테이너 정보 엔트리를 추가하는 동작을 수행할 수 있다(S709).
예컨대, INC 에이전트는 컴퓨팅 노드에서 실행되는 컨테이너 이미지에 대한 캐싱 여부나, 해당 컨테이너이미지의 정보 공유 여부를 결정할 수 있다. 예컨대, INC 에이전트는 컴퓨팅 노드의 리소스 상태, 미리 설정된 관리자 정책 등을 확인하고, 이를 고려하여 컨테이너 이미지에 대한 캐싱 여부나, 해당 컨테이너 이미지의 정보 공유 여부를 결정할 수 있다. 일 예로, INC 에이전트는 컴퓨팅 노드의 리소스 상태에 맞춰, 컨테이너 이미지의 캐싱 시간이나, 횟수 등을 설정할 수 있다. 다른 예로서, INC 에이전트는 해당 컨테이너의 레이어의 사용 빈도를 확인하고, 사용 빈도에 따라 컨테이너 이미지 정보를 서브 네트워크 내에 공유할 지를 결정할 수 있다. 또 다른 예로서, INC 에이전트는 컨테이너 이미지가 공유되지 않는 상태를 유지하는 시간(예, 휴지시간)을 확인할 수 있으며, 확인된 휴지시간이 설정된 기준을 초과할 경우, 해당 컨테이너 이미지에 대한 삭제를 처리할 수 있다. 이때, INC 에이전트는 컨테이너 이미지의 삭제에 대한 정보를 네트워크 내에 공유할 수 있다.
도 8은 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 컴퓨팅 노드의 동작을 예시하는 도면이다.
도 8을 참조하면, 컴퓨팅 노드 에이전트는 사용자의 INC 인터레스트를 수신한 후, INC 에이전트로부터 수신한 INC 요청이 컨테이너 이미지에 대한 내용을 포함하고 있는지를 확인한다. 만약 컨테이너 이미지를 다운로드할 수 있는 노드 정보를 포함하고 있지 않을 경우, 컴퓨팅 노드 에이전트는 컨테이너 이미지를 빌드하는 동작을 수행할 수 있다. 반면, INC 요청이 컨테이너 이미지에 대한 내용을 포함할 경우, 컴퓨팅 노드 에이전트는 명시된 이름을 이용하여 컨테이너 이미지를 직접 다운로드하여 함수 인스턴스를 구동할 수 있다.
도 9는 본 개시의 일 실시예에 따른 NDN 기반의 인-네트워크 처리 시스템에 구비되는 장치의 구성을 나타낸 도면이다.
상술한 바와 같이, 인-네트워크 시스템에서 복수 개의 노드(또는 라우터)들이 존재할 수 있다. 이때, 인-네트워크 시스템에서 유저로부터 수신한 데이터를 처리하기 위해 INP 실행 위치를 결정할 수 있다. 즉, 인-네트워크에서 INP 실행을 위한 노드를 결정할 수 있다.
이때, 일 예로, 도 9의 장치 구성은 인-네트워크 시스템에서 노드(또는 라우터)에 대한 구성일 수 있다.
일 예로, 각각의 노(800)들은 도 8와 같이, 메모리(810), 프로세서(820) 및 송수신부(830) 중 적어도 어느 하나를 더 포함할 수 있다. 이때, 일 예로, 메모리(810)는 상술한 유저 정책 정보나 제한 조건 정보 등을 저장할 수 있다. 또한, 메모리(810)는 그 밖에 관련 정보들을 저장할 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 송수신부(830)는 INP 인터레스트 패킷을 전송하거나 INP가 실행된 데이터를 전송할 수 있다. 즉, 송수신부(830)는 데이터나 정보를 송수신하기 위한 구성일 수 있으며, 상술한 실시예로 한정되지 않는다.
또한, 프로세서(820)는 상술한 바에 기초하여 메모리(810)에 포함된 정보들을 제어할 수 있다. 또한, 프로세서(820)는 송수신부(1530)를 통해 인-네트워크 시스템과 관련된 정보를 다른 노드 또는 장치로 전송할 수 있으며, 상술한 실시예로 한정되지 않는다.
본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.

Claims (20)

  1. NDN(Named Data Networking) 기반의 인-네트워크 처리 방법에 있어서,
    INC(In-Network Computing) 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'INC 라우터' 라 함) 및 적어도 하나의 Non-INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'Non-INC 라우터' 라 함)를 구비한 적어도 하나의 서브 네트워크를 포함하는 네트워크 시스템 내에서, 상기 INC 라우터가 INC 요청 인터레스트(Interest) 패킷을 수신하는 과정과,
    상기 INC 라우터가, 상기 적어도 하나의 서브 네트워크에서, INC 요청의 수행을 위한 컨테이너 이미지가 존재하는지 여부를 확인하는 과정과,
    상기 컨테이너 이미지의 존재 여부에 대응하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 과정과,
    상기 컨테이너 이미지를 사용하여 상기 INC 요청의 수행을 처리하는 과정을 포함하는 NDN 기반의 인-네트워크 처리 방법.
  2. 제1항에 있어서,
    상기 INC 라우터에 포함된 INC 에이전트가 적어도 하나의 컴퓨팅 노드를 관리하되, 동일한 서브 네트워크 내에서, 상기 컴퓨팅 노드가 보유하고 있는 컨테이너 이미지에 대한 정보를 공유하는 NDN 기반의 인-네트워크 처리 방법.
  3. 제2항에 있어서,
    상기 INC 에이전트가, 상기 컨테이너 이미지에 대한 정보를 포함하는 컨테이너 정보 테이블을 저장 및 관리하는 과정을 포함하는 NDN 기반의 인-네트워크 처리 방법.
  4. 제1항에 있어서,
    상기 컨테이너 정보 테이블은 노드 이름, 및 노드가 보유하고 있는 컨테이너 이미지에 대한 속성정보를 포함하고,
    상기 속성정보는 이미지의 크기, 이미지를 구성하는 레이어의 이름, 및 레이어의 버전정보 중 적어도 하나를 포함하는 NDN 기반의 인-네트워크 처리 방법.
  5. 제1항에 있어서,
    상기 동일한 서브 네트워크 내에, 상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지가 존재함에 따라, 상기 컨테이너 이미지를 다운로드 하는 과정을 포함하는 NDN 기반의 인-네트워크 처리 방법.
  6. 제5항에 있어서,
    상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지는, 상기 INC 요청의 수행을 위한 컨테이너 이미지와 동일한 이미지인 것을 특징으로 하는 NDN 기반의 인-네트워크 처리 방법.
  7. 제5항에 있어서,
    상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지는, 상기 INC 요청의 수행을 위한 레이어 및 상기 INC 요청의 수행과 관련없는 레이어를 포함하는 컨테이너 이미지인 것을 특징으로 하는 NDN 기반의 인-네트워크 처리 방법.
  8. 제5항에 있어서,
    상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지는, 상기 INC 요청의 수행을 위한 레이어 중 일부 레이어를 포함하는 컨테이너 이미지인 것을 특징으로 하는 NDN 기반의 인-네트워크 처리 방법.
  9. 제8항에 있어서,
    상기 INC 에이전트가, 컴퓨팅 노드의 리소스 상태에 맞춰, 상기 컨테이너 이미지의 캐싱 시간, 또는 공유 횟수를 설정하는 과정을 포함하는 NDN 기반의 인-네트워크 처리 방법.
  10. 제8항에 있어서,
    상기 INC 에이전트는, 상기 컨테이너 이미지의 공유 사용 빈도 및 휴지 시간 중 적어도 하나를 확인하고, 상기 공유 사용 빈도 및 휴지 시간 중 적어도 하나에 따라 상기 컨테이너 이미지 공유 여부를 결정하는 과정을 포함하는 NDN 기반의 인-네트워크 처리 방법.
  11. 제1항에 있어서,
    상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 과정은,
    상기 INC 에이전트가, 상기 INC 요청에 대한 함수의 특성, 빌드 시간, 및 컴퓨팅 노드의 리소스 중 적어도 하나를 고려하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 NDN 기반의 인-네트워크 처리 방법.
  12. 제1항에 있어서,
    상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 과정은,
    상기 컨테이너 이미지의 빌드에 소요되는 제1시간과, 상기 컨테이너 이미지를 다운로드 하는데 소요되는 제2시간을 예측하는 과정과,
    상기 제1시간과 제2시간을 기반으로, 상기 컨테이너 이미지에 대한 빌드를 수행할지 또는 컨테이너 이미지를 다운로드할지 여부를 결정하는 NDN 기반의 인-네트워크 처리 방법.
  13. NDN 기반의 인-네트워크 처리 시스템에 있어서,
    INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'INC 라우터' 라 함)와, 적어도 하나의 Non-INC 노드로서 기능하는 적어도 하나의 NDN 라우터(이하, 'Non-INC 라우터' 라 함)를 구비한 적어도 하나의 서브 네트워크와,
    상기 적어도 하나의 서브 네트워크에 결합되는 코어 네트워크를 포함하되,
    상기 INC 라우터는 사용자 노드로부터 INC 요청 인터레스트 패킷을 수신하고, 상기 적어도 하나의 서브 네트워크에서, INC 요청의 수행을 위한 컨테이너 이미지가 존재하는지 여부를 확인하고, 상기 컨테이너 이미지의 존재 여부에 대응하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하고, 상기 컨테이너 이미지를 사용하여 상기 INC 요청의 수행을 처리하는 NDN 기반의 인-네트워크 처리 시스템.
  14. 제13항에 있어서,
    상기 INC 라우터는,
    INC 에이전트 및 적어도 하나의 컴퓨팅 노드를 구비라는 INC 클러스터를 포함하며,
    상기 INC 에이전트는, 적어도 하나의 컴퓨팅 노드를 관리하되, 동일한 서브 네트워크 내에서, 상기 컴퓨팅 노드가 보유하고 있는 컨테이너 이미지에 대한 정보를 공유하는 NDN 기반의 인-네트워크 처리 시스템.
  15. 제14항에 있어서,
    상기 INC 에이전트는,
    상기 컨테이너 이미지에 대한 정보를 포함하는 컨테이너 정보 테이블을 저장 및 관리하되,
    상기 컨테이너 정보 테이블은 노드 이름, 및 노드가 보유하고 있는 컨테이너 이미지에 대한 속성정보를 포함하고,
    상기 속성정보는 이미지의 크기, 이미지를 구성하는 레이어의 이름, 및 레이어의 버전정보 중 적어도 하나를 포함하는 NDN 기반의 인-네트워크 처리 시스템.
  16. 제14항에 있어서,
    상기 INC 에이전트는,
    상기 동일한 서브 네트워크 내에, 상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지가 존재함에 따라, 상기 컨테이너 이미지를 다운로드 하는 NDN 기반의 인-네트워크 처리 시스템.
  17. 제16항에 있어서,
    상기 INC 요청의 수행을 위한 컨테이너 이미지에 대응되는 컨테이너 이미지는, 상기 INC 요청의 수행을 위한 컨테이너 이미지와 동일한 이미지, 상기 INC 요청의 수행을 위한 레이어 및 상기 INC 요청의 수행과 관련없는 레이어를 포함하는 컨테이너, 및 상기 INC 요청의 수행을 위한 레이어 중 일부 레이어를 포함하는 컨테이너 이미지 중 적어도 하나인 것을 특징으로 하는 NDN 기반의 인-네트워크 처리 시스템.
  18. 제14항에 있어서,
    상기 INC 에이전트는,
    상기 컴퓨팅 노드의 리소스 상태에 맞춰, 상기 컨테이너 이미지의 캐싱 시간, 또는 공유 횟수를 설정하는 NDN 기반의 인-네트워크 처리 시스템.
  19. 제14항에 있어서,
    상기 INC 에이전트는,
    상기 컨테이너 이미지의 공유 사용 빈도 및 휴지 시간 중 적어도 하나를 확인하고, 상기 공유 사용 빈도 및 휴지 시간 중 적어도 하나에 따라 상기 컨테이너 이미지 공유 여부를 결정하는 NDN 기반의 인-네트워크 처리 시스템.
  20. 제14항에 있어서,
    상기 INC 에이전트는,
    상기 INC 요청에 대한 함수의 특성, 빌드 시간, 및 컴퓨팅 노드의 리소스 중 적어도 하나를 고려하여, 상기 컨테이너 이미지의 다운로드 또는 상기 컨테이너 이미지의 빌드를 결정하는 NDN 기반의 인-네트워크 처리 시스템.
KR1020200165701A 2020-12-01 2020-12-01 Ndn 기반의 인-네트워크 처리 방법 및 시스템 KR20220076826A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200165701A KR20220076826A (ko) 2020-12-01 2020-12-01 Ndn 기반의 인-네트워크 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200165701A KR20220076826A (ko) 2020-12-01 2020-12-01 Ndn 기반의 인-네트워크 처리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20220076826A true KR20220076826A (ko) 2022-06-08

Family

ID=81980763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200165701A KR20220076826A (ko) 2020-12-01 2020-12-01 Ndn 기반의 인-네트워크 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20220076826A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506354A (zh) * 2023-06-30 2023-07-28 天地信息网络研究院(安徽)有限公司 一种ndn路由器及其主动式拥塞丢包恢复方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506354A (zh) * 2023-06-30 2023-07-28 天地信息网络研究院(安徽)有限公司 一种ndn路由器及其主动式拥塞丢包恢复方法
CN116506354B (zh) * 2023-06-30 2023-09-12 天地信息网络研究院(安徽)有限公司 一种ndn路由器及其主动式拥塞丢包恢复方法

Similar Documents

Publication Publication Date Title
CN107580083B (zh) 一种容器ip地址分配的方法和系统
JP6544872B2 (ja) 負荷バランシングコンピュータデバイス、システム、および方法
US9588807B2 (en) Live logical partition migration with stateful offload connections using context extraction and insertion
US8819211B2 (en) Distributed policy service
US9477499B2 (en) Managing process migration from source virtual machine to target virtual machine which are on the same operating system
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
WO2021108103A1 (en) Dynamic resource movement in heterogeneous computing environments including cloud edge locations
US11650844B2 (en) System and method for migrating a live stateful container
US20120291024A1 (en) Virtual Managed Network
US10397132B2 (en) System and method for granting virtualized network function life cycle management
US8937940B2 (en) Optimized virtual function translation entry memory caching
US20210194825A1 (en) Availability groups of cloud provider edge locations
US11159344B1 (en) Connectivity of cloud edge locations to communications service provider networks
CN113439428A (zh) 操作具有dns高速缓存的装置的系统和方法
CN113326101B (zh) 基于远程直接数据存储的热迁移方法、装置及设备
US9426246B2 (en) Method and apparatus for providing caching service in network infrastructure
KR20220076826A (ko) Ndn 기반의 인-네트워크 처리 방법 및 시스템
KR102394773B1 (ko) 네임 기반 인-네트워크 프로세싱 방법 및 시스템
US11595347B1 (en) Dual-stack network addressing in cloud provider network edge locations
JP2017184195A (ja) 通信管理装置、通信管理方法及びプログラム
KR101695577B1 (ko) 콘텐츠 중심 네트워크의 패킷 전송 방법 및 장치
US20240069949A1 (en) Applying hypervisor-based containers to a cluster of a container orchestration system
US11711425B1 (en) Broadcast and scatter communication operations
KR102054775B1 (ko) 계층 분산 해시 테이블을 이용한 단말 이동성 지원 방법 및 장치
WO2024114645A1 (zh) 一种虚拟化网络功能vnf的实例化方法及装置