KR20160019651A - 데이터 트래픽의 전송을 제어하는 장치 및 방법 - Google Patents
데이터 트래픽의 전송을 제어하는 장치 및 방법 Download PDFInfo
- Publication number
- KR20160019651A KR20160019651A KR1020140104182A KR20140104182A KR20160019651A KR 20160019651 A KR20160019651 A KR 20160019651A KR 1020140104182 A KR1020140104182 A KR 1020140104182A KR 20140104182 A KR20140104182 A KR 20140104182A KR 20160019651 A KR20160019651 A KR 20160019651A
- Authority
- KR
- South Korea
- Prior art keywords
- routing path
- node
- information
- transmission
- data traffic
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 104
- 238000000034 method Methods 0.000 title claims description 46
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- 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/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
Abstract
예시적인 실시예에 따르면, 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치로서, 상기 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하도록 구성되는 인터페이스부; 및 상기 데이터 트래픽의 제1 부분 및 제2 부분을 각각 상기 제1 라우팅 경로 및 제2 라우팅 경로를 따라 상기 목적지 노드로 라우팅하기 위해 상기 정보에 기반하여 상기 제2 라우팅 경로를 선택하도록 구성되는 제어부를 포함하는 전송 제어 장치가 제공된다.
Description
개시되는 실시예들은 데이터 트래픽의 전송을 제어하기 위한 장치 및 방법에 관한 것으로서, 더욱 구체적으로는 데이터 트래픽의 전송 중에 혼잡 상황이 발생한 경우 데이터 트래픽을 여러 라우팅 경로들로 분산하는 기법에 관한 것이다.
네트워크 환경에서 데이터 전송의 효율을 향상시키기 위한 다양한 방식들이 알려져 있다. 예를 들어, 오버레이 네트워킹(overlay networking) 기법은 출발지 노드(source node)와 목적지 노드(destination node) 사이에 하나 이상의 중간 노드 내지 오버레이 홉(overlay hop)을 배치함으로써 개선된 전송 효율을 달성할 수 있다.
오버레이 네트워킹 기법을 이용한 데이터 전송에서도 패킷 유실(packet loss), 라운드 트립 시간(Round Trip Time: RTT)의 증가, 전송 경로 상의 산발적 열화 등과 같은 다양한 요인들로 인해 혼잡 상황이 발생할 수 있다. 혼잡 상황이 발생한 경우, 데이터가 전송되는 경로 상의 전송 레이트(transmission rate)를 신속히 감소시키는 혼잡 회피(congestion avoidance) 기법이 요구될 수 있다. 그러나, 통상적인 혼잡 회피 기법들에 따르면, 감소된 전송 레이트는 완만하게 증가되기 마련이다. 혼잡 상황이 해소되기 전에 급격히 전송 레이트를 증가시키는 것은 네트워크 공정성(network fairness)(즉, 공유된 네트워크 자원의 공정한 할당)을 저해할 수 있기 때문이다.
더욱이, 오버레이 네트워크 환경에서 데이터 전송을 보장하기 위한 프로토콜이 채택된 경우, 유실된 데이터의 재전송을 계속 시도하는 것은 혼잡 상황을 더욱 악화시킬 수 있다. 이러한 문제점을 해결하기 위해, 미리 정의된 복수의 경로(예컨대, 3개의 경로) 상에서 동일한 데이터를 출발지 노드로부터 전송하고 목적지 노드에 먼저 수신된 데이터를 취할 수 있다. 이러한 접근법에 따르면, 어떤 경로 상에서 혼잡 상황이 발생하더라도 다른 경로를 통한 데이터 전송은 성공적일 수 있다. 그러나, 전송 경로의 개수가 증가할수록 더 많은 트래픽 비용이 데이터 전송에 요구될 것이다.
나아가, 저장된 대용량 데이터(예컨대, 저장 장치에 이미 저장된 대용량 파일) 또는 실시간 멀티미디어 데이터(예컨대, 실시간으로 생성되는 오디오, 비디오 또는 이들의 조합을 포함함)와 같은 다양한 타입의 데이터의 전송에서 지연시간의 감소가 대단히 중요하다.
이러한 점들에 비추어 볼 때, 혼잡 상황이 발생한 경우 높은 효율의 데이터 전송을 가능하게 하는 새로운 기법이 필요하다.
개시되는 실시예들은 데이터 트래픽의 전송 중에 혼잡 상황이 발생한 경우 데이터 트래픽의 전송을 제어하기 위한 향상된 기법을 제공한다.
예시적인 실시예에 따르면, 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치로서, 상기 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하도록 구성되는 인터페이스부; 및 상기 데이터 트래픽의 제1 부분 및 제2 부분을 각각 상기 제1 라우팅 경로 및 제2 라우팅 경로를 따라 상기 목적지 노드로 라우팅하기 위해 상기 정보에 기반하여 상기 제2 라우팅 경로를 선택하도록 구성되는 제어부를 포함하는 전송 제어 장치가 제공된다.
상기 정보는 상기 제1 라우팅 경로 내 링크 상에서 발생한 상기 혼잡 상황을 나타낼 수 있다.
상기 제어부는 상기 정보에 기반하여 적어도 하나의 후보 라우팅 경로 중에서 상기 제2 라우팅 경로를 선택하도록 구성될 수 있고, 상기 적어도 하나의 후보 라우팅 경로 각각은 미리 설정된 노드로부터 상기 목적지 노드까지 이어지고 상기 링크를 우회할 수 있다.
상기 적어도 하나의 후보 라우팅 경로는 상기 미리 설정된 노드에서 상기 제1 라우팅 경로로부터 분기할 수 있고, 상기 제어부는 또한 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하도록 구성될 수 있다.
상기 제어부는 또한 상기 정보에 기반하여 상기 제1 부분의 전송 레이트(transmission rate) 및 상기 제2 부분의 전송 레이트를 결정하도록 구성될 수 있다.
상기 제어부는 또한 상기 제1 라우팅 경로 상의 복수의 노드 중에서 상기 제2 라우팅 경로가 상기 제1 라우팅 경로로부터 분기하는 노드를 식별하도록 구성될 수 있다.
상기 제어부는 또한 상기 식별된 노드가 상기 미리 설정된 노드인 경우 상기 식별된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하도록 구성될 수 있다.
상기 제2 라우팅 경로는 상기 적어도 하나의 후보 라우팅 경로 중 최소 코스트 경로(minimum cost path)일 수 있다.
상기 정보는 또한 상기 링크 상의 패킷 유실 레이트(packet loss rate) 및 상기 링크 상의 패킷 지연 중 적어도 하나를 나타낼 수 있다
상기 혼잡 상황은 상기 제1 라우팅 경로 상의 중간 노드에서 감지될 수 있고, 상기 정보는 상기 중간 노드에서 유래할 수 있다.
다른 예시적인 실시예에 따르면, 목적지 노드로의 데이터 트래픽의 전송을 제어하는 방법으로서, 상기 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하는 단계; 및 상기 데이터 트래픽의 제1 부분 및 제2 부분을 각각 상기 제1 라우팅 경로 및 제2 라우팅 경로를 따라 상기 목적지 노드로 라우팅하기 위해 상기 정보에 기반하여 상기 제2 라우팅 경로를 선택하는 단계를 포함하는 전송 제어 방법이 제공된다.
상기 정보는 상기 제1 라우팅 경로 내 링크 상에서 발생한 상기 혼잡 상황을 나타낼 수 있다.
상기 제2 라우팅 경로를 선택하는 단계는 상기 정보에 기반하여 적어도 하나의 후보 라우팅 경로 중에서 상기 제2 라우팅 경로를 선택하는 단계를 포함할 수 있고, 상기 적어도 하나의 후보 라우팅 경로 각각은 미리 설정된 노드로부터 상기 목적지 노드까지 이어지고 상기 링크를 우회할 수 있다.
상기 적어도 하나의 후보 라우팅 경로는 상기 미리 설정된 노드에서 상기 제1 라우팅 경로로부터 분기할 수 있고, 상기 전송 제어 방법은 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하는 단계를 더 포함할 수 있다.
상기 전송 제어 방법은, 상기 정보에 기반하여 상기 제1 부분의 전송 레이트(transmission rate) 및 상기 제2 부분의 전송 레이트를 결정하는 단계를 더 포함할 수 있다.
상기 전송 제어 방법은, 상기 제1 라우팅 경로 상의 복수의 노드 중에서 상기 제2 라우팅 경로가 상기 제1 라우팅 경로로부터 분기하는 노드를 식별하는 단계를 더 포함할 수 있다.
상기 전송 제어 방법은, 상기 식별된 노드가 상기 미리 설정된 노드인 경우 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하는 단계를 더 포함할 수 있다.
상기 제2 라우팅 경로는 상기 적어도 하나의 후보 라우팅 경로 중 최소 코스트 경로일 수 있다.
상기 정보는 또한 상기 링크 상의 패킷 유실 레이트 및 상기 링크 상의 패킷 지연 중 적어도 하나를 나타낼 수 있다.
상기 혼잡 상황은 상기 제1 라우팅 경로 상의 중간 노드에서 감지될 수 있고, 상기 정보는 상기 중간 노드에서 유래할 수 있다.
또 다른 예시적인 실시예에 따르면, 하드웨어와 결합되어, 상기 전송 제어 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램이 제공된다.
소정의 실시예들에 따르면, 데이터 트래픽의 전송 중에 혼잡 상황이 발생한 경우, 데이터 트래픽이 상이한 라우팅 경로들을 통해 분산될 수 있다.
소정의 실시예들은 네트워크 공정성을 보장하면서도 전송 효율의 향상시킬 수 있다.
소정의 실시예들은 과다한 트래픽 비용을 요구하지 않으면서 고속 데이터 전송에 적용될 수 있다.
소정의 실시예들에 따르면, 미리 분산 방식으로 배포할 수 없는 데이터(예컨대, 이미 저장된 대용량 파일 데이터 또는 실시간으로 생성되는 실시간 멀티미디어 데이터)가 효과적으로 전송될 수 있다.
도 1은 예시적인 실시예에 따른 네트워크 환경을 도시한 도면,
도 2는 예시적인 실시예에 따라 네트워크 환경 내의 노드들의 프로토콜 스택을 도식적으로 나타낸 도면,
도 3은 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 과정을 도시한 도면,
도 4는 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치를 도시한 도면.
도 2는 예시적인 실시예에 따라 네트워크 환경 내의 노드들의 프로토콜 스택을 도식적으로 나타낸 도면,
도 3은 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 과정을 도시한 도면,
도 4는 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치를 도시한 도면.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 예시적인 실시예에 따른 네트워크 환경을 도시한다.
도 1에 도시된 바와 같이, 네트워크 환경(100)은 클라이언트(110) 및 서버(120)를 두 엔드포인트(endpoint) 노드들로서 포함할 수 있다. 또한, 네트워크 환경(100)은 클라이언트(110) 및 서버(120) 간에 위치한 오버레이 네트워크 시스템(130)을 더 포함할 수 있다. 예를 들어, 음성 인식 서비스가 서버(120)로부터 클라이언트(110)로 제공될 수 있는데, 클라이언트(110)는 음성을 나타내는 데이터를 오버레이 네트워크 시스템(130)을 통해 서버(120)에 송신하고 서버(120)는 그 데이터로부터 음성을 인식하고 인식된 음성에 기반하여 다른 데이터를 오버레이 네트워크 시스템(130)을 통해 클라이언트(110)에 제공하는 방식으로 위 음성 인식 서비스가 수행될 수 있다. 다른 예로서, 클라이언트(110)와 서버(120) 간 대용량 파일 전송을 위한 서비스가 제공될 수 있다. 이러한 서비스는 클라이언트(110)에 저장된 파일을 오버레이 네트워크 시스템(130)을 통해 서버(120)에 송신하고/하거나 서버(120)에 저장된 다른 파일을 오버레이 네트워크 시스템(130)을 통해 클라이언트(110)에 송신할 수 있다.
오버레이 네트워크 시스템(130)은 적어도 하나의 진입 노드(Ingress Node: IN), 적어도 하나의 바이패스 노드(Bypass Node: BN) 및 적어도 하나의 진출 노드(Egress Node: EN)를 중간 노드들로서 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 오버레이 네트워크 시스템(130)은 진입 노드(131), 바이패스 노드들(132, 133, 135, 136) 및 진출 노드들(134, 137)을 포함할 수 있다. 이에 따라, 데이터가 클라이언트(110)로부터 진입 노드(131)를 거쳐 오버레이 네트워크 시스템(130)에 유입될 수 있다. 또한, 그 데이터는 진출 노드(134) 또는 진출 노드(137)을 거쳐 오버레이 네트워크 시스템(130)으로부터 서버(120)로 유출될 수 있다. 나아가, 바이패스 노드들(132, 133, 135, 136)은 위 데이터가 진입 노드(131)에서 진출 노드(134) 또는 진출 노드(137)까지 전송될 수 있도록 데이터 통신을 중계할 수 있다.
네트워크 환경(100) 내의 노드들(110, 120, 131, 132, 133, 134, 135, 136, 137) 중 제1 노드와 제2 노드 간에는 데이터 전송에 이용 가능한 적어도 하나의 경로가 존재할 수 있다. 이러한 전송 경로는 링크들(140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150) 중 하나 이상의 링크를 포함할 수 있다. 또한, 노드들(110, 120, 131, 132, 133, 134, 135, 136, 137) 중 제3 노드가 그 경로 상에 위치한 경우, 위 경로는 제1 노드와 제3 노드 간의 경로 및 제3 노드와 제2 노드 간의 경로를 포함한다고 볼 수 있다.
네트워크 환경(100)에서는 클라이언트(110)와 서버(120) 간의 데이터 전송을 보장하는 정책이 채택될 수 있다. 이러한 단대단(end-to-end) 전송 보장을 위해, 엔드포인트 노드들(110, 120) 각각 및 중간 노드들(131, 132, 133, 134, 135, 136, 137) 중 적어도 일부는 혼잡 상황(예컨대, 데이터 유실 및/또는 데이터 전송 지연)의 발생을 감지하여 데이터 재전송을 요청할 수 있다. 다시 말해, 이러한 노드들은 각각 노드 대 노드(node-to-node) 전송을 보장하기 위한 적어도 하나의 프로토콜을 구비할 수 있다. 다만, 몇몇 실시예들에 따르면, 중간 노드들(131, 132, 133, 134, 135, 136, 137) 중 특정 노드들 간에는 데이터 전송이 보장되지 않을 수도 있다. 이와 같이 특정한 노드 대 노드 전송이 보장되지 않는 경우, 특정 노드들 간 데이터 전송에서 혼잡 상황이 발생하더라도, 네트워크 환경(100) 내의 엔드포인트 노드(예컨대, 서버(120))가 데이터 재전송을 요청하는 한편, 특정 노드들 각각은 직접 재전송을 요청하지 않을 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 링크들(140, 141, 142, 143, 144)을 따라 클라이언트(110)로부터 서버(120)까지 이어지는 라우팅 경로(이하, "라우팅 경로 RP1"라고도 지칭됨) 상의 노드들(110, 131, 132, 133, 134, 120)은 각각 몇몇 프로토콜을 구비할 수 있다. 도 2로부터 클라이언트(110)와 서버(120)는 각각 TCP(Transmission Control Protocol)(210)를 구비하고 중간 노드들(131, 132, 133, 134)은 각각 UDP(User Datagram Protocol)(220)를 구비함을 알 수 있다. 또한, 중간 노드들(131, 132, 133, 134)은 라우팅 프로토콜(230)을 구비할 수 있다. 나아가, 진입 노드(130)와 진출 노드(134)는 각각 데이터 전송 보장을 위한 전송 프로토콜(240)을 구비할 수 있다. 그 밖에도 노드들(110, 131, 132, 133, 134, 120) 각각은 추가적인 프로토콜(예컨대, HTTP(Hypertext Transfer Protocol)(250)과 같은 애플리케이션 계층 프로토콜)을 더 포함할 수 있다.
도 2에 도시된 바와 같이 진입 노드(130)와 진출 노드(134)에 전송 프로토콜(240)이 포함된 경우, 클라이언트(110)와 진입 노드(131) 간 데이터 전송(260), 진입 노드(130)와 진출 노드(134) 간 데이터 전송(261), 그리고 진출 노드(134)와 서버(120) 간 데이터 전송(262)은 보장될 수 있다. 이에 반해, 진입 노드(130)와 바이패스 노드(133) 사이에서는 데이터 전송이 보장되지 않을 것이다. 마찬가지로, 바이패스 노드(132)와 진출 노드(134) 사이에서는 데이터 전송이 보장되지 않을 것이다.
몇몇 다른 실시예들에 따르면, 바이패스 노드들(132, 133)에도 전송 프로토콜(240)이 포함될 수 있고, 이에 따라 노드들(110, 131, 132, 133, 134, 120) 중 임의의 두 노드 간의 데이터 전송이 보장될 수 있다.
나아가, 도 2의 라우팅 프로토콜(230)에 따라, 중간 노드들(131, 132, 133, 134) 각각은 그 노드를 통한 데이터 전송 동안 발생한 혼잡 상황을 감지하여 그 혼잡 상황에 관한 정보를 생성할 수 있고, 그러한 혼잡 상황 정보는 노드들(131, 132, 133, 134) 전부 또는 (예컨대, 라우팅 프로토콜(230)에 따라 미리 설정된) 몇몇 노드들 간에 공유될 수 있다. 라우팅 프로토콜(230)은 목적지 노드(예컨대, 서버(120))로의 데이터 트래픽이 전달될 라우팅 경로를 선택하는 데에 혼잡 상황 정보를 반영하도록 정의될 수 있다. 이에 따라, 라우팅 프로토콜(230)은 혼잡 상황에 관한 정보를 기반으로 전송 중인 데이터 트래픽을 분산시키는 방식으로 데이터 트래픽을 목적지로 라우팅할 수 있다.
예시적인 설명을 위해, 서버(120)의 주소를 목적지 주소로 가지는 패킷들의 데이터 트래픽을 클라이언트(110)로부터 서버(120)로 전송하기 위한 경로가 초기에 라우팅 경로 RP1(링크들(140, 141, 142, 143, 144)을 포함함)로 선택되었고, 그 데이터 트래픽은 100Mbps의 전송 레이트로 클라이언트(110)로부터 진입 노드(131)에 유입된다고 가정한다. 위와 같은 데이터 트래픽 전송 중에 라우팅 경로 RP1 내의 링크(143) 상에서 혼잡 상황이 발생할 수 있다. 이러한 혼잡 상황에도 불구하고 데이터 트래픽을 계속해서 100Mbp의 전송 레이트로 노드(133)로부터 노드(134)에 전송하는 것은 네트워크 공정성을 해칠 수 있으므로, 데이터 트래픽을 감소된 전송 레이트로 노드(133)로부터 노드(134)에 전송하는 것이 필요할 수 있다. 나아가, 그러한 혼잡 상황에 관한 정보에 기반하여 다른 라우팅 경로가 추가적으로 선택될 수 있다. 편의상, 링크들(140, 141, 142, 150, 147, 148)을 따라 클라이언트(110)로부터 서버(120)로 이어지는 라우팅 경로(이하, "라우팅 경로 RP2"라고도 지칭됨)가 추가적으로 선택되었다고 가정한다. 이에 따라, 데이터 트래픽의 몇몇 패킷들이 라우팅 경로 RP1 상에서 전송되는 동안, 데이터 트래픽의 다른 패킷들은 라우팅 경로 RP2를 따라 전송될 수 있다.
그러한 혼잡 상황의 발생 이후 라우팅 경로 RP1 상에서의 전송 레이트 및 라우팅 경로 RP2 상에서의 전송 레이트를 변경시키기 위해 (i) 기존의 TCP(Transmission Control Protocol) 혼잡 회피 알고리즘(congestion avoidance algorithm), (ii) 별도로 설계된 AIMD(Additive Increase/Multiplicative Decrease) 접근법 또는 Slow Start 접근법 또는 (iii) 오버레이 네트워크 시스템(130) 내지 오버레이 네트워크 시스템(130)의 관리자에 의해 미리 설정된 정책과 같은 혼잡 제어 방식이 채택될 수 있고, 앞서 언급된 전송 레이트들의 추이는 채택된 혼잡 제어 방식에 따라 달라질 수 있다. 예를 들어, 라우팅 경로 RP1 상에서의 전송 레이트 및 라우팅 경로 RP2 상에서의 전송 레이트를 일단 신속히 큰 폭으로 감소시킨 후 각각 80Mbps 및 20Mbps까지 점차적으로 증가시키는 AIMD 접근법이 채택될 수 있다. 다른 예로서, 미리 설정된 정책에 따라, 혼잡 상황의 발생 직후 곧바로 라우팅 경로 RP1 및 라우팅 경로 RP2 상에서 각각 80Mbps 및 20Mbps로 데이터 트래픽 전송이 개시될 수 있다.
한편, 라우팅 경로 RP2 상에서 패킷들이 20Mbps의 전송 레이트로 전송되는 동안 다른 혼잡 상황이 발생할 수 있다. 이러한 경우, 앞서 언급된 방식과 유사하게 또 다른 라우팅 경로가 추가적으로 선택될 수 있다. 편의상, 링크들(140, 141, 142, 149, 146, 147, 148)을 따라 클라이언트(110)로부터 서버(120)로 이어지는 라우팅 경로(이하, "라우팅 경로 RP3"라고도 지칭됨)가 추가적으로 선택되었다고 가정한다. 이에 따라, 라우팅 경로 RP2를 따라 전송되던 데이터 트래픽 중 일부는 그대로 라우팅 경로 RP2를 따라 전송될 수 있고, 그 데이터 트래픽 중 나머지는 라우팅 경로 RP3를 따라 전송될 수 있다. 만일 중간 노드들(131, 132, 133, 134, 135, 136, 137) 중 적어도 일부를 경유하는 어떠한 라우팅 경로도 클라이언트(110)로부터 서버(120)까지 데이터 트래픽을 전송하는 데 이용 가능하지 않은 경우, 데이터 트래픽은 클라이언트(110)로부터 직접 서버(120)로 전송될 수 있다. 이러한 직접 전송은 최선형(best effort) 방식으로 수행될 수 있다.
앞서 언급된 바와 같이 혼잡 상황 정보에 기반하여 데이터 트래픽을 라우팅하는 기법에 따르면, 데이터 트래픽의 전송 중에 혼잡 상황이 발생한 경우, 엔드포인트 노드들 간 재전송이 요구되지 않을 뿐만 아니라 데이터 트래픽을 상이한 라우팅 경로들을 통해 분산 방식으로 전송하는 것이 가능하다. 특히, 이러한 기법은 네트워크 공정성을 보장하면서도 전송 효율의 감소를 방지할 수 있다.
네트워크 환경(100) 내의 노드들(110, 120, 131, 132, 133, 134, 135, 136, 137) 각각은 하나 이상의 프로세서 및 그 프로세서에 의해 액세스 가능한 메모리와 같은 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨터 판독 가능 저장 매체에는 컴퓨터 실행 가능 명령어가 저장되어 있을 수 있다. 프로세서는 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행할 수 있다. 그러한 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 예시적인 실시예에 따른 동작을 수행하게 할 수 있다.
도 3은 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 과정을 도시한다.
시작 동작 후, 예시적인 과정(300)은 동작(S310)으로 진행된다. 동작(S310)에서, 목적지 노드로의 데이터 트래픽의 전송 중에 라우팅 경로 상에서 발생한 혼잡 상황이 감지된다.
예를 들어, 클라이언트(110)로부터 서버(120)로의 데이터 트래픽의 전송을 위해 라우팅 경로 RP1가 선택되었다고 가정한다. 달리 말하면, 라우팅 경로 RP1 상의 각 노드는 그 노드로부터 서버(120)로 이어지고 라우팅 경로 RP1에 포함된 라우팅 경로를 선택한다고 볼 수 있다. 가령, 라우팅 경로 RP1 상의 노드(133)는 링크들(143, 144)을 따라 노드(133)로부터 서버(120)로 이어지는 라우팅 경로(이하 "라우팅 경로 RP-A1"라고도 지칭됨)를 선택하고 라우팅 경로 RP1 상의 노드(131)는 링크들(141, 142, 143, 144)을 따라 노드(131)로부터 서버(120)로 이어지는 라우팅 경로(이하 "라우팅 경로 RP-B1"라고도 지칭됨)를 선택한다고 볼 수 있다.
앞서 언급된 바와 같이, 데이터 트래픽의 전송 중에 링크(143) 상에서 혼잡 상황이 발생한 경우 노드(134)가 그 혼잡 상황을 감지할 수 있다. 몇몇 실시예들에 따르면, 중간 노드들(131, 132, 133, 134, 135, 136, 137) 중 소정의 노드(예컨대, 전송 프로토콜(240)을 구비한 노드(131))는 데이터 트래픽 내 패킷과 함께 자신을 식별하는 식별 번호(identification number), 그 패킷의 시퀀스 번호(sequence number) 및/또는 타임스탬프(timestamp)를 그 노드에 인접한 다음 노드로 전송할 수 있다. 이어서, 그 패킷은 위와 같은 식별번호, 시퀀스 번호 및/또는 타임스탬프와 함께 다른 노드에도 전달될 수 있다. 따라서, 노드(131)로부터 전송된 패킷을 수신한 노드(예컨대, 노드(134))는 (i) 그 패킷과 연관된 식별 번호, 시퀀스 번호 및/또는 타임스탬프를 이용하여 패킷 유실 내지 패킷 전송 지연이 발생하였는지 여부를 판정할 수 있고, (ii) 이에 따라 단위 시간 동안 수신된 패킷의 개수와 유실/지연된 패킷의 개수로부터 패킷 유실 레이트(packet loss rate)를 산출할 수 있으며, (iii) 궁극적으로 패킷 유실 레이트가 미리 설정된 임계 값을 초과하는지에 따라 혼잡 상황이 발생하였는지 여부를 판정할 수 있다.
동작(S320)에서, 감지된 혼잡 상황과 관련된 정보가 생성된다. 예컨대, 노드(134)는 링크(143) 상에서 발생한 혼잡 상황을 감지한 후 그 혼잡 상황을 나타내는 정보를 생성할 수 있다. 몇몇 실시예들에 따르면, 혼잡 상황 정보는 혼잡 상황의 발생 여부를 나타내는 메트릭(metric)을 포함할 수 있다. 나아가, 혼잡 상황 정보는 추가적으로 링크(143) 상의 패킷 지연을 나타내는 메트릭 및/또는 링크(143) 상의 패킷 유실 레이트를 나타내는 메트릭을 더 포함할 수 있다.
동작(S330)에서, 혼잡 상황을 감지한 노드로부터 다른 노드(예컨대, 그에 인접한 노드 및/또는 다른 특정 노드)로 혼잡 상황 정보가 전달된다. 예를 들어, 혼잡 상황 정보는 특정 이벤트가 발생하는 경우(혼잡 상황이 발생하거나 특정 메트릭이 임계 값을 초과한다고 판정된 경우)에 또는 요청에 따라 전파될 수 있다.
일 예로서, 노드(134)가 혼잡 상황의 발생을 감지하여 새로운 혼잡 상황 정보를 생성한 경우, 노드(134)는 즉시 혼잡 상황 정보를 노드(133)에 전달할 수 있다. 다른 예로서, 노드(133)는 혼잡 상황 정보에 대한 요청을 노드(134)에 전송할 수 있고, 노드(134)는 그 요청을 수신하는 것에 응답하여 자신이 유지하는 혼잡 상황 정보를 노드(133)에 전송할 수 있다. 또한, 노드(134)에 의해 생성된 혼잡 상황 정보는 노드(133) 이외의 다른 노드로도 (예컨대, 노드(133)를 거쳐) 전송될 수 있다. 예컨대, 진입 노드(131) 역시 노드(134)에서 유래하는 혼잡 상황 정보를 획득할 수 있다.
나아가, 혼잡 상황 정보를 수신한 노드(예컨대, 노드(131) 또는 노드(133))는 혼잡 상황 정보의 수명(lifetime)을 관리할 수 있다. 예를 들어, 혼잡 상황 정보가 수신된 시점부터 특정 시간 내에 혼잡 상황 정보가 갱신되지 않는 경우, 노드(133)는 혼잡 상황 정보를 파기할 수 있다.
동작(S340)에서, 혼잡 상황 정보에 기반하여 추가적인 라우팅 경로가 선택된다.
일 예로서, 노드(133)가 노드(134)로부터 링크(143) 상에서 발생한 혼잡 상황에 관한 정보를 획득한 경우, 노드(133)는 획득된 혼잡 상황 정보를 이용하여 적어도 하나의 후보 라우팅 경로로부터 추가적인 라우팅 경로를 선택할 수 있고, 이로써 데이터 트래픽의 일부는 기존의 라우팅 경로 RP-A1를 따라 라우팅할 수 있고 데이터 트래픽의 다른 일부는 추가적인 라우팅 경로를 따라 라우팅할 수 있다. 후보 라우팅 경로 각각은 노드(133)로부터 목적지 노드(예컨대, 서버(120))로 이어지고 링크(143)를 우회할 수 있다.
몇몇 실시예들에 따르면, 노드(133)가 위와 같은 혼잡 상황 정보를 획득한 경우, 노드(133)는 노드(133)로부터 목적지 노드까지의 가능한 경로들 중에서 링크(143)를 거치지 않는 경로들을 식별할 수 있다. 이어서, 노드(133)는 식별된 경로들을 후보 라우팅 경로들로 설정할 수 있다. 특히, 각 후보 라우팅 경로는 노드(133)에서 라우팅 경로 RP-A1로부터 분기할 수 있다.
또한, 노드(133)는 각 후보 라우팅 경로의 코스트(cost)(예컨대, 그 경로 내의 각 링크 상의 전송 지연시간에 기반하여 산출될 수 있음)를 계산할 수 있다. 따라서, 노드(133)는 후보 라우팅 경로들 중 최소 코스트 경로를 산출할 수 있다. 이어서, 노드(133)는 산출된 최소 코스트 경로를 추가적인 라우팅 경로로 선택할 수 있다. 예컨대, 산출된 최소 코스트 경로는 링크들(150, 147, 148)을 따라 노드(133)로부터 서버(120)까지 이어지는 경로(이하 "라우팅 경로 RP-A2"라고도 지칭됨)일 수 있다. 도 1을 다시 참조하면, 라우팅 경로 RP-A2는 노드(133)에서 라우팅 경로 RP-A1로부터 분기한다는 점을 알 수 있다.
이러한 최소 코스트 경로는 노드(133)로부터 목적지 노드로 이어지고 링크(143)를 우회하는 경로들 중 최소의 코스트를 가지는 경로를 의미하며, 반드시 노드(133)로부터 목적지 노드까지의 최소 코스트 경로와 같지는 않다는 점에 유의하여야 할 것이다. 예를 들어, 라우팅 경로 RP1가 클라이언트(110)로부터 서버(120)까지의 최소 코스트 경로라면, 노드(133)로부터 서버(120)까지의 최소 코스트 경로는 라우팅 경로 RP-A1인데, 이는 링크(143)를 통과한다.
다른 예로서, 노드(131)가 링크(143) 상에서 발생한 혼잡 상황에 관한 정보를 획득한 경우, 노드(131)는 획득된 혼잡 상황 정보에 기반하여 적어도 하나의 후보 라우팅 경로로부터 추가적인 라우팅 경로를 선택할 수 있다. 후보 라우팅 경로 각각은 노드(131)로부터 목적지 노드(예컨대, 서버(120))로 이어지고 링크(143)를 우회할 수 있다. 다만, 앞서 언급된 예와 달리, 노드(131)는 혼잡 상황이 발생한 링크(143) 상에 있지 않은바, 각 후보 라우팅 경로는 반드시 노드(131)에서 라우팅 경로 RP-B1로부터 분기하는 것은 아니며, 라우팅 경로 RP-B1 상의 다른 노드에서 분기할 수도 있다. 예컨대, 후보 라우팅 경로들은 링크들(141, 142, 150, 147, 148)을 따라 노드(131)로부터 서버(120)까지 이어지는 경로(이하 "라우팅 경로 RP-B2"라고도 지칭됨), 링크들(141, 142, 149, 146, 147, 148)을 따라 노드(131)로부터 서버(120)까지 이어지는 경로(이하 "라우팅 경로 RP-B3"라고도 지칭됨) 및 링크들(145, 146, 147, 148)을 따라 노드(131)로부터 서버(120)까지 이어지는 경로(이하 "라우팅 경로 RP-B4"라고도 지칭됨)을 포함할 수 있다. 이어서, 노드(131)는 후보 라우팅 경로들 중 최소 코스트 경로를 산출하여 이를 추가적인 라우팅 경로로 선택할 수 있다.
동작(S350)에서, 데이터 트래픽의 일부는 기존의 라우팅 경로를 따라 전송되면서 데이터 트래픽의 다른 일부는 추가적인 라우팅 경로를 따라 전송된다.
일 예로서, 노드(133)가 링크(143) 상에서 발생한 혼잡 상황에 관한 정보에 기반하여 라우팅 경로 RP-A2를 추가적인 라우팅 경로로 선택한 경우, 노드(133)는 데이터 트래픽의 제1 부분 및 제2 부분을 각각 기존의 라우팅 경로 RP-A1 및 추가적인 라우팅 경로 RP-A2를 따라 전송할 수 있다. 또한, 노드(133)는 혼잡 상황 정보에 기반하여 데이터 트래픽의 제1 부분 및 제2 부분 각각의 전송 레이트를 결정할 수 있다.
다른 예로서, 노드(131)가 링크(143) 상에서 발생한 혼잡 상황에 관한 정보에 기반하여 추가적인 라우팅 경로를 선택한 경우, 노드(131)는 기존의 라우팅 경로 RP-B1 상의 노드들(131, 132, 133, 134, 120) 중에서 추가적인 라우팅 경로가 라우팅 경로 RP-B1로부터 분기하는 노드를 식별할 수 있다. 예컨대, 라우팅 경로 RP-B4가 추가적인 라우팅 경로로 선택된 경우, 노드(131)는 라우팅 경로 RP-B4가 라우팅 경로 RP-B1로부터 분기하는 노드가 자신임을 식별할 수 있다. 따라서, 노드(131)는 데이터 트래픽의 제1 부분 및 제2 부분을 각각 기존의 라우팅 경로 RP-B1 및 추가적인 라우팅 경로 RP-B4를 따라 전송할 수 있고, 혼잡 상황 정보에 기반하여 데이터 트래픽의 제1 부분 및 제2 부분 각각의 전송 레이트를 결정할 수 있다. 이와 달리, 라우팅 경로 RP-B2가 추가적인 라우팅 경로로 선택된 경우, 노드(131)는 라우팅 경로 RP-B2가 라우팅 경로 RP-B1로부터 분기하는 노드가 노드(133)임을 식별할 수 있다. 따라서, 데이터 트래픽은 노드(131)에서 노드(133)까지 동일한 링크들(141, 142)을 거쳐 전송될 수 있다. 만일 노드(133)가 동일한 혼잡 상황 정보에 기반하여 추가적인 라우팅 경로를 선택한다면, 선택된 라우팅 경로는 라우팅 경로 RP-A2일 것이다. 따라서, 노드(133)는 데이터 트래픽을 기존의 라우팅 경로 RP-A1뿐만 아니라 라우팅 경로 RP-A2로도 분산시킬 수 있다. 반면, 노드(133)가 혼잡 상황 정보에 따라 추가적인 라우팅 경로를 선택하지 않거나 못한 경우, 노드(131)는 라우팅 경로 RP-B2에 관한 통지 또는 라우팅 경로 RP-B2에 포함되고 노드(133)로부터 소스(120)로 이어지는 라우팅 경로 RP-A2에 관한 통지를 노드(133)에 전송할 수 있다. 이 통지는 노드(133)로 하여금 데이터 트래픽의 제1 부분 및 제2 부분을 각각 기존의 라우팅 경로 RP-A1 및 추가적인 라우팅 경로 RP-A2를 따라 전송하게 할 수 있다.
도 4는 예시적인 실시예에 따라 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치를 도시한다. 예시적인 전송 제어 장치(400)는 네트워크 환경(100) 내의 노드 내에 구현되거나 포함될 수 있다.
도 4에 도시된 바와 같이, 전송 제어 장치(400)는 인터페이스부(410) 및 제어부(420)를 포함한다.
인터페이스부(410)는 목적지 노드로의 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하도록 구성된다. 그러한 혼잡 상황 정보는 제1 라우팅 경로 상의 링크에서 발생한 혼잡 상황을 나타낼 수 있다. 나아가, 혼잡 상황 정보는 그 링크 상의 패킷 유실 레이트 및/또는 그 링크 상의 패킷 지연을 더 나타낼 수 있다. 혼잡 상황 정보는 제1 라우팅 경로 상에 위치하고 혼잡 상황을 감지한 노드에 의해 생성되어 다른 노드들로 전송될 수 있다.
제어부(420)는 획득된 혼잡 상황 정보를 기반으로 제2 라우팅 경로를 선택하여 데이터 트래픽의 제1 부분 및 제2 부분을 각각 제1 라우팅 경로 및 제2 라우팅 경로를 따라 목적지 노드로 라우팅하도록 구성된다. 예를 들어, 제어부(420)는 혼잡 상황 정보에 기반하여 적어도 하나의 후보 라우팅 경로 중에서 제2 라우팅 경로를 선택하도록 구성될 수 있다. 후보 라우팅 경로 각각은 미리 설정된 노드로부터 목적지 노드까지 이어지고 혼잡 상황이 발생한 위 링크를 우회하는 경로일 수 있다. 전송 제어 장치(400)가 특정 노드 내에 구현된 경우, 제2 라우팅 경로는 그 특정 노드로부터 목적지 노드까지의 경로들 중에서 선택된다고 미리 설정될 수 있다.
몇몇 실시예들에서, 제어부(420)는 또한 미리 설정된 노드로 하여금 데이터 트래픽의 제1 부분 및 제2 부분을 각각 제1 라우팅 경로 및 제2 라우팅 경로를 따라 전송하게 하도록 구성될 수 있다. 특히, 각 후보 라우팅 경로가 미리 설정된 노드(예컨대, 전송 제어 장치(400)가 구현된 노드)에서 제1 라우팅 경로로부터 분기하는 경우, 미리 설정된 노드에서 제1 라우팅 경로 및 제2 라우팅 경로는 각각 상이한 다음 노드로 이어질 것이다. 따라서, 제어부(420)는 데이터 트래픽이 미리 설정된 노드로부터 제1 라우팅 경로 및 제2 라우팅 경로로 분산되도록 할 수 있다. 아울러, 제어부(420)는 혼잡 상황 정보에 기반하여 데이터 트래픽의 제1 부분의 전송 레이트 및 데이터 트래픽의 제2 부분의 전송 레이트를 결정할 수 있다. 이에 따라, 출발지 노드(예컨대, 클라이언트(110))로부터 유출되는 데이터 트래픽의 전송 레이트는 혼잡 상황이 발생한 후에도 반드시 감소되어야 하는 것은 아니다. 이는, 제2 라우팅 경로 상의 대역폭이 충분하다면, 제어부(420)가 기존의 제1 라우팅 경로 상의 전송 레이트를 감소시킨 만큼 제2 라우팅 경로 상의 전송 레이트를 확보할 수 있기 때문이다. 따라서, 네트워크 공정성을 지키면서도 전송 효율을 극대화하는 것이 가능하다.
몇몇 다른 실시예들에서, 제어부(420)는 또한 제1 라우팅 경로 상의 복수의 노드 중에서 제2 라우팅 경로가 제1 라우팅 경로로부터 분기하는 노드를 식별하도록 구성될 수 있다. 후보 라우팅 경로들 중에서 미리 설정된 노드(예컨대, 전송 제어 장치(400)가 구현된 노드)가 아닌 다른 노드에서 제1 라우팅 경로로부터 분기하는 경로가 제2 라우팅 경로로 선택되는 경우, 미리 설정된 노드에서 데이터 트래픽이 분산될 필요가 없을 것이다. 오히려, 위와 같이 식별된 노드 내에 전송 제어 장치(400)가 구현될 수 있고, 식별된 노드에서 데이터 트래픽이 분산될 수 있다. 식별된 노드 내에 전송 제어 장치(400)가 구현되지 않은 경우에는, 제어부(420)가 식별된 노드에 제2 라우팅 경로에 관한 통지 또는 제2 라우팅 경로에 포함되고 식별된 노드로부터 목적지 노드까지 이어지는 라우팅 경로에 관한 통지를 전송할 수 있고, 이로써 식별된 노드로 하여금 데이터 트래픽을 분산하게 할 수 있다. 한편, 식별된 노드가 미리 설정된 노드인 경우, 제어부(420)는 그 노드로 하여금 데이터 트래픽의 제1 부분 및 제2 부분을 각각 제1 라우팅 경로 및 제2 라우팅 경로를 따라 전송하게 할 수 있다. 어떠한 경우든, 출발지 노드(예컨대, 클라이언트(110))로부터 유출되는 데이터 트래픽의 전송 레이트는 혼잡 상황이 발생한 후에도 감소되지 않을 수 있다.
한편, 소정의 실시예는 본 명세서에서 기술한 과정을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 이러한 컴퓨터 판독 가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 그 컴퓨터 판독 가능 저장 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 다른 실시예에 따르면, 본 명세서에서 기술한 과정을 실행하기 위한 컴퓨터 프로그램이 제공될 수 있다. 그러한 프로그램은 하드웨어와 결합하여 위 과정을 실행하기 위하여 컴퓨터 판독 가능 저장 매체와 같은 매체에 저장될 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110 : 클라이언트
120 : 서버
130 : 오버레이 네트워크 시스템
131 : 진입 노드
132, 133, 135, 136 : 바이패스 노드
134, 137 : 진출 노드
400: 전송 제어 장치
410: 인터페이스부
420: 제어부
120 : 서버
130 : 오버레이 네트워크 시스템
131 : 진입 노드
132, 133, 135, 136 : 바이패스 노드
134, 137 : 진출 노드
400: 전송 제어 장치
410: 인터페이스부
420: 제어부
Claims (21)
- 목적지 노드로의 데이터 트래픽의 전송을 제어하는 장치로서,
상기 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하도록 구성되는 인터페이스부; 및
상기 데이터 트래픽의 제1 부분 및 제2 부분을 각각 상기 제1 라우팅 경로 및 제2 라우팅 경로를 따라 상기 목적지 노드로 라우팅하기 위해 상기 정보에 기반하여 상기 제2 라우팅 경로를 선택하도록 구성되는 제어부를 포함하는
전송 제어 장치. - 청구항 1에 있어서,
상기 정보는 상기 제1 라우팅 경로 내 링크 상에서 발생한 상기 혼잡 상황을 나타내는, 전송 제어 장치. - 청구항 2에 있어서,
상기 제어부는 상기 정보에 기반하여 적어도 하나의 후보 라우팅 경로 중에서 상기 제2 라우팅 경로를 선택하도록 구성되고, 상기 적어도 하나의 후보 라우팅 경로 각각은 미리 설정된 노드로부터 상기 목적지 노드까지 이어지고 상기 링크를 우회하는, 전송 제어 장치. - 청구항 3에 있어서,
상기 적어도 하나의 후보 라우팅 경로는 상기 미리 설정된 노드에서 상기 제1 라우팅 경로로부터 분기하고, 상기 제어부는 또한 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하도록 구성되는, 전송 제어 장치. - 청구항 4에 있어서,
상기 제어부는 또한 상기 정보에 기반하여 상기 제1 부분의 전송 레이트(transmission rate) 및 상기 제2 부분의 전송 레이트를 결정하도록 구성되는, 전송 제어 장치. - 청구항 3에 있어서,
상기 제어부는 또한 상기 제1 라우팅 경로 상의 복수의 노드 중에서 상기 제2 라우팅 경로가 상기 제1 라우팅 경로로부터 분기하는 노드를 식별하도록 구성되는, 전송 제어 장치. - 청구항 6에 있어서,
상기 제어부는 또한 상기 식별된 노드가 상기 미리 설정된 노드인 경우 상기 식별된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하도록 구성되는, 전송 제어 장치. - 청구항 3에 있어서,
상기 제2 라우팅 경로는 상기 적어도 하나의 후보 라우팅 경로 중 최소 코스트 경로(minimum cost path)인, 전송 제어 장치. - 청구항 2에 있어서,
상기 정보는 또한 상기 링크 상의 패킷 유실 레이트(packet loss rate) 및 상기 링크 상의 패킷 지연 중 적어도 하나를 나타내는, 전송 제어 장치. - 청구항 1에 있어서,
상기 혼잡 상황은 상기 제1 라우팅 경로 상의 중간 노드에서 감지되고, 상기 정보는 상기 중간 노드에서 유래하는, 전송 제어 장치. - 목적지 노드로의 데이터 트래픽의 전송을 제어하는 방법으로서,
상기 데이터 트래픽의 전송 중에 제1 라우팅 경로 상에서 발생한 혼잡 상황에 관한 정보를 획득하는 단계; 및
상기 데이터 트래픽의 제1 부분 및 제2 부분을 각각 상기 제1 라우팅 경로 및 제2 라우팅 경로를 따라 상기 목적지 노드로 라우팅하기 위해 상기 정보에 기반하여 상기 제2 라우팅 경로를 선택하는 단계를 포함하는
전송 제어 방법. - 청구항 11에 있어서,
상기 정보는 상기 제1 라우팅 경로 내 링크 상에서 발생한 상기 혼잡 상황을 나타내는, 전송 제어 방법. - 청구항 12에 있어서,
상기 제2 라우팅 경로를 선택하는 단계는 상기 정보에 기반하여 적어도 하나의 후보 라우팅 경로 중에서 상기 제2 라우팅 경로를 선택하는 단계를 포함하고, 상기 적어도 하나의 후보 라우팅 경로 각각은 미리 설정된 노드로부터 상기 목적지 노드까지 이어지고 상기 링크를 우회하는, 전송 제어 방법. - 청구항 13에 있어서,
상기 적어도 하나의 후보 라우팅 경로는 상기 미리 설정된 노드에서 상기 제1 라우팅 경로로부터 분기하고, 상기 전송 제어 방법은 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하는 단계를 더 포함하는, 전송 제어 방법. - 청구항 14에 있어서,
상기 정보에 기반하여 상기 제1 부분의 전송 레이트(transmission rate) 및 상기 제2 부분의 전송 레이트를 결정하는 단계를 더 포함하는, 전송 제어 방법. - 청구항 13에 있어서,
상기 제1 라우팅 경로 상의 복수의 노드 중에서 상기 제2 라우팅 경로가 상기 제1 라우팅 경로로부터 분기하는 노드를 식별하는 단계를 더 포함하는, 전송 제어 방법. - 청구항 16에 있어서,
상기 식별된 노드가 상기 미리 설정된 노드인 경우 상기 미리 설정된 노드로 하여금 상기 제1 부분 및 상기 제2 부분을 각각 상기 제1 라우팅 경로 및 상기 제2 라우팅 경로를 따라 전송하게 하는 단계를 더 포함하는, 전송 제어 방법. - 청구항 13에 있어서,
상기 제2 라우팅 경로는 상기 적어도 하나의 후보 라우팅 경로 중 최소 코스트 경로인, 전송 제어 방법. - 청구항 12에 있어서,
상기 정보는 또한 상기 링크 상의 패킷 유실 레이트 및 상기 링크 상의 패킷 지연 중 적어도 하나를 나타내는, 전송 제어 방법. - 청구항 11에 있어서,
상기 혼잡 상황은 상기 제1 라우팅 경로 상의 중간 노드에서 감지되고, 상기 정보는 상기 중간 노드에서 유래하는, 전송 제어 방법. - 하드웨어와 결합되어, 청구항 11 내지 청구항 20 중 어느 한 항에 기재된 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140104182A KR101630519B1 (ko) | 2014-08-12 | 2014-08-12 | 데이터 트래픽의 전송을 제어하는 장치 및 방법 |
PCT/KR2014/010246 WO2016024666A1 (ko) | 2014-08-12 | 2014-10-29 | 데이터 트래픽의 전송을 제어하는 장치 및 방법 |
US14/528,072 US9712446B2 (en) | 2014-08-12 | 2014-10-30 | Apparatus and method for controlling transmission of data traffic |
CN201410601172.4A CN105634968B (zh) | 2014-08-12 | 2014-10-30 | 用于控制数据流量的传输的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140104182A KR101630519B1 (ko) | 2014-08-12 | 2014-08-12 | 데이터 트래픽의 전송을 제어하는 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160019651A true KR20160019651A (ko) | 2016-02-22 |
KR101630519B1 KR101630519B1 (ko) | 2016-06-24 |
Family
ID=55302996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140104182A KR101630519B1 (ko) | 2014-08-12 | 2014-08-12 | 데이터 트래픽의 전송을 제어하는 장치 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9712446B2 (ko) |
KR (1) | KR101630519B1 (ko) |
CN (1) | CN105634968B (ko) |
WO (1) | WO2016024666A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220162874A (ko) * | 2020-07-17 | 2022-12-08 | 엘지전자 주식회사 | 무선 통신 시스템에서 iab 노드에 의한 흐름 제어 피드백을 기반으로 라우팅을 수행하기 위한 방법 및 장치 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397283B2 (en) | 2015-07-15 | 2019-08-27 | Oracle International Corporation | Using symmetric and asymmetric flow response paths from an autonomous system |
US11252199B2 (en) | 2015-07-15 | 2022-02-15 | Oracle International Corporation | Redirecting packets in an autonomous system |
CN108494699B (zh) * | 2018-03-30 | 2021-10-19 | 山东师范大学 | 一种具有中心控制节点的网络拥塞控制方法 |
US10958569B2 (en) | 2018-12-21 | 2021-03-23 | Itron, Inc. | Server-assisted routing in network communications |
US11625349B1 (en) * | 2021-11-18 | 2023-04-11 | Arm Limited | Apparatus and method for managing prefetch transactions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070201371A1 (en) * | 2006-02-28 | 2007-08-30 | Microsoft Corporation | Congestion adaptive network data routing |
KR20110137616A (ko) | 2010-06-17 | 2011-12-23 | 금오공과대학교 산학협력단 | 무선 네트워크에서 데이터 전송의 우선순위 결정 방법 |
KR20120017972A (ko) * | 2010-08-20 | 2012-02-29 | 한국전자통신연구원 | 무선 메쉬 네트워크에서 데이터 전송의 혼잡 상황을 통지/회피하는 방법 및 이를 위한 메쉬 노드 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754120A (en) * | 1995-12-21 | 1998-05-19 | Lucent Technologies | Network congestion measurement method and apparatus |
US7730201B1 (en) * | 2000-04-13 | 2010-06-01 | Alcatel-Lucent Canada, Inc. | Method and apparatus for congestion avoidance in source routed signaling protocol communication networks |
KR100657120B1 (ko) * | 2000-11-04 | 2006-12-12 | 주식회사 케이티 | 패킷 망에서 트래픽부하 분산을 위한 라우팅방법 |
US8259584B2 (en) * | 2008-03-18 | 2012-09-04 | Cisco Technology, Inc. | Dynamic reroute of network traffic |
SG189130A1 (en) * | 2010-09-29 | 2013-05-31 | Aviat Networks Inc | Systems and methods for distributed data routing in a wireless network |
KR20120134466A (ko) * | 2011-06-02 | 2012-12-12 | 삼성테크윈 주식회사 | 메쉬 네트워크 노드 및 그의 데이터 전송 방법 |
US8953440B2 (en) * | 2011-11-15 | 2015-02-10 | Telefonaktiebolaget L M Ericsson (Publ) | Dynamic bandwidth adjustment in packet transport network |
-
2014
- 2014-08-12 KR KR1020140104182A patent/KR101630519B1/ko active IP Right Grant
- 2014-10-29 WO PCT/KR2014/010246 patent/WO2016024666A1/ko active Application Filing
- 2014-10-30 US US14/528,072 patent/US9712446B2/en active Active
- 2014-10-30 CN CN201410601172.4A patent/CN105634968B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070201371A1 (en) * | 2006-02-28 | 2007-08-30 | Microsoft Corporation | Congestion adaptive network data routing |
KR20110137616A (ko) | 2010-06-17 | 2011-12-23 | 금오공과대학교 산학협력단 | 무선 네트워크에서 데이터 전송의 우선순위 결정 방법 |
KR20120017972A (ko) * | 2010-08-20 | 2012-02-29 | 한국전자통신연구원 | 무선 메쉬 네트워크에서 데이터 전송의 혼잡 상황을 통지/회피하는 방법 및 이를 위한 메쉬 노드 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220162874A (ko) * | 2020-07-17 | 2022-12-08 | 엘지전자 주식회사 | 무선 통신 시스템에서 iab 노드에 의한 흐름 제어 피드백을 기반으로 라우팅을 수행하기 위한 방법 및 장치 |
US11843968B2 (en) | 2020-07-17 | 2023-12-12 | Lg Electronics Inc. | Method and apparatus for performing routing based on flow control feedback by IAB node in wireless communication system |
Also Published As
Publication number | Publication date |
---|---|
KR101630519B1 (ko) | 2016-06-24 |
CN105634968B (zh) | 2019-04-19 |
US9712446B2 (en) | 2017-07-18 |
CN105634968A (zh) | 2016-06-01 |
WO2016024666A1 (ko) | 2016-02-18 |
US20160050152A1 (en) | 2016-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101630519B1 (ko) | 데이터 트래픽의 전송을 제어하는 장치 및 방법 | |
US9705735B2 (en) | System and method using RSVP hello suppression for graceful restart capable neighbors | |
US9185040B2 (en) | Flow label negotiation method, related device, and system | |
US9270598B1 (en) | Congestion control using congestion prefix information in a named data networking environment | |
US7362703B1 (en) | Method for deflection routing of data packets to alleviate link overload in IP networks | |
CN110890994B (zh) | 一种报文转发路径的确定方法、设备和系统 | |
US20140219090A1 (en) | Network congestion remediation utilizing loop free alternate load sharing | |
US11722420B2 (en) | System and method for reactive path selection | |
CN109088822B (zh) | 数据流量转发方法、装置、系统、计算机设备及存储介质 | |
KR102455886B1 (ko) | 서비스 기능 체이닝 혼잡 피드백 | |
WO2020259259A1 (zh) | 一种发送流量的方法和装置 | |
CN101350761B (zh) | 实现路径建立、计算的方法、装置及系统 | |
US20080205265A1 (en) | Traffic routing | |
EP3099010B1 (en) | Network path computation method, apparatus and system | |
JP2006197473A (ja) | ノード | |
US9124524B2 (en) | System and method for priority based flow control between nodes | |
US9001651B2 (en) | Method for call admission control in MPLS networks | |
US8892773B2 (en) | Path control apparatus, path control method, path control program, and network system | |
CN110892687B (zh) | 多级资源预留 | |
US7742409B2 (en) | Method and apparatus for compensating for performance degradation of an application session | |
KR20130085541A (ko) | 패킷 전송 장치 및 패킷 전송 방법 | |
CN108092866B (zh) | 一种隧道切换的方法、设备和系统 | |
KR101308247B1 (ko) | Dag 토폴로지 네트워크에서의 데이터 패킷 전송 방법, 라우팅 테이블 생성방법 및 소스 브리지 | |
JP5304008B2 (ja) | 通信システム | |
US20160315854A1 (en) | System and method of signaling protection path bindings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190401 Year of fee payment: 4 |