KR101540494B1 - 네트워크 메시지 관리 디바이스 및 그 방법들 - Google Patents
네트워크 메시지 관리 디바이스 및 그 방법들 Download PDFInfo
- Publication number
- KR101540494B1 KR101540494B1 KR1020107017884A KR20107017884A KR101540494B1 KR 101540494 B1 KR101540494 B1 KR 101540494B1 KR 1020107017884 A KR1020107017884 A KR 1020107017884A KR 20107017884 A KR20107017884 A KR 20107017884A KR 101540494 B1 KR101540494 B1 KR 101540494B1
- Authority
- KR
- South Korea
- Prior art keywords
- transport layer
- application
- message
- communication
- amount
- Prior art date
Links
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
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
네트워크를 통해 메시지들의 통신을 관리하는 방법은 트랜스포트 레이어에서 어플리케이션으로부터 수신된 메시지들을 큐에 저장하는 단계를 포함한다. 트랜스포트 레이어는 큐에 저장된 정보의 양을 모니터링한다. 정보의 양이 임계량을 초과할 때, 트랜스포트 레이어는 어플리케이션에 경고 메시지를 제공한다. 실시예에서, 트랜스포트 레이어는, 어플리케이션으로부터 메시지들을 저장하도록 배치된 큐가 충만되기 전에, 경고 메시지를 제공하여, 어플리케이션은 경고 메시지 후에 트랜스포트 레이어에 메시지를 지속적으로 제공할 수 있다. 어플리케이션은 메시지에 응답하여, 트랜스포트 레이어에 제공된 정보의 양 또는 주파수를 감소시키는 것과 같은 적절한 액션을 취할 수 있어, 그에 의해 트랜스포트 레이어에서 통신 병목의 가능성을 줄인다.
Description
본 발명은 네트워크 통신에 관한 것이며, 특히 전자 디바이스들 간의 통신 흐름의 관리에 관한 것이다.
피어-투-피어 네트워크(peer-to-peer network) 내 피어들 사이의 통신과 같은, 네트워크 통신에서, 소스 통신 노드에서의 어플리케이션은 네트워크 레이어를 통해 목적지 노드에 메시지들을 전달한다. 일 구성에서, 어플리케이션은 각각의 메시지를 패킷들의 세트로 분석하는(parse) 트랜스포트 레이어(transport layer)에 각각의 메시지를 제공하고, 목적지 노드에 통신하기 위해 패킷들을 네트워크 레이어에 제공한다. 그러므로, 트랜스포트 레이어가 어플리케이션에 대해 추상적 개념의 레이어를 제공하여, 어플리케이션은 목적지 노드와의 패킷 통신들을 관리하지 않아야 한다.
하지만, 트랜스포트 레이어는 통상적으로, 패킷들을 준비하고 통신하기 위해, 메모리 리소스들과 같은, 제한된 수의 리소스들을 갖는다. 이것은, 패킷들이 트랜스포트 레이어에 의해 신뢰할 수 있게 통신되는 것보다 훨씬 빠르게 어플리케이션에 의해 메시지들이 제공될 때 문제가 될 수 있다. 예를 들어, 트랜스포트 레이어가 TCP/IP와 같은 순서화된 통신 프로토콜(ordered communication protocol)을 구현하면, 트랜스포트 레이어는 통상적으로, 패킷이 목적지 노드에서 적절히 수신되었음을 나타내는 목적지 노드로부터 승인(acknowledgement)이 수신되어, 트랜스포트 레이어로 하여금 큐(queue)로부터 패킷을 폐기(retire)할 때까지, 전송된 패킷을 큐에 저장한다. 큐는 통상적으로 크기가 제한되어, 어플리케이션이 패킷들이 충분히 빠르게 폐기될 수 없도록 메시지들을 제공하면, 병목(bottleneck)이 일어날 수 있고, 패킷들의 손실 또는 다른 통신 문제들을 야기한다. 병목 문제는 어플리케이션으로 하여금, 큐의 병목을 회피하기 위해 알려진 고정 레이트(fixed rate)로 메시지들의 통신 레이트를 설정하게 함으로써 해소될 수 있다. 하지만, 이것은 트랜스포트 레이어에서 리소스들의 불충한 사용(underutilization)을 야기할 수 있다.
첨부된 도면들을 참조하여, 본 발명은 보다 잘 이해될 수 있으며, 기술분야의 당업자에게 그것의 다양한 특징들 및 장점들이 명백해 진다.
본 발명은 트랜스포트 레이어(transport layer)에서, 제 1 어플리케이션으로부터 제 1 메시지를 얻는 단계; 상기 트랜스포트 레이어에서, 상기 제 1 메시지의 타깃 노드와 연관된 잠재적인 제 1 통신 병목을 결정하는 단계; 및 상기 잠재적인 제 1 통신 병목을 결정하는 단계에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 1 경고 메시지를 제공하는 단계로서, 상기 제 1 경고 메시지는 상기 트랜스포트 레이어에서 이용가능한 전송 리소스들의 감소된 양을 나타내고, 상기 트랜스포트 레이어는 상기 전송 리소스들의 감소된 양과 함께 상기 제 1 어플리케이션으로부터 부가적인 메시지들을 얻을 수 있는, 상기 제 1 경고 메시지 제공 단계를 포함하는 방법을 제공한다.
또한, 본 발명은 네트워크 인터페이스 디바이스를 포함하는 디바이스를 제공하며, 상기 네트워크 인터페이스 디바이스는:
트랜스포트 레이어에서, 네트워크 인터페이스 디바이스로부터 이격된 프로세서에서 실행하는 제 1 어플리케이션으로부터 제 1 메시지를 얻고;
트랜스포트 레이어에서, 상기 제 1 메시지의 타깃 노드와 연관된 잠재적인 제 1 통신 병목을 결정하고;
상기 잠재적인 제 1 통신 병목을 결정하는 것에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 1 경고 메시지를 제공하고;
네트워크를 통해 상기 제 1 메시지를 상기 타깃 노드에 통신하도록 구성된다.
본 발명에 따른 네트워크를 통해 메시지들에 대한 통신을 관리하는 방법은, 트랜스포트 레이어에서 어플리케이션으로부터 수신된 메시지들을 큐에 저장하는 단계를 포함한다. 트랜스포트 레이어는 큐에 저장된 정보 양을 모니터링한다. 정보 양이 임계 양을 초과할 때, 트랜스포트 레이어는 경고 메시지를 어플리케이션에 제공한다. 실시예에서, 어플리케이션으로부터 메시지들을 저장하도록 할당된 큐가 충만되기 전에 트랜스포트 레이어가 경고 메시지를 제공하여, 어플리케이션은 경고 메시지 후에 트랜스포트 레이어에 메시지들을 지속적으로 제공할 수 있다. 어플리케이션은 메시지에 응답하여, 트랜스포트 레이어에 제공된 정보의 양 또는 주파수를 감소시켜, 트랜스포트 레이어에서 통신 병목의 가능성을 감소시키는 것과 같은 적절한 액션(action)을 취할 수 있다.
도 1은 본 발명의 일 실시예에 따른 통신 네트워크의 블록도.
도 2는 본 발명의 일 실시예에 따라 어플리케이션으로부터 트랜스포트 레이어로 메시지들을 제공하는 방법을 도시하는 흐름도.
도 3은 본 발명의 일 실시예에 따라 어플리케이션으로부터 트랜스포트 레이어로 제공된 메시지들의 흐름을 관리하는 방법을 도시하는 도면.
도 4는 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
도 5는 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
도 6은 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
도 2는 본 발명의 일 실시예에 따라 어플리케이션으로부터 트랜스포트 레이어로 메시지들을 제공하는 방법을 도시하는 흐름도.
도 3은 본 발명의 일 실시예에 따라 어플리케이션으로부터 트랜스포트 레이어로 제공된 메시지들의 흐름을 관리하는 방법을 도시하는 도면.
도 4는 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
도 5는 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
도 6은 본 발명의 또 다른 실시예에 따른 통신 네트워크의 블록도.
네트워크를 통해 메시지들에 대한 통신을 관리하는 방법은, 트랜스포트 레이어에서 어플리케이션으로부터 수신된 메시지들을 큐에 저장하는 단계를 포함한다. 트랜스포트 레이어는 큐에 저장된 정보 양을 모니터링한다. 정보 양이 임계 양을 초과할 때, 트랜스포트 레이어는 경고 메시지를 어플리케이션에 제공한다. 실시예에서, 어플리케이션으로부터 메시지들을 저장하도록 할당된 큐가 충만되기 전에 트랜스포트 레이어가 경고 메시지를 제공하여, 어플리케이션은 경고 메시지 후에 트랜스포트 레이어에 메시지들을 지속적으로 제공할 수 있다. 어플리케이션은 메시지에 응답하여, 트랜스포트 레이어에 제공된 정보의 양 또는 주파수를 감소시켜, 트랜스포트 레이어에서 통신 병목의 가능성을 감소시키는 것과 같은 적절한 액션(action)을 취할 수 있다.
도 1을 참조하면, 통신 네트워크(100)의 특정한 실시예의 블록도가 도시되어 있다. 통신 네트워크(100)는 전송 피어(transmitting peer: 102), 네트워크(110), 및 수신 피어(115)를 포함한다. 전송 피어(102) 및 수신 피어는 네트워크(110)에 각각 접속된다. 전송 피어(102) 및 수신 피어(115)가 설명의 목적으로 전송 및 수신하는 것으로서 언급되며, 각각의 피어는 네트워크(110)를 통해 정보를 전송 및 수신할 수 있음이 이해될 것이다. 그러므로, 수신 피어(115)는 또한 전송된 메시지들을 수신할 수 있는 전송 피어(102)에 메시지들을 전송할 수 있다. 또한, 논의의 목적으로, 전송 피어(102) 및 수신 피어(115)가 피어 투 피어 네트워크(peer-to-peer network)에서 통신 노드들로서 설명되지만, 다른 실시예들에서는, 피어들이 클라이언트 서버 방식(client server fashion)으로 배치될 수 있음이 또한 이해될 것이다. 또한, 전송 피어(102) 및 수신 피어(115)는 때때로, "노드들" 또는 "통신 노드들"로서 언급된다. 여기에서 사용되는 바와 같이, 노드는 통신 메시지를 수신, 전송, 또는 라우트(route)할 수 있는 네트워크에서 전자 디바이스라고 한다. 메시지를 수신하는 노드는 메시지의 타깃 노드라고 하고, 반면에, 메시지를 생성 및 전송하는 노드는 소스 노드라고 한다. 여기에서 논의의 목적으로, 네트워크(110)는 인터넷과 같은 광역 패킷 스위치 네트워크(wide-area packet-switched network)라고, 가정된다.
전송 피어(102)는 어플리케이션(120) 및 트랜스포트 레이어(125)를 포함한다. 어플리케이션(120)은 특정된 태스크들(tasks)을 실행하기 위해 프로세서를 조작하는 명령들을 포함하는 컴퓨터 판독가능 매체 상에 실장된 소프트웨어 어플리케이션이다. 하나의 이러한 태스크는 수신 피어(115)에 통신하기 위해 메시지들을 생성하는 것을 포함한다. 특히, 사용자 입력과 같은 특정된 조건들, 또 다른 어플리케이션으로부터의 요청, 또는 또 다른 조건에 응답하여, 어플리케이션(120)은 수신 피어(115)에 통신하기 위해 하나 이상의 데이터 페이로드들을 포함하는 하나 이상의 메시지들을 생성할 수 있다. 어플리케이션(120)은 네트워크(110)를 통해 통신하기 위해 트랜스포트 레이어(125)에 메시지들을 제공한다.
트랜스포트 레이어(125)는 어플리케이션(120)으로부터 메시지들을 수신하고, 메시지들에 기초하여 패킷들을 형성하도록 구성된다. 이어서, 트랜스포트 레이어(125)는 각각의 패킷에 대한 타깃 노드에 통신하기 위해 네트워크(110)에 패킷들을 제공한다. 실시예에서, 트랜스포트 레이어(125)는 네트워크(110)에 제공하기 위해, 논리적인 또는 물리적인 통신 레이어와 같은 또 다른 통신 레이어에 각각의 패킷을 제공할 수 있다.
트랜스포트 레이어(125)는 통신을 위해 네트워크(110)에 제공되는 각각의 패킷을 저장하도록 구성된 전송 큐(130)를 포함한다. 트랜스포트 레이어(125)는 각 패킷의 타깃 노드로부터 각각의 패킷에 대한 승인 메시지를 대기하고, 승인 메시지를 수신하는 것에 응답하여, 전송 큐(130)로부터 패킷을 폐기한다. 트랜스포트 레이어가 그 패킷의 타깃 노드로부터 특정한 패킷과 연관되는 경고 메시지를 수신하면, 트랜스포트 레이어(125)는 패킷을 재전송할 수 있다. 그에 의해, 전송 큐(130)는 타깃 노드들과의 통신 신뢰성을 향상시킨다.
이것은 예를 참조하여 보다 잘 이해될 수 있다. 트랜스포트 레이어(125)는 수신 피어(115)에 타깃된 어플리케이션(120)으로부터 메시지들을 수신할 수 있다. 응답하여, 트랜스포트 레이어(125)는 수신된 메시지들의 데이터 페이로드들을 포함하는 패킷들을 형성한다. 트랜스포트 레이어는 수신 피어(115)에 통신하기 위해 네트워크(110)에 각각의 패킷을 제공한다. 또한, 트랜스포트 레이어는 전송 큐(130)에 각각의 패킷을 저장한다.
수신 피어(115)는 그 피어에 타깃된 패킷들에 대한 네트워크(110)를 모니터링한다. 이러한 패킷을 수신하는 것에 응답하여, 수신 피어는 로컬 큐(local queue)(도시되지 않음)에 패킷을 저장한다. 수신된 각각의 패킷에 대해, 수신 피어(115)는 네트워크(110)를 통해 소스 노드에 승인 메시지를 전달한다. 수신 피어는 또한, 예상된 패킷이 수신되지 않았는지를 결정하기 위해 수신된 패킷들을 모니터링한다. 예를 들어, 패킷들이 순서화된 프로토콜에 따라 수신 피어(115)에 통신되면, 수신 피어(115)에서 트랜스포트 레이어는 순서대로 예상된 패킷이 수신되지 않았음을 결정할 수 있다. 응답하여, 수신 피어(115)는 예상된 패킷이 수신되지 않았음을 나타내도록 경고 메시지를 통신할 수 있다.
트랜스포트 레이어(125)는 수신 피어(115)에 의해 제공되는 경고 메시지들 및 승인 메시지들을 수신한다. 승인 메시지를 수신하는 것에 응답하여, 트랜스포트 레이어(125)는 전송 큐(130)로부터 승인 메시지와 연관된 패킷을 폐기하여, 큐 내의 공간(space)을 제거한다(free). 경고 메시지를 수신하는 것에 응답하여, 트랜스포트 레이어(125)는 경고 메시지와 연관된 패킷을 재전송한다.
트랜스포트 레이어(125)는 수신 노드(115)에 통신된 폐기되지 않은 데이터의 양을 모니터링하는 흐름 제어 모듈(135)을 포함한다. 즉, 흐름 제어 모듈(135)은 전송 큐(130)에서 패킷들과 연관된 데이터 양을 모니터링한다. 타깃 노드에 통신된 폐기되지 않은 데이터 양은 설명의 목적으로, 타깃 노드에 대한 "백로그(backlog)"로서 언급된다. 흐름 제어 모듈(130)은 백로그의 양을 백로그 임계치(131)에 비교한다. 백로그의 양이 백로그 임계치를 초과하면, 흐름 제어 모듈(130)은 어플리케이션(120)에 경고 메시지를 통신할 수 있다. 경고 메시지를 수신하는 것에 응답하여, 어플리케이션(120)은 수신 피어(115)에 타깃된 메시지들이 트랜스포트 레이어에 통신되는 레이트를 스로틀하는(throttling)(예컨대, 감소시키는) 것과 같은 적절한 액션을 취할 수 있다. 그에 의해, 흐름 제어 모듈(135)은 트랜스포트 레이어(125) 또는 수신 피어(115)에서 통신 병목의 가능성을 감소시킨다. 여기에서 사용되는 바와 같이, 통신 병목은 메모리와 같은 레이어 리소스들이 규정되거나 프로그래밍가능한 임계치에 도달하기에 충분히 빠르게 상기 레이어가 메시지들을 통신할 수 없는 트랜스포트 레이어(125)에서의 상황이다.
백로그 임계치(131)는 트랜스포트 레이어(125) 또는 수신 피어(115)에서, 메모리 공간과 같은 이용가능한 리소스들의 양을 나타낸다. 실시예에서, 백로그 임계치(131)는, 임계치에 의해 나타내지는 이용가능한 리소스들의 양이 소모되기 전에 흐름 제어 모듈이 경고 메시지를 통신하도록 설정된다. 예를 들어, 백로그 임계치(131)는, 전송 큐(130)가 충만되기 전에 경고 메시지가 통신되도록 설정될 수 있다. 이것은, 큐에서 병목의 가능성을 감소시킨다. 특히, 리소스들이 메시지들을 저장하는데 이용가능하므로, 트랜스포트 레이어는, 경고 메시지가 통신된 후에 어플리케이션(120)로부터 메시지들을 지속적으로 수신할 수 있다.
일 실시예에서, 백로그 임계치(131)는 어플리케이션(120)로부터의 요청에 기초하여 설정된 프로그램가능 값일 수 있다. 또 다른 실시예에서, 백로그 임계치(131)는 수신 피어(115)로부터의 요청에 기초하여 설정된다. 예를 들어, 통신 세션의 교섭(negotiation) 동안, 수신 피어(115)는 전송 피어(102)로부터 통신을 위해 이용가능한, 메모리와 같은, 리소스들의 양을 결정할 수 있다. 리소스들의 양에 기초하여, 수신 피어(115)는 백로그 임계치로 하여금, 수신 피어(115)에서 통신 병목의 가능성을 감소시키는 값으로 설정되도록 요청한다.
따라서, 위에서 논의되고 여기서 더 논의된 바와 같이, 어플리케이션(120)에 의해 제공되는 메시지들의 레이트와 같은, 통신 흐름은 트랜스포트 레이어(125)에서 관리되거나 영향을 받는다. 이것은, 통신 오버헤드(communication overhead)를 모니터링하는 어플리케이션(120) 없이, 통신 병목의 감소된 가능성을 가능하게 한다. 이것은, 어플리케이션(120)의 간이화뿐만 아니라, 감소된 통신 대역폭을 제공할 수 있다. 또한, 이는 감소된 메모리 리소스들의 이용 및 어플리케이션(120)에 대한 컴퓨터 사이클들을 허용한다. 예를 들어, 임계치가 도달되었다는 흐름 제어 모듈(135)로부터의 표시(indication)에 응답하여, 어플리케이션(120) 또는 어플리케이션(120)을 실행시키는 프로세서는 트랜스포트 레이어(125)를 통해 메시지들을 지속적으로 전달하려고 시도하기 보다는, 규정된 시간량 동안 낮은 파워 모드(low power mode)를 입력할 수 있다. 그에 의해, 피어(402)의 파워 소모가 감소될 수 있다.
통신 네트워크(100)의 동작은 도 2 및 도 3을 참조하여 보다 잘 이해될 수 있다. 도 2는 어플리케이션(120)에 의해 메시지들을 통신하는 방법에 대한 특정 실시예의 흐름도를 도시한다. 블록(202)에서, 어플리케이션(120)은 수신 피어(115)에 전달될 메시지들을 결정한다. 블록(204)에서, 어플리케이션(120)은 트랜스포트 레이어(125)에 전달될 다음 메시지를 제공한다. 블록(206)에서, 어플리케이션(120)은, 백로그 경고 메시지가 흐름 제어 모듈(135)로부터 수신되는지를 결정한다. 아니오 이면, 방법 흐름은 블록(204)으로 되돌아가고, 어플리케이션(120)은 현재 통신 레이트로 다음 메시지를 트랜스포트 레이어(125)에 제공한다. 백로그 경고 메시지가 수신되었으면, 상기 방법 흐름은 블록(208)로 이동하고, 어플리케이션(120)은 메시지들이 트랜스포트 레이어(125)에 제공되는 레이트를 조절한다(스로틀한다). 예를 들어, 어플리케이션(120)은 프로그램가능하거나 규정된 시간량 동안 트랜스포트 레이어(125)에 메시지들을 제공하는 것을 지연시킬 수 있다. 상기 방법 흐름은 블록(204)로 이동하고, 어플리케이션(120)은 새로운 통신 레이트로 다음 메시지를 제공한다. 그러므로, 어플리케이션(120)은 그것이 상기 레이어로부터 수신된 경고 메시지들에 기초하여 트랜스포트 레이어(125)에 메시지들을 제공하는 레이트를 조절하고, 그에 의해, 통신 병목의 기회를 줄인다.
도 3은 트랜스포트 레이어(125)에서 패킷들을 통신하는 방법에 대한 특정 실시예의 흐름도를 도시한다. 블록(302)에서, 트랜스포트 레이어(125)는 어플리케이션(120)로부터 메시지를 수신한다. 응답하여, 블록(304)에서, 트랜스포트 레이어(125)는 네트워크(110)를 통해 통신하기 위해 하나 이상의 패킷들로 수신된 메시지를 분석한다. 블록(306)에서, 트랜스포트 레이어(125)는 네트워크(110)에 패킷들을 통신하고, 전송 큐(130)에 통신된 패킷들을 저장한다. 블록(308)에서, 흐름 제어 모듈(135)은, 백로그가 백로그 임계치를 초과하는지를 결정한다. 아니오 이면, 상기 방법 흐름은 블록(306)으로 되돌아간다. 그러하다면, 상기 방법 흐름은 블록(310)으로 이동하고, 트랜스포트 레이어(125)는 어플리케이션(120)에 백로그 경고 메시지를 통신한다. 그러므로, 트랜스포트 레이어(125)는 백로그 경고 메시지들을 통해 어플리케이션(120)으로부터 메시지들에 대해 배압(backpressure)을 제공한다.
도 4는 본 발명의 일 실시예에 따른 통신 네트워크(400)를 도시한다. 통신 네트워크(400)는 전송 피어(402), 네트워크(410), 및 수신 피어(415)를 포함하고, 그 각각은 도 1의 대응하는 아이템들에 접속되고, 그것들과 유사하게 구성된다. 전송 피어(402)의 트랜스포트 레이어(425)는 백로그 임계치(431), 백로그 임계치(432), 및 백로그 임계치(433)를 포함하는 다수의 백로그 임계치들을 포함한다. 이들 백로그 임계치들 각각은 상이한 임계치 값을 저장한다. 흐름 제어 모듈(435)은 수신 피어(415)와 연관되는 백로그 양을 백로그 임계치들(431 내지 433) 각각에 비교하고, 그 비교에 기초하여, 백로그 경고 메시지가 어플리케이션(420)에 통신되어야 하는지를 결정할 수 있다. 실시예에서, 트랜스포트 레이어(425)는 초과되는 백로그 임계치들(431 내지 433) 각각에 응답하여, 상이한 경고 메시지를 통신할 수 있다. 예를 들어, 일 실시예에서, 백로그 임계치들(431 내지 433)은 점진적으로 큰 값들을 포함하고, 백로그 임계치(431)는 가장 작은 값을 갖는다. 백로그 양이 백로그 임계치(431)를 초과한다고 결정하는 것에 응답하여, 트랜스포트 레이어(425)는 어플리케이션(420)에 제 1 타입의 백로그 경고 메시지를 제공할 수 있다. 백로그 임계치(432)를 초과하는 백로그에 응답하여, 트랜스포트 레이어(425)는 어플리케이션(420)에 상이한 타입의 경고 메시지를 제공할 수 있다. 수신된 경고 메시지의 타입에 기초하여, 어플리케이션(420)은 상이한 액션들을 취할 수 있다. 예를 들어, 어플리케이션(420)은, 메시지들이 경고 메시지 타입에 기초하여 상이한 레이트로 통신하도록 제공되는 레이트를 스로틀할 수 있다. 그러므로, 백로그 임계치들(431 내지 433)에 기초하여, 트랜스포트 레이어(425)는, 병목이 점점 더 많이 일어나게 되어, 어플리케이션(420)으로 하여금 적절한 액션을 취하게 함을 나타내도록 상이한 경고 메시지들을 제공할 수 있다.
도 5는 본 발명의 일 실시예에 따른 통신 네트워크(500)를 도시한다. 통신 네트워크(500)는 전송 피어(502), 네트워크(510), 및 수신 피어(515)를 포함하고, 그 각각은 도 1의 대응하는 아이템들에 접속되고, 그것들과 유사하게 구성된다. 전송 피어(502)는 어플리케이션(520)을 실행하도록 구성된 프로세서(503)를 포함하고, 또한, 트랜스포트 레이어(525)를 실행하도록 구성된 네트워크 인터페이스(523)를 포함한다. 실시예에서, 네트워크 인터페이스(523)는 네트워크(510)와 프로세서(503) 사이에 물리적인 레이어 인터페이스를 제공하도록 구성된, 네트워크 인터페이스 카드(network interface card) 또는 프로세서와 같은, 네트워크 인터페이스 디바이스이다. 네트워크 인터페이스(523)는 프로세서(503)와 동일한 물리적인 하우징(physical housing)에 위치될 수 있지만, 또 다른 카드 또는 집적 회로 다이(integrated circuit die)와 같이 그것으로부터 이격될 수 있다. 트랜스포트 레이어(525)는 여기에서 설명되는 흐름 제어 기능들(flow control functions)을 수행할 수 있다. 그러므로, 도 5의 예시된 실시예에서, 흐름 제어 기능들은 네트워크 인터페이스(523)에서 구현될 수 있고, 그에 의해, 프로세서(503)에서 로드(load)를 감소시키고, 통신 대역폭을 향상시킨다. 일 실시예에서, 트랜스포트 레이어(525)로부터의 경고 메시지에 응답하여, 프로세서(502)는 규정된 시간량 동안 슬립 모드(sleep mode) 또는 다른 감소된 파워 상태에 놓일 수 있고, 그에 의해, 네트워크 인터페이스(523)가 패킷들을 지속적으로 전송하는 동안 리소스들을 감소시키고, 그에 의해, 트랜스포트 레이어(525)에서 잠재적인 병목을 클리어(clear)한다.
도 6은 본 발명의 일 실시예에 따르는 통신 네트워크(600)를 도시한다. 통신 네트워크(600)는 전송 피어(602), 네트워크(610), 및 수신 피어(615)를 포함하고, 그 각각은 도 1의 대응하는 아이템들에 접속되고, 그것에 유사하게 구성된다. 통신 네트워크(600)는 또한, 수신 피어(615)에 유사하게 구성되는 수신 피어(616)를 포함한다. 전송 피어(602)는 어플리케이션들(620, 621) 및 트랜스포트 레이어(625)를 포함한다. 트랜스포트 레이어(625)는 흐름 제어 모듈(635), 전송 큐들(630, 638), 및 백로그 임계치들(631, 632)을 포함한다.
동작에서, 어플리케이션들(620, 621)은 각각 수신 피어들(615, 616)과 함께 독립적인 통신 세션들을 확립할 수 있다. 응답하여, 트랜스포트 레이어(625)는 대응하는 통신 세션에 대해 각각 전송 큐들(630, 638)을 확립하기 위해 각각의 접속에 대한 메모리 공간을 할당한다. 그러므로, 전송 큐(630)가 어플리케이션(620)과 수신 피어(615) 사이의 통신 세션과 연관되는 반면에, 전송 큐(638)는 어플리케이션(621)과 수신 피어(616) 사이의 통신 세션과 연관된다. 트랜스포트 레이어(625)는 또한, 각각 백로그 임계치들(631, 632)로서 도시된, 각각의 통신 세션에 대한 백로그 임계치들을 확립한다. 특히, 트랜스포트 레이어(625)가 어플리케이션(620)과 수신 피어(615) 사이의 통신 세션에 대한 백로그 임계치(631)를 확립하는 반면에, 백로그 임계치(632)는 어플리케이션(621)과 수신 피어(616) 사이의 통신 세션에 대해 확립된다.
트랜스포트 레이어(625)는 어플리케이션들(620, 621) 각각으로부터 메시지들을 수신하고, 연관된 전송 큐에 각각의 수신된 메시지를 저장한다. 메시지들이 폐기되므로(연관된 수신 피어로부터의 승인에 응답하여), 그것들은 각각의 큐로부터 제거된다. 전송 큐에서 저장된 메시지들의 수가 연관된 백로그 임계치에 이르면, 트랜스포트 레이어(625)는 연관된 어플리케이션에 경고 메시지를 제공한다. 그러므로, 도 6의 예시된 실시예에서, 트랜스포트 레이어(625)는 각각의 확립된 통신 세션에 대해 병목 경고들을 제공한다. 또한, 각각의 세션에 대한 백로그 임계치는 상이할 수 있으며, 트랜스포트 레이어 리소스들의 유연한 관리를 허용한다.
여기에 개시된 방법들은 실체적으로 프로그램을 실장하는 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 프로그램에 의해 수행될 수 있음이 이해될 것이다. 컴퓨터 프로그램은 여기에 개시된 하나 이상의 방법들을 수행하기 위해 프로세서를 조작하기 위한 명령들을 포함할 수 있다.
상술한 주제는 예시적인 것이며 제한적인 것이 아니며, 첨부된 청구범위는 모든 이러한 변형예들, 개선예들, 및 본 발명의 사상 및 범위 내에 있는 다른 실시예들을 포괄하도록 의도된다. 그러므로, 법으로써 허용되는 최대 범위까지, 본 발명의 범위는 청구범위 및 그 등가물들의 최광의로 허용가능한 해석에 의해 결정되어야 하며, 상세한 설명에 의해 제한되지 않는다.
102,402,502,602: 전송 피어 110,410,510,610: 네트워크
115,415,515,615: 수신 피어 120,420,520,620: 어플리케이션
125,425,525,625: 트랜스포트 레이어 130,630: 전송 큐
131: 백로그 임계치 135: 흐름 제어 모듈
503: 프로세서 523: 네트워크 인터페이스
115,415,515,615: 수신 피어 120,420,520,620: 어플리케이션
125,425,525,625: 트랜스포트 레이어 130,630: 전송 큐
131: 백로그 임계치 135: 흐름 제어 모듈
503: 프로세서 523: 네트워크 인터페이스
Claims (20)
- 트랜스포트 레이어(transport layer)에서, 제 1 어플리케이션으로부터 제 1 메시지를 얻는 단계;
상기 트랜스포트 레이어에서, 상기 트랜스포트 레이어에서의 제 1 큐에 저장된 데이터 양과 제 1 임계 값의 비교에 기초하여 상기 제 1 메시지의 타깃 노드와 연관된 잠재적인 제 1 통신 병목을 결정하는 단계;
상기 잠재적인 제 1 통신 병목을 결정하는 단계에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 1 경고 메시지를 제공하는 단계로서, 상기 제 1 경고 메시지는 상기 트랜스포트 레이어에서 이용가능한 전송 리소스들의 감소된 양을 나타내고, 상기 트랜스포트 레이어는 상기 전송 리소스들의 감소된 양과 함께 상기 제 1 어플리케이션으로부터 부가적인 메시지들을 얻는, 상기 제 1 경고 메시지 제공 단계;
상기 제 1 큐에 저장된 데이터 양과 제 2 임계 값의 비교에 기초하여, 상기 타깃 노드와 연관된 잠재적인 제 2 통신 병목을 결정하는 단계로서, 상기 제 2 임계 값은 상기 제 1 임계 값과는 상이한, 상기 잠재적인 제 2 통신 병목 결정 단계; 및
상기 잠재적인 제 2 통신 병목을 결정하는 단계에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 2 경고 메시지를 제공하는 단계를 포함하는, 방법. - 삭제
- 제 1 항에 있어서,
상기 제 1 어플리케이션으로부터의 요청에 기초하여 상기 제 1 임계 값을 결정하는 단계를 추가로 포함하는, 방법. - 제 1 항에 있어서,
상기 타깃 노드로부터의 요청에 기초하여 상기 제 1 임계 값을 결정하는 단계를 추가로 포함하는, 방법. - 삭제
- 제 1 항에 있어서,
상기 제 1 경고 메시지의 타입은 상기 제 2 경고 메시지의 타입과는 상이한, 방법. - 제 6 항에 있어서,
상기 제 1 경고 메시지의 타입은 제 1 양만큼 메시지 통신의 레이트를 변경하도록 상기 제 1 어플리케이션에 요청하고, 상기 제 2 경고 메시지의 타입은 상기 제 1 양과는 상이한 제 2 양만큼 메시지 통신의 레이트를 변경하도록 상기 제 1 어플리케이션에 요청하는, 방법. - 디바이스로서,
제 1 어플리케이션을 실행하도록 동작가능한 프로세서; 및
상기 프로세서와 통신적으로 결합된 네트워크 인터페이스를 포함하고,
상기 네트워크 인터페이스는:
트랜스포트 레이어에서, 상기 제 1 어플리케이션으로부터 제 1 메시지를 얻고;
상기 트랜스포트 레이어에서, 상기 트랜스포트 레이어에서의 제 1 큐에 저장된 데이터 양과 제 1 임계 값의 비교에 기초하여 상기 제 1 메시지의 타깃 노드와 연관된 잠재적인 제 1 통신 병목을 결정하고;
상기 잠재적인 제 1 통신 병목을 결정하는 것에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 1 경고 메시지를 제공하고, 상기 제 1 경고 메시지는 상기 트랜스포트 레이어에서 이용가능한 전송 리소스들의 감소된 양을 나타내고, 상기 트랜스포트 레이어는 상기 전송 리소스들의 감소된 양과 함께 상기 제 1 어플리케이션으로부터 부가적인 메시지들을 얻고;
상기 제 1 큐에 저장된 데이터 양과 제 2 임계 값의 비교에 기초하여, 상기 타깃 노드와 연관된 잠재적인 제 2 통신 병목을 결정하고, 상기 제 2 임계 값은 제 1 임계 값과는 상이하고;
상기 잠재적인 제 2 통신 병목을 결정하는 것에 응답하여, 상기 트랜스포트 레이어에서 상기 제 1 어플리케이션으로 제 2 경고 메시지를 제공하며; 그리고
네트워크를 통해 상기 제 1 메시지를 상기 타깃 노드에 통신하도록 구성되는, 디바이스. - 삭제
- 제 8 항에 있어서,
상기 네트워크 인터페이스는:
상기 제 1 어플리케이션으로부터의 요청에 기초하여 상기 제 1 임계 값을 결정하도록 구성되는, 디바이스. - 제 8 항에 있어서,
상기 네트워크 인터페이스는:
상기 타깃 노드로부터의 요청에 기초하여 상기 제 1 임계 값을 결정하도록 구성되는, 디바이스. - 제 8 항에 있어서,
상기 제 1 경고 메시지의 타입은 상기 제 2 경고 메시지의 타입과 상이한, 디바이스. - 제 12 항에 있어서,
상기 제 1 경고 메시지의 타입은 제 1 양만큼 메시지 통신의 레이트를 변경하도록 상기 제 1 어플리케이션에 요청하고, 상기 제 2 경고 메시지의 타입은 상기 제 1 양과는 상이한 제 2 양만큼 메시지 통신의 레이트를 변경하도록 상기 제 1 어플리케이션에 요청하는, 디바이스. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2189008P | 2008-01-17 | 2008-01-17 | |
US61/021,890 | 2008-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100113116A KR20100113116A (ko) | 2010-10-20 |
KR101540494B1 true KR101540494B1 (ko) | 2015-07-29 |
Family
ID=40876425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107017884A KR101540494B1 (ko) | 2008-01-17 | 2009-01-16 | 네트워크 메시지 관리 디바이스 및 그 방법들 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8588064B2 (ko) |
EP (1) | EP2245537B1 (ko) |
KR (1) | KR101540494B1 (ko) |
WO (1) | WO2009092003A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7903562B2 (en) * | 2008-02-05 | 2011-03-08 | Lockheed Martin Corporation | Method and system for congestion control |
US8340126B2 (en) | 2010-06-07 | 2012-12-25 | Lockheed Martin Corporation | Method and apparatus for congestion control |
US8756310B2 (en) * | 2011-03-09 | 2014-06-17 | International Business Machines Corporation | Comprehensive bottleneck detection in a multi-tier enterprise storage system |
US9565637B2 (en) * | 2013-03-14 | 2017-02-07 | T-Mobile Usa, Inc. | High power channel state notification for mobile applications |
US20200145881A1 (en) * | 2018-11-06 | 2020-05-07 | Qualcomm Incorporated | System and method for flow control and buffer status report |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070223379A1 (en) * | 2006-02-07 | 2007-09-27 | Asankya Networks, Inc. | Systems and Methods of Improving Performance of Transport Protocols |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892754A (en) * | 1996-06-07 | 1999-04-06 | International Business Machines Corporation | User controlled adaptive flow control for packet networks |
US6490251B2 (en) * | 1997-04-14 | 2002-12-03 | Nortel Networks Limited | Method and apparatus for communicating congestion information among different protocol layers between networks |
US6320846B1 (en) * | 1997-08-05 | 2001-11-20 | Hi/Fm, Inc. | Method and apparatus for controlling network bandwidth |
US6359901B1 (en) * | 1998-09-02 | 2002-03-19 | General Dynamics Decision Systems, Inc. | Method and apparatus for asynchronous adaptive protocol layer tuning |
US7158479B1 (en) * | 1999-09-30 | 2007-01-02 | Data Expedition, Inc. | Method and apparatus for non contiguous sliding window |
US6975876B1 (en) * | 2000-11-17 | 2005-12-13 | Thomas Cast | System and method for performing throttle control in a SMPP gateway |
US20050021804A1 (en) | 2001-05-08 | 2005-01-27 | Heino Hameleers | Method and system for controlling the transmission of media streams |
GB2372172B (en) * | 2001-05-31 | 2002-12-24 | Ericsson Telefon Ab L M | Congestion handling in a packet data network |
US6851008B2 (en) * | 2002-03-06 | 2005-02-01 | Broadcom Corporation | Adaptive flow control method and apparatus |
US7290064B2 (en) * | 2002-06-24 | 2007-10-30 | Cisco Technology, Inc. | Adaptive feedback technique implemented in mobile IP networks |
US7911994B2 (en) * | 2003-02-28 | 2011-03-22 | Openwave Systems Inc. | Confirmation of delivery of content to an HTTP/TCP device |
JP2005184792A (ja) * | 2003-11-27 | 2005-07-07 | Nec Corp | 帯域制御装置、帯域制御方法及び帯域制御プログラム |
US8069250B2 (en) * | 2005-04-28 | 2011-11-29 | Vmware, Inc. | One-way proxy system |
JP5021681B2 (ja) * | 2006-02-06 | 2012-09-12 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 無線通信ネットワークにおけるアップリンクチャネルの性能最適化 |
US20080181108A1 (en) * | 2006-10-06 | 2008-07-31 | Viasat, Inc. | Dynamic Feedback For Outbound Link Rate Adjustment In Multi-Rate Downstream |
-
2009
- 2009-01-16 KR KR1020107017884A patent/KR101540494B1/ko not_active IP Right Cessation
- 2009-01-16 WO PCT/US2009/031286 patent/WO2009092003A1/en active Application Filing
- 2009-01-16 EP EP09702989.6A patent/EP2245537B1/en not_active Not-in-force
- 2009-01-16 US US12/355,536 patent/US8588064B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070223379A1 (en) * | 2006-02-07 | 2007-09-27 | Asankya Networks, Inc. | Systems and Methods of Improving Performance of Transport Protocols |
Also Published As
Publication number | Publication date |
---|---|
EP2245537B1 (en) | 2018-02-21 |
EP2245537A4 (en) | 2011-02-16 |
US20090185488A1 (en) | 2009-07-23 |
WO2009092003A1 (en) | 2009-07-23 |
US8588064B2 (en) | 2013-11-19 |
KR20100113116A (ko) | 2010-10-20 |
EP2245537A1 (en) | 2010-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6672340B2 (ja) | データフローを調整するシステム及び方法 | |
WO2018210117A1 (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
KR101468833B1 (ko) | 계층적 프로파일 스케줄링 및 쉐이핑 | |
CN107852371B (zh) | 数据分组网络 | |
KR20060063652A (ko) | 웹 서비스를 위한 신뢰성 있는 메시징 프로토콜을 이용한메시지의 효율적인 전송 | |
US8325602B2 (en) | Method and system to manage network traffic congestion in networks with link layer flow control | |
WO2015078492A1 (en) | Controlling a transmission control protocol window size | |
KR101540494B1 (ko) | 네트워크 메시지 관리 디바이스 및 그 방법들 | |
CN105262836A (zh) | 服务器推送信息的方法及客户端接收推送信息的方法 | |
US11509592B2 (en) | Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation | |
JP2013507023A (ja) | 接続指向の正順デリバリ環境において接続を管理するための方法およびシステム | |
CN104092625A (zh) | 一种用于dcn中的自适应请求分批调度方法 | |
CN109995664B (zh) | 一种发送数据流的方法、设备和系统 | |
EP1395000A1 (en) | A method of transmitting data streams dependent on the monitored state of the client application buffer | |
CN107852372B (zh) | 数据分组网络 | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
CN113347681B (zh) | 数据传输方法、装置、存储介质及电子装置 | |
Abu et al. | Leveraging the pending interest table occupancy for congestion control in CCN | |
KR101260561B1 (ko) | 다중 레인 기반의 고속 이더넷에서 동적 레인 운영 방법 및 그 장치 | |
JP4506430B2 (ja) | アプリケーションモニタ装置 | |
CN115396372A (zh) | 数据流的速率控制方法、智能网卡、云端设备及存储介质 | |
Sadeq et al. | Enhanced mqtt for providing qos in internet of things (iot): A study | |
JP6010502B2 (ja) | パケット処理方法及びパケット処理装置 | |
KR102128015B1 (ko) | 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법 | |
CN110391991B (zh) | 一种流量控制的方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |