KR101754618B1 - 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 - Google Patents
소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 Download PDFInfo
- Publication number
- KR101754618B1 KR101754618B1 KR1020160147893A KR20160147893A KR101754618B1 KR 101754618 B1 KR101754618 B1 KR 101754618B1 KR 1020160147893 A KR1020160147893 A KR 1020160147893A KR 20160147893 A KR20160147893 A KR 20160147893A KR 101754618 B1 KR101754618 B1 KR 101754618B1
- Authority
- KR
- South Korea
- Prior art keywords
- network
- links
- link
- subset
- switches
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/829—Topology based
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법은 소프트웨어 정의 네트워크(SDN) 컨트롤러로부터 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함하는 물리 네트워크에 대한 정보를 획득 하는 단계, 상기 복수의 호스트 중 일부인 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청을 수신하는 단계, 상기 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 상기 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성하는 단계, 및 상기 서브 셋에 포함된 링크 및 스위치 중 적어도 일부 만을 이용하여, 상기 복수의 참여 호스트를 연결하기 위한 네트워크 트리를 생성하는 단계를 포함할 수 있다.
Description
본 발명은 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 규모가 큰 네트워크 환경에서도 가상 네트워크를 빠르게 생성할 수 있는 방법 및 장치에 관한 것이다.
최근 네트워크를 구성하는 방법으로 소프트웨어 정의 네트워크(SDN, 이하 명세서에서 소프트웨어 정의 네트워크는 SDN의 약어를 이용하여 서술한다.) 기술을 이용하는 경우가 증가 하고 있다. SDN이란 네트워크를 구성하고 있는 통신장비, 즉 하드웨어를 물리적 자원의 할당을 통한 소프트웨어의 연산 능력을 이용하여 가상으로 구현하는 것을 의미한다.
근래에는 IoT, 빅 데이터, 클라우드 컴퓨팅 등의 분야에서 글로벌 저장소 또는 정보에 대한 접근을 위한 광역의 분산 네트워크의 수요에 따라, SDN이 적용되는 네트워크 규모가 커지고 있다. 일 예로, WAN환경에서도 SDN의 개념이 적용되어, Software-Defined Wide Area Network (SD-WAN)이 등장하였다.
SDN 환경에서 데이터 통신을 위하여 가상 네트워크를 생성해야 하는데, 가상 네트워크를 생성 및 관리 방법의 복잡도는 네트워크 규모에 비례하게 된다. 전체 네트워크의 규모가 커짐에 따라 보다 효율적이고 빠른 방법으로 가상 네트워크를 생성할 수 있는 방법의 제공이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 대규모 네트워크를 대상으로 빠르게 가상 네트워크를 생성할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 소프트웨어 정의 네트워크 기반의 가상 네트워크를 생성할 때, 사용자의 대역폭 요구사항을 반영할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 생성된 가상 네트워크를 상호 독립적으로 운영, 관리하여 전용 네트워크로 기능할 수 있도록 하는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법은 소프트웨어 정의 네트워크(SDN) 컨트롤러로부터 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함하는 물리 네트워크에 대한 정보를 획득 하는 단계, 상기 복수의 호스트 중 일부인 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청을 수신하는 단계, 상기 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 상기 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성하는 단계, 및 상기 서브 셋에 포함된 링크 및 스위치 중 적어도 일부 만을 이용하여, 상기 복수의 참여 호스트를 연결하기 위한 네트워크 트리를 생성하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 소프트웨어 정의 네트워크 기반의 가상 전용 네트워크에서의 데이터 전송 방법은, 스위치로부터 데이터 전송 요청을 수신하는 단계, 상기 데이터 전송 요청에 포함된 출발지 주소에 해당하는 호스트와 도착지 주소에 해당하는 호스트가, 동일한 가상 전용 네트워크에 속하는지 여부를 판단하는 단계, 및 상기 판단의 결과, 동일한 가상 네트워크에 속하는 경우, 상기 가상 전용 네트워크에 포함된 링크 및 스위치를 이용하여, 데이터 전송 경로를 탐색하고, 상기 판단의 결과, 동일한 가상 네트워크에 속하지 않는 경우, 상기 데이터 전송 요청을 처리하지 않는 단계를 포함하되, 상기 가상 전용 네트워크는 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청에 따라, 상기 복수의 참여 호스트를 연결하고, 상기 요구 대역폭을 보장하기 위한 링크 및 스위치로 구성된 것인 단계를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 장치는, 소프트웨어 정의 네트워크(SDN) 컨트롤러로부터 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함하는 물리 네트워크에 대한 정보를 획득 하는 오퍼레이션, 상기 복수의 호스트 중 일부인 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청을 수신하는 오퍼레이션, 상기 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 상기 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성하는 오퍼레이션 및 상기 서브 셋에 포함된 링크 및 스위치 중 적어도 일부 만을 이용하여, 상기 복수의 참여 호스트를 연결하기 위한 네트워크 트리를 생성하는 오퍼레이션을 포함한다.
본 발명의 몇몇 실시예들에 따르면, 전체 네트워크보다 축소된 서브 셋을 기반으로 가상 네트워크를 생성함으로써, 빠른 시간 내에 가상 네트워크를 동적 구축할 수 있는 효과를 달성할 수 있다.
본 발명의 몇몇 실시예들에 따르면, 사용자의 요구 대역폭을 반영한 네트워크를 생성함으로써, 사용자 요구를 반영한 가상 네트워크를 생성할 수 있는 효과를 달성할 수 있다.
본 발명의 몇몇 실시예들에 따르면, 서로 다른 가상 네트워크 간 데이터 통신을 제한함으로써, 가상 네트워크를 상호 독립적으로 운영하여, 전용 네트워크로 기능할 수 있도록 하는 효과를 달성할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 SDN 네트워크 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 가상 네트워크 생성 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다.
도 4는 본 발명의 몇몇 실시예에서 참조되는, 서브 셋을 구성하는 방법의 순서도이다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
도 7은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다.
도 8은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 예시이다.
도 9는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 예시이다.
도 10은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다.
도 11은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리 생성이 불가능한 경우를 설명하기 위한 도면이다.
도 12는 본 발명의 몇몇 실시예에서 참조되는, 제2 방법에 의한 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
도 13은 도 13은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다.
도 14는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 또 다른 예시이다.
도 15는 본 발명의 또 다른 실시예에 따른, 데이터 전송 방법의 순서도이다.
도 16a 및 도 16b은 본 발명의 또 다른 실시예에 따른 데이터 전송 방법을 설명하기 위한 예시 도면이다.
도 2는 본 발명의 다른 실시예에 따른 가상 네트워크 생성 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다.
도 4는 본 발명의 몇몇 실시예에서 참조되는, 서브 셋을 구성하는 방법의 순서도이다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
도 7은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다.
도 8은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 예시이다.
도 9는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 예시이다.
도 10은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다.
도 11은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리 생성이 불가능한 경우를 설명하기 위한 도면이다.
도 12는 본 발명의 몇몇 실시예에서 참조되는, 제2 방법에 의한 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
도 13은 도 13은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다.
도 14는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 또 다른 예시이다.
도 15는 본 발명의 또 다른 실시예에 따른, 데이터 전송 방법의 순서도이다.
도 16a 및 도 16b은 본 발명의 또 다른 실시예에 따른 데이터 전송 방법을 설명하기 위한 예시 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 더욱 상세히 설명한다.
SDN 네트워크 시스템은 가상 네트워크 생성 장치(100)와 SDN 네트워크(10)로 구성될 수 있다. SDN 네트워크(10)는 소프트웨어 정의 기반의 네트워크로서, 호스트, 오픈 플로우 스위치 및 이들 사이의 다중 링크를 포함한 물리 네트워크와 정보 전달 및 제어를 담당하는 SDN 컨트롤러를 포함할 수 있다.
가상 네트워크 생성 장치(100)는 SDN 컨트롤러로부터 전체 물리 네트워크 토폴로지를 획득할 수 있다. 가상 네트워크 생성 장치(100)는 가상 네트워크 생성 요청을 사용자로부터 수신하면, 해당 사용자에게 가상 네트워크를 생성하여 할당할 수 있다.
가상 네트워크 생성 요청은 복수 개의 참여 호스트 및 사용자의 요구 대역폭 정보를 포함할 수 있다. 가상 네트워크 생성 장치(100)는 참여 호스트간에 사용자 요구 대역폭을 보장하는 가상 네트워크를 생성할 수 있다.
도 2는 본 발명의 다른 실시예에 따른 가상 네트워크 생성 장치의 하드웨어 구성도이다.
도 2를 참조하면 가상 네트워크 생성 장치(200)는 하나 이상의 프로세서(110), 메모리(120), 스토리지(160) 및 인터페이스(170)을 포함할 수 있다. 프로세서(110), 메모리(120), 스토리지(160) 및 인터페이스(170)는 시스템 버스(150)를 통하여 데이터를 송수신한다.
프로세서(110)는 메모리(120)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(120)는 상기 컴퓨터 프로그램을 스토리지(160)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 서브 셋 구성 오퍼레이션(121), 트리 생성 오퍼레이션(123) 및 데이터 송, 수신 오퍼레이션(125)을 포함할 수 있다.
데이터 송, 수신 오퍼레이션(125)는 SDN 컨트롤러로부터 물리 네트워크 정보를 획득할 수 있고, 획득한 물리 네트워크 정보는 스토리지(160)로 송신하여, 저장할 수 있다.
서브 셋 구성 오퍼레이션(121)은 복수 개의 참여 호스트 정보 및 사용자의 요구 대역폭 정보를 포함하는 가상 네트워크 생성 요청을 수신하면, 스토리지(160)로부터 물리 네트워크 정보를 읽어와, 물리 네트워크 중 사용자의 요구 대역폭을 만족하는 링크 및 그러한 링크를 하나 이상 가지는 스위치를 선택하여, 물리 네트워크의 서브 셋을 구성할 수 있다.
트리 생성 오퍼레이션(123)은 서브 셋 구성 오퍼레이션(121)로부터, 구성된 서브 셋 정보를 수신 받아, 해당 서브 셋을 기반으로 네트워크 트리를 생성할 수 있다. 참여 호스트간 연결된 신장 트리를 생성할 수 있다. 트리가 생성되면 가상 네트워크의 생성이 완료된다.
스토리지(160)는 가상 네트워크 정보(161)와 물리 네트워크 정보(163)를 포함할 수 있다. 가상 네트워크 정보(161)는 생성된 가상 네트워크에 관한 정보로서, 가상 네트워크에 대한 식별자, 참여 호스트, 스위치, 링크 정보를 포함할 수 있다. 물리 네트워크 정보(163)는 SDN 컨트롤러로부터 획득한 전체 네트워크에 대한 정보를 포함할 수 있다.
도 2의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
도 3은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다. 본 방법의 일련의 단계들은 가상 네트워크 생성 장치에 의해 수행될 수 있다.
가상 네트워크 생성 장치는 SDN 컨트롤러로부터 물리 네트워크에 대한 정보를 획득 할 수 있다(S100). 가상 네트워크 생성 장치는 가상 네트워크 생성 요청을 수신할 수 있고(S200), 해당 요청에 응답하여 해당 물리 네트워크에서 동작할 가상 네트워크를 생성할 수 있다. 가상 네트워크 생성 요청은 물리 네트워크에 속하는 복수 개의 참여 호스트 정보 및 사용자의 요구 대역폭 정보를 포함할 수 있다.
가상 네트워크 생성 장치는 물리 네트워크의 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 물리 네트워크의 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성할 수 있다(S300). 서브 셋이 구성되면, 가상 네트워크 생성 장치는 그 서브 셋에 포함된 링크 및 스위치 중 적어도 일부만을 이용하여, 상기 복수 개의 참여 호스트를 연결하기 위한 네트워크 트리를 생성할 수 있다(S400). 트리가 생성되면, 가상 네트워크 생성이 완료되며(S500), 생성된 가상 네트워크의 참여 호스트들 간의 데이터 전송이 가능하게 된다.
단계(S100)에서, 물리 네트워크에 대한 정보는 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함할 수 있다.
단계(S300)에서, 물리 네트워크의 서브 셋을 구성하는 이유는, 가상 네트워크를 생성할 대상을 전체 네트워크가 아닌, 그보다 축소된 서브 셋으로 하여, 가상 네트워크 생성 속도를 향상시키기 위함이다.
또한, 사용자의 요구 대역폭을 서브 셋에 포함시킴으로써, 사용자의 요구를 반영하는 가상 네트워크를 생성할 수 있다. 이런 가상 네트워크는 사용자가 요구하는 대역폭을 보장할 수 있다.
단계(S400)에서, 축소된 규모의 서브 셋의 자원을 이용하여 네트워크 트리를 생성함으로써, 트리 생성의 복잡도를 감소시킬 수 있다.
서브 셋을 구성하는 과정은 이하 도 4 내지 도7을 통해 자세히 설명한다.
도 4는 본 발명의 몇몇 실시예에서 참조되는, 서브 셋을 구성하는 방법의 순서도이다. 가상 네트워크 생성 장치는 서브 셋 구성을 위하여 네트워크 가지치기(S310) 후에, 다중 링크를 단일화(S390) 할 수 있다. 이를 통해 가상 네트워크 생성 대상 네트워크 규모를 축소시켜, 가상 네트워크 생성 방법의 복잡도를 감소시킬 수 있다.
단계(S310)의 과정은 도 5 및 도6을 참조하여 설명하며, 단계(S390)의 과정은 도 7을 참조하여 설명한다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 방법을 설명하기 위한 순서도이다.
가상 네트워크 생성 장치는 네트워크 규모 축소를 위하여 서브 셋을 생성할 때, 물리 네트워크에 포함된 복수의 호스트를 제거하고(S330), 물리 네트워크에 포함된 호스트와 스위치 사이의 링크를 제거할 수 있다(S335). 호스트 및 호스트와 스위치 사이의 링크를 제거하는 이유는, 호스트 간의 통신은 해당 호스트의 엑세스 스위치(Access switch)사이의 트리가 형성되면 가능하기 때문이다. 따라서 호스트 및 호스트와 스위치 사이의 링크는 서브 셋에서 제외하고, 스위치 및 스위치들 사이의 링크를 대상으로 네트워크 트리를 생성하도록 하여, 네트워크 규모를 축소시키고 가상 네트워크 생성 속도를 향상시킬 수 있다.
가상 네트워크 생성 장치는 스위치들 사이의 링크들 중에서, 가용 링크를 선택하고, 선택되지 않은 나머지 링크는 모두 제거할 수 있다(S340). 이후, 하나 이상의 가용 링크를 포함하지 않는 스위치를 제거할 수 있다(S345).
단계(S340)에서, 가용 링크란 사용자의 요구 대역폭을 만족하는 링크를 가리킬 수 있다. 가용 링크를 선택하는 방법에는 2가지가 있을 수 있다.
제1 방법은 사용자의 요구 대역폭과 같은 대역폭을 가지면서, 다른 가상 네트워크에 의해 점유되지 않은 링크를 선택하는 방법이다.
예를 들어, 요구 대역폭이 10G인 경우, 10G 외의 1G, 5G, 30G, 40G 등 10G 미만이거나, 10G를 초과하는 링크는 서브 셋에서 제거할 수 있다. 또한 다른 가상 네트워크에 의해 점유되고 있는 링크도 제거할 수 있다. 만약, 이미 점유된 링크 중 잔여 대역폭이 요구 대역폭보다 큰 경우에도, 해당 링크는 선택하지 않을 수 있다. 이는, 1차적으로 가상 네트워크에 전용 링크를 할당하기 위함이다.
제2 방법은 사용자의 요구 대역폭 이상의 대역폭을 가지는 전용 링크 또는 다른 가상 네트워크에 의해 점유된 링크 중 잔여 대역폭이 요구 대역폭 이상인 링크를 선택하는 방법이다.
예를 들어, 요구 대역폭이 10G인 경우 10G 이상인 10G, 30G, 40G의 링크를 모두 선택할 수 있다. 또한 잔여 대역폭이 10G 이상이면 되므로, 40G 중에서 30G가 다른 가상 네트워크에 의해 점유되어 있는 경우라도, 잔여 대역폭이 10G 이므로 해당 링크를 선택할 수 있다.
네트워크 가지치기를 수행할 때, 제1 방법을 먼저 수행한 후, 제2 방법을 수행할 수 있다. 제1 방법에 의할 때, 요구 대역폭과 완전히 일치하는 대역폭을 가지는 전용 링크를 할당할 수 있기 때문에, 제1 방법에 의해 구성된 서브 셋을 대상으로 가상 네트워크를 생성하는 경우, 전용 네트워크를 생성하는 효과를 가질 수 있기 때문이다. 그러나 제2 방법에 의하더라도, 데이터 전송 과정에서 서로 다른 가상 네트워크 사이의 데이터 전송을 허용하지 않음으로써, 전용 네트워크를 생성하는 효과를 가질 수 있다. 해당 내용은 도 15를 참조하여 후술한다.
네트워크 가지치기가 완료되면(S310), 다중 링크의 단일화를 수행할 수 있다(S390). 네트워크 가지치기 이후에 스위치 사이에 다중 링크가 형성되어 있는 경우, 다중 링크 중 하나의 링크만 제외하고 나머지 링크들을 제거할 수 있다. 가상 네트워크 형성을 위하여 하나의 링크만 가지면 족하므로, 더 많은 링크를 제거하여 서브 셋의 규모를 더 축소시킬 수 있다.
이하 도 6 및 도7을 통해, 네트워크 가지치기 및 다중 링크 단일화를 포함하는 서브 셋 구성 과정에 대하여 예시를 통하여 설명한다. 참여 호스트는 2개이고, 요구 대역폭은 10G인 가상 네트워크 생성 요청이 수신된 경우를 예시로 설명한다.
도 6은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
그림(200)은 전체 네트워크를 도시하고 있다. 전제 네트워크는 복수의 호스트, 스위치 및 링크로 구성된다. 참여 호스트는 사각형으로 표시되었다.
가상 네트워크 요청이 수신되었으므로, 참여 호스트 2개가 데이터 통신이 가능하도록, 서브 셋을 구성하고, 그 서브 셋을 기반으로 네트워크 트리가 생성되어야 한다.
서브 셋 구성을 위해 일단, 호스트 및 호스트와 스위치 사이의 링크를 제거할 수 있다. 이 과정에서 참여 호스트와 연결된 스위치는 엑세스 스위치(Access switch)는 별도로 마크해 둘 필요가 있다. 호스트를 서브 셋에서 제거하였으므로, 결국 참여 호스트에 대한 엑세스 스위치 간에 통신 가능한 네트워크 경로가 형성되어야 하기 때문이다. 이 과정을 거친 후, 그림(205)와 같이 네트워크 규모가 축소될 수 있다.
상기 예시에서 네트워크 가지치기는 제1 방식에 의해 수행된다. 요구 대역폭이 10G이므로, 10G외에 다른 대역폭을 가지는 링크 및 다른 가상 네트워크에 의해 점유되고 있는 링크를 제거할 수 있다. 이 과정을 거친 후, 그림(210)과 같이 네트워크가 구성될 수 있다.
이제, 다른 가상 네트워크에 의해 점유되지 않고, 10G의 대역폭을 가지는 링크만 남게 된다. 이때 a 스위치는 그러한 링크를 포함하지 않는 스위치이므로, 서브 셋에서 제거될 수 있다. 따라서 네트워크 가지치기가 완료된 최종 네트워크는 그림(215)와 같이 된다.
도 7은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다.
그림(215)는 네트워크 가지치기가 완료된 상태의 서브 셋을 도시하고 있다. 그림(215)에서 스위치 a-b, b-c, c-d 사이의 링크가 각각 2개로 다중 링크를 구성하고 있다. 따라서, 다중 링크를 단일화 할 수 있다.
상기 예시는 제1 방식에 의한 네트워크 가지치기가 수행되었으므로, 모두 10G 링크가 남아있게 된다. 따라서 모두 같은 대역폭을 가지므로 임의의 한 개의 링크를 선택하고, 나머지를 제거하면 된다.
다중 링크 단일화가 수행되면 그림(220)와 같이 도시된다. 그림(220)이 서브 셋 구성이 완료된 그림이다. 물리 네트워크는 호스트와 스위치를 V, 링크를 E로 하여, G(V, E)로 표현될 수 있다. 서브 셋(G')은 G보다 축소된 G'(V', E')로 표현될 수 있다.
서브 셋이 구성되면, 구성된 서브 셋(G')에 포함된 링크 및 스위치 만 이용하여 기반으로 네트워크 트리를 생성하게 된다. 이하 도8을 참조하여 설명한다.
도 8은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 예시이다. 서브 셋 G'(V', E')을 기반으로 네트워크 트리를 생성하게 되는데, 그 과정은 다음과 같다.
네트워크 트리로서, 신장 트리를 생성할 수 있다. 신장 트리는 연결 그래프의 부분 그래프로서, 그 그래프의 모든 정점과 간선의 부분 집합으로 구성되는 트리. 모든 노드는 적어도 하나의 간선에 연결되어 있어야 한다.
본 발명의 몇몇 실시예에서 참조되는, 신장 트리는 엑세스 스위치를 연결하는 트리일 수 있다. 센터 노드(Center node)를 선정하고, 엑세스 스위치와 센터 노드 사이의 최단 경로를 구한 트리를 합쳐, 네트워크 트리를 생성할 수 있다. 전체 엑세스 스위치 간의 최소 경로를 찾는 방식과 달리, 센터 노드의 개념을 도입하여, 트리 생성의 복잡도를 개선하였다.
센터 노드는 서브 셋의 V'중 엑세스 스위치를 제외한 다른 스위치들과 엑세스 스위치 간의 최단 경로의 합이 최소인 스위치를 가리킬 수 있다. 이를 식으로 나타내면 다음과 같다.
엑세스 스위치로부터 다른 노드들로의 최단 경로에서, 홉(hop)의 개수의 합을 모두 구하고, 그 중 개수의 합이 최소인 스위치를 센터 노드로 선정할 수 있다. 최단 경로는 종래에 존재하는 어떤 알고리즘을 이용하여 구하여도 무방하다.
센터 노드가 정해지면, 각각의 엑세스 스위치로부터 센터 노드까지의 최단 경로를 모두 합쳐, 전체 네트워크 신장 트리를 완성할 수 있다.
이처럼, 전체 엑세스 스위치 간의 최단 경로가 아닌, 센터 노드와의 최단 경로를 생성하고, 합함으로써 신장 트리 생성의 시간 복잡도를 감소시켰다.
도 7을 참조하면, 엑세스 스위치는 b, e 이므로, 엑세스 스위치를 제외한 다른 스위치인 a, c, e 각각에 대해, 엑세스 스위치로의 거리를 계산할 수 있다. a스위치로부터 엑세스 스위치 b까지는 1개의 홉을, 엑세스 스위치 e까지는 3개의 홉을 가지게 된다. 그러므로 총 4개의 홉을 계산할 수 있다. c스위치로부터 엑세스 스위치 b까지는 1개의 홉을, 엑세스 스위치 e까지는 1개의 홉을 가지게 되므로, 총 2개의 홉을 계산할 수 있다. d스위치로부터 엑세스 스위치 b까지는 2개의 홉을, 엑세스 스위치 e까지는 1개의 홉을 가지게 되므로, 총 3개의 홉을 계산할 수 있다.
따라서 스위치 c가 총 홉의 개수가 2개로 최소 홉의 개수를 갖게 되므로, 센터 노드로 선정될 수 있다. 그러면 엑세스 스위치 각각으로부터 최단 경로인 f와 g를 합치면, 전체 네트워크 신장 트리를 완성할 수 있다. 이는 그림(225)에 도시되었다. 네트워크 트리가 생성되면, 가상 네트워크 생성이 완료된다. 가상 네트워크가 생성되면 해당 가상 네트워크에 대한 식별자가 추가될 수 있고, 생성된 가상 전용 네트워크의 참여 호스트 간의 데이터 전송이 가능함이 공지될 수 있다.
또 다른 예시를 통해, 네트워크 신장 트리를 생성하는 과정을 설명한다. 도 9는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 또 다른 예시이다.
그림(230)에서, 엑세스 스위치를 a 및 b라고 하면, 나머지 c내지 h에 대하여, a 및 b로 부터 최단 경로를 구하고, 그 최단 경로의 합이 최소인 스위치를 센터 노드로 선정할 수 있다.
상술한 방법으로 다시 연산하면, 스위치 f, g, h에서 엑세스 스위치 a및 b로의 홉의 개수가 4개로 최소가 된다. 스위치 c, d, e로부터는 총5개의 홉을 가지기 때문이다. 따라서 f, g, h 중 어느 스위치로 선택하더라도 무방하다. 본 예시에서는 g를 센터 노드로 선택하였다. 따라서 엑세스 스위치 a 와 스위치 g간의 최단 경로 i와 엑세스 스위치 b와 스위치 g간의 최단 경로 j를 합치면, 네트워크 신장 트리가 완성되게 된다.
지금까지 제1 방법에 의해 서브 셋을 구성하여, 가상 네트워크를 생성하는 과정을 살펴보았다. 상술한 제2 방법에 의해 서브 셋을 구성하는 방법도 있는데, 본 발명의 실시예에 따른 네트워크 트리 생성 방법은 제1 방법으로 먼저 제1 서브 셋을 구성하고, 제1 서브 셋을 기반으로 네트워크 트리의 생성이 불가능한 경우에 제2 방법으로 제2 서브 셋을 구성하고, 제2 서브 셋을 기반으로 네트워크 트리를 생성할 수 있다. 해당 과정을 도 10을 참조하여 설명한다.
도 10은 본 발명의 또 다른 실시예에 따른 가상 네트워크 생성 방법의 순서도이다.
가상 네트워크 생성 요청 이벤트 발생하면(S200), 가상 네트워크 생성 장치는 먼저 제1 방식에 의하여 서브 셋을 구성할 수 있다(S320). 제1 서브 셋이 구성되면, 제1 서브 셋을 기반으로 트리 생성이 가능한지 여부를 판단할 수 있다(S410). 만약 트리 생성이 가능하다면, 제1 서브 셋을 기반으로 가상 네트워크를 생성하면 된다(S500). 만약 트리 생성이 불가능하다면, 제2 방식에 의하여 서브 셋을 다시 구성할 수 있고(S325), 제2 서브 셋을 기반으로 트리 생성이 가능한지 여부를 판단할 수 있고(S410), 만약 트리 생성이 가능하다면, 제2 서브 셋을 기반으로 가상 네트워크를 생성하면 된다(S500).
만약 제2 서브 셋을 기반으로도, 트리를 생성할 수 없다면, 발생한 가상 네트워크 생성 요청 이벤트를 대기 큐에 삽입할 수 있다(S420). 이후, 가상 네트워크 생성을 위한 가용 자원이 발생 했다면, 다시 제1 방식에 의하여 서브 셋을 구성하는 단계(S320)로 돌아간다. 가용 자원이 발생하지 않았다면, 가용 자원이 발생할 때까지 해당 가상 네트워크 생성 요청 이벤트는 대기 큐에 삽입되어 있는 채로, 가용 자원이 발생하였는지 여부를 확인하게 된다(S430).
제1 방식을 제2 방식보다 선행하는 이유는, 가상 전용 네트워크를 생성하기 위함이다. 제1 서브 셋을 기반으로 생성된 가상 네트워크는, 네트워크 이루는 링크가 다른 가상 네트워크에 의해 점유 되지 않은 것이므로, 어느 링크도 다른 가상 네트워크와 공유하지 않게 된다. 따라서 전용 네트워크 망(dedicated network)을 형성할 수 있게 되며, 이러한 전용 네트워크는 특정 유저 그룹에 의해 전용 목적으로 구축되어 운용될 수 있다.
한편, 본 발명에서 사용자의 요구 대역폭에 대한 정보를 포함한 가상 네트워크 생성 요청을 수신하여, 해당 요구 대역폭을 보장하는 가상 네트워크를 생성하게 되는데, 이를 통해, SDN이 적용 되는 네트워크에서 특정 유저들이 요구하는 요구 대역폭을 보장하면서도 보안성이 높은 전용 네트워크인 가상 네트워크를 생성할 수 있게 된다.
따라서, 가상 네트워크 생성 요청을 송신하는 유저 그룹에 따라 제1 방식에 의하여만, 가상 네트워크를 생성할 수 있도록 설정할 수도 있다. 보다 보안성이 높은 전용 망을 제공할 수 있는 효과가 있다.
단계(S410)에서 네트워크 트리의 생성이 불가능한 경우의 예시는 도 11을 통해 설명하며, 단계(S325)의 제2 방식에 의하여 서브 셋을 구성하는 과정은 도 12 내지 도 14를 통해 설명한다.
도 11은 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리 생성이 불가능한 경우를 설명하기 위한 도면이다.
그림(243)은 서브 셋을 구성한 결과의 예시 도면이다. 네트워크 가지치기 및 다중 링크 단일화가 완료되면 서브 셋이 그림(243)과 같이 구성될 수 있다. 그런데 그림(243)의 서브 셋을 기반으로 네트워크 트리가 생성될 수 없다.
엑세스 스위치 a 및 b가 연결된 신장 트리를 생성할 수 있어야 하는데, 이 경우는 엑세스 스위치a와 스위치 c간에 가용 링크가 존재하지 않는다. 따라서 엑세스 스위치 a와 엑세스 스위치b가 연결될 수 없어, 가상 네트워크가 생성될 수 없다.
상술한 바와 같이, 이와 같은 경우에는 해당 가상 네트워크에 대한 생성 요청을 대기 큐에 삽입하고, 가용 자원이 발생할 때까지 대기하게 된다.
도 12는 본 발명의 몇몇 실시예에서 참조되는, 제2 방법에 의한 네트워크 가지치기 과정을 설명하기 위한 예시 도면이다.
그림(250)은 전체 네트워크를 도시하고 있다. 전제 네트워크는 복수의 호스트, 스위치 및 링크로 구성된다. 참여 호스트는 사각형으로 표시되었다. 제1 방법에 의한 제1 서브 셋을 기반으로 네트워크 트리 생성이 불가능 할 경우를 가정할 수 있으나, 이에 한정되는 것은 아니고, 처음부터 제2 방법에 의해 서브 셋 구성이 이루어질 수 있다.
서브 셋 구성을 위해 일단, 호스트 및 호스트와 스위치 사이의 링크를 제거할 수 있다. 이 과정은 제1 방법과 공통된다. 이 과정에서 참여 호스트와 연결된 스위치는 엑세스 스위치(Access switch)인 b 및 e는 별도로 마크해 둘 필요가 있음은 살펴본 바와 같다.
그림(255)의 네트워크에서 가용 링크 외 나머지 링크를 제외할 수 있다. 제2 방법에 의할 때, 요구 대역폭 10G 이상의 대역폭이거나, 다른 가상 네트워크에 의해 점유된 링크더라도 잔여 대역폭이 10G 이상인 링크를 선택할 수 있다.
따라서, 그림(255)에서 점유된 1G, 전용 링크 1G는 모두 제거되어, 그림(260)과 같이 네트워크가 축소될 수 있다. 이때, 스위치 d는 가용 링크를 가지지 않는 스위치 이므로, 서브 셋에서 제거될 수 있다. 따라서 네트워크 가지치기가 완료된 최종 네트워크는 그림(270)과 같다.
도 13은 본 발명의 몇몇 실시예에서 참조되는, 다중 링크 단일화 과정을 설명하기 위한 예시 도면이다. 특히, 본 예시 도면은 제2 방법에 의해 네트워크 가지치기가 완료된 후에, 다중 링크 단일화를 수행하는 과정 설명을 위한 예시 도면이다.
그럼(270)은 제2 방법으로 네트워크 가지치기가 완료된 상태의 서브 셋을 도시하고 있다. 그림(270)에서 스위치 c-e사이의 링크가 2개, 스위치 d-c 사이의 링크가 3개로 다중 링크를 구성할 수 있다. 따라서 스위치 c-e, d-c 사이의 다중 링크를 단일화 할 수 있다.
제2 방법에 의하여 네트워크 가지치기가 수행된 경우, 남아있는 다중 링크의 대역폭은 서로 다를 수 있다. 그러나 모든 링크는 요구 대역폭을 만족하므로, 다중 링크 중 최소 대역폭을 가지는 한 개의 링크를 선택할 수 있다.
스위치 c-e 사이의 링크는 점유된 10G 링크와 점유된 40G 링크로 구성되므로, 더 작은 대역폭을 가지면서도 요구 대역폭을 만족하는 점유된 10G 링크를 선택할 수 있다. 나머지 링크인 점유된 40G링크는 제거할 수 잇다.
스위치 d-e 사이의 링크는 점유된 10G 링크와 점유된 40G 링크 2개로 구성되므로, 더 작은 대역폭을 가지면서도 요구 대역폭을 만족하는 점유된 10G 링크를 선택할 수 있다.
다중 링크 단일화가 수행되면 그림(275)와 같이 도시된다. 그림(275)가 제2 서브 셋 구성이 완료된 그림이다. 서브 셋이 구성되면, 구성된 서브 셋을 기반으로 네트워크 트리를 생성할 수 있다. 이하 도 14를 통해 설명한다.
도 14는 본 발명의 몇몇 실시예에서 참조되는, 네트워크 트리를 생성하는 과정을 설명하기 위한 또 다른 예시이다. 서브 셋 G'(V', E')을 기반으로 네트워크 트리를 생성하게 된다.
도 8을 참조했던 것과 서브 셋의 구조가 동일하므로, 센터 노드는 스위치 c로 선정될 수 있다. 엑세스 스위치 b 및 엑세스 스위치 e로부터 센터 노드까지의 최단 경로 f, g를 합쳐 네트워크 트리를 생성하게 된다. 그림(280)에 도시된 네트워크 트리는 도8의 그림(225)의 네트워크 트리와 구성 링크가 상이하다.
제1 방식에 의해 생성된 가상 네트워크는 10G의 전용 링크로만 구성되었지만, 제2 방식에 의해 생성된 가상 네트워크는 40G의 전용 링크와 점유된 10G 링크로 구성되었다. 이처럼 제2 방식에 의한 경우, 가용 링크의 선택의 폭이 넓어 지므로, 제1 방식에 의하여 가상 네트워크 생성이 불가하더라도 제2 방식에 의해 가상 네트워크의 생성이 가능한 경우가 있을 수 있다.
가상 네트워크 생성이 완료되면, 참여 호스트 간의 데이터 송신이 가능해진다. 이하 도15를 참조하여, 데이터 전송 방법에 대하여 설명한다. 도 15는 본 발명의 또 다른 실시예에 따른, 데이터 전송 방법의 순서도이다. 데이터 전송 방법은 SDN 컨트롤러에 의하여 수행될 수 있다.
SDN 네트워크 시스템에서 SDN 컨트롤러는 스위치로부터 데이터 전송 요청을 수신할 수 있다(S600). 데이터 전송 요청은 데이터의 송신지인 출발지 주소와 데이터의 수신지인 도착지 주소를 포함할 수 있다. SDN 컨트롤러는 해당 데이터의 출발지 주소에 해당하는 호스트와 목적지 주소에 해당하는 호스트가 동일한 가상 네트워크에 속하는지 여부를 판단할 수 있다(S610). 출발지와 목적지가 동일한 가상 네트워크에 속하지 않는 경우, 데이터 전송 요청을 처리하지 않음으로써, 데이터 전송을 제한할 수 있다(S610).
출발지와 목적지가 동일한 가상 네트워크에 속하는 경우, 데이터 전송을 허용할 수 있다. 구체적으로, 상기 가상 네트워크에 포함된 링크 및 스위치를 이용하여 데이터 전송 경로를 탐색할 수 있다(S630). 데이터 전송 경로가 탐색 되면, 데이터를 전송하게 된다(S640).
단계(S610)에서, SDN 컨트롤러가 동일한 가상 네트워크에 속하는지 여부를 판단할 때, 데이터 전송 요청 메시지내의 출발지 주소와 목적지 주소에 해당하는 호스트들이 속하는 가상 네트워크의 식별자를 비교할 수 있다.
가상 네트워크 생성 장치가 가상 네트워크를 생성하면, 고유한 식별자를 할당할 수 있다. 고유 식별자를 할당하는 이유는, 서로 다른 가상 네트워크를 구분하고, 전용 네트워크로 사용할 수 있도록 하기 위함이다. SDN 컨트롤러는 식별자를 비교함으로써, 동일한 가상 네트워크 내에서의 전송 요청인지 여부를 판단할 수 있다.
하나의 호스트는 같은 가상 네트워크에 포함될 수 없지만, 하나의 스위치는 서로 다른 가상 네트워크에 포함될 수 있다. 하나의 스위치에 서로 다른 복수개의 호스트가 연결되어 있을 수 있기 때문이다. 따라서, 스위치는 호스트로부터 데이터 전송 요청을 수신 받으면, 출발지와 도착지의 호스트가 동일한 가상 네트워크에 속하는지 여부를 판단하여 한다.
서로 다른 가상 네트워크 간의 데이터 전송을 불허함으로써, 서로 다른 가상 네트워크를 상호 독립적으로 운영 및 관리 할 수 있고, 상호간의 배타적인 가상 전용 네트워크를 생성할 수 있기 때문이다.
이와 같은 배타적 데이터 통신을 통해, 가상 네트워크는 전용 네트워크로서도 기능할 수 있게 되며, 데이터 전송 보안을 강화하고, 전송 효율을 향상시킬 수 있다.
단계(S630)에서, SDN 컨트롤러는 상기 가상 네트워크에 해당하는 네트워크 토폴로지인, 트리를 인지하고, 플로우 규칙을 생성하여 데이터 전송 요청을 송신한 스위치로 송신할 수 있다.
SDN 컨트롤러가 데이터 통신을 위하여 데이터 전송 경로를 탐색할 때, 전체 네트워크가 아닌 해당 가상 네트워크에서 전송 경로를 탐색하게 되어, 전송 경로 탐색 시간을 현저히 줄일 수 있는 효과가 있다.
도 15의 데이터 전송 방법을 구체적으로 다시 설명하면, 본 발명의 다른 실시예에 따른 사상 전용 네트워크에서의 데이터 전송 방법은 SDN 스위치로부터 유입된 제 1 패킷에 관한 패킷-인 메시지(Packet-In Message) 수신하면, 메시지 내의 출발지 주소와 목적지 주소에 해당하는 호스트들의 가상 전용 네트워크 식별자를 비교할 수 있다. 패킷의 출발지MAC어드레스와 목적지 MAC어드레스를 파싱하여, 출발지MAC어드레스와 도착지MAC어드레스를 동시에 갖는 VN ID를 조회할 수 있다.
그러한 VN ID가 없다면 패킷을 드랍(drop)하고, 그러한 VN ID가 있다면, 해당 VN에서 출발지와 도착지의 두 노드 사의의 경로를 탐색하여 생성하고, 생성된 경로에 따라 데이터 전송을 할 수 있다.
이하, 도 16a내지 도 16b을 참조하여 본 발명의 실시예에 따른 데이터 전송 방법을 예로 들어 설명한다. 도 16a 및 도 16b은 본 발명의 또 다른 실시예에 따른 데이터 전송 방법을 설명하기 위한 예시 도면이다.
그림(600)은 가상 네트워크가 생성되기 전, 초기의 전체 네트워크를 도시한 것이다. SDN 컨트롤러는 초기의 전체 네트워크를 하나의 가상 네트워크로 인식할 수 있다. 이를 디폴트 가상 네트워크라고 하자. 이후, 가상 네트워크가 구축되면, 해당 가상 네트워크에 속한 호스트와 디폴트 가상 네트워크에 속한 호스트 사이의 통신은 제한될 수 있다.
그림(600)은 네트워크에 아무런 전용 네트워크가 생성되지 않은 경우이므로, 모든 호스트들은 디폴트 가상 네트워크에 속하여, 상호간의 통신이 가능하다. 디폴트 가상 네트워크의 식별자는 VN1이라고 하자.
이후, 그림(605)에서 호스트 H1, H2 및 H4를 위한 가상 네트워크 VN10이 생성되었다. VN10이 생성되었으므로, 호스트 H1, H2 및 H4 사이의 통신은 VN10을 통하여 이루어지며, 호스트 H3, H5 및 H6 와 VN10에 속하는 호스트들 사이의 통신은 제한되게 된다.
이후 그림(610)에서, 호스트 H2와 H3를 위한 VDN 20이 생성될 경우, 마찬가지로 이들 간의 통신은 VDN 20을 통하여 이뤄지며 나머지 호스트들과 통신은 제한된다. 이 때, H2는 H1, H4와는 VN 10을 통하여 통신하며 H3와는 VN 20을 통하여 통신할 수 있으며 H5, H6와의 통신은 제한된다. H3의 경우 H2를 제외한 모든 호스트와의 통신이 제한된다. 한편 아무런 VN에 속하지 않은 H5와 H6은 여전히 디폴트 VN을 통하여 통신 가능하며 나머지 호스트와의 통신은 제한된다.
이처럼, 가상 전용 네트워크가 구축되면 독립된 네트워크(Isolated Network)가 형성되고 해당 네트워크에 속한 호스트와 디폴트 가상 전용 네트워크에 속한 호스트 사이의 통신, 서로 다른 가상 전용 네트워크에 속하는 호스트 사이의 은 제한된다.
즉, 가상 전용 네트워크를 제공하는 서비스환경에서는 동일한 가상 전용 네트워크 내의 호스트들 사이의 통신만이 허용되게 된다. 임의의 가상 전용 네트워크 내의 호스트들 사이의 통신을 위하여 전체 네트워크가 아닌 해당 가상 전용 네트워크에서 데이터 전송 경로를 탐색하기 때문에, SDN 컨트롤러는 플로우 규칙 생성 시간을 현저히 줄일 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
Claims (12)
- 소프트웨어 정의 네트워크(SDN) 컨트롤러로부터 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함하는 물리 네트워크에 대한 정보를 획득 하는 단계;
상기 복수의 호스트 중 일부인 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청을 수신하는 단계;
상기 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 상기 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성하는 단계; 및
상기 서브 셋에 포함된 링크 및 스위치 중 일부의 링크 및 스위치만을 이용하여, 상기 복수의 참여 호스트를 연결하기 위한 네트워크 트리를 생성하는 단계를 포함하되,
상기 네트워크 트리를 생성하는 단계는,
상기 서브 셋에 포함된 스위치 중에서, 상기 복수의 참여 호스트와 연결된 각각의 액세스 스위치(Access switch)까지의 최단 경로에 대한 홉(hop) 수의 합이 최소가 되는 스위치를 센터 노드로 결정하는 단계; 및
상기 센터 노드를 중심으로, 상기 센터 노드와 상기 각각의 액세스 스위치 간의 최단 경로를 가리키는 트리를 합쳐서 상기 네트워크 트리를 생성하는 단계를 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제1 항에 있어서,
상기 서브 셋을 구성하는 단계는,
상기 복수의 호스트를 제거하는 단계; 및
상기 복수의 링크 중에서, 상기 복수의 호스트와 상기 복수의 스위치 사이의 링크를 제거하는 단계를 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제1 항에 있어서,
상기 서브 셋을 구성하는 단계는,
상기 복수의 링크 중에서, 상기 요구 대역폭과 같은 대역폭을 가지고, 다른 가상 네트워크에 의해 점유되지 않은 제1 링크를 선택하는 단계; 및
상기 복수의 링크 중에서 상기 제1 링크를 제외한 나머지 링크를 제거하고, 상기 복수의 스위치 중에서 상기 제1 링크를 포함하지 않는 스위치를 제거함으로써, 제1 서브 셋을 구성하는 단계를 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제3 항에 있어서,
상기 제1 서브 셋에 포함된 스위치 사이의 링크가 다중 링크로 구성된 경우, 상기 다중 링크 중 한 개의 링크를 선택하고 나머지 링크는 제거하는 단계를 더 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제1 항에 있어서,
상기 서브 셋을 구성하는 단계는,
상기 복수의 링크 중에서, 다른 가상 네트워크에 의해 점유되지 않고, 상기 요구 대역폭 이상의 대역폭을 가지는 링크 및 상기 다른 가상 네트워크에 의해 점유되고, 상기 요구 대역폭 이상의 잔여 대역폭을 가지는 링크를 제2 링크로 선택하는 단계; 및
상기 복수의 링크 중에서 상기 제2 링크를 제외한 나머지 링크를 제거하고, 상기 복수의 스위치 중에서 상기 제2 링크를 포함하지 않는 스위치를 제거함으로써, 제2 서브 셋을 구성하는 단계를 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제5 항에 있어서,
상기 제2 서브 셋에 포함된 스위치 사이의 링크가 다중 링크로 구성된 경우, 상기 다중 링크 중 최소 대역폭을 가지는 한 개의 링크를 선택하고 나머지 링크는 제거하는 단계를 더 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제1 항에 있어서,
상기 네트워크 트리가 생성 가능한지 여부를 판단하는 단계를 더 포함하고,
상기 서브 셋을 구성하는 단계는,
상기 복수의 링크 중에서, 상기 요구 대역폭과 같은 대역폭을 가지고, 다른 가상 네트워크에 의해 점유되지 않은 제1 링크를 선택하는 단계;
상기 복수의 링크 중에서 상기 제1 링크를 제외한 나머지 링크를 제거하고, 상기 복수의 스위치 중에서 상기 제1 링크를 포함하지 않는 스위치를 제거함으로써, 제1 서브 셋을 구성하는 단계;
상기 제1 서브 셋을 이용하여 상기 네트워크 트리가 생성 가능한지 여부를 판단하는 단계;
상기 판단의 결과, 상기 네트워크 트리의 생성이 가능한 경우, 상기 제1 서브 셋을 기반으로 상기 네트워크 트리를 생성하고,
상기 판단의 결과, 상기 네트워크 트리의 생성이 불가능한 경우, 상기 복수의 링크 중에서, 다른 가상 네트워크에 의해 점유되지 않고, 상기 요구 대역폭 이상의 대역폭을 가지는 링크 및 상기 다른 가상 네트워크에 의해 점유되고, 상기 요구 대역폭 이상의 잔여 대역폭을 가지는 링크를 제2 링크로 선택하고, 상기 복수의 링크 중에서 상기 제2 링크를 제외한 나머지 링크를 제거하고, 상기 복수의 스위치 중에서 상기 제2 링크를 포함하지 않는 스위치를 제거함으로써, 제2 서브 셋을 구성하고, 상기 제2 서브 셋을 이용하여 상기 네트워크 트리가 생성 가능한지 여부를 판단하는 단계를 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 제1 항에 있어서,
상기 서브 셋에 포함된 링크 및 스위치 중 일부의 링크 및 스위치만을 이용하여, 상기 네트워크 트리의 생성이 불가능한 경우, 상기 가상 네트워크 생성 요청을 대기 큐에 삽입하는 단계를 더 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 방법. - 삭제
- 삭제
- 하나 이상의 프로세서;
상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
물리 네트워크 정보 및 가상 네트워크 정보를 저장하는 스토리지를 포함하되,
상기 컴퓨터 프로그램은,
소프트웨어 정의 네트워크(SDN) 컨트롤러로부터 복수의 호스트, 복수의 스위치 및 복수의 링크를 포함하는 물리 네트워크에 대한 정보를 획득 하는 오퍼레이션;
상기 복수의 호스트 중 일부인 복수의 참여 호스트에 대한 정보 및 사용자의 요구 대역폭에 대한 정보를 포함하는 가상 네트워크 생성 요청을 수신하는 오퍼레이션;
상기 복수의 링크 중 상기 요구 대역폭을 만족하는 링크를 선택하고, 상기 복수의 스위치 중 상기 선택된 링크를 하나 이상 가지는 스위치를 선택함으로써, 상기 선택된 링크 및 상기 선택된 스위치를 포함하는 서브 셋을 구성하는 오퍼레이션; 및
상기 서브 셋에 포함된 링크 및 스위치 중 일부의 링크 및 스위치만을 이용하여, 상기 복수의 참여 호스트를 연결하기 위한 네트워크 트리를 생성하는 오퍼레이션을 포함하되,
상기 네트워크 트리를 생성하는 오퍼레이션은,
상기 서브 셋에 포함된 스위치 중에서, 상기 복수의 참여 호스트와 연결된 각각의 액세스 스위치(Access switch)까지의 최단 경로에 대한 홉(hop) 수의 합이 최소가 되는 스위치를 센터 노드로 결정하는 오퍼레이션; 및
상기 센터 노드를 중심으로, 상기 센터 노드와 상기 각각의 액세스 스위치 사이의 최단 경로를 가리키는 트리를 합쳐서 상기 네트워크 트리를 생성하는 오퍼레이션을 포함하는 소프트웨어 정의 네트워크 기반의 가상 네트워크 생성 장치. - 컴퓨터를 이용하여 제1항 내지 제8항 중 어느 한 항의 방법을 실행시키기 위하여 저장매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160147893A KR101754618B1 (ko) | 2016-11-08 | 2016-11-08 | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160147893A KR101754618B1 (ko) | 2016-11-08 | 2016-11-08 | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101754618B1 true KR101754618B1 (ko) | 2017-07-07 |
Family
ID=59353207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160147893A KR101754618B1 (ko) | 2016-11-08 | 2016-11-08 | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101754618B1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019169786A (ja) * | 2018-03-22 | 2019-10-03 | Smk株式会社 | トポロジマッピングプログラム、トポロジマッピング方法及びトポロジマッピングシステム |
KR102172232B1 (ko) * | 2019-10-01 | 2020-10-30 | 고려대학교 산학협력단 | 프로그래밍 가능한 네트워크 가상화에서의 대역폭을 고려한 링크 장애 우회 장치 및 방법 |
KR102359833B1 (ko) * | 2021-08-27 | 2022-02-09 | (주)트렌토 시스템즈 | 네트워크 제어장치 및 네트워크 제어장치의 동작 방법 |
CN114363115A (zh) * | 2020-09-30 | 2022-04-15 | 银峰系统公司 | 多区域虚拟覆盖广域网 |
US11595263B1 (en) | 2021-08-27 | 2023-02-28 | Trento Systems, Inc. | Dynamic construction of virtual dedicated network slice based on software-defined network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3938582B2 (ja) * | 2003-02-19 | 2007-06-27 | 富士通株式会社 | 仮想lan構築装置 |
-
2016
- 2016-11-08 KR KR1020160147893A patent/KR101754618B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3938582B2 (ja) * | 2003-02-19 | 2007-06-27 | 富士通株式会社 | 仮想lan構築装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019169786A (ja) * | 2018-03-22 | 2019-10-03 | Smk株式会社 | トポロジマッピングプログラム、トポロジマッピング方法及びトポロジマッピングシステム |
JP7024536B2 (ja) | 2018-03-22 | 2022-02-24 | Smk株式会社 | トポロジマッピングプログラム、トポロジマッピング方法及びトポロジマッピングシステム |
KR102172232B1 (ko) * | 2019-10-01 | 2020-10-30 | 고려대학교 산학협력단 | 프로그래밍 가능한 네트워크 가상화에서의 대역폭을 고려한 링크 장애 우회 장치 및 방법 |
CN114363115A (zh) * | 2020-09-30 | 2022-04-15 | 银峰系统公司 | 多区域虚拟覆盖广域网 |
CN114363115B (zh) * | 2020-09-30 | 2024-01-30 | 慧与发展有限责任合伙企业 | 多区域虚拟覆盖广域网 |
KR102359833B1 (ko) * | 2021-08-27 | 2022-02-09 | (주)트렌토 시스템즈 | 네트워크 제어장치 및 네트워크 제어장치의 동작 방법 |
US11595263B1 (en) | 2021-08-27 | 2023-02-28 | Trento Systems, Inc. | Dynamic construction of virtual dedicated network slice based on software-defined network |
WO2023027255A1 (ko) * | 2021-08-27 | 2023-03-02 | (주)트렌토 시스템즈 | 네트워크 제어장치 및 네트워크 제어장치의 동작 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101754618B1 (ko) | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 | |
JP6733486B2 (ja) | マルチドメイン・ネットワークにおけるバーテックス中心のサービス機能チェーン形成 | |
US8171539B2 (en) | Methods and apparatus for implementing a search tree | |
US10491464B2 (en) | Network topology assisted device provisioning | |
CN107113241B (zh) | 路由确定方法、网络配置方法以及相关装置 | |
CN106817236B (zh) | 虚拟网络功能的配置方法和装置 | |
CN104246700A (zh) | 用于基于胖树路由在不同无限带宽子网间路由流量的系统和方法 | |
US11398981B2 (en) | Path creation method and device for network on chip and electronic apparatus | |
KR20160099473A (ko) | 모듈식 포워딩 테이블 확장성을 위한 기술 | |
KR20100021637A (ko) | 최적의 dhcp 서버를 찾기 위한 라우터를 동적으로 구성하는 시스템 및 방법 | |
JP5285083B2 (ja) | 並行してトポロジを発見する方法および装置 | |
JP2004208297A (ja) | ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
CN115426312B (zh) | 一种大规模多模态网络中标识管理及优化转发方法和装置 | |
CN110099076A (zh) | 一种镜像拉取的方法及其系统 | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
CN116232985A (zh) | 一种路由规划方法、装置及存储介质 | |
CN110336730A (zh) | 一种网络系统及数据传输方法 | |
JP5664131B2 (ja) | 情報処理方法、装置及びプログラム | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
CN112751768B (zh) | 业务报文转发方法、装置及计算机存储介质 | |
JP6437694B2 (ja) | パケット転送 | |
US20200036784A1 (en) | Peer-to-peer network for internet of things resource allocation operation | |
CN108259205B (zh) | 一种路由发布方法及网络设备 | |
KR101800320B1 (ko) | 버스 프로토콜 기반의 네트워크 온 칩 시스템, 그 설계 방법 및 그 설계 방법에 관한 프로그램이 기록된 컴퓨터 판독가능 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |