KR101598775B1 - 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치 - Google Patents

소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치 Download PDF

Info

Publication number
KR101598775B1
KR101598775B1 KR1020150011886A KR20150011886A KR101598775B1 KR 101598775 B1 KR101598775 B1 KR 101598775B1 KR 1020150011886 A KR1020150011886 A KR 1020150011886A KR 20150011886 A KR20150011886 A KR 20150011886A KR 101598775 B1 KR101598775 B1 KR 101598775B1
Authority
KR
South Korea
Prior art keywords
packet
bandwidth
host
path
transmitting
Prior art date
Application number
KR1020150011886A
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 KR1020150011886A priority Critical patent/KR101598775B1/ko
Application granted granted Critical
Publication of KR101598775B1 publication Critical patent/KR101598775B1/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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치가 개시된다. 본 발명의 일 실시예에 따른 패킷의 전송 경로 제어방법은 SDN(소프트웨어 정의 네트워킹) 환경에서 컨트롤러 서버가 패킷의 전송 경로를 제어하는 방법으로서, a) 호스트로부터 제1 대역폭 보장을 요청하는 신호를 수신하는 단계; b) 네트워크 장비로부터 패킷-인 메세지(Packet-in Message)를 수신하는 단계; c) 패킷을 도착지(Destination)로 전송하기 위한 최적 경로를 연산하는 단계; d) 상기 a) 단계에서 수신한 신호에 포함되는 호스트 정보와 상기 b) 단계에서 수신한 상기 패킷-인 메세지에 포함되는 출발지(Source) 정보를 비교하여, 패킷이 상기 호스트로부터 전송된 것임을 인지하는 단계; e) 제1 대역폭과 상기 c) 단계에서 연산된 최적 경로가 가지는 제2 대역폭의 크기를 비교하고, 제1 대역폭이 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 제1 대역폭보다 크도록 다중경로를 추가적으로 연산하는 단계; 및 f) 다중경로로 상기 패킷을 분할 전송하도록 규정한 플로우 룰을 생성하고, 네트워크 장비로 전송하는 단계를 포함한다.

Description

소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치{METHOD, APPARATUS AND COMPUTER PROGRAM FOR CONTROLLING MULTI-PATH TRANSMISSION OF PACKET IN SOFTWARE DEFINED NETWORK}
본 발명은 패킷을 전송하기 위한 제어방법 및 장치에 관한 것으로, 보다 상세하게는 SDN(소프트웨어 정의 네트워킹) 환경에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치에 관한 것이다.
SDN(Software Defined Networking, 소프트웨어 정의 네트워킹, 이하 SDN이라 칭함) 기술은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리하게 함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
한편 인터넷 이용자의 폭발적인 증가와 이를 이용한 다양한 서비스의 제공은 당연하게도 트래픽의 급증 현상을 발생시키고 있다. 특히 멀티미디어의 비중이 크게 늘어났으며, 클라우드, 가상화, 빅데이터, 사물인터넷 등 다양한 트렌드와 신기술들이 네트워크 환경으로 빠르게 흡수되고 있는 실정이다. 이에 따라 사용자들의 요구 대역폭은 갈수록 높아지고 있으며, 더 이상 단일경로(single-path)의 대역폭으로는 사용자가 요구하는 대역폭을 충족시켜 주기 힘들게 되었다. 다중경로(multi-path)를 통한 패킷 전송이 크게 증가하는 이유다.
기존의 다중경로를 통한 패킷 전송은 다음과 같다. 우선 트래픽 전송을 위해 사용자가 요구하는 대역폭을 정의하고, 트래픽 출발지(source)에서 도착지(destination)까지 동일 비용(equal-cost)의 최적 경로가 복수 개 있을 경우 이들 다중경로를 모두 연산한다. 그리고 상기 다중경로들에 대해 동일한 양의 트래픽을 분배한다.
이러한 다중경로를 통한 패킷 전송은 물론 망 자원을 효율적으로 사용하기 위한 것이지만, 경우에 따라서는 그 효과를 온전히 누리지 못하는 경우가 많아 문제로 지적되고 있다. 첫째, 망의 트래픽 상황은 시시각각 변하므로 동일 비용의 최적 경로를 복수 개 연산하더라도 실제 전송에 있어서는 경로마다 서로 다른 지연 시간이 존재하였다. 둘째, 다중경로의 경우 각각의 경로별 트래픽의 전송 순서와 도착순서가 각 경로에서 발생하는 지연시간에 따라 달라지므로, 트래픽의 도착지에서는 도착한 트래픽에 대한 재정렬이 요구되었으며 이는 도착지의 성능을 저하시키는 등의 부담으로 작용하였다. 셋째, 전송 도중 일부 패킷의 손실이 발생하는 경우, 해당 패킷을 재전송 하여야 하므로 추가적으로 지연시간이 발생하였다.
따라서 다중경로를 통한 패킷 전송에 있어 보다 효율적으로 패킷을 전송할 필요가 있으며, 이는 SDN 환경에서도 마찬가지다.
한국공개특허 제2012-0055955호 (2012.06.01 공개)
본 발명은 SDN(소프트웨어 정의 네트워킹) 환경에서 패킷을 다중경로를 통해 보다 효율적으로 전송할 수 있는 전송 경로 제어방법 및 장치를 제공하고자 한다.
본 발명의 일 측면에 따르면, SDN(소프트웨어 정의 네트워킹) 환경에서 컨트롤러 서버가 패킷의 전송 경로를 제어하는 방법으로서, a) 호스트로부터 제1 대역폭 보장을 요청하는 신호를 수신하는 단계; b) 네트워크 장비로부터 패킷-인 메세지(Packet-in Message)를 수신하는 단계; c) 상기 패킷을 목적지(Destination)로 전송하기 위한 최적 경로 - 상기 최적 경로는 기 설정된 오퍼레이터 정책 또는 알고리즘에 따름 - 를 연산하는 단계; d) 상기 a) 단계에서 수신한 신호에 포함되는 상기 호스트의 출발지(Source) 정보와 상기 b) 단계에서 수신한 상기 패킷-인 메세지에 포함되는 출발지 정보를 비교하여, 상기 패킷이 상기 호스트로부터 전송된 것임을 인지하는 단계; e) 상기 제1 대역폭과 상기 c) 단계에서 연산된 최적 경로가 가지는 제2 대역폭의 크기를 비교하고, 상기 제1 대역폭이 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 상기 제1 대역폭보다 크도록 다중경로를 추가적으로 연산하는 단계; 및 f) 상기 다중경로로 상기 패킷을 분할 전송하도록 규정한 플로우 룰(Flow Rule)을 생성하고, 상기 네트워크 장비로 전송하는 단계를 포함하는 패킷의 전송 경로 제어방법이 제공될 수 있다.
이 때, 상기 패킷은 상기 호스트에서 랩터 코드(Raptor code)에 의해 인코딩된 것일 수 있다.
또한, 상기 e) 단계에서, 상기 다중경로의 연산은 동일 비용(equal-cost) 조건을 무시하고, 각 링크에 할당된 대역폭과 트래픽 통계를 고려하여 이루어지는 것일 수 있다.
본 발명의 다른 측면에 따르면, SDN(소프트웨어 정의 네트워킹) 환경에서 네트워크 장비가 패킷을 전송하기 위한 방법으로서, a) 송신측 호스트로부터 랩터코드(Raptor code)에 의해 인코딩된 패킷을 수신하는 단계; b) 상기 패킷에 대한 패킷-인 메세지를 생성하고 컨트롤러 서버로 전송하는 단계; c) 상기 컨트롤러 서버로부터 상기 패킷의 처리를 규정한 플로우 룰을 수신하고, 상기 플로우 룰에 따라 상기 패킷을 다중경로로 분할 전송하는 단계를 포함하는 네트워크 장비의 패킷 전송방법이 제공될 수 있다.
본 발명의 또 다른 측면에 따르면, SDN(소프트웨어 정의 네트워킹) 환경에서 패킷의 전송 경로를 제어하는 컨트롤러 서버로서, 네트워크 장비와 통신하는 제1 통신부; 호스트와 통신하는 제2 통신부; 및 상기 네트워크 장비로부터 패킷-인 메세지를 수신하면 패킷 전송을 위한 최적 경로 - 상기 최적 경로는 기 설정된 오퍼레이터 정책 또는 알고리즘에 따름 - 를 연산하되, 상기 호스트가 미리 보장을 요청한 제1 대역폭이 상기 최적 경로가 가지는 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 상기 제1 대역폭보다 크도록 다중경로를 추가적으로 연산한 후, 상기 다중경로로 상기 패킷을 분할 전송하도록 상기 패킷의 처리를 규정한 플로우 룰을 생성하고, 상기 네트워크 장비로 전송하는 제어부를 포함하는 컨트롤러 서버가 제공될 수 있다.
본 발명의 실시예들에 따르면, 컨트롤러 서버는 호스트의 요청이 있는 경우에 대역폭 보장을 시도하고, 요청된 보장 대역폭보다 연산된 최적 경로의 대역폭이 작은 경우에만 다중경로를 추가적으로 연산함으로써 망을 보다 효율적으로 사용할 수 있다.
또한, 다중경로의 연산시 동일 비용 조건을 무시하고 각 링크에 할당된 대역폭과 트래픽 통계를 고려하여 실제 네트워크 환경에서 발생 가능한 지연시간을 연산에 반영함으로써, 보다 효율적으로 패킷 전송이 가능하다
또한, 패킷이 랩터코드로 인코딩되는 경우에는 트래픽 도착지에서의 재정렬이 요구되지 않고, 손실 패킷에 대해서도 높은 확률로 복원이 가능하므로 망 자원을 보다 효율적으로 사용 가능하다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 패킷의 다중경로 전송 제어방법의 순서도이다.
도 3은 도 2의 컨트롤러 서버의 구성을 설명하기 위한 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명을 구체적으로 설명한다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.
컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다. 다만 설명의 편의를 위해 이하에서는 네트워크 장비(200)가 오픈플로우 스위치인 경우를 중심으로 설명하고, 동일한 도면 부호를 병기하도록 한다.
소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다.
보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러 서버(100)와 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러 서버(100) 간 통신 채널이며, 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 교환되는 정보는 암호화된다. 상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러 서버(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메세지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다.
상기 플로우 테이블은 크게 세 가지 정보, 즉 플로우를 정의하는 패킷 헤더 정보(Rule), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭한다.
호스트(300)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다.
예컨대 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제1 호스트(300a)는 보내고자 하는 패킷을 생성하고 상기 패킷을 제1 호스트(300a)와 연결된 오픈플로우 스위치(200)로 전송한다. 오픈플로우 스위치(200)에 상기 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우에는, 오픈플로우 스위치(200)가 상기 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200)에 상기 패킷에 관련된 플로우 테이블이 없는 경우에는, 오픈플로우 스위치(200)는 컨트롤러 서버(100)에 패킷 유입을 알리는 패킷-인 메세지(Packet-in Message)를 전송한다. 컨트롤러 서버(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 상기 패킷의 처리를 규정하는 플로우 모드 메세지를 생성하여 오픈플로우 스위치(200)로 전송하고, 오픈플로우 스위치(200)는 상기 플로우 모드 메세지에 의해 변경된 플로우 테이블을 참조하여 상기 패킷을 처리한다.
한편 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보낼 수 있는 경로는 다양할 수 있다. 전체 네트워크에는 복수의 오픈플로우 스위치(200) 및 호스트(300)가 존재하므로 각 노드마다 복수의 링크를 가지기 때문이다. 이때, 컨트롤러 서버(100)는 전체 네트워크 토폴로지 맵에 기반하여 상기 패킷을 보낼 수 있는 복수개의 경로 중에서 최적 경로를 연산한다. 그리고 컨트롤러 서버(100)는 연산된 최적 경로에 대한 정보를 오픈플로우 스위치(200)에 전송하고, 오픈플로우 스위치(200)는 상기 최적 경로로 패킷을 처리하는 것이 일반적이다.
이하, 본 발명의 실시예들에 따른 패킷의 다중경로 전송 제어방법을 설명한다.
도 2는 본 발명의 일 실시예에 따른 패킷의 다중경로 전송 제어방법의 순서도이다. 도 2를 참조하면, 단계 201에서 호스트(300)는 컨트롤러 서버(100)에 제1 대역폭 보장을 요청하는 신호를 전송 할 수 있다. 여기에서 제1 대역폭은 호스트(300)가 보장 받기를 원하는 대역폭을 의미한다. 예컨대 호스트(300)는 클라이언트 및 서버를 포함하여 구성될 수 있고, 상기 클라이언트가 서버에 대해 필요한 만큼의 대역폭을 보장해 달라는 서비스 요청을 할 수 있다(예컨대 클라이언트가 용량이 큰 데이터를 송신하는 경우). 그리고 상기 서버는 클라이언트가 요청한 대역폭을 보장하기 위해 컨트롤러 서버(100)에 제1 대역폭 보장을 요청하는 신호를 전송 할 수 있다. 상기 서버와 컨트롤러 서버(100)는 컨트롤러 서버(100)에 구비되는 통신 인터페이스 등을 이용하여 통신 가능하다.
상기 제1 대역폭 보장을 요청하는 신호는 호스트(300)가 요청하는 대역폭 정보 뿐만 아니라, 호스트(300)를 구성하는 클라이언트 및 서버의 정보를 포함할 수 있다. 예컨대 상기 신호는 클라이언트 IP, 서버 IP, MAC 어드레스 정보 등을 포함할 수 있다. 한편 도 2에 도시되지는 않았으나 컨트롤러 서버(100)는 호스트(300)로부터 제1 대역폭 보장 요청 신호를 수신하면 이에 응답하는 것도 가능하다.
단계 202에서 호스트(300)는 랩터코드(Raptor Code)로 인코딩된 패킷을 생성할 수 있다. 구체적으로는 호스트(300)를 구성하는 클라이언트가 데이터 서비스를 서버로 요청하면, 서버에서는 기 설정된 프로세스에 따라 데이터를 랩터코드를 통해 인코딩하여 패킷을 생성할 수 있다.
여기에서 랩터코드는 파운틴 코드(Fountain Code)의 일종으로 매우 빠른 확률적 디코딩을 수행 가능하다. 파운틴 코드(Rateless code 라고도 함)는 송신단에서 전송할 파일을 이용하여 끊임없이 인코딩된 패킷을 만들어 전송하고, 각 수신단에서는 피드백 없이 디코딩이 가능할 정도의 패킷만을 수신하여 디코딩하는 코드 방식을 의미한다. 이와 같은 파운틴 코드는 데이터 출처에 관계없이 원하는 양만큼의 데이터만 받으면 처리가 가능하다는 점에서, 네트워크의 과부하를 발생시키는 재전송요청 없이 수신단에게 비동기 수신을 제공할 수 있는 이점이 있다.
보다 구체적으로, 상기 파운틴 코드는 k개의 소스 심볼(Source Symbols)을 이용하여 복구 심볼(Repair Symbols)을 생성하고, 상기 복구 심볼을 이용하여 본래의 소스 심볼을 복구하는 것이 가능하다. 따라서 수신측은 같은 데이터를 전송하는 여러 송신측과 연결을 하고 어느 송신측에서 보낸 데이터인지에 관계없이 복구 심볼을 이용하여 본래 데이터를 복구할 수 있다. 따라서 패킷이 랩터코드로 인코딩되는 경우에는 트래픽의 재정렬이 요구되지 않고, 손실된 패킷에 대해서도 높은 확률로 복원이 가능하다는 장점이 있다. 다중경로를 통한 패킷 전송시 랩터코드로 패킷을 인코딩하는 이유다. 랩터코드는 공지의 코드이므로 더 이상의 설명은 생략하기로 한다.
단계 203에서 호스트(300)는 단계 202에서 랩터코드로 인코딩된 패킷을 오픈플로우 스위치(200)로 전송할 수 있다.
단계 204 및 단계 205에서 오픈플로우 스위치(200)가 호스트로부터 패킷을 수신하면, 오픈플로우 스위치(200)는 상기 패킷을 일단 버퍼에 저장할 수 있다. 그리고 오픈플로우 스위치(200)는 컨트롤러 서버(100)에 상기 패킷의 처리를 문의하기 위해 패킷-인 메세지(Packet-in Message)로 수신 패킷의 일부 데이터를 전송할 수 있다. 상기 패킷-인 메세지에는 상기 패킷의 출발지(Source)인 호스트의 정보, 데이터의 유형 정보 등이 포함될 수 있다. 호스트의 정보란 호스트(300)를 이루는 클라이언트 및 서버의 IP 주소 등을 의미한다. 여기에서 상기 호스트는 단계 201에서 제1 대역폭 보장 요청을 한 호스트(300)일 수도 있고, 아닐 수도 있다. 본 명세서에서는 단계 201에서 제1 대역폭 보장 요청을 한 호스트에 대해서만 도면 부호를 병기함으로써 이를 구분하였다.
단계 206에서 컨트롤러 서버(100)는 기 설정된 오퍼레이터 정책이나 알고리즘에 의해 상기 패킷을 목적지(Destination)로 전송하기 위한 최적 경로를 연산할 수 있다. 상기 최적 경로의 연산은 컨트롤러 서버(100)가 인지하고 있는 네트워크의 토폴로지 맵을 기반으로 수행될 수 있다.
단계 207에서 컨트롤러 서버(100)는 단계 201에서 수신한 제1 대역폭 보장 요청 신호에 포함되는 호스트(300)의 정보와, 단계 205에서 수신한 패킷-인 메세지에 포함되는 패킷의 출발지(Source) 정보를 비교할 수 있다. 본 실시예에서는 호스트(300) 정보와 패킷의 출발지 정보가 동일하므로, 컨트롤러 서버(100)는 상기 패킷이 단계 201에서의 호스트(300)로부터 전송된 패킷임을 인지할 수 있다.
반면, 단계 207에서 상기 패킷-인 메세지에 포함되는 패킷의 출발지 정보가 호스트(300)의 정보와 일치하지 않는 경우에, 컨트롤러 서버(100)는 상기 패킷의 출발지가 단계 201에서의 호스트(300)가 아니라는 것을 인지할 수 있다. 따라서 상기 패킷의 경우에는 일반적 처리 방법에 따라 단일경로(Single-path)로 전송될 수 있다.
이에 따라 단계 208에서 컨트롤러 서버(100)는, 단계 206에서 연산된 최적 경로를 통해 상기 패킷을 목적지로 전송하도록 패킷의 처리를 규정한 플로우 모드 메세지(Flow_Mod, Flow Modification Message)를 생성하고 오픈플로우 스위치(200)로 전송함으로써, 오픈플로우 스위치(200)에 존재하는 제1 플로우 테이블의 플로우 룰(Flow Rule)을 변경할 수 있다. 여기에서 상기 플로우 모드 메세지는 컨트롤러 서버(100)가 오픈플로우 스위치(200)에 존재하는 플로우 테이블의 플로우 룰을 추가, 수정 또는 삭제하는 것과 관련된 명령을 내리는 메세지를 의미한다.
그리고 단계 211에서 오픈플로우 스위치(200)는, 단계 208에서 수신한 플로우 모드 메세지에 의해 변경된 제1 플로우 테이블을 참조하여 컨트롤러 서버(100)가 단계 206에서 연산한 최적 경로로 상기 패킷을 처리할 수 있다.
단계 207에서 호스트(300) 정보와 상기 패킷의 출발지 정보가 동일한 경우를 살펴보면, 단계 209에서 컨트롤러 서버(100)는, 단계 201에서 호스트(300)로부터 보장을 요청받았던 보장 대역폭과, 단계 206에서 연산된 최적 경로가 가지는 대역폭의 크기를 비교할 수 있다. 구분의 편의를 위해 단계 201에서 호스트(300)로부터 보장을 요청받았던 보장 대역폭을 제1 대역폭이라 지칭하고, 단계 206에서 연산된 최적 경로의 대역폭을 제2 대역폭이라 지칭한다.
제1,2 대역폭의 크기를 비교한 결과, 제2 대역폭의 크기가 제1 대역폭의 크기보다 큰 경우에는 더 이상 문제되지 않는다. 연산된 최적 경로의 대역폭(제2 대역폭)이 호스트(300)가 미리 요청한 보장 대역폭의 크기(제1 대역폭)를 충족시키기 때문이다. 따라서 해당 패킷은 단일경로(Single-path)로 전송될 수 있다.
구체적으로, 단계 210에서 컨트롤러 서버(100)는 단계 206에서 연산된 최적 경로를 통해 상기 패킷을 목적지로 전송하도록 패킷의 처리를 규정한 플로우 모드 메세지(Flow_mod, Flow Modification Message)를 생성하고, 이를 오픈플로우 스위치(200)로 전송함으로써, 오픈플로우 스위치(200)에 존재하는 플로우 테이블의 플로우 룰(Flow Rule)을 변경할 수 있다.
그리고 단계 211에서 오픈플로우 스위치(200)는, 단계 210에서 수신한 플로우 모드 메세지에 의해 변경된 제1 플로우 테이블을 참조하여 단계 206에서 연산된 최적 경로로 상기 패킷을 처리할 수 있다. 관련하여, 본 명세서에서는 해당 패킷을 단일경로를 통해 전송하도록 규정한 플로우 룰을 제1 플로우 테이블이라 칭하고 있음을 밝혀둔다.
한편, 단계 209에서 제1,2 대역폭의 크기를 비교한 결과, 제2 대역폭의 크기가 제1 대역폭의 크기보다 작은 경우에는 대역폭 보장이 필요하다. 연산된 최적 경로의 대역폭(제2 대역폭)의 크기가 단계 201에서 호스트(300)가 미리 요청한 보장 대역폭의 크기(제1 대역폭)에 못 미치기 때문이다.
따라서 단계 212에서 컨트롤러 서버(100)는 단계 201에서의 호스트(300)요청에 따른 대역폭을 보장하기 위해 다중경로(Multi-path)를 추가적으로 연산할 수 있다. 상기 다중경로는 출발지인 호스트(300)로부터 도착지에 해당하는 호스트까지 패킷이 전송될 수 있는 경로들을 통칭하는 것으로, 최적 경로를 포함한 복수의 경로를 의미한다.
이 때, 다중경로의 연산은 일반적으로 출발지 호스트에서부터 도착지 호스트까지 동일 비용(equal-cost)을 갖는 경로들을 모두 연산하는 것이 일반적이다(동일 비용 조건). 그러나 본 발명의 실시예에서는 다중경로의 연산시 상기 동일 비용 조건은 무시하고, 각 링크에 할당된 대역폭과 트래픽 통계를 고려하여 다중경로를 연산할 수 있다.
상기 동일 비용 조건을 무시하는 이유는 첫째, 동일 비용의 최적 경로(예컨대 지연 시간에 기반함)를 복수 개 연산하더라도, 실제 네트워크 환경에 있어서는 경로마다 다른 지연 시간이 존재하기 때문이다. 즉 실제 네트워크 환경에서 동일 비용을 갖는 다중경로는 드물다. 따라서 동일 비용 조건을 무시하더라도 실제 링크에 할당된 대역폭과 트래픽 통계를 이용하여 다중경로를 연산하는 경우에는, 발생 가능한 지연시간을 연산시에 고려할 수 있으므로 해당 패킷을 보다 효율적으로 전송할 수 있다.
둘째, 전송하려는 패킷이 랩터 코드로 인코딩되기 때문이다. 상술한 바와같이 랩터 코드로 인코딩된 패킷의 경우에는 수신단(도착지 호스트)에서 피드백 없이 디코딩이 가능하므로 패킷을 재정렬하거나 재전송요청이 요구되지 않으며, 손실 패킷에 대해서도 높은 확률로 복원이 가능하다. 따라서 다중경로 전송시 패킷의 도착순서가 상이하더라도 이에 따른 추가 지연시간이 발생하지 않는다.
한편, 단계 212는 단계 201에서 호스트(300)로부터의 대역폭 보장 요청이 존재하고, 또한 단계 207에서 컨트롤러 서버(100)가 당해 패킷이 상기 호스트(300)로부터 전송된 것임을 인지해야만 수행 될 수 있다. 그렇지 않으면 경우에 따라 모든 유입된 패킷의 전송을 위해 다중경로를 연산하여야 하므로 시스템에 부담이 될 수 있기 때문이다.
단계 212에서 다중경로가 연산되면, 단계 213에서 컨트롤러 서버(100)는 상기 연산된 다중경로의 대역폭의 총 크기와 단계 201에서 호스트(300)가 보장을 요청했던 제1 대역폭의 크기를 비교할 수 있다. 이 때, 상기 연산된 다중경로의 대역폭의 총 크기가 상기 제1 대역폭의 크기보다 큰 경우에는 더 이상 문제되지 않는다. 단계 212에서 연산된 다중경로의 총 대역폭이 단계 201에서 호스트(300)가 요청한 보장 대역폭의 크기(제1 대역폭)를 충족시키기 때문이다. 그러나 반대의 경우에는 상기 제1 대역폭의 보장이 필요하다. 단계 212에서 연산된 다중경로의 총 대역폭 크기가 단계 201에서 호스트(300)가 요청한 보장 대역폭의 크기(제1 대역폭)에 못 미치기 때문이다. 따라서 후자의 경우에는 새로 연산된 다중경로의 대역폭의 총 크기가 상기 제1 대역폭보다 커질 때까지 단계 212 및 단계 213을 반복적으로 수행할 수 있다.
단계 213에서 상기 연산된 다중경로의 대역폭의 총 크기가 상기 제1 대역폭의 크기보다 큰 경우, 단계 214에서 컨트롤러 서버(100)는, 단계 212에서 연산된 다중경로를 통해 상기 패킷을 도착지로 분할 전송하도록 패킷의 처리를 규정한 플로우 모드 메세지를 생성할 수 있다. 또한 상기 플로우 모드 메세지를 오픈플로우 스위치(200)로 전송함으로써, 오픈플로우 스위치(200)에 존재하는 플로우 테이블의 플로우 룰을 변경할 수 있다. 관련하여, 본 명세서에서는 패킷을 다중경로를 통해 전송하도록 규정한 플로우 룰을 제2 플로우 테이블이라고 칭하고 있음을 밝혀둔다.
그리고 단계 215에서 오픈플로우 스위치(200)는, 단계 214에서 수신한 플로우 모드 메세지에 의해 변경된 제2 플로우 테이블을 참조하여 컨트롤러 서버(100)가 단계 213에서 연산한 다중경로로 상기 패킷을 처리할 수 있다.
또한 도 2에 도시되지는 않았으나, 도착지 호스트에서는 상기 다중경로로 분할 전송된 패킷을 디코딩이 가능할 정도로 수신하고, 랩터 디코더에 의해 디코딩한다. 이 때 손실된 패킷에 대해서는 복구 심볼을 통해 복원할 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따르면, 컨트롤러 서버(100)는 호스트(300)의 요청이 있는 경우에만 대역폭 보장을 시도하고, 요청된 보장 대역폭보다 연산된 최적 경로의 대역폭이 작은 경우에만 다중경로를 추가적으로 연산함으로써 망을 보다 효율적으로 사용할 수 있다. 또한, 다중경로의 연산시 동일 비용 조건을 무시하고 각 링크에 할당된 대역폭과 트래픽 통계를 고려하여 실제 네트워크 환경에서 발생 가능한 지연시간을 연산에 반영함으로써, 보다 효율적으로 패킷 전송이 가능하다. 게다가 패킷이 랩터코드로 인코딩되는 경우에는 트래픽 도착지에서의 재정렬이 요구되지 않고, 손실 패킷에 대해서도 높은 확률로 복원이 가능하므로 망 자원을 보다 효율적으로 사용 가능하다는 장점이 있다.
도 3은 도 2의 컨트롤러 서버(100)의 구성을 설명하기 위한 도면이다. 도 3을 참고하면, 컨트롤러 서버(100)는 제1 통신부(110), 제2 통신부(120) 및 제어부(130)를 포함할 수 있으며, 입력부(미도시), 표시부(미도시)를 더 포함할 수 있다. 한편, 제1 통신부(110), 제2 통신부(120) 및 제어부(130)는 물리적으로 분리되어 존재할 수도 있다.
제1 통신부(110)는 컨트롤러 서버(100)의 유무선 통신을 위한 데이터의 송수신 기능을 수행한다. 구체적으로 제1 통신부(110)는 네트워크 장비인 오픈플로우 스위치(200)와 통신하는 역할을 수행한다. 이 때 사용되는 프로토콜이 오픈플로우(OpenFlow) 프로토콜일 수 있다.
제2 통신부(120)는 호스트(300)와 통신하는 역할을 수행한다. 구체적으로제2 통신부(120)는 호스트(300)로부터 대역폭 보장 요청을 수신하거나 이에 대한 응답을 전송하는 기능을 한다.
제어부(130)는 컨트롤러 서버(100)의 전반적인 기능을 제어한다. 특히 본 발명의 실시예에서 제어부(130)는 오픈플로우 스위치(200)로부터 패킷-인 메세지를 수신하면 패킷 전송을 위한 최적 경로를 연산하되, 호스트(300)가 미리 요청한 제1 대역폭이 상기 최적 경로가 가지는 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 상기 제1 대역폭보다 크도록 다중경로를 추가적으로 연산하는 기능을 할 수 있다.
또한, 다중경로 연산시에는 상기 다중경로로 상기 패킷을 분할 전송하도록 상기 패킷의 처리를 규정한 플로우 모드 메세지를 생성하고, 상기 네트워크 장비로 전송하는 기능을 할 수 있다.
그 외에도 제어부(130)는 도 2에서 설명한 컨트롤러 서버(100)가 하는 역할들을 모두 수행할 수 있도록 기능할 수 있으며, 이에 대해서는 앞에서 설명하였으므로 중복 설명은 생략하기로 한다.
이상, 본 발명의 실시예들에 대하여 설명하였다. 그러나 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 기술적 사상의 범위 내에서 기술의 구체적 적용에 따른 단순한 설계변경, 일부 구성요소의 생략, 단순한 용도의 변경 등 본 발명을 다양하게 변형할 수 있을 것이며, 이러한 변형 역시 본 발명의 권리범위 내에 포함됨은 자명하다.
100: 컨트롤러 서버
110: 제1 통신부
120: 제2 통신부
130: 제어부
200: 오픈플로우 스위치
300: 호스트
300a: 제1 호스트
300b: 제2 호스트

Claims (8)

  1. SDN(소프트웨어 정의 네트워킹) 환경에서 컨트롤러 서버가 패킷의 전송 경로를 제어하는 방법으로서,
    a) 호스트로부터 제1 대역폭 보장을 요청하는 신호를 수신하는 단계;
    b) 네트워크 장비로부터 패킷-인 메세지(Packet-in Message)를 수신하는 단계;
    c) 상기 패킷을 도착지(Destination)로 전송하기 위한 최적 경로 - 상기 최적 경로는 기 설정된 오퍼레이터 정책 또는 알고리즘에 따름 - 를 연산하는 단계;
    d) 상기 a) 단계에서 수신한 신호에 포함되는 상기 호스트의 출발지(Source) 정보와 상기 b) 단계에서 수신한 상기 패킷-인 메세지에 포함되는 출발지 정보를 비교하여, 상기 패킷이 상기 호스트로부터 전송된 것임을 인지하는 단계;
    e) 상기 제1 대역폭과 상기 c) 단계에서 연산된 최적 경로가 가지는 제2 대역폭의 크기를 비교하고, 상기 제1 대역폭이 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 상기 제1 대역폭보다 크도록 다중경로를 추가적으로 연산하는 단계; 및
    f) 상기 다중경로로 상기 패킷을 분할 전송하도록 규정한 플로우 룰(Flow Rule)을 생성하고, 상기 네트워크 장비로 전송하는 단계를 포함하는 패킷의 전송 경로 제어방법.
  2. 청구항 1에 있어서,
    상기 패킷은 상기 호스트에서 랩터 코드(Raptor code)에 의해 인코딩된 것인 패킷의 전송 경로 제어방법.
  3. 청구항 1에 있어서,
    상기 e) 단계에서, 상기 다중경로의 연산은 동일 비용(equal-cost) 조건을 무시하고, 각 링크에 할당된 대역폭과 트래픽 통계를 고려하여 이루어지는 것인 패킷의 전송 경로 제어방법.
  4. SDN(소프트웨어 정의 네트워킹) 환경에서 네트워크 장비가 패킷을 전송하기 위한 방법으로서,
    a) 송신측 호스트로부터 랩터코드(Raptor code)에 의해 인코딩된 패킷을 수신하는 단계;
    b) 상기 패킷에 대한 패킷-인 메세지를 생성하고 컨트롤러 서버로 전송하는 단계;
    c) 상기 컨트롤러 서버로부터 상기 패킷의 처리를 규정한 플로우 룰을 수신하고, 상기 플로우 룰에 따라 상기 패킷을 다중경로로 분할 전송하는 단계를 포함하는 네트워크 장비의 패킷 전송방법.
  5. SDN(소프트웨어 정의 네트워킹) 환경에서 패킷의 전송 경로를 제어하는 컨트롤러 서버로서,
    네트워크 장비와 통신하는 제1 통신부;
    호스트와 통신하는 제2 통신부; 및
    상기 네트워크 장비로부터 패킷-인 메세지를 수신하면 패킷 전송을 위한 최적 경로 - 상기 최적 경로는 기 설정된 오퍼레이터 정책 또는 알고리즘에 따름 - 를 연산하되, 상기 호스트가 미리 보장을 요청한 제1 대역폭이 상기 최적 경로가 가지는 제2 대역폭보다 큰 경우에는 복수개 경로의 대역폭의 합이 상기 제1 대역폭보다 크도록 다중경로를 추가적으로 연산한 후, 상기 다중경로로 상기 패킷을 분할 전송하도록 상기 패킷의 처리를 규정한 플로우 룰을 생성하고, 상기 네트워크 장비로 전송하는 제어부를 포함하는 컨트롤러 서버.
  6. 삭제
  7. 청구항 5에 있어서,
    상기 제어부는 상기 호스트가 미리 전송한 정보와 상기 패킷-인 메세지에 포함되는 출발지 정보를 비교하여, 상기 패킷이 상기 호스트로부터 전송된 것임을 인지하는 기능을 하는 컨트롤러 서버.
  8. 청구항 5에 있어서,
    상기 제어부는 동일 비용(equal-cost) 조건을 무시하고, 각 링크에 할당된 대역폭과 트래픽 통계롤 고려하여 상기 다중경로를 연산하는 기능을 하는 컨트롤러 서버.
KR1020150011886A 2015-01-26 2015-01-26 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치 KR101598775B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150011886A KR101598775B1 (ko) 2015-01-26 2015-01-26 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150011886A KR101598775B1 (ko) 2015-01-26 2015-01-26 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치

Publications (1)

Publication Number Publication Date
KR101598775B1 true KR101598775B1 (ko) 2016-03-02

Family

ID=55582641

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150011886A KR101598775B1 (ko) 2015-01-26 2015-01-26 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치

Country Status (1)

Country Link
KR (1) KR101598775B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108011822A (zh) * 2016-10-31 2018-05-08 南宁富桂精密工业有限公司 多媒体数据流传输优化方法及sdn控制器
KR101884162B1 (ko) * 2017-12-14 2018-08-30 한국과학기술정보연구원 데이터 전송 방법 및 장치
KR102023901B1 (ko) * 2018-09-06 2019-11-14 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램
KR102058514B1 (ko) * 2018-12-18 2020-02-07 (주)넷비젼텔레콤 다중 경로 환경에서의 정책기반 경로 제어 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020047758A (ko) * 2000-12-14 2002-06-22 구자홍 애드-혹 망에서 다중 경로를 이용한 라우팅 방법
KR20120055955A (ko) 2010-11-24 2012-06-01 한국과학기술정보연구원 오픈플로우 네트워크 시스템 및 그 제어방법
KR101477012B1 (ko) * 2014-05-23 2014-12-29 주식회사 파이오링크 Sdn 스위칭 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020047758A (ko) * 2000-12-14 2002-06-22 구자홍 애드-혹 망에서 다중 경로를 이용한 라우팅 방법
KR20120055955A (ko) 2010-11-24 2012-06-01 한국과학기술정보연구원 오픈플로우 네트워크 시스템 및 그 제어방법
KR101477012B1 (ko) * 2014-05-23 2014-12-29 주식회사 파이오링크 Sdn 스위칭 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108011822A (zh) * 2016-10-31 2018-05-08 南宁富桂精密工业有限公司 多媒体数据流传输优化方法及sdn控制器
KR101884162B1 (ko) * 2017-12-14 2018-08-30 한국과학기술정보연구원 데이터 전송 방법 및 장치
KR102023901B1 (ko) * 2018-09-06 2019-11-14 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램
KR102058514B1 (ko) * 2018-12-18 2020-02-07 (주)넷비젼텔레콤 다중 경로 환경에서의 정책기반 경로 제어 시스템

Similar Documents

Publication Publication Date Title
Polese et al. A survey on recent advances in transport layer protocols
EP3761591B1 (en) Tcp link configuration method, apparatus, and computer program product
Zhou et al. Goodput improvement for multipath TCP by congestion window adaptation in multi-radio devices
US7835285B2 (en) Quality of service, policy enhanced hierarchical disruption tolerant networking system and method
US11558302B2 (en) Data transmission method and apparatus
KR102187810B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
KR101598775B1 (ko) 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치
CN107210908B (zh) 用于数据流量的速率适配的方法和系统
CN104052684A (zh) 动态适配计算机网络中的最大传输单元大小的方法和系统
JP6395867B2 (ja) OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ
CN106330742B (zh) 一种流量控制的方法及网络控制器
JP6181298B2 (ja) プロキシノードおよび方法
WO2018219100A1 (zh) 数据传输的方法和设备
CN109120540B (zh) 传输报文的方法、代理服务器和计算机可读存储介质
Liu et al. Cross-layer design for UAV-based streaming media transmission
CN109347674B (zh) 一种数据传输的方法、装置及电子设备
CN113612698A (zh) 一种数据包发送方法及装置
US9537764B2 (en) Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program
KR101610031B1 (ko) 소프트웨어 정의 네트워크에서 컨트롤러를 내장하는 오픈플로우 스위치의 제어방법 및 장치
CN114095448A (zh) 一种拥塞流的处理方法及设备
CN104243319A (zh) 一种邻居发现的方法及装置
KR101589553B1 (ko) 소프트웨어 정의 네트워크에서의 QoS 보장을 위한 대역폭 제어 방법 및 장치
JP6200870B2 (ja) データ転送制御装置、方法及びプログラム
Sreekumari et al. A simple and efficient approach for reducing TCP timeouts due to lack of duplicate acknowledgments in data center networks
Wu et al. COded taking and giving (COTAG): Enhancing transport layer performance over indoor millimeter wave access networks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant