KR20110013408A - 링크 트래픽 조정 기법 - Google Patents

링크 트래픽 조정 기법 Download PDF

Info

Publication number
KR20110013408A
KR20110013408A KR1020107025788A KR20107025788A KR20110013408A KR 20110013408 A KR20110013408 A KR 20110013408A KR 1020107025788 A KR1020107025788 A KR 1020107025788A KR 20107025788 A KR20107025788 A KR 20107025788A KR 20110013408 A KR20110013408 A KR 20110013408A
Authority
KR
South Korea
Prior art keywords
server
rate
conversations
conversation
peering
Prior art date
Application number
KR1020107025788A
Other languages
English (en)
Other versions
KR101537835B1 (ko
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 구글 인코포레이티드
Publication of KR20110013408A publication Critical patent/KR20110013408A/ko
Application granted granted Critical
Publication of KR101537835B1 publication Critical patent/KR101537835B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

서버와의 통신을 조정하는 시스템이 기술된다. 상기 시스템은 피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율을 판단한다. 그 다음, 상기 시스템은 피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교한다. 그 후, 상기 시스템은 재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율을 조절한다. 추가적으로, 상기 서버는 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절한다.

Description

링크 트래픽 조정 기법{TECHNIQUE FOR REGULATING LINK TRAFFIC}
본 발명은 통신 조정 기법에 관한 것으로, 더욱 상세하게는 네트워크 내의 링크를 통해 대화(conversation)를 시작하기 위한 요청을 수락하거나 거절하는 기법에 관한 것이다.
인터넷 또는 월드 와이드 웹(WWW)과 같은 네트워크 내의 서버는 멀티홈 방식(multi-homed)의 네트워크(예를 들어, 다수의 링크를 이용하여 연결된 네트워크)를 통해 사용자와 데이터를 교환할 수 있다. 일반적으로, 서버의 운영자와 링크를 운영하는 제공자 사이의 재정적 제도가 두 개의 카테고리: 즉, (1) 데이터를 전송하기 위하여 하나 이상의 제공자가 돈을 지불하는 유료-전송(paid-transit) 제도, 및/또는 (2) 서버 운영자와 하나 이상의 부가적 제공자가 통상적으로 비용 지불 없이 서로 데이터를 전송하기로 합의하는 피어링 협정(peering agreement)의 두 그룹으로 나누어질 수 있다. 유료-전송 제도가 네트워크 내의 모든 사용자를 향하는 트래픽 또는 네트워크 내의 모든 사용자로부터의 트래픽이 소위 '전송' 링크를 통해 통상적으로 전달될 수 있도록 하는 반면, 피어링 협정과 관련된 소위 '피어링' 링크는 서버 운영자의 각자의 피어링 파트너(가령, 부가적 제공자들 중 하나)에 의해 운영되는 서브-네트워크에 존재하는 사용자들을 향해 전송된 또는 이러한 사용자들로부터 전송된 트래픽만을 일반적으로 담당한다.
네트워크에서, 서버를 향하거나 서버로부터 나오는 데이터 패킷을 위한 루트가 통상적으로 경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)을 이용하여 결정된다. 예를 들어, 전송 링크의 제공자는 BGP를 이용하여 하나 이상의 라우터 정보 블록(router information block, RIB)과 관련된 목적지를 특정할 수 있다. 이와 반대로, 부가적인 피어링 제공자는 통상적으로 자신들의 부분 서브-네트워크에 존재하는 사용자의 RIB만을 표시하는데, 이는 이러한 부가적인 피어링 제공자가 네트워크 내의 그 밖의 다른 사용자와 관련된 트래픽을 중계하기를 원하지 않기 때문이다.
불행하게도, 전송 링크 및/또는 피어링 링크 상의 트래픽의 양을 조정하는 것이 어려울 수 있고, 이로 인해 트래픽이 지정 링크의 용량을 초과할 수 있다. 이러한 결과적 오버플로우(overflow) 상태로 인해, 비디오 스트리밍 동안 비디오의 재버퍼링과 같은 저하된 성능이 종종 초래될 수 있다. 이러한 문제는 피어링 링크에서 더욱 심각할 수 있는데, 피어링 링크는 전송 링크에 비하여 적게 공급되는 경향이 있기 때문이다.
일 실시예에서 서버와의 통신을 조정하기 위한 시스템이 제공된다. 동작 중, 상기 시스템은 네트워크 내의 피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율(retransmission rate)을 판단하며, 여기서 상기 대화의 제 1 세트는 제 1 시간 간격 내에 시작되었다. 그 후, 시스템은 피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 상기 재전송율과 패킷 데이터의 이력(historical) 재전송율을 비교하며, 여기서 상기 대화의 제 2 세트는 제 2 시간 간격 내에 발생되었다. 일부 실시예에서, 대화의 제 2 세트가 대화의 제 1 세트를 포함하고, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하며, 제 2 시간 간격이 제 1 시간 간격을 포함한다.
그 다음, 시스템은 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율(target acceptance rate)를 조절하며, 여기서 목표 수락율은 재전송율와 이력 재전송율의 비교 결과에 기초한다. 더욱이, 시스템은 서버의 실제 수락율과 목표 수락율 사이의 비교 결과에 기초하여 피어링 링크를 통해 또 다른 사용자와 상기 서버 간 대화를 시작하기 위한 요청을 수락하거나 거절하며, 이로써 피어링 링크의 통신 성능을 유지할 수 있다.
일부 실시예에서, 네트워크는 인터넷을 포함한다.
일부 실시예에서, 제 1 시간 간격은 1분을 포함하고, 및/또는 제 2 시간 간격은 1일(one day)을 포함한다.
일부 실시예에서, 이력 재전송율은 제 2 시간 간격 동안 재전송율의 분포의 모멘트(moment)를 포함한다. 예를 들어, 이러한 모멘트는 중앙값을 포함할 수 있다.
일부 실시예에서, 네트워크는 또 다른 서버에 연결된 하나 이상의 전송 링크(transit link)를 포함하고, 하나 이상의 전송 링크가 서버를 인터넷 서비스 제공자(ISP)에게 연결할 수 있다. 예를 들어, ISP는 데이터 패킷을 전송하기 위하여 서버의 운영자에게 비용을 청구할 수 있다. 더욱이, 요청의 거절에는 상기 또 다른 사용자가 방향을 바꾸어 상기 서버 이외의 서버(가령, 트래픽이 방향을 바꾸어 향하게 되는 전송 백업 서버)를 향하도록 하는 명령어가 포함될 수 있다.
일부 실시예에서, 시스템은 실제 수락율와 목표 수락율 사이의 차이에 기초하여 요청을 수락하거나 거절한다.
일부 실시예에서, 피어링 링크는 서버의 운영자와 네트워크상의 또 다른 개체 사이의 무정산(settlement-free) 링크를 포함한다. 예를 들어, 상기 개체와 운영자는 비용 지불 없이 서로 데이터 패킷을 전송하기로 합의할 수 있다.
일부 실시예에서, 시스템은 대화의 제 2 세트에 관한 통계 정보를 수집하고, 여기서, 수집된 통계 정보에 부분적으로 또는 전체적으로 기초하여 재전송율이 판단된다.
일부 실시예에서, 시스템은 경계 게이트웨이 프로토콜(BGP) 정보에 기초하여 어떠한 대화가 피어링 링크와 관련이 있을 가능성이 높은지를 판단한다.
일부 실시예에서, 시간에 따라 조절될 수 있는 서버의 목표 수락율이 고정값일 수 있는 최소값보다 크고 최대값보다 작다. 더욱이, 서버의 목표 수락율이 서버의 실제 수락율의 두 배보다 작을 수 있다.
일부 실시예에서, 목표 수락율이 van Jacobsen 제어 모델에 기초하여 조절된다.
일부 실시예에서, 목표 수락율이 전송 속도와 이력 재전송율 사이의 차이에 기초하여 조절된다. 더욱이, 목표 수락율은, 재전송율이 미리 정해진 값만큼 이력 재전송율을 초과할 때 조절될 수 있다. 조절 동작에는 곱인자(multiplicative factor)에 의해 목표 수락율을 감소시키는 동작이 포함될 수 있다.
추가적으로, 시스템은 대화가 종료된 때 목표 수락율을 증가시킬 수 있다. 예를 들어, 목표 수락율은 대화가 종료된 때 부가적 증분량(additive increment)만큼 증가될 수 있고, 여기서 부가적 증분량은, 목표 수락율의 관련 증가율이 곱인자와 관련된 목표 수락율의 감소율보다 작도록 선택된다.
일부 실시예에서, 시스템은, 서버를 포함할 수 있거나 서버에 포함될 수 있는 컴퓨터에 의해 구현된다.
또 다른 실시예에서, 시스템에 의해 수행되는 전술된 동작들 중 일부 또는 전부를 포함하는 방법이 제공된다.
또 다른 실시예에서, 시스템과 함께 이용하기 위한 컴퓨터-프로그램 산물(computer-program product)을 제공한다. 이러한 컴퓨터 프로그램 산물은 시스템에 의해 수행되는 전술된 동작들 중 일부 또는 전부에 상응하는 명령어를 포함한다.
또 다른 실시예에서 서버가 제공된다. 이러한 서버는 사용자와 서버 사이에서 데이터 패킷을 전달하도록 구성된 피어링 링크를 포함하는 네트워크에 연결되도록 구성된 입력 노드를 포함할 수 있다. 더욱이, 상기 서버는, 재전송율을 판단하고, 재전송율와 이력 재전송율을 비교하고, 목표 수락율을 조절하고, 요청을 수락하거나 거절하도록 구성된 피어링 관리자(peering manager)를 포함할 수 있다.
도 1은 통신 시스템의 실시예를 도시하는 블록도이다.
도 2는 서버와의 통신을 조정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 3은 서버와의 통신을 조정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 4는 시스템의 실시예를 도시하는 블록도이다.
도 5는 데이터 구조의 실시예를 도시하는 블록도이다.
도 6은 데이터 구조의 실시예를 도시하는 블록도이다.
동일한 도면 부호는 도면 전체에 걸쳐 일치하는 부분을 가리키는 것임을 주의한다.
아래의 설명은 해당업계 종사자라면 본 발명을 실시할 수 있도록 제시되었으며 특정 응용예 및 이의 요구 조건의 맥락에서 제공되었다. 개시된 실시예에 대한 다양한 수정 형태가 해당업계 종사자에게 즉시 명백할 것이며, 본원에 정의된 일반 원리가 본 발명의 사상과 범위를 벗어나지 않는 한 그 밖의 다른 실시예와 응용예에 적용될 수 있다. 따라서, 본 발명은 도시된 실시예에 한정되도록 의도되지 않았으며, 본원에 개시된 원리와 특징들과 일치되는 가장 넓은 범위와 조회될 것이다.
(컴퓨터 시스템일 수 있는) 시스템, 서버, 방법, 그리고 시스템 및/또는 서버와 함께 이용하기 위한 컴퓨터-프로그램 산물(가령, 소프트웨어)이 기술된다. 서버와의 통신을 조정하기 위하여 이러한 장치 및 기법이 이용될 수 있다. 특히, (인터넷과 같은) 네트워크 내의 링크를 통해 추가적 사용자 또는 새로운 사용자와의 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율(가령, 허용할 수 있는 초 당 바이트의 개수에 대한 목표)이, 데이터 패킷의 재전송율과 데이터 패킷의 이력 재전송율의 비교 결과에 기초하여 조절될 수 있다. 예를 들어, 목표 수락율이 재전송율과 이력 재전송율 사이의 차이에 기초하여 조절될 수 있다. 이하의 논의에서, 링크의 예시로서 피어링 링크(peering link)가 이용된다. 지정 사용자를 위한 피어링 링크가 BGP 정보에 기초하여 식별될 수 있다.
더욱이, 피어링 링크를 통해 또 다른 사용자와 서버가 대화를 시작하기 위한 요청이, 피어링 링크를 통해 추가적 사용자와의 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율(가령, 초 당 허용된 실제 바이트 개수)과 목표 수락율에 기초하여 수락되거나 거절될 수 있다. 예를 들어, 실제 수락율과 목표 수락율 사이의 차이에 기초하여 상기 요청이 수락되거나 거절될 수 있다. 이러한 방식에서, 피어링 링크의 통신 성능이 유지될 수 있고, 및/또는 피어링 링크의 가용율이 최대화될 수 있다.
재전송율은 피어링 링크를 통해 사용자와 서버 간 제 1 시간 간격(가령, 1분) 내에 시작된 대화에 기초할 수 있고, 이력 재전송율은 피어링 링크를 통해 사용자와 서버 간 제 2 시간 간격(가령, 1일) 내에 발생된 대화에 기초할 수 있다.
이하의 논의에서, 피어링 링크가 서버의 운영자와 네트워크상의 또 다른 개체 사이의 링크를 포함할 수 있다. 예를 들어, 상기 개체와 운영자는 비용 지불 없이 또는 무정산(settlement-free) 방식에 기초하여(가령, 피어링 협정에 기초하여) 서로 데이터 패킷을 전송하기로 약정할 수 있다. 일부 실시예에서 피어링 링크를 통해 전송되는 데이터에 관계된 정산(settlement)이 존재할 수도 있으나, 일반적으로 피어링 링크는, 비용을 부과하지 않고 사용자 서로가 데이터 패킷을 전송하기로 합의한 네트워크상 두 개체 사이의 링크이다. 또 다른 다른 개체는 ISP일 수 있다.
더욱이, 전송 링크(transit link)가 서버와 ISP 사이의 링크를 포함할 수 있고, 여기서 ISP는 서버를 향해 그리고 서버로부터 데이터를 전달하기 위하여 서버의 운영자에게 비용을 부과한다. 좀 더 일반적인 전송 링크의 정의는, 데이터 패킷을 전송하기 위하여 개체 중 하나 이상이 그 밖의 다른 개체에게 비용을 부과한 네트워크상 두 개체 사이의 링크이다.
일부 실시예에서, 서버의 운영자는 ISP 또는 애플리케이션 제공자이다.
네트워크는: 인터넷 또는 월드 와이드 웹(WWW), 인트라넷, 로컬 영역 네트워크(LAN)(가령, IEEE 802.11 또는 WiFi), 광역 네트워크(WAN)(가령, IEEE 802.16 또는 WiMAX), 대도시 네트워크(MAN), 위성 네트워크, 무선 네트워크(가령, 휴대 전화망), 광 네트워크, 및/또는 네트워크의 조합, 또는 컴퓨팅 시스템 또는 전자 기기 사이의 통신을 가능하게 하는 그 밖의 다른 기술을 포함할 수 있다.
지금부터, 네트워크를 포함하는 통신 시스템의 실시예를 설명한다. 도 1은 통신 시스템(100)을 도시하는 블록도이다. 이러한 시스템에서, 서버(110-1)가 라우터(112)와 네트워크(가령, 인터넷)를 통해 사용자(가령, 사용자(122))에게 데이터(가령, 비디오 데이터 스트림)를 제공한다. 이러한 사용자와 서버(110-1) 간 소위 '연결' 또는 '대화'가 링크를 통해 이루어질 수 있고, 이러한 링크에는 전송 링크(114) 및/또는 피어링 링크(116)가 포함될 수 있다. 이전에 언급된 바와 같이, 주어진 사용자와 관련된 피어링 링크가 BGP 정보에 기초하여 식별될 수 있다.
전송 링크(114)는 ISP(120-1 및/또는 120-2)와 관련될 수 있고, 피어링 링크(116)는 ISP(120-3)(그리고, 좀 더 일반적으로는 네트워크상의 개체)와 관련될 수 있다. 더욱이, ISP(120-1 및 120-2)는 네트워크에서 ISP(120-3) 또는 서버(110-1)의 운영자(상기 운영자는 ISP(120) 중 하나와 관련되거나 관련되지 않을 수 있음)와는 다른 지위 또는 계층(tier)을 가질 수 있다. 예를 들어, ISP(120-1 및 120-2)는 1 계층 제공자일 수 있고, ISP(120-3)는 2 계층 또는 3 계층 제공자일 수 있다. 그러나, ISP(120)는 서로 다른 계층 제공자일 수도 있고 아닐 수도 있다. 더욱이, 앞서 언급된 바와 같이, ISP(120-1 및 120-2)는 데이터를 전달하기 위하여 서버(110-1)의 제공자에 의해 비용을 지급받을 수 있는 반면, ISP(120-3)는 서버(110-1)의 운영자와의 피어링 협정이 있을 수 있다(즉, ISP(120-3)는 서버(110-1)의 운영자에게 비용을 부과하지 않고 ISP(120-3)에 의해 운영되는 서브-네트워크에 있는 사용자(122)에게 또는 사용자(122)로부터 데이터를 전송할 수 있다)(즉, 무정산 전송)).
불행하게도, 서버(110-1)가 사용자(122)에게 데이터를 제공하고 있을 때, 피어링 링크(116)중 하나 이상의 링크가 자신의 최대 용량에 도달할 수 있는데, 이는 피어링 링크(116) 내의 그 밖의 다른 피어링 링크가 추가적 대화에 이용 가능한 광대한 용량을 여전히 가지고 있을 수 있다 하더라도 마찬가지이다. 이로 인해, 영향을 받은 피어링 링크상에 데이터 패킷의 양이 강하될 수 있다. 추가적으로, 서버(110-1)의 자원 한계치로 인해 이러한 성능 저하가 발생할 수도 있다.
이러한 성능 과제를 해결하기 위하여, 통신 시스템(100) 내의 하나 이상의 서버(가령, 서버(110-1))가 피어링 관리자(124)를 포함할 수 있다. 이러한 피어링 관리자는 지정 피어링 링크를 통해 새로운 사용자와 대화를 시작하기 위한 요청을 수락할 것인지 아닌지를 판단할 수 있고, 및/또는 지정 피어링 링크를 통해 사용자(122) 중 한 명 이상과의 기존 대화와 관련된 부가적 데이터를 수락할 것인지 아닌지를 판단할 수 있다. 예를 들어, 피어링 관리자(124)의 판단은 지정 피어링 링크와 관련된 성능 측정 기준(가령, 하나 이상의 시간 간격 동안 관측된 전송 제어 프로토콜(TCP) 손실율)에 부분적으로 또는 전체적으로 기초할 수 있다. 요청이 거절된 경우, 피어링 관리자(124)는 한 명 이상의 사용자가 방향을 바꾸어 네트워크 내의 하나 이상의 추가적 서버(가령, 서버(110-2))를 향하도록 하는 명령어를 제공할 수 있다.
도 2 및 3을 참조하여 아래에 추가로 설명되는 바와 같이, 동작 동안, 피어링 관리자(124)는 최근에(가령, 최후의 순간 동안) 시작된 대화 동안 지정 피어링 링크를 통해 전송된 데이터 패킷의 재전송율을 판단할 수 있고, 더 긴 시간 간격 동안(가령, 전날 동안(preceding day)) 발생된 대화 동안 지정 피어링 링크를 통해 전송된 데이터 패킷의 이력 재전송율을 판단할 수 있다. 이러한 재전송율의 비교 결과에 기초하여, 피어링 관리자(124)는 지정 피어링 링크를 통해 새로운 대화를 시작하기 위한 요청 및/또는 지정 피어링 링크를 통해 기존 대화와 관련된 부가적 데이터를 수신하기 위한 요청을 수락하거나 거절하는 목표 수락율을 조절할 수 있다. 더욱이, 피어링 관리자(124)는 목표 수락율과 실제 수락율에 기초하여 이러한 요청을 수락하거나 거절할 수 있다.
피어링 관리자(124)는 콜렉터(126)에 의해 수집된 통계 정보를 이용하여 이러한 재전송율을 부분적으로 또는 전체적으로 판단한다. 특히, 콜렉터(126)는 하나 이상의 시간 간격 동안 대화, 링크, 및 관련 재전송율에 관한 정보(가령, TCP 손실율)를 모을 수 있다.
더욱이, 노드(118) 간 다수의 홉(hop)에 의해 네트워크에서의 통신이 발생할 수 있다. ISP(120-1 및 120-2)는 적절한 라우팅 및/또는 빌링(billing)을 결정하기 위하여 자신들의 서브-네트워크 내의 지정 노드의 상대적 위치에 관한 정보를 특정 사용자에게 제공할 수 있다. 일부 실시예에서, 이러한 정보에는: BGP 정보, RIB 정보, 및/또는 특정 링크와 관련된 IP 범위의 목록을 포함하는CIDR(classless inter-domain routing) 블록이 포함된다. 이와 유사하게, ISP(120-3)는 자신의 서브-네트워크 내의 사용자(122)에게 BGP 정보와 같은 정보를 제공하여 서버(110-1)의 운영자와의 피어링 협정의 남용을 방지할 수 있다.
일부 실시예에서, 피어링 관리자(124)는 BGP 정보와 같은 정보를 이용하여, 어떠한 사용자가 지정 피어링 링크와 관련되는지를 판단할 수 있다. 일부 실시예에서, 라우터(112)가 정보를 수신할 수 있고, 이러한 정보가 피어링 관리자(124)에 의한 후속 이용을 위하여 콜렉터(126)에 의해 모아질 수 있다.
서버(110-1)와의 통신을 조정함으로써, 위 기법은 진동(oscillation) 없이, 그리고 성능 저하(가령, 비디오 스트림의 재버퍼링)가 감소되거나 제거된 상태에서, 하나 이상의 피어링 링크(116)를 통한 고-가용(high-utilization) 통신을 용이하게 한다. 더욱이, 위 기법은 피어링 링크(116)를 과잉 공급하지 않고 고-가용(high-utilization) 통신을 용이하게 할 수 있다(예를 들어, 오버플로우 상태가 발생함 없이 피어링 링크(116) 중 하나 이상의 링크 상의 초과 용량을 이용할 수 있다).
통신 시스템(110)은 더 적은 컴포넌트 또는 추가적 컴포넌트를 포함할 수도 있다. 예를 들어, 통신 시스템에 열여섯 개의 서버(110)가 존재할 수 있고, 이들 서버 각각이 관련 피어링 관리자를 가질 수 있다. (이러한 피어링 관리자가 서로 독립적으로 동작할 수 있다 하더라도, 이들은 본질적으로, 동시에 쏟아내는 공통 버퍼와 관련된 동일한 피드백 정보를 이용할 수 있다는 것에 주의한다. 그 결과, 피어링 관리자 중 하나 이상이 적극적(aggressive)인 경우, 그 밖의 다른 피어링 관리자가 충분히 덜 적극적이어서 피어링 링크(116)의 전체 용량이 유지될 수 있다.) 더욱이, 둘 이상의 컴포넌트가 단일 컴포넌트로 결합될 수 있고, 및/또는 하나 이상의 컴포넌트의 위치가 변경될 수 있다. 예를 들어, 피어링 관리자(124)가 다수의 서버(110)와 관련된 통신을 조정할 수 있다.
지금부터, 서버와의 통신을 조정하는 방법에 대한 실시예를 설명한다. 도 2는 서버(가령, 도 1의 서버(110-1))와의 통신을 조정하기 위한 프로세스(200)를 도시하는 흐름도이며, 상기 프로세스는 서버를 포함하거나 서버에 포함된 시스템에 의해 수행될 수 있다. 동작 중, 상기 시스템은 네트워크 내의 피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율을 판단하고, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 제 1 시간 간격 내에 시작되었다(210). 그 후, 시스템은 피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하며, 여기서 상기 대화의 제 2 세트 내의 지정 대화가 제 2 시간 간격 내에 발생되었다(212). 대화의 제 2 세트가 대화의 제 1 세트를 포함하고, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하며, 제 2 시간 간격이 제 1 시간 간격을 포함한다.
그 다음, 시스템은 재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율을 조절한다(214). 더욱이, 시스템은 피어링 링크를 통해 상기 추가적 사용자와의 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락하거나 거절하고(216), 이로써 피어링 링크의 통신 성능을 유지할 수 있다.
도 3은 서버(가령, 도 1의 서버(110-1))와의 통신을 조정하기 위한 프로세스(300)를 도시하는 흐름도이고, 상기 프로세스는 서버를 포함하거나 서버에 포함된 시스템에 의해 수행될 수 있다. 동작 동안, 서버와의 대화가 시작될 수 있다(310). 예를 들어, 사용자가 지정 피어링 링크를 통해 서버에 연결될 수 있다. 상기 사용자가 어떠한 링크를 사용하고 있는지가 외부 시스템(가령, 도 1의 콜렉터(126))으로부터의 최신 BGP 정보를 이용하여 판단될 수 있는데, 이러한 콜렉터는 네트워크에서의 라우터의 루트 리플렉션(route reflection)에 기초하여 위 정보를 수집할 수 있다. 특히, 상기 정보는 네트워크 내의 각각의 링크에 라우터 인터페이스 및 RIB를 제공할 수 있고, 지정 사용자와 관련된 유입 데이터(incoming data)가, IP 주소를 제공된 RIB 중 하나에 정합시킴으로써 지정 링크의 것으로 여겨질 수 있다.
그 후, 시스템은 지정 피어링 링크를 통한 새로운 대화(312)(가령, 최종 순간 동안 시작되었던 대화)에 대한 현재의 재전송율을 판단할 수 있고, 수집된 통계 정보에 기초하여 지정 피어링 링크를 통한 (가령, 전날 동안 발생된 대화에 대한) 이력 재전송율(314)을 판단할 수 있다. 느린 연결(slow connection)을 가진 사용자와 관련된 손실율(loss rate)에 기초하여 조정이 편중되는 것을 방지하기 위하여, 현재의 재전송율은 최종 순간 동안 대화를 시작한 새로운 사용자에 기초하여 판단될 수 있다. 더욱이, 기준(baseline)으로서 이력 재전송율을 이용함으로써, (링크에서부터 링크까지 달라질 수 있는) 지정 링크상의 '정상적인(normal)' 손실율에 관하여 목표 수락율이 (아래에 추가로 설명되는 바와 같이) 조절될 수 있다.
재전송율은 하나 이상의 시간 간격 동안의 TCP 손실율에 기초할 수 있으며, 이러한 TCP 손실율이 네트워크 용량과 관련된 성능 저하의 측정 기준을 제공한다. 특히, 리눅스의 소위 'getsocketopt' 시스템 콜을 이용하여, 각각의 소켓 상의 재전송된 TCP 데이터 패킷의 수가 판단될 수 있다. 이러한 값에 상기 소켓에 대한 최대 세그먼트 크기(maximum segment size)를 곱하고 그 값을 전송된 바이트의 수로 나눔으로써 데이터-패킷 손실 비(loss ratio)에 대한 근사치가 제공될 수 있다.
추가적으로, 일부 실시예에서, 이력 재전송율이 재전송율의 분포의 모멘트(moment)를 포함할 수 있다. 예를 들어, 이러한 모멘트는 24시간의 시간 간격 동안 매 분마다 결정되는 재전송율의 중앙값을 포함할 수 있다. 이러한 접근이 통계적 극단치(statistical outlier)의 영향을 감소하거나 제거할 수 있다.
그 다음, 시스템은 임계값에 관하여 현재의 재전송율을 이력 재전송율과 비교할 수 있다(316). 예를 들어, 시스템은 현재의 재전송율과 이력 재전송율의 차이를 계산할 수 있다. 예시적 실시예에서, 현재의 재전송율이 이력 재전송율을 3% 이상만큼 초과하는 경우, 지정 피어링 링크와 관련된 목표 수락율이 조절될 수 있다(318)(그리고, 특히, 목표 수락율이 감소될 수도 있다). 이러한 임계값은 지정 피어링 링크에 의한 통신 동안 성능을 유지하도록 돕는 한계치(margin)를 제공할 수 있다.
예시적 실시예에서, 시스템은 Jacobsen 제어 모델을 이용하여 지정 피어링 링크와 관련된 목표 수락율을 조절할 수 있다. 특히, 지정 피어링 링크와 관련된 목표 수락율은 곱인자(multiplicative factor)를 이용하여 증가될 수도 있고 또 다른 곱인자를 이용하여 감소될 수도 있다. 그 밖의 다른 실시예에서, 지정 피어링 링크와 관련된 목표 수락율이 부가적 증분량(additive increment)을 이용하여 증가될 수도 있고, 및/또는 지정 피어링 링크와 관련된 목표 수락율이 또 다른 부가적 증분량을 이용하여 감소될 수도 있다. 그러나, 곱인자를 이용함으로써, 아주 다른 용량을 갖는 피어링 링크에 대한 목표 수락율의 조절을 용이하게 할 수 있고, 이로써 오버슈팅(overshooting) 또는 느린 응답을 회피할 수 있다.
이전에 언급된 바와 같이, 서로 다른 시간 간격 동안의 재전송율의 비교로 인해 목표 수락율의 증가에 대한 제약 또는 상한이 제기될 수 있다. 더욱이, 지정 피어링 링크와 관련된 목표 수락율이 (재전송율과 상관 없이) 최소값보다 크고 최대값보다 작을 수 있다. 추가적으로, 지정 피어링 링크와 관련된 목표 수락율이, 지정 피어링 링크와 관련된 실제 수락율의 두 배보다 작을 수 있다.
지정 피어링 링크와 관련된 목표 수락율에 대한 조절량(특히, 목표 수락율에 대한 감소율)이 매 분마다 결정될 수 있다(그러나, 이하에서 논의되는 바와 같이, 목표 수락율에 대한 증분량은 대화가 종료될 때마다 발생할 수 있다). 현재의 재전송율과 이력 재전송율 사이의 차이가 임계값보다 작을 때, 목표 수락율이 곱인자에 의해 증가될 수 있고, 상기 곱인자는 그 밖의 다른 곱인자보다 열 배 더 작다. 더욱이, 대화가 종료된 때, 지정 피어링 링크와 관련된 실제 수락율이 감소하고, 지정 피어링 링크와 관련된 목표 수락율은, 통상적인 비디오의 시간 간격과 대략 동일한 시간 간격(가령, 1분) 이후에 증가량이 10%와 동일할 수 있도록 증가될 수 있다(효과적으로는, 1 새로운 비디오를 대신하여 1.1 새로운 비디오가 수락을 위한 목표가 될 수 있다). 이러한 증가량은 부가적 증분량에 기초할 수 있고, 상기 부가적 증분량은 목표 수락율의 증가율이 곱인자와 관련된 목표 수락율의 감소율보다 작도록 선택될 수 있다. 예를 들어, 시간의 함수로서의 증가율이 시간의 함수로서의 감소율보다 10 배 더 작아서, 곱인자의 효과를 상쇄하기 위하여 부가적 증분에 대하여 10 배 더 긴 시간이 걸릴 수 있다.
이와 반대로, 현재의 재전송율과 이력 재전송율 사이의 차이가 임계값보다 클 때, 목표 수락율이 그 밖의 다른 곱인자에 의해 감소될 수 있다. 이러한 감소는 1-분 간격으로 구현될 수 있다. 일부 실시예에서, 감소된 목표 수락율이 이전 목표 수락율의 절반과 동일하다.
비교 결과가 임계값보다 작은 경우(316) 또는 목표 수락율이 조절된 이후(318), 시스템은 요청(가령, 새로운 사용자와 서버 간 새로운 대화를 위한 요청 또는 또 다른 사용자와 서버 간의 기존 대화 동안 부가적 데이터를 전달하기 위한 요청)을 조정할 수 있다(320). 특히, 서버는 지정 피어링 링크와 관련된 목표 수락율 및 지정 피어링 링크와 관련된 실제 수락율에 기초하여 지정 피어링 링크를 통한 (새로운 또는 기존) 대화를 위한 모든 요청을 수락하거나 거절할 수 있다. 예를 들어, 실제 수락율이 목표 수락율을 초과하는 경우 요청이 거절될 수 있고, 실제 수락율이 목표 수락율보다 작은 경우 요청은 수락될 수 있다. 요청이 거절된 때, 사용자는 또 다른 서버를 향하도록 (예를 들어, 하이퍼 텍스트 전송 프로토콜 리다이렉트(HTTP redirect)를 이용하여) 지시를 받을 수 있다
일부 실시예에서, 목표 수락율은 지정 피어링 링크를 통해 초 당 허용되는 바이트의 수에 대한 목표를 나타내고, 실제 수락율은 지정 피어링 링크를 통해 초 당 허용된 실제 바이트의 수를 나타낸다. 그러나, 일부 실시예에서, 새로운 대화와 관련된 실제 수락율은 초 당 허용된 현재 비트의 수와 새로운 대화와 관련된 초 당 예상된 비트의 수를 더한 것이다. 이와 유사하게, 대화가 종료된 때, 실제 수락율은 상기 대화와 관련된 초 당 예상된 비트의 수만큼 감소될 수 있다.
그 밖의 다른 실시예에서, 조정 기법이 서로 다른 파라미터를 이용할 수 있다. 예를 들어, 재전송율을 판단하는데 이용된 시간 간격이 서로 다를 수 있고, 또는 현재의 재전송율과 이력 재전송율 비교시 서로 다른 양의 한계치(가령, 서로 다른 임계값)가 사용될 수 있다. 더욱이, 중앙값 이외에 재전송 분포의 하나 이상의 모멘트(가령, 평균)가 이용될 수도 있다.
더욱이, TCP 데이터-패킷 손실을 이용하는 대신, 그 밖의 다른 실시예에서, 네트워크 용량을 나타내는 그 밖이 다른 측정 기준(metric)(예를 들어, 라우터(가령, 도 1의 라우터(112))에서의 강하된 데이터 패킷, 강하된 탐침 트래픽(probe traffic)의 백분율, 또는 헤드룸(headroom)의 양(여기서, 헤드룸은 재버퍼링 없이 다시 재생하기 위해 요구되는 바이트 대 전달된 바이트의 비율임))이 이용될 수 있다. 예를 들어, 지정 피어링 링크상의 모든 사용자를 위한 헤드룸이 1.0 이하로 떨어지는 경우 재버퍼링이 발생할 수 있는 반면, 더 큰 헤드룸 값에 있어서는 통상적으로 재버퍼링이 요구되지 않는다.
추가적으로, 이전 논의에서 (1 MB보다 큰 다운로드와 같이 매우 큰 다운로드에 적합할 수 있는) 요청을 읽는 비용 및/또는 리다이렉트(redirect) 명령어를 발하는 비용을 무시하였으나, 그 밖의 다른 실시예에서는 조정 기법에 위 동작들과 관련된 비용이 포함될 수 있다.
프로세스(도 2의 200 및 300)의 일부 실시예에서, 추가적인 동작 또는 더 적은 동작이 존재한다. 더욱이, 동작의 순서가 변경될 수 있고, 둘 이상의 동작이 단일 동작으로 결합될 수 있다.
지금부터, 서버(가령, 도 1의 서버(110-1))와의 통신을 조정하기 위한 방법의 일부분 또는 전부를 구현할 수 있는 시스템의 실시예를 설명한다. 도 4는 시스템(400)의 실시예를 도시하는 블록도이다. 시스템(400)은: 하나 이상의 프로세서(410), 통신 인터페이스(412), 사용자 인터페이스(414), 및 이러한 컴포넌트를 다함께 결합하는 하나 이상의 신호 라인(422)을 포함한다. 하나 이상의 처리 유닛(410)이 병렬 처리 및/또는 멀티스레드식(multithread) 동작을 지원할 수 있고, 통신 인터페이스(412)가 끊김 없는 통신 연결을 가질 수 있으며, 하나 이상의 신호 라인(422)이 통신 버스를 구성할 수 있다. 더욱이, 사용자 인터페이스(414)는: 디스플레이(416), 키보드(418) 및/또는 포인터(420)(가령, 마우스)를 포함할 수 있다.
시스템(400) 내의 메모리(424)가 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 더욱 상세하게는, 메모리(424)에 ROM, RAM, EPROM, EEPROM, 플래시, 하나 이상의 스마트 카드, 하나 이상의 자기 디스크 스토리지 장치, 및/또는 하나 이상의 광학 스토리지 장치가 포함될 수 있다. 메모리(424)는 하드웨어 의존적 작업을 수행하기 위하여 다양한 기본 시스템 서비스를 취급하는 절차(또는 명령어 세트)를 포함하는 운영 체제(426)를 저장할 수 있다. 도 4에는 도시되지 않았지만, 운영 체제(426)는 웹페이지의 정보를 제공 및/또는 렌더링(rendering)하기 위한 브라우저(또는 명령어 세트)를 포함할 수 있다. 또한, 메모리(424)는 통신 모듈(428)에 통신 절차(또는 명령어 세트)를 저장할 수 있다. 이러한 통신 절차는 시스템(400)에 관하여 원격에 위치된 컴퓨터, 장치, 및/또는 서버를 포함하는 하나 이상의 컴퓨터, 장치 및/또는 서버와의 통신에 이용될 수 있다.
메모리(424)는 또한, 피어링-관리자 모듈(430)(또는 명령어 세트)을 포함하는 하나 이상의 프로그램 모듈(또는 명령어 세트)을 포함할 수 있다. 피어링-관리자 모듈(430)은 네트워크 내의 하나 이상의 링크를 통한 사용자와 서버 간 대화(예를 들어, 링크 A(434-1)를 통한 대화 A 및/또는 링크 A(434-2)를 통한 대화 B)와 관련된 통신 통계 자료(432)를 분석하여, 서로 다른 시간 간격 동안의 재전송율(440)을 판단할 수 있다. 예를 들어, 최종 순간에 시작된 지정 링크와 관련된 대화에 대한 재전송율이 판단될 수 있다. 이와 유사하게, 최종 날에 지정 링크와 관련된 대화에 대한 이력 재전송율이 판단될 수 있다. 대화에 관한 정보 및 대화가 시작되었을 때(대화가 계속중이든지 아니든지)의 정보가 피어링-관리자 데이터(436)에 포함될 수 있고, 상기 피어링-관리자 데이터는 다수의 링크(가령, 링크 A(438-1) 및/또는 링크 B(438-2))를 위한 정보를 포함한다.
재전송율(440)에 기초하여, 피어링-관리자 모듈(430)은 하나 이상의 링크에 대한 하나 이상의 목표 수락율(442)을 결정할 수 있다. 예를 들어, 목표 수락율(442)이 van Jacobsen 제어 모듈에 기초하여 조절될 수 있다. 더욱이, (통신 통계 자료(432)를 이용하여 판단될 수 있는) 링크에 대한 목표 수락율(442) 및 실제 수락율(444)에 기초하여, 피어링-관리자 모듈(430)은 지정 링크에서 또 다른 사용자와 또 다른 대화를 시작하기 위한 요청(446)을 수락하거나 거절할 수 있다.
일부 실시예에서, 피어링-관리자 모듈(430)은 요청(446)이 거절된 때 또 다른 서버를 추천할 수 있다. 추가적으로, 일부 실시예에서, 피어링-관리자 모듈(430)은 하나 이상의 대화가 종료된 때 하나 이상의 링크에 대한 하나 이상의 목표 수락율(442)을 증가시킬 수 있다.
메모리(424)의 다양한 모듈 내의 명령어가 고급 절차 언어, 객체 지향 프로그래밍 언어, 및/또는 어셈블리어 또는 기계어로 구현될 수 있다. 프로그래밍 언어는 컴파일 또는 해석될 수 있는데, 즉 하나 이상의 처리 유닛(410)에 의해 실행되도록 구성될 수 있다.
시스템(400)이 다수의 이산 컴포넌트를 갖는 것처럼 도시되었으나, 도 4는 본원에 기술된 실시예의 구조적 도식보다는 시스템(400)에 제시될 수 있는 다양한 특징부의 기능적 설명을 위해 의도되었다. 실제에서, 그리고 해당업계 종사자에 의해 인식될 수 있는 바와 같이, 특정 하위 집합의 기능을 수행하는 다양한 그룹의 서버 또는 컴퓨터를 갖는 다수의 서버 또는 컴퓨터에 걸쳐, 시스템(400)의 기능이 분산될 수 있다.
일부 실시예에서, 시스템(400)의 기능성 중 일부 또는 전부가 하나 이상의 특정 용도용 집적 회로(ASIC) 및/또는 하나 이상의 디지털 신호 처리기(DSP)에서 구현될 수 있다.
시스템(400)은 더 적은 컴포넌트 또는 추가적인 컴포넌트를 포함할 수 있다. 더욱이, 둘 이상의 컴포넌트가 단일 컴포넌트로 결합될 수 있고, 및/또는 하나 이상의 컴포넌트의 위치가 변경될 수도 있다. 일부 실시예에서, 시스템(400)의 기능성은 해당업계에서 잘 알려진 바와 같이, 좀 더 하드웨어적으로 그리고 덜 소프트웨어적으로 구현될 수도 있고, 또는 덜 하드웨어적으로 그리고 좀 더 소프트웨어적으로 구현될 수도 있다.
지금부터, 시스템(400)에서 이용될 수 있는 데이터 구조의 실시예를 설명한다. 도 5는 데이터 구조(500)의 실시예를 도시하는 블록도이다. 이러한 데이터 구조는 통신 통계 자료(510)를 포함할 수 있다. 예를 들어, 통신 통계 자료(510-1)는 하나 이상의 IP 주소(512-1), 하나 이상의 링크(514-1), 및/또는 통계 자료(516-1)(가령, TCP 손실율)를 포함할 수 있다.
도 6은 데이터 구조(600)의 실시예를 도시하는 블록도이다. 이러한 데이터 구조는 링크(610)에 관한 정보를 포함할 수 있다. 예를 들어, 링크(610-1)에 관한 정보는 목표 수락율(612-1), 실제 수락율(614-1), 및/또는 상응하는 대화(618-1)가 시작되거나 종료되었을 때 나타나는 하나 이상의 타임 스탬프(616-1)를 포함할 수 있다.
일부 실시예에서, 데이터 구조(도 5의 500 및 600)는 더 적은 컴포넌트 또는 추가적인 컴포넌트를 포함한다. 더욱이, 둘 이상의 컴포넌트가 단일 컴포넌트로 결합될 수 있고, 및/또는 하나 이상의 컴포넌트의 위치가 변경될 수 있다.
이전 실시예가, 도시된 예시에서와 같이 피어링 링크를 통한 통신의 조정에 이용되었으나, 그 밖의 다른 실시예에서는, 하나 이상의 전송 링크와 같은 그 밖의 다른 유형의 링크에 의한 통신을 조정하기 위하여 전술된 기법이 이용될 수도 있다.
전술된 실시예의 설명은 오직 예시와 설명 목적으로만 제시되었다. 이러한 설명이 본 발명을 총괄하거나 본 발명의 범위를 개시된 형태로 제한하려는 의도는 아니다. 따라서, 다양한 수정 형태와 변형 형태가 해당업계 종사자에게 명백할 것이다. 추가적으로, 전술된 개시 내용은 본 발명을 제한하려는 의도는 아니다. 본 발명 실시예의 범위는 첨부된 청구항에 의해 정의된다.

Claims (24)

  1. 서버와의 통신을 조정하는 방법에 있어서, 상기 방법은,
    네트워크 내의 피어링 링크(peering link)를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율(retransmission rate)을 판단하는 단계, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 제 1 시간 간격 내에 시작되었음;
    피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하는 단계, 여기서, 상기 대화의 제 2 세트 내의 지정 대화가 제 2 시간 간격 내에 발생되었고, 대화의 제 2 세트가 대화의 제 1 세트를 포함하며, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하고, 제 2 시간 간격이 제 1 시간 간격을 포함함;
    재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적인 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율(target acceptance rate)을 조절하는 단계; 그리고
    피어링 링크를 통해 상기 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절함으로써, 피어링 링크의 통신 성능을 유지하는 단계
    를 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  2. 제 1 항에 있어서,
    상기 네트워크는 인터넷을 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  3. 제 1 항에 있어서,
    제 1 시간 간격은 1분을 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  4. 제 1 항에 있어서,
    제 2 시간 간격은 1일을 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  5. 제 1 항에 있어서,
    이력 재전송율은 제 2 시간 간격 동안 재전송율의 분포의 모멘트(moment)를 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  6. 제 5 항에 있어서,
    상기 모멘트는 중앙값(median)을 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  7. 제 1 항에 있어서,
    상기 네트워크는 또 다른 서버에 연결된 하나 이상의 전송 링크(transit link)를 포함하고, 여기서 상기 하나 이상의 전송 링크가 서버를 인터넷 서비스 제공자(ISP)에 연결시키는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  8. 제 7 항에 있어서,
    요청의 거절에, 상기 또 다른 사용자가 방향을 바꾸어 그 밖의 다른 서버를 향하게 하는 명령어가 포함되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  9. 제 1 항에 있어서,
    요청 수락 또는 거절이 실제 수락율과 목표 수락율 사이의 차이에 기초하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  10. 제 1 항에 있어서,
    피어링 링크가 서버 및 네트워크상의 또 다른 개체 사이의 무정산(settlement-free) 링크를 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  11. 제 1 항에 있어서,
    대화의 제 2 세트에 관한 통계 정보를 수집하는 단계를 추가로 포함하고, 여기서 상기 재전송율이, 수집된 통계 정보에 부분적으로 또는 전체적으로 기초하여 판단되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  12. 제 1 항에 있어서,
    경계 게이트웨이 프로토콜(Border Gateway Protocol) 정보에 기초하여 어떠한 대화가 피어링 링크와 관련될 가능성이 높은지를 판단하는 단계를 추가로 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  13. 제 1 항에 있어서,
    서버의 목표 수락율이 최소값보다 크고 최대값보다 작은 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  14. 제 1 항에 있어서,
    서버의 목표 수락율이 서버의 실제 수락율의 두 배보다 작은 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  15. 제 1 항에 있어서,
    목표 수락율이 van Jacobsen 제어 모델에 기초하여 조절되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  16. 제 1 항에 있어서,
    목표 수락율이 재전송율과 이력 재전송율 사이의 차이에 기초하여 조절되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  17. 제 1 항에 있어서,
    재전송율이 미리 정해진 값만큼 이력 재전송율을 초과할 때 목표 수락율이 조절되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  18. 제 17 항에 있어서,
    조절 동작에, 곱인자(multiplicative factor)에 의해 목표 수락율을 감소시키는 동작이 포함되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  19. 제 18 항에 있어서,
    대화가 종료된 때 부가적 증분량(additive increment)에 의해 목표 수락율을 증가시키는 단계를 추가로 포함하고, 여기서 부가적 증분량은, 목표 수락율의 관련 증가율이 곱인자와 관련된 목표 수락율의 감소율보다 작도록 선택되는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  20. 제 17 항에 있어서,
    대화가 종료된 때 목표 수락율을 증가시키는 단계를 추가로 포함하는 것을 특징으로 하는, 서버와의 통신을 조정하는 방법.
  21. 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 컴퓨터 프로그램은 컴퓨터에 의해 실행되는 때 컴퓨터 시스템이,
    네트워크 내의 피어링 링크(peering link)를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율(retransmission rate)을 판단하는 단계, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 제 1 시간 간격 내에 시작되었음;
    피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하는 단계, 여기서 상기 대화의 제 2 세트 내의 지정 대화가 제 2 시간 간격 내에 발생되었고, 대화의 제 2 세트가 대화의 제 1 세트를 포함하며, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하고, 제 2 시간 간격이 제 1 시간 간격을 포함함;
    재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율(target acceptance rate)을 조절하는 단계; 그리고
    피어링 링크를 통해 상기 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절함으로써, 피어링 링크의 통신 성능을 유지하는 단계
    를 포함하는 방법을 수행하도록 하는 것을 특징으로 하는, 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  22. 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은,
    계산을 위한 수단;
    메모리;
    상기 메모리에 저장되고, 상기 수단에 의해 실행되도록 구성된 프로그램 모듈
    을 포함하고, 상기 프로그램 모듈이:
    네트워크 내의 피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율을 판단하기 위한 명령어, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 제 1 시간 간격 내에 시작되었음;
    피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하기 위한 명령어, 여기서 상기 대화의 제 2 세트 내의 지정 대화가 제 2 시간 간격 내에 발생되었고, 대화의 제 2 세트가 대화의 제 1 세트를 포함하며, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하고, 제 2 시간 간격이 제 1 시간 간격을 포함함;
    재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율을 조절하기 위한 명령어; 그리고
    피어링 링크를 통해 상기 추가적 사용자와의 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절함으로써, 피어링 링크의 통신 성능을 유지하기 위한 명령어
    를 포함하는 것을 특징으로 하는, 컴퓨터 시스템.
  23. 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은,
    프로세서;
    메모리;
    상기 메모리에 저장되고, 상기 프로세서에 의해 실행되도록 구성된 프로그램 모듈
    을 포함하고, 상기 프로그램 모듈이:
    네트워크 내의 피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율을 판단하기 위한 명령어, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 제 1 시간 간격 내에 시작되었음;
    피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하기 위한 명령어, 여기서 상기 대화의 제 2 세트 내의 지정 대화가 제 2 시간 간격 내에 발생되었고, 대화의 제 2 세트가 대화의 제 1 세트를 포함하며, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하고, 제 2 시간 간격이 제 1 시간 간격을 포함함;
    재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율을 조절하기 위한 명령어; 그리고
    피어링 링크를 통해 상기 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절함으로써, 피어링 링크의 통신 성능을 유지하기 위한 명령어
    를 포함하는 것을 특징으로 하는, 컴퓨터 시스템.
  24. 서버에 있어서, 상기 서버는,
    사용자와 서버 사이에서 데이터 패킷을 전달하도록 구성된 피어링 링크를 포함하는 네트워크에 연결되도록 구성된 입력 노드; 그리고
    피어링 관리자(peering manager)
    를 포함하며, 상기 피어링 관리자는:
    피어링 링크를 통한, 사용자의 그룹과 서버 간 대화의 제 1 세트 동안 데이터 패킷의 재전송율을 판단하도록 구성되고, 여기서 상기 대화의 제 1 세트 내의 지정 대화가 일정 시간 간격 내에 시작되었음;
    피어링 링크를 통한, 사용자의 제 2 그룹과 서버 간 대화의 제 2 세트 동안 데이터 패킷의 상기 재전송율과 이력 재전송율을 비교하도록 구성되고, 여기서 상기 대화의 제 2 세트 내의 지정 대화가 또 다른 시간 간격 내에 발생한 것이고, 대화의 제 2 세트가 대화의 제 1 세트를 포함하며, 사용자의 제 2 그룹이 사용자의 제 1 그룹을 포함하고, 상기 또 다른 시간 간격이 상기 일정 시간 간격을 포함함;
    재전송율과 이력 재전송율의 비교 결과에 기초하여 피어링 링크를 통해 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 목표 수락율을 조절하도록 구성되고; 그리고
    피어링 링크를 통해 상기 추가적 사용자와 대화를 시작하기 위한 요청에 대한 서버의 실제 수락율과 목표 수락율에 기초하여 피어링 링크를 통해 또 다른 사용자와 서버 간 대화를 시작하기 위한 요청을 수락 또는 거절함으로써, 피어링 링크의 통신 성능을 유지하도록 구성되는 것을 특징으로 하는, 서버.

KR1020107025788A 2008-05-02 2009-04-29 링크 트래픽 조정 기법 KR101537835B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/114,350 2008-05-02
US12/114,350 US7882231B2 (en) 2008-05-02 2008-05-02 Technique for regulating link traffic

Publications (2)

Publication Number Publication Date
KR20110013408A true KR20110013408A (ko) 2011-02-09
KR101537835B1 KR101537835B1 (ko) 2015-07-17

Family

ID=41255747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025788A KR101537835B1 (ko) 2008-05-02 2009-04-29 링크 트래픽 조정 기법

Country Status (10)

Country Link
US (1) US7882231B2 (ko)
EP (1) EP2314037B1 (ko)
JP (1) JP5408811B2 (ko)
KR (1) KR101537835B1 (ko)
CN (1) CN102067547B (ko)
AU (1) AU2009243136B2 (ko)
BR (1) BRPI0912001A2 (ko)
CA (1) CA2723208C (ko)
DE (1) DE202009019134U1 (ko)
WO (1) WO2009134845A2 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8817653B2 (en) * 2009-10-30 2014-08-26 At&T Intellectual Property I, L.P. Detecting irregular retransmissions
KR101917766B1 (ko) * 2012-05-25 2018-11-13 삼성전자주식회사 무선 통신 시스템에서 혼잡 제어 방법 및 장치
CN103796228B (zh) 2012-10-31 2018-09-11 中兴通讯股份有限公司 一种无线网络毛细管道性能评估方法及装置
US8959152B2 (en) 2012-12-13 2015-02-17 Microsoft Corporation Peer-to-peer communication to increase download throughput
CN105208067A (zh) * 2014-06-26 2015-12-30 格瑞菲技术有限公司 异步多源流式传输
CN113206795B (zh) * 2021-04-12 2022-05-17 烽火通信科技股份有限公司 传输策略调整方法、装置、设备及可读存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307867B1 (en) * 1998-05-14 2001-10-23 Telefonaktiebolaget Lm Ericsson (Publ) Data transmission over a communications link with variable transmission rates
CN1185902C (zh) * 2000-06-26 2005-01-19 松下电器产业株式会社 移动通信系统
KR100695830B1 (ko) * 2000-09-05 2007-03-19 유티스타콤코리아 유한회사 무선통신 시스템에서 데이터 반복 전송 방법
KR100735692B1 (ko) * 2001-07-12 2007-07-06 엘지전자 주식회사 적응 부호화와 재전송을 이용한 부호화 변환 방법
WO2003028237A1 (en) * 2001-09-28 2003-04-03 Divxnetworks, Inc. Dynamic bit rate control process
US7225459B2 (en) * 2001-10-17 2007-05-29 Numerex Investment Corproation Method and system for dynamically adjusting video bit rates
TWI250741B (en) * 2003-02-26 2006-03-01 Realtek Semiconductor Corp Method for automatically and dynamically adjusting packet transmission speed of wireless communication network system
US7729252B2 (en) * 2003-05-30 2010-06-01 Alcatel-Lucent Usa Inc. Methods and devices for providing fast and robust overload control
JP2005065177A (ja) * 2003-08-20 2005-03-10 Nippon Telegr & Teleph Corp <Ntt> P2p通信システムにおける接続リンク数制御方法、情報処理装置、およびリンク数制御プログラム
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US7243284B2 (en) * 2003-12-11 2007-07-10 International Business Machines Corporation Limiting number of retransmission attempts for data transfer via network interface controller
JP4687343B2 (ja) * 2005-09-06 2011-05-25 日本電気株式会社 チャネル帯域占有率評価方法、無線通信システム、チャネル帯域占有率評価装置及びプログラム
JP4805081B2 (ja) 2006-09-29 2011-11-02 富士通株式会社 無線中継装置、無線中継方法および無線中継プログラム

Also Published As

Publication number Publication date
US7882231B2 (en) 2011-02-01
JP5408811B2 (ja) 2014-02-05
AU2009243136A1 (en) 2009-11-05
JP2011524107A (ja) 2011-08-25
CA2723208A1 (en) 2009-11-05
WO2009134845A3 (en) 2010-02-18
KR101537835B1 (ko) 2015-07-17
CA2723208C (en) 2013-06-18
CN102067547B (zh) 2014-05-28
EP2314037B1 (en) 2017-08-09
WO2009134845A2 (en) 2009-11-05
US20090276518A1 (en) 2009-11-05
EP2314037A4 (en) 2013-07-24
AU2009243136B2 (en) 2013-03-21
BRPI0912001A2 (pt) 2015-10-13
EP2314037A2 (en) 2011-04-27
CN102067547A (zh) 2011-05-18
DE202009019134U1 (de) 2017-01-15

Similar Documents

Publication Publication Date Title
EP2425592B1 (en) Adaptive rate control based on overload signals
EP2834949B1 (en) Congestion control and resource allocation in split architecture networks
KR102030574B1 (ko) 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템
US9634922B2 (en) Apparatus, system, and method for cloud-assisted routing
EP1969894B1 (en) Selecting application session services to process packet data streams based on profile information
US8699343B2 (en) Adaptive rate control based on overload signals
CN109787801B (zh) 一种网络服务管理方法、装置和系统
JP4825877B2 (ja) ビッドのためのシステムおよび/または方法
JP4880698B2 (ja) ビッド・ネットワーク
KR101537835B1 (ko) 링크 트래픽 조정 기법
JP4881392B2 (ja) ダウンストリーム・ビッドのためのシステムおよび/または方法
US11777760B2 (en) VPN classification to reduce usage costs while retaining responsiveness
WO2022147175A1 (en) Vpn classification to reduce usage costs while retaining responsiveness
García-Martínez et al. BGP convergence in an MRAI-free Internet
Subbaraman Towards Deployable, Distributed ISP Traffic Filtering for the Cloud-Era

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant