KR101519517B1 - 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 - Google Patents
소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR101519517B1 KR101519517B1 KR1020140006767A KR20140006767A KR101519517B1 KR 101519517 B1 KR101519517 B1 KR 101519517B1 KR 1020140006767 A KR1020140006767 A KR 1020140006767A KR 20140006767 A KR20140006767 A KR 20140006767A KR 101519517 B1 KR101519517 B1 KR 101519517B1
- Authority
- KR
- South Korea
- Prior art keywords
- flow
- transmission
- network
- amount
- packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
복수의 서버를 포함하는 소프트웨어 정의 네트워크를 관리하는 제어 장치의 동작 방법은 상기 복수의 서버 사이의 플로우에 대한 정보를 수집하는 단계; 상기 수집한 정보에 기초하여 전송되는 상기 플로우의 특성을 결정하는 단계; 상기 결정된 플로우의 특성에 적합한 전송 경로를 상기 플로우에 할당하는 단계; 및 상기 전송 경로를 상기 플로우에 할당한다는 것을 규정하는 플로우 테이블 수정 요청 메시지를 상기 플로에 속한 서버의 소프트웨어 스위치에 전송하여, 상기 소프트웨어 스위치가 상기 플로우 테이블 수정 요청 메시지에 기초하여 플로우 테이블을 수정하고 수정된 플로우 테이블에 기초하여 복수의 물리 네트워크 인터페이스 사이의 스위칭을 수행하도록 하는 단계를 포함한다.
Description
본 발명은 소프트웨어 정의 네트워크(Software Defined Network)에서 제어 장치 및 그 동작 방법에 관한 것이다.
2008년 발표된 소프트웨어 정의 네트워킹 기술의 등장은 최근 네트워크 구조를 바꾸고 있다. 소프트웨어 정의 네트워크 기술은, 기본적으로, 복잡한 제어 플레인(control plane)의 기능을 데이터 플레인(data plane)과 분리하여, 제어 플레인 의 복잡한 기능을 소프트웨어적으로 처리하고, 데이터 플레인은 단순한 네트워크 패킷의 전달, 무시, 변경 등의 기능만을 수행하도록 하는데 있다. 이 경우, 복잡한 하드웨어의 제약 없이 제어 플레인의 도움을 통해 소프트웨어적으로 새로운 네트워크의 기능이 개발될 수 있으며, 동시에 이전 네트워크 구조에서 하기 어려웠던 다양한 시도가 가능하게 되었다.
예를 들어, 클라우드 네트워크와 같은 환경에서, 각 네트워크 스위치 혹은 라우터의 기능을 다이나믹하게 설정하여, 에너지 소비를 줄일 수 있으며, 엔터프라이즈 급의 환경에서는 각 스위치나 라우터에 원하는 접근 제어 방식을 구현할 수 있다. 따라서, 이 방식을 이용하여 기존의 네트워크에서 사용되는 장비의 수를 줄일 수 있으며, 동시에 장비 관리 비용 역시 줄일 수 있다. 또한, 새로운 기능을 자유자재로 실험적으로 개발하여 테스트할 수 있다.
그러나, 일반 네트워크는 관리 편의를 위하여 간단한 구조로 연결된 스위치들을 포함하는 것과는 달리 소프트웨어 정의 네트워크 내의 스위치들은 간단한 구조를 가질 필요가 없다. 이는, 제어 장치(100)가 고속 컴퓨팅에 의해 스위치들의 플로우 테이블을 구할 수 있기 때문이다.
한편, 여러 개의 분산된 데이터 저장장소와 처리기들을 네트워크로 연결하여 서로 통신을 하면서 동시에 일을 처리하는 방식을 분산 처리 시스템(Distributed processing system)이라고 한다.
분산 컴퓨팅의 개념은 불균일 기억 장치 접근(Non-Uniform Memory Access, NUMA)과 같은 고전적인 CPU 아키텍처 방식 이전까지 거슬러 올라갈 정도로 역사가 오래되었지만, 2002년경 구글이 촉발한 빅데이터 붐에 의해 클러스터 컴퓨팅이 확산되면서 본격적으로 쓰이게 되었다.
동일한 공간의 여러 서버를 네트워크로 묶어서 대용량 처리 능력을 가지는 하나의 서버처럼 사용하는 클러스터 기술은 NoSQL이라는 새로운 시장을 창출했으며, 구글, 아마존, 페이스북, 트위터 등 글로벌 IT 기업의 핵심 기술로 부상했다.
이러한 분산 처리 시스템의 구축 시, 수십에서 수백 대의 서버를 클러스터로 묶어서 네트워크를 구축하는 것이 하드웨어 측면에서 가장 어려운 문제이다.
네트워크를 구축하기 위해서는 다수의 네트워크 장비가 필요하고, 연결되는 서버의 수가 많아지면 많아질수록 더 많은 네트워크 장비가 필요하기 때문이다.
이는 CPU, Memory, Disk 등의 자원은 서버를 늘림에 따라 선형적으로 증가하지만 네트워크는 서버가 늘어남에 따라 병목 현상이 발생하기 쉬워서 더 많은 네트워크 장비를 이용하여 서버를 연결해야 하기 때문이다.
이에 따라 분산 처리 시스템 전체 구성 비용의 많은 부분을 네트워크 구축 비용이 차지하는 문제점이 있다.
본 발명이 해결하고자 하는 기술적 과제는 분산 처리 시스템의 네트워크를 소프트웨어 정의 네트워크 기반의 가상의 소프트웨어 스위치를 이용하여 구축할 수 있는 제어 장치를 제공하는 것이다.
실시예에서, 복수의 서버를 포함하는 소프트웨어 정의 네트워크를 관리하는 제어 장치의 동작 방법은 상기 복수의 서버 사이의 플로우에 대한 정보를 수집하는 단계; 상기 수집한 정보에 기초하여 전송되는 상기 플로우의 특성을 결정하는 단계; 상기 결정된 플로우의 특성에 적합한 전송 경로를 상기 플로우에 할당하는 단계; 및 상기 전송 경로를 상기 플로우에 할당한다는 것을 규정하는 플로우 테이블 수정 요청 메시지를 상기 플로에 속한 서버의 소프트웨어 스위치에 전송하여, 상기 소프트웨어 스위치가 상기 플로우 테이블 수정 요청 메시지에 기초하여 플로우 테이블을 수정하고 수정된 플로우 테이블에 기초하여 복수의 물리 네트워크 인터페이스 사이의 스위칭을 수행하도록 하는 단계를 포함한다.
실시예에서, 복수의 서버를 포함하는 소프트웨어 정의 네트워크를 관리하는 제어 장치는 상기 소프트웨어 정의 네트워크의 네트워크 정보를 수집하는 네트워크 정보 수집 모듈; 및 상기 수집한 네트워크 정보에 기초하여 전송되는 플로우의 특성을 판단하고, 상기 판단된 플로우의 특성에 따라 전송 경로를 할당하여 할당된 전송 경로를 규정하는 플로우 테이블 수정 요청 메시지를 상기 서버의 소프트웨어 스위치에 전송하는 네트워크 설정 모듈을 포함한다.
실시예에서, 소프트웨어 정의 네트워크를 관리하는 제어 장치에 연결된 서버는 상기 소프트웨어 정의 네트워크 상의 제어 장치 및 다른 서버와의 물리적 연결을 구성하는 물리 네트워크 인터페이스; 상기 서버의 제어부가 상기 소프트웨어 정의 네트워크 상에 연결된 복수의 서버들에 포함된 복수의 물리 네트워크 인터페이스들을 하나의 가상의 논리 네트워크 인터페이스로 인식하도록 하는 가상 논리 네트워크 인터페이스; 및 상기 가상 논리 네트워크 인터페이스를 통해 수신한 패킷을 저장된 플로우 테이블에 기초하여 스위칭하는 소프트웨어 스위치를 포함한다.
실시예에서, 제어 장치는 소프트웨어 정의 네트워크 기반의 가상의 소프트웨어 스위치를 이용하여 분산 처리 시스템의 네트워크를 구축할 수 있다.
이에 따라, 별도의 네트워크 장비 없이 분산 서버들의 다중 연결을 통해 분산 처리 시스템을 구성할 수 있다.
도 1은 일반적인 분산 처리 시스템을 보여주는 블록도이다.
도 2는 일반적인 분산 처리 시스템을 통한 패킷 이동을 나타낸다.
도 3은 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 이용한 분산 처리 시스템을 보여주는 블록도이다.
도 4는 본 발명의 실시예에 따른 서버의 구조를 보여주는 블록도이다.
도 5는 본 발명의 실시예에 따른 제어 장치와 서버들 간의 연결을 나타내는 예시도이다.
도 6은 본 발명의 실시예에 따른 서버 간의 연결을 나타낸다.
도 7는 본 발명의 실시예에 따른 패킷의 이동 경로를 나타낸다.
도 8은 본 발명의 실시예에 따른 제어 장치의 구조를 보여주는 블록도이다.
도 9는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크의 동작을 보여주는 래더 다이어그램이다.
도 10은 본 발명의 실시예에 따른 제어 장치의 동작 방법을 보여주는 흐름도이다.
도 11은 본 발명의 실시예에 따른 플로우의 특성 결정 방법을 보여주는 흐름도이다.
도 2는 일반적인 분산 처리 시스템을 통한 패킷 이동을 나타낸다.
도 3은 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 이용한 분산 처리 시스템을 보여주는 블록도이다.
도 4는 본 발명의 실시예에 따른 서버의 구조를 보여주는 블록도이다.
도 5는 본 발명의 실시예에 따른 제어 장치와 서버들 간의 연결을 나타내는 예시도이다.
도 6은 본 발명의 실시예에 따른 서버 간의 연결을 나타낸다.
도 7는 본 발명의 실시예에 따른 패킷의 이동 경로를 나타낸다.
도 8은 본 발명의 실시예에 따른 제어 장치의 구조를 보여주는 블록도이다.
도 9는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크의 동작을 보여주는 래더 다이어그램이다.
도 10은 본 발명의 실시예에 따른 제어 장치의 동작 방법을 보여주는 흐름도이다.
도 11은 본 발명의 실시예에 따른 플로우의 특성 결정 방법을 보여주는 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 이용한 분산 처리 시스템을 설명하기 전에 일반적인 분산 처리 시스템을 먼저 설명한다.
도 1은 일반적인 분산 처리 시스템을 보여주는 블록도이다.
도 1에 도시된 바와 같이, 일반적인 분산 처리 시스템은 복수의 서버(200), 복수의 스위치(400)를 포함한다.
서버(200)는 다른 서버(200)에 보내기 위한 패킷을 생성하여 네트워크 인터페이스의 포트를 통해 스위치(400)로 패킷을 전송한다.
스위치(400)는 네트워크 단위들을 연결하는 통신 장비로서 네트워크 스위치라고도 한다.
스위치(400)는 각 서버(200)가 주고 받는 패킷을 이동 경로에 맞게 스위칭하여 패킷을 전향시키며, 스위치(400)는 네트워크의 구조에 따라 계층적 구조로 배열될 수 있다.
이에 따라, 패킷은 네트워크의 구조에 따라 복수의 스위치(400)를 통과하여 목적하는 서버(200)에 도달할 수 있다.
이를 도 2를 참고하여 설명한다.
도 2는 일반적인 분산 처리 시스템을 통한 패킷 이동을 나타낸다.
서버(200)는 다른 서버에 보내기 위한 패킷을 생성하여 스위치(400)로 패킷을 전송하면, 패킷을 전송받은 스위치(400)는 패킷이 도달할 서버(200)까지의 전송 경로의 다른 스위치(400)에 패킷을 전달한다. 그리고 패킷을 전달받은 스위치(400)는 다시 전송 경로 상의 다른 스위치(400)에 패킷을 전달한다. 이러한 과정을 반복하여, 패킷을 생성된 서버(200)에서 다른 서버(200)로 전송할 수 있다.
따라서, 일반적인 분산 처리 시스템에서 패킷은 하나 이상의 스위치(400)를 통과하여 목적지 서버(200)에 도달할 수 있으며, 여기서 스위치(400)는 라우터로 구성될 수도 있다.
이하, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 이용한 분산 처리 시스템을 설명한다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 이용한 분산 처리 시스템을 보여주는 블록도이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크(10)는 제어 장치(100), 복수의 서버들(200)을 포함한다.
하나의 제어 장치(100)는 복수의 서버들(200)을 관리한다.
제어 장치(100)는 복수의 서버들(200) 각각과 연결되어 있고, 각각의 서버(200)는 근접한 다른 서버(200)와 연결되어 있다.
제어 장치(100)는 소프트웨어 정의 네트워크(10)상의 어느 하나의 서버(200)에 포함될 수 있다.
서버(200)에 대해 도 4를 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 소프트웨어 스위치를 포함하는 서버(200)를 나타낸다.
서버(200)는 제어부(210), 가상 논리 네트워크 인터페이스(220), 소프트웨어 스위치(230), 물리 네트워크 인터페이스(240)를 포함한다.
제어부(210)는 서버(200)의 전반적인 동작을 제어한다.
가상 논리 네트워크 인터페이스(220)는 제어부(210)가 소프트웨어 정의 네트워크(10) 상에 연결된 복수의 서버들(200)에 포함된 복수의 물리 네트워크 인터페이스(240)들을 하나의 가상의 네트워크 인터페이스로 인식하도록 한다.
소프트웨어 스위치(230)는 플로우 테이블을 가진다.
소프트웨어 스위치(230)는 플로우 테이블에 기초하여 수신한 패킷을 스위칭한다.
소프트웨어 스위치(230)는 제어부(210) 또는 물리 네트워크 인터페이스(240)의 복수의 포트들 중 하나의 포트를 통해 패킷이 수신되면, 플로우 테이블에 기초하여 물리 네트워크 인터페이스(240)의 복수의 포트들 중 어떤 포트로 패킷을 출력할 지를 결정하고, 결정한 포트로 패킷을 출력한다.
이에 따라 소프트웨어 스위치(230)는 수신한 패킷을 저장된 플로우에 따라 정해진 물리 네트워크 인터페이스(240)로 스위칭할 수 있다.
또한 소프트웨서 스위치(230)는 저장된 플로우 테이블이 업데이트가 필요한지를 확인하고, 제어 장치(100)의 플로우 테이블 수정 요청에 따라 플로우 테이블을 수정한다.
물리 네트워크 인터페이스(230)는 하나 이상의 제어 장치(100), 서버(200) 사이에 물리적 링크를 연결한다.
물리 네트워크 인터페이스(230)는 포트를 포함할 수 있고, 복수의 물리 네트워크 인터페이스(230)는 각각의 포트를 통해 연결될 수 있다.
도 5를 참고하여 제어 장치(100)와 복수의 서버들(200)의 연결을 설명한다.
도 5는 본 발명의 일 실시예에 따른 제어 장치(100)와 서버들(200)의 연결을 나타내는 예시도이다.
도 5를 참고하면 각 서버(200)의 복수의 물리 네트워크 인터페이스들(240) 중 하나의 물리 네트워크 인터페이스(240)는 제어 장치(100)와 연결된다.
그리고 각 서버(200)의 복수의 물리 네트워크 인터페이스들(240) 중 제어 장치(100)와 연결된 물리 네트워크 인터페이스(240) 이외의 다른 물리 네트워크 인터페이스들(240)은 인접하는 다른 서버(200)의 물리 네트워크 인터페이스(240)와 연결된다.
서버(200)와 다른 서버(200)간의 연결은 하나 이상의 물리 네트워크 인터페이스(240)를 통해 복수의 연결을 구성할 수도 있다.
서버(200)와 다른 서버(200)간의 연결이 복수의 연결로 구성된 것을 이하 자세히 설명한다.
예를 들면 도 6에 도시된 바와 같이, A 서버(200)와 B 서버(200) 사이는 1개의 링크로 구성될 수 있고, B 서버(200)와 C 서버(200) 사이는 3개의 링크로 구성될 수 있다.
이처럼, 하나의 서버(200)와 다른 하나의 서버(200) 간의 연결은 복수의 링크로 구성될 수 있다.
이하에서는, 제어 장치(100), 복수의 서버들(200)을 커버하는 개념으로 노드라는 용어가 사용된다. 링크는 2개의 노드 사이의 연결을 나타낸다. 플로우는 일련의 링크들을 나타낸다. 복수의 서버들(200), 링크, 플로우를 커버하는 개념으로 네트워크 구성 요소(network element)라는 용어가 사용된다.
다시 도 5를 참고한다.
서버(200)는 다른 서버(200)에 보내기 위한 패킷을 생성하여 물리 네트워크 인터페이스(240)의 포트를 통해 다른 서버(200)로 패킷을 전송한다.
패킷을 전송하는 서버(200)와 패킷을 수신하는 서버가 각각의 네트워크 인터페이스(240)의 포트를 통해 직접 연결된 경우, 직접 연결된 포트를 통해 패킷이 전달된다.
패킷을 전송하는 서버(200)와 패킷을 수신하는 서버(200)가 각각의 네트워크 인터페이스(240)의 포트를 통해 직접 연결되어 있지 않은 경우, 연결된 다른 서버(200)를 거쳐서 패킷을 수신하는 서버에 패킷을 전송할 수 있다.
서버(200)의 소프트웨어 스위치(230)가 스위칭 동작을 수행하여 수신한 패킷을 물리 네트워크 인터페이스(240)를 거쳐 다른 서버(200)로 전달할 수 있다.
일 실시예로 서버(200)는 다른 서버(200)로부터 패킷을 수신하면, 소프트웨어 스위치(230)는 저장된 플로우 테이블에 기초하여 패킷을 스위칭한다. 이때, 플로우 테이블이 패킷 스위칭을 위한 플로우 엔트리를 가지지 않는다면, 소프트웨어 스위치(230)는 제어 장치(100)에 이벤트를 전송하거나 플로우 룰 요구 메시지를 전송한다.
제어 장치(100)는 복수의 서버들(200)의 플로우 테이블들을 관리한다.
도 7을 참고하여 상술한 패킷의 이동 경로를 상세히 설명한다.
도 7은 본 발명의 실시예에 따른 패킷의 이동 경로를 나타낸다.
서버(200)는 다른 서버(200)에 보내기 위한 패킷을 생성하면, 연결된 다른 서버(200)로 패킷을 전달하고, 패킷을 전달받은 서버(200)의 소프트웨어 스위치(230)는 플로우 테이블에 기초하여 패킷을 스위칭한다. 이에 따라 수신한 패킷이 연결된 다른 서버(200)에 전달되고, 전달받은 서버(200)의 소프트웨어 스위치(230)도 플로우 테이블에 기초하여 패킷을 스위칭한다. 이 과정을 반복하여 패킷은 도달하고자 하는 서버(200)에 전달될 수 있다.
이처럼 본 발명의 실시예에 따른 패킷의 이동은 일반적인 분산 처리 시스템과 달리 스위치(400) 또는 라우터와 같은 네트워크 장비를 거치지 않고, 서버(200)와 연결된 하나 이상의 서버(200)를 거쳐서 도달하고자 하는 서버(200)에 전달된다.
다음은 도 8을 참조하여 본 발명의 실시예에 따른 제어 장치(100)의 구조를 설명한다.
도 8은 본 발명의 실시예에 따른 제어 장치(100)의 구조를 보여주는 블록도이다.
도 8에 도시된 바와 같이, 본 발명의 실시예에 따른 제어 장치(100)는 네트워크 설정 모듈(103), 네트워크 설정 정보 저장소(106), 네트워크 링크 정보 수집 모듈(110), 네트워크 링크 동작 상태 수집 모듈(120), 네트워크 링크 사용량 수집 모듈(130), 네트워크 토폴로지 정보 수집 모듈(140), 네트워크 플로우 정보 수집 모듈(150), 네트워크 장애 감지 모듈(160), 백업 모듈(170), 백업 정보 저장소(180), 네트워크 복구 모듈(190), 디스플레이부(193), 및 사용자 입력부(195)를 포함한다.
네트워크 설정 모듈(103)은 네트워크 설정 정보를 이용하여 소프트웨어 정의 네트워크(10)를 설정한다.
네트워크 설정 정보 저장소(106)는 네트워크 설정 정보를 저장한다.
네트워크 정보 수집 모듈(108)은 네트워크의 정보를 수집한다.
네트워크 정보 수집 모듈(108)은 네트워크 링크 정보 수집 모듈(110), 네트워크 링크 동작 상태 수집 모듈(120), 네트워크 링크 사용량 수집 모듈(130), 네트워크 토폴로지 정보 수집 모듈(140), 네트워크 플로우 정보 수집 모듈(150)을 포함할 수 있다.
네트워크 링크 정보 수집 모듈(110)은 네트워크 링크 정보를 수집한다.
네트워크 링크 동작 상태 수집 모듈(120)은 네트워크 링크 동작 상태 정보를 수집한다.
네트워크 링크 동작 상태 정보는 개별 링크 오류율에 대한 정보를 포함할 수 있다.
개별 링크 오류율은 해당 링크에서 얼마만큼 패킷 전달이 실패하는지를 나타낼 수 있다.
네트워크 링크 사용량 수집 모듈(130)은 네트워크 링크 사용량 정보를 수집한다.
네트워크 토폴로지 정보 수집 모듈(140)은 네트워크 토폴로지 정보를 수집한다.
네트워크 토폴로지 정보는 개별 소프트웨어 스위치의 오류율에 대한 정보, 개별 소프트웨어 스위치 부하에 대한 정보를 포함할 수 있다.
개별 소프트웨어 스위치의 오류율은 해당 소프트웨어 스위치에서 얼마만큼 패킷 전달이 실패하는지를 나타낼 수 있고, 개별 소프트웨어 스위치 부하는 해당 소프트웨어 스위치의 처리 능력 중에서 얼마만큼이 사용되고 있는지를 나타낼 수 있다.
네트워크 플로우 정보 수집 모듈(150)은 네트워크 플로우 정보를 수집한다.
플로우 정보는 소프트웨어 정의 네트워크(10) 상에 어떠한 플로우들이 존재하는지에 대한 정보, 개별 플로우 오류율에 대한 정보, 개별 플로우 부하에 대한 정보, 플로우 테이블에 대한 정보를 포함할 수 있다.
네트워크 장애 감지 모듈(160)은 소프트웨어 정의 네트워크(10)의 장애를 감지한다.
백업 모듈(170)은 네트워크 정보를 백업 정보 저장소(180)에 백업한다.
백업 정보 저장소(180)는 네트워크 정보를 보관한다.
네트워크 복구 모듈(190)은 백업된 네트워크 설정 정보를 이용하여 네트워크를 복구한다.
디스플레이부(193)는 다양한 정보를 디스플레이한다.
사용자 입력부(195)는 다양한 사용자 입력을 획득한다.
다음은 도 9를 참조하여 본 발명의 실시예에 따른 소프트웨어 정의 네트워크의 동작을 설명한다.
도 9는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크의 동작을 보여주는 래더 다이어그램이다.
제어 장치(100)에 전달이 요구되는 이벤트가 소프트웨어 스위치(230)에서 발생하면(S101), 소프트웨어 스위치(230)는 이벤트를 제어 장치(100)에 전달한다(S103).
실시예에서, 소프트웨어 스위치(230)는 플로우 룰 요구 메시지를 제어 장치(100)에 전달할 수도 있다. 플로우 룰 요구 메시지는 플로우 룰을 요구하는 메시지이며, 플로우 룰은 플로우 테이블일 수 있다.
제어 장치(100)의 네트워크 설정 모듈(103)은 수신한 이벤트에 기초하여 이벤트를 전송한 소프트웨어 스위치(230)의 플로우 테이블의 수정이 필요한지를 체크한다(S105).
실시예에서, 이벤트가 서버(200)의 초기화, 서버(200)의 턴온, 플로우 테이블에 규정되지 않은 패킷의 서버(200)에 유입 중 어느 하나에 해당하면, 제어 장치(100)의 네트워크 설정 모듈(103)는 소프트웨어 스위치(230)의 플로우 테이블의 수정이 필요하다고 판단할 수 있다.
한편, 제어 장치(100)의 네트워크 설정 모듈(103)는 수신한 이벤트에 기초하여 이벤트를 전송한 소프트웨어 스위치(230) 이외의 소프트웨어 스위치(230)의 플로우 테이블의 수정이 필요한지를 체크할 수도 있다. 예컨데, 발생한 이벤트에 해당하는 소프트웨어 스위치(230)의 플로우 테이블이 수정되면, 패킷의 스위칭 처리(action)가 수정되어 패킷의 경로가 변경될 수 있다. 이에 따라 변경되는 경로의 반영을 위하여 이벤트를 전송한 소프트웨어 스위치(230) 이외의 소프트웨어 스위치(230)의 플로우 테이블의 수정이 필요할 수 있다.
소프트웨어 스위치(230)의 플로우 테이블의 수정이 필요하면, 제어 장치(100)의 네트워크 설정 모듈(103)은 소프트웨어 스위치(230)의 플로우 테이블을 수정하고(S107), 소프트웨어 스위치(230)의 플로우 테이블의 수정 내용을 포함하는 플로우 테이블 수정 요청 메시지를 서버(200)에 전송한다(S109).
실시예에서, 소프트웨어 스위치(230)가 플로우 룰 요구 메시지를 제어 장치(100)에 전송한 경우, 제어 장치(100)의 네트워크 설정 모듈(103)는 소프트웨어 스위치(230)에 플로우 룰을 제공할 수 있다.
이벤트를 전송한 소프트웨어 스위치(230) 이외의 서버의 플로우 테이블의 수정이 필요하면, 제어 장치(100)의 네트워크 설정 모듈(103)은 수정이 필요한 플로우 테이블에 해당하는 서버에도 플로우 테이블 수정 요청 메시지를 전송할 수 있다.
소프트웨어 스위치(230)는 플로우 테이블 수정 요청 메시지에 기초하여 자신의 플로우 테이블을 수정한다(S111).
소프트웨어 스위치(230)는 저장된 플로우 테이블을 수신한 플로우 테이블 수정 요청 메시지에 기초하여 수정하여 저장한다.
플로우 테이블이 성공적으로 수정되면, 소프트웨어 스위치(230)는 플로우 테이블 수정 응답 메시지를 제어 장치(100)에 전송할 수 있다.
이후, 소프트웨어 스위치(230)는 수정된 플로우 테이블에 기초하여 패킷 스위칭을 수행한다(S113).
구제적으로, 소프트웨어 스위치(230)는 유입된 패킷이 만족하는 매칭 필드를 가진 플로우 엔트리를 찾고, 유입된 패킷에 대해 플로우 엔트리의 액션을 수행하며, 카운터를 증가시킬 수 있다. 이때, 액션은 유입된 패킷을 어떤 포트로 출력할지를 나타낼 수 있다.
다음은 도 10을 참고하여 본 발명의 실시 예에 따른 제어 장치의 동작 방법을 설명한다.
도 10은 본 발명의 실시 예에 따른 제어 장치의 동작 방법을 보여주는 흐름도이다.
제어 장치(100)는 소프트웨어 정의 네트워크(10)의 네트워크 정보를 수집한다(S300).
네트워크 정보는 네트워크 설정 정보, 네트워크 링크 정보, 네트워크 링크 동작 상태 정보, 네트워크 링크 사용량 정보, 네트워크 토폴로지 정보, 네트워크 플로우 정보 중 하나 이상을 포함한다.
제어 장치(100)는 포함된 네트워크 설정 모듈(103), 네트워크 정보 수집 모듈(108), 네트워크 설정 정보 저장소(106), 네트워크 링크 정보 수집 모듈(110), 네트워크 링크 동작 상태 수집 모듈(120), 네트워크 링크 사용량 수집 모듈(130), 네트워크 플로우 정보 수집 모듈(150)을 통해 네트워크 정보를 수집할 수 있다.
제어 장치(100)의 네트워크 설정 모듈(103)은 수집된 네트워크 정보를 기초로 소프트웨어 정의 네트워크(10)상에서 전송되는 플로우의 특성을 결정한다(S310).
네트워크 설정 모듈(103)은 수집된 네트워크 정보를 기초로 전송되는 플로우의 특성을 대역폭 우선, 안정성 우선, 지연시간 우선 중 하나의 특성으로 결정할 수 있다.
대역폭 우선은 네트워크에서 일정 시간 동안 보낼 수 있는 정보량을 의미하는 대역폭과 관련된 특성으로, 플로우의 전송량과 관련있다.
대역폭 우선에 해당하는 플로우의 일 예로는 대용량 데이터 전송에 따른 패킷 전송이 있다.
안정성 우선은 전송되는 패킷의 데이터 변경, 손실, 중복, 비순서적인 전송과 같은 전송 실패나 전송 오류와 관련된 특성으로, 플로우의 전송량과 플로우의 전송의 주기성과 관련 있다.
안정성 우선에 해당하는 플로우의 일 예로는 상태 체크용 연결에 따른 패킷 전송이 있다.
지연시간 우선은 패킷이 송신측 서버(200)에서 수신측 서버(200)까지 도달하는 데 걸린 시간과 관련된 특성으로, 플로우의 전송량과 플로우의 전송의 주기성과 관련 있다.
지연시간 우선에 해당하는 플로우의 일 예로는 송신측 서버(200)와 수신측 서버(200)가 서로 패킷을 주고 받는 대화형의 패킷 전송이 있다.
네트워크 설정 모듈(103)은 수집된 네트워크 정보를 기초로 전송되는 플로우의 특성을 결정할 수 있다.
일 실시 예로, 네트워크 설정 모듈(103)은 네트워크 정보에 포함된 플로우 정보를 통해 전송되는 플로우의 특성을 결정할 수 있다.
이를 도 11을 참고하여 설명한다.
도 11은 플로우의 특성 결정 방법을 보여주는 흐름도이다.
네트워크 설정 모듈(103)은 네트워크 플로우 정보 수집 모듈(150)로부터 플로우 정보를 수신한다(S311).
플로우 정보에는 플로우 테이블에 대한 정보가 포함될 수 있다.
플로우 테이블은 복수의 플로우 엔트리를 포함할 수 있다.
각 플로우 엔트리는 조건에 해당하는 매칭 필드, 액션, 카운터를 포함할 수 있다.
매칭 필드는 액션을 수행하기 위한 조건을 나타내고, 액션은 매칭 필드가 나타내는 조건이 만족되었을 때의 처리를 나타내고, 카운터는 얼마나 많은 액션이 수행되었는지를 나타낼 수 있다.
또한, 카운터로 표시하는 통계는 플로우 엔트리마다 송수신되는 트래픽의 양을 패킷의 수와 바이트 수로 나타낼 수 있다.
따라서 네트워크 설정 모듈(103)은 수신된 플로우 정보를 통해 각 플로우 엔트리의 매칭 필드, 액션, 카운터에 대한 정보를 파악할 수 있다.
네트워크 설정 모듈(103)은 플로우 정보를 기초로 전송되는 양 방향의 플로우의 전송량의 비율이 기준값 이상인지 판단한다(S312).
네트워크 설정 모듈(103)은 플로우 정보의 카운터 정보를 기초로 전송되는 플로우의 전송량을 계산할 수 있다.
네트워크 설정 모듈(103)은 일 방향의 플로우의 전송량과 다른 방향의 플로우의 전송량의 비율을 계산할 수 있다.
여기서 일 방향의 플로우와 다른 방향의 플로우란, 하나의 플로우와 하나의 플로우에 반대 방향인 플로우를 의미한다.
예를 들면 A라는 서버(200)와 B라는 서버(200)가 있고, A라는 서버(200)가 B라는 서버(200)에 패킷을 전송하는 플로우가 일 방향의 플로우이고 B라는 서버(200)가 A라는 서버(200)에 패킷을 전송하는 플로우가 다른 방향의 플로우이다.
네트워크 설정 모듈(103)은 계산된 일 방향과 다른 방향의 전송량의 비율이 기준값 이상인지 판단할 수 있다.
예를 들면 기준값이 1:10000 인 경우, 네트워크 설정 모듈(103)은 서버 A에서 서버 B 로 전송하는 플로우 엔트리와 서버 B에서 서버 A로 전송하는 플로우 엔트리에 대한 정보를 기초로 서버 A와 서버 B 간에 전송되는 플로우의 전송량과 이 에 따른 비율을 계산할 수 있고, 이를 통해 서버 A에서 서버 B로 전송되는 플로우의 전송량과 서버 B에서 서버 A로 전송되는 플로우의 전송량의 비율이 1:12000이라면, 네트워크 설정 모듈(103)은 서버 A와 서버 B 간의 플로우의 전송량의 비율이 기준값 이상인 것으로 판단할 수 있다.
여기서 서술된 전송량의 비율은 설명을 위한 예시로써, 사용자 또는 설계자의 선택에 따라 다양하게 설정될 수 있다.
네트워크 설정 모듈(103)은 비교된 양 방향에 대한 플로우의 전송량의 비율이 기준값 이상이면, 해당 플로우의 특성을 대역폭 우선으로 결정한다(S313).
네트워크 설정 모듈(103)은 패킷이 전송되는 두 서버 사이의 양 방향에 대한 각각의 플로우의 전송량을 비교하여, 두 서버 사이의 양 방향에 대한 플로우의 전송량의 비율이 기준값 이상이면 일방적 전송인 것으로 판단할 수 있다.
일방적 전송이란, 일 방향에 대한 플로우의 전송량이 다른 방향의 플로우의 전송량에 비해 많은 형태를 의미한다.
한편, 단계 S312에서 양 방향 플로우의 전송량의 비율이 기준값 미만이면 네트워크 설정 모듈(103)은 양 방향의 플로우의 전송량이 각각 기준값 이상인지 판단한다(S314).
네트워크 설정 모듈(103)은 플로우 정보의 카운터 정보를 기초로 전송되는 플로우의 전송량이 기준값 이상인지 판단할 수 있다.
네트워크 설정 모듈(103)은 일 방향의 플로우와 다른 방향의 플로우 중 하나 이상의 플로우의 전송량이 기준값 이상인지 판단할 수 있다.
예를 들어, 네트워크 설정 모듈(103)은 서버 A에서 서버 B 로 전송하는 플로우 엔트리와 서버 B에서 서버 A로 전송하는 플로우 엔트리에 대한 정보를 기초로 서버 A와 서버 B 간에 전송되는 플로우의 전송량을 계산할 수 있다. 그래서 네트워크 설정 모듈(103)은 계산된 각각의 방향에 대한 플로우의 전송량이 기준값 이상인지 판단할 수 있다.
네트워크 설정 모듈(103)은 판단된 플로우의 전송량이 기준값 이상이면, 해당 플로우의 특성을 지연시간 우선으로 결정한다(S315).
한편, 단계 S314에서 판단된 플로우의 전송량이 기준값 미만이면, 네트워크 설정 모듈(103)은 양 방향의 플로우의 전송의 주기성에 대한 값이 각각 기준값 이상인지 판단한다(S316).
네트워크 설정 모듈(103)은 양 방향의 플로우가 전송의 주기성을 갖는지 판단할 수 있다.
여기서 전송의 주기성이란 해당 플로우가 전송되는 방식이 주기적 특성을 갖는지를 의미한다.
예를 들어 네트워크 설정 모듈(103)은 양 방향의 플로우에 대한 각각의 전송의 주기성에 대한 값을 계산하고, 계산된 각각의 전송의 주기성에 대한 값들 중 하나 이상의 전송의 주기성에 대한 값이 기준값 이상인지 판단하여 해당 플로우가 전송되는 방식이 주기성을 갖는지 판단할 수 있다.
그리고 전송의 주기성에 대한 값이란, 해당 플로우의 일정 시간 동안의 최대 전송량과 평균 전송량의 비를 의미할 수 있다.
이를 수식으로 표현하면 다음 수식으로 나타낼 수 있다.
네트워크 설정 모듈(103)은 수학식 1을 통해 해당 플로우가 패킷을 지속적으로 전송하는 플로우인지, 또는 패킷을 한번 전송하고 일정 시간 동안 패킷을 전송하지 않는 플로우인지 판단할 수 있다.
예를 들면, 네트워크 설정 모듈(103)은 서버 A에서 서버 B 로 전송하는 플로우 엔트리와 서버 B에서 서버 A로 전송하는 플로우 엔트리에 대한 정보를 기초로 서버 A와 서버 B 간에 전송되는 플로우의 전송의 주기성에 대한 값을 계산할 수 있다. 그리고 네트워크 설정 모듈(103)은 계산된 플로우의 전송의 주기성에 대한 값이 기준값 이상인지 판단할 수 있다.
일 실시예로 전송의 주기성에 대한 값의 기준값이 2일 때, 네트워크 설정 모듈(103)은 서버 A에서 서버 B로 전송하는 플로우의 일정 시간 동안의 최대 전송량이 80이고, 일정 시간 동안의 평균 전송량이 20이면 해당 플로우는 전송의 주기성에 대한 값이 4(=80/20) 이므로 기준값 이상인 것으로 판단할 수 있다. 이에 따라 네트워크 설정 모듈(103)은 해당 플로우가 주기성을 갖는 것으로 판단할 수 있다.
한편, 네트워크 설정 모듈(103)이 플로우의 전송의 주기성을 판단하는 방법은 사용자 또는 설계자의 선택에 따라 다양하게 설정될 수 있으며, 상술한 방식 및 수학식 이외에도 다양한 방식 및 수학식으로 구성될 수 있다.
네트워크 설정 모듈(103)은 판단된 어느 한 방향 또는 양 방향에 대한 플로우의 전송의 주기성에 대한 값이 기준값 미만이면, 해당 플로우의 특성을 지연시간 우선으로 결정한다(S315).
한편, 단계 S316에서 판단된 플로우의 전송의 주기성에 대한 값이 기준값 이상이면, 해당 플로우의 특성을 안정성 우선으로 결정한다(S317).
다시 도 10을 참고한다.
네트워크 설정 모듈(103)은 결정된 플로우의 특성을 기초로 패킷 전송 경로를 할당한다(S320).
네트워크 설정 모듈(103)은 플로우의 특성에 따른 최적의 패킷 전송 경로를 할당할 수 있다.
네트워크 설정 모듈(103)는 네트워크 정보와 플로우의 특성을 기초로 패킷 전송 경로를 계산할 수 있다.
네트워크 설정 모듈(103)은 플로우의 특성이 대역폭 우선이면, 플로우의 사용량이 적은 경로를 패킷 전송 경로로 할당할 수 있다.
또한 네트워크 설정 모듈(103)은 플로우의 특성이 대역폭 우선이면 여러 경로를 묶어서 대역폭 확장을 할 수 있다.
일 실시 예로, 네트워크 설정 모듈(103)은 네트워크 정보 중에서 네트워크 링크 정보, 네트워크 동작 상태 정보, 네트워크 사용량 정보를 기초로 대역폭이 넓고 사용량이 적은 네트워크 구성 요소를 검색할 수 있어서, 네트워크의 사용량이 적고 네트워크의 대역폭이 넓은 경로를 패킷 전송 경로로 생성할 수 있다.
또한 네트워크 설정 모듈(103)은 2개의 노드 사이의 연결이 복수의 링크로 구성된 경우에 구성된 링크의 개수를 기초로 패킷 전송 경로를 할당할 수 있다.
이에 따라 네트워크 설정 모듈(103)은 패킷 전송 경로를 할당할 때, 각각의 노드 사이의 연결이 하나의 링크로 구성된 경로보다 복수의 링크로 구성된 경로를 거치도록 할 수 있다.
한편, 네트워크 설정 모듈(103)은 플로우의 특성이 지연시간 우선이면, 패킷의 송신측 서버와 수신측 서버 간의 최단 거리인 경로를 패킷 전송 경로로 할당할 수 있다.
여기서 최단 거리란, 단순히 물리적인 네트워크 연결의 길이 뿐만 아니라, 해당 전송 경로가 거치는 서버들(200)의 개수가 가장 작은 것을 포함할 수 있다.
따라서 최단 거리는 송신측 서버(200)에서 수신측 서버(200)까지 패킷이 전달되는데 걸리는 시간인 패킷 전달 시간이 가장 짧은 거리를 의미할 수 있다.
일 실시 예로, 네트워크 설정 모듈(103)은 네트워크 정보 중에서 네트워크 링크 정보, 네트워크 토폴로지 정보를 기초로 전송 서버와 수신 서버까지 가장 짧은 거리로 연결 가능한 네트워크 구성 요소를 검색할 수 있어서, 전송 서버와 수신 서버 간의 최단 거리인 경로를 패킷 전송 경로로 할당할 수 있다.
이에 따라 네트워크 설정 모듈(103)은 송신측 서버(200)에서 수신측 서버(200)까지의 패킷 전송 경로로 서버(200)를 5개를 거치는 전송 경로보다 3개를 거치는 전송 경로를 패킷 전송 경로로 할당할 수 있다.
그리고 네트워크 설정 모듈(103)은 플로우의 특성이 안정성 우선이면, 전송되는 패킷이 오류, 손상되거나 유실되지 않고 전송될 수 있는 경로를 패킷 전송 경로로 할당할 수 있다.
따라서 네트워크 설정 모듈(103)은 플로우의 특성이 안정성 우선이면, 패킷 전송 오류율이 가장 낮은 경로를 패킷 전송 경로로 할당할 수 있다.
패킷 전송 오류율은 네트워크 상에서 패킷이 전송되는 경우에 전송되는 패킷이 오류, 손상, 유실 중 하나 이상이 발생할 수 있는 확률을 말하며, 개별 링크 오류율, 개별 스위치 오류율, 개별 플로우 오류율을 포함한다.
일 실시 예로, 네트워크 설정 모듈(103)은 네트워크 정보 중에서 네트워크 링크 동작 상태 정보, 네트워크 토폴로지 정보를 기초로 패킷 전송 오류율이 낮은 경로를 검색할 수 있어서, 전송되는 패킷이 오류, 손상되거나 유실되지 않는 경로를 패킷 전송 경로로 할당할 수 있다.
네트워크 설정 모듈(103)은 할당된 패킷 전송 경로를 반영하기 위해 소프트웨어 스위치(230)의 플로우 테이블을 수정한다(S330).
네트워크 설정 모듈(103)은 할당된 패킷 전송 경로를 규정하는 플로우 테이블 수정 요청 메시지를 해당 플로우에 속하는 소프트웨어 스위치(230)에 전송한다.
여기서 복수의 소프트웨어 스위치들(230)의 플로우 테이블 수정이 필요한 경우, 네트워크 설정 모듈(103)은 복수의 네트워크 스위치들(230)에 플로우 테이블 수정 요청 메시지를 동시에 전송할 수 있다.
그리고 플로우 테이블 수정 요청 메시지를 수신한 소프트웨어 스위치(230)은 플로우 테이블 수정 요청 메시지에 기초하여 자신의 플로우 테이블을 수정한다.
플로우 테이블이 성공적으로 수정되면, 소프트웨어 스위치(230)는 플로우 테이블 수정 응답 메시지를 제어 장치(100)에 전송할 수 있다.
이후, 소프트웨어 스위치(230)는 수정된 플로우 테이블에 기초하여 패킷 스위칭을 수행한다.
네트워크 설정 모듈(103)은 플로우 테이블 수정 후에 기 설정된 일정 시간이 경과하거나, 소프트웨어 스위치(230)로부터 이벤트를 수신하면 단계 S300으로 회귀하여 상술한 단계 S300 내지 S330의 패킷 전송 경로 설정 과정을 반복한다(S340).
이에 따라, 네트워크 설정 모듈(103)은 시간이 경과함에 따라 전송되는 플로우의 특성이 변경되는 경우에 플로우의 특성 변경에 대응하여 패킷 전송 경로를 다시 할당할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (14)
- 복수의 서버를 포함하는 소프트웨어 정의 네트워크를 관리하는 제어 장치의 동작 방법에 있어서,
상기 소프트웨어 정의 네트워크의 네트워크 정보를 수집하는 단계;
상기 수집한 정보에 기초하여, 상기 복수의 서버에 포함된 복수의 소프트웨어 스위치 중 하나 이상의 소프트웨어 스위치를 통과하는 패킷의 흐름인 플로우의 특성을 상기 플로우의 전송량에 대응하는 특성인 대역폭 우선, 상기 플로우의 전송 안정성에 대응하는 특성인 안정성 우선, 상기 플로우의 패킷 전송 소요 시간에 대응하는 특성인 지연시간 우선 중 하나로 판단하는 단계;
상기 판단된 플로우의 특성에 적합한 전송 경로를 상기 플로우에 할당하는 단계; 및
상기 판단된 플로우의 특성에 적합한 전송 경로를 상기 플로우에 할당한다는 것을 규정하는 플로우 테이블 수정 요청 메시지를 상기 플로우에 속한 서버의 소프트웨어 스위치에 전송하여, 상기 플로우에 속한 서버의 소프트웨어 스위치가 상기 플로우 테이블 수정 요청 메시지에 기초하여 플로우 테이블을 수정하고 수정된 플로우 테이블에 기초하여 복수의 물리 네트워크 인터페이스 사이의 스위칭을 수행하도록 하는 단계를 포함하는
동작 방법. - 제1항에 있어서,
상기 플로우의 특성을 판단하는 단계는
상기 네트워크 정보에 포함된 플로우 정보를 기초로 상기 플로우의 특성을 판단하는 단계를 포함하는
동작 방법. - 제2항에 있어서,
상기 플로우 정보를 기초로 상기 플로우의 특성을 판단하는 단계는
상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상을 기초로 판단하는 단계를 포함하는
동작 방법. - 제3항에 있어서,
상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상을 기초로 판단하는 단계는
상기 전송량의 비율이 기준값 이상이면 상기 플로우의 특성을 상기 대역폭 우선으로 판단하는 단계를 포함하는
동작 방법. - 제4항에 있어서,
상기 전송 경로를 상기 플로우에 할당하는 단계는
복수의 경로 중에서 적어도 하나의 경로를 상기 복수의 경로의 패킷의 전송량에 기초하여 선택하고, 상기 선택된 경로를 상기 플로우의 특성이 상기 대역폭 우선인 플로우에 할당하는 단계를 포함하는
동작 방법. - 제3항에 있어서,
상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상을 기초로 판단하는 단계는
상기 전송량의 비율이 기준값 미만이고 상기 플로우의 전송량이 기준값 이상이면 상기 플로우의 특성을 상기 지연시간 우선으로 판단하는 단계를 포함하는
동작 방법. - 제3항에 있어서,
상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상을 기초로 판단하는 단계는
상기 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성에 대한 값이 각각 기준값 미만이면 상기 플로우의 특성을 상기 지연시간 우선으로 판단하는 단계를 포함하는
동작 방법. - 제6항 및 제7항에 있어서,
상기 전송 경로를 상기 플로우에 할당하는 단계는
복수의 경로 중에서 적어도 하나의 경로를 상기 복수의 경로의 패킷 전달 시간에 기초하여 선택하고, 상기 선택된 경로를 상기 플로우의 특성이 상기 지연시간 우선인 플로우에 할당하는 단계를 포함하는
동작 방법. - 제3항에 있어서,
상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상을 기초로 판단하는 단계는
상기 전송량의 비율, 상기 플로우의 전송량이 각각 기준값 미만이고 상기 플로우의 전송의 주기성에 대한 값이 기준값 이상이면 상기 플로우의 특성을 상기 안정성 우선으로 판단하는 단계를 포함하는
동작 방법. - 제9항에 있어서
상기 전송 경로를 상기 플로우에 할당하는 단계는
복수의 경로 중에서 적어도 하나의 경로를 상기 복수의 경로의 패킷 전송 오류율에 기초하여 선택하고, 상기 선택된 경로를 상기 플로우의 특성이 상기 안정성 우선인 플로우에 할당하는 단계를 포함하는
동작 방법. - 복수의 서버를 포함하는 소프트웨어 정의 네트워크를 관리하는 제어 장치에 있어서,
상기 소프트웨어 정의 네트워크의 네트워크 정보를 수집하는 네트워크 정보 수집 모듈; 및
상기 수집한 네트워크 정보에 기초하여, 상기 복수의 서버에 포함된 복수의 소프트웨어 스위치 중 하나 이상의 소프트웨어 스위치를 통과하는 패킷의 흐름인 플로우의 특성을 상기 플로우의 전송량에 대응하는 특성인 대역폭 우선, 상기 플로우의 전송 안정성에 대응하는 특성인 안정성 우선, 상기 플로우의 패킷 전송 소요 시간에 대응하는 특성인 지연시간 우선 중 하나로 판단하고, 상기 판단된 플로우의 특성에 따라 전송 경로를 할당하여 할당된 전송 경로를 규정하는 플로우 테이블 수정 요청 메시지를 상기 플로우에 속한 서버의 소프트웨어 스위치에 전송하는 네트워크 설정 모듈을 포함하는
제어 장치. - 제11항에 있어서,
상기 네트워크 설정 모듈은
상기 플로우의 특성을 상기 플로우의 한 방향의 전송량과 다른 방향의 전송량의 비율, 상기 플로우의 전송량, 상기 플로우의 전송의 주기성 중 하나 이상에 기초하여 판단하는
제어 장치. - 제11항에 있어서,
상기 네트워크 설정 모듈은
복수의 경로 중에서 적어도 하나의 경로를 상기 복수의 경로의 패킷의 전송량, 패킷 전달 시간, 패킷 전송 오류율 중 하나 이상에 기초하여 할당하는
제어 장치. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140006767A KR101519517B1 (ko) | 2014-01-20 | 2014-01-20 | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140006767A KR101519517B1 (ko) | 2014-01-20 | 2014-01-20 | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101519517B1 true KR101519517B1 (ko) | 2015-05-12 |
Family
ID=53394484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140006767A KR101519517B1 (ko) | 2014-01-20 | 2014-01-20 | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101519517B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050066869A (ko) * | 2003-12-27 | 2005-06-30 | 한국전자통신연구원 | 다중 레벨 폭주 제어 장치 및 그 방법 |
CN103248724A (zh) * | 2013-04-19 | 2013-08-14 | 中国(南京)未来网络产业创新中心 | 一种基于sdn控制器的dhcp广播处理方法 |
JP2013198105A (ja) * | 2012-03-22 | 2013-09-30 | Nec Engineering Ltd | 管理装置、通信システム、中継装置、通信方法、およびプログラム |
US20130329548A1 (en) * | 2012-06-06 | 2013-12-12 | Harshad Bhaskar Nakil | Re-routing network traffic after link failure |
-
2014
- 2014-01-20 KR KR1020140006767A patent/KR101519517B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050066869A (ko) * | 2003-12-27 | 2005-06-30 | 한국전자통신연구원 | 다중 레벨 폭주 제어 장치 및 그 방법 |
JP2013198105A (ja) * | 2012-03-22 | 2013-09-30 | Nec Engineering Ltd | 管理装置、通信システム、中継装置、通信方法、およびプログラム |
US20130329548A1 (en) * | 2012-06-06 | 2013-12-12 | Harshad Bhaskar Nakil | Re-routing network traffic after link failure |
CN103248724A (zh) * | 2013-04-19 | 2013-08-14 | 中国(南京)未来网络产业创新中心 | 一种基于sdn控制器的dhcp广播处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11362934B2 (en) | Method to route packets in a distributed direct interconnect network | |
KR102233645B1 (ko) | 가상 네트워크 기반 분산 다중 도메인 라우팅 제어 시스템 및 라우팅 제어 방법 | |
JP6576006B2 (ja) | 分離した制御デバイスおよび転送デバイスを備えるネットワークでの制御デバイス検出 | |
KR101913490B1 (ko) | 플로우 테이블 관리 방법, 및 관련 디바이스 및 시스템 | |
WO2015096761A1 (en) | Traffic behavior driven dynamic zoning for distributed traffic engineering in sdn | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
WO2019068246A1 (en) | CONTROL DEVICE COMMUNICATIONS IN ACCESS NETWORKS | |
US10164845B2 (en) | Network service aware routers, and applications thereof | |
US10003522B2 (en) | Routing with flow over shared risk link groups | |
US9774499B2 (en) | System guided surrogating control in broadcast and multicast | |
KR20180122513A (ko) | Sdn 기반 네트워크 가상화 플랫폼의 네트워크 하이퍼바이저에서 트래픽 엔지니어링 방법 및 프레임워크 | |
US20180019938A1 (en) | System and method for virtual link trunking | |
US8964596B1 (en) | Network service aware routers, and applications thereof | |
CN110213170A (zh) | 一种报文传输的方法及装置 | |
KR101491698B1 (ko) | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 | |
US7990869B2 (en) | Method for monitoring data congestion in a computer network with multiple nodes and method for controlling data transmission in the computer network | |
KR101519517B1 (ko) | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 | |
US10516596B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
Wu et al. | Routing policy for balanced management of slices using flexible Ethernet | |
Samadi et al. | Reconfigurable optical dragonfly architecture for high performance computing | |
US11368336B2 (en) | Method and apparatus for interfacing with a circuit switched network | |
Iqbal et al. | VRPR: A New Data Center Protocol for Enhanced Network Performance, Resilience and Recovery | |
JP6527452B2 (ja) | ネットワークシステム、ネットワーク管理方法および装置 | |
JP2023143025A (ja) | ネットワークシステム及び接続経路の設定方法 | |
Chakraborty et al. | An architecture to improve performance of software-defined optical networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190507 Year of fee payment: 5 |