(19) 대한민국특허청(KR) (12) 등록특허공보(B1) (45) 공고일자 2013년11월27일 (11) 등록번호 10-1333908 (24) 등록일자 2013년11월21일 (51) 국제특허분류(Int. Cl.) H04W 28/10 (2009.01) H04W 28/22 (2009.01) (21) 출원번호 10-2011-7031262 (22) 출원일자(국제) 2010년09월24일 심사청구일자 2011년12월28일 (85) 번역문제출일자 2011년12월28일 (65) 공개번호 10-2012-0052907 (43) 공개일자 2012년05월24일 (86) 국제출원번호 PCT/CN2010/001471 (87) 국제공개번호 WO 2012/037707 국제공개일자 (56) 선행기술조사문헌 WO2007036046 A1 US20100165840 A1 JP2009089416 A 2012년03월29일 (73) 특허권자 인텔 코오퍼레이션 미합중국 캘리포니아 95052 산타클라라 미션 칼리 지 블러바드 2200 (72) 발명자 리프만, 저스틴 중국 201103 씨엔 31 상하이 홍메이 로드 3200 빌 딩 39 202 첸, 시아오동 중국 200240 씨엔 31 상하이 알엠. 7-904 징 구 동 루 99 (74) 대리인 백만기, 양영준 JP2006217234 A 전체 청구항 수 : 총 20 항 심사관 : 고연화 (54) 발명의 명칭 액세스 포인트 혼잡 검출 및 감소를 위한 방법 및 시스템 (57) 요 약 무선 액세스 포인트 내의 데이터 전달 혼잡을 검출하고 감소시키는 방법 및 시스템은 무선 액세스 포인트를 통해 소스 컴퓨팅 디바이스로부터 복수의 컴퓨팅 디바이스들 중 제1 컴퓨팅 디바이스에 송신되는 인터넷 제어 메시지 프로토콜(ICMP) 패킷들에 대한 왕복 시간 값을 결정하는 것을 포함한다. 왕복 시간 값이 제1 역치 값보다 작다 면, 소스 컴퓨팅 디바이스로부터의 데이터 송신들에 대한 데이터 레이트가 최고 데이터 레이트 값보다 크지 않은 값으로 증가된다. 왕복 시간 값이 제2 역치 값보다 크다면, 데이터 레이트는 감소된다. 추가적으로, 왕복 시간 값이 제2 역치 값보다 크다면, 최고 데이터 레이트가 또한 감소될 수 있다. 대 표 도 - 1 -
특허청구의 범위 청구항 1 소스 컴퓨팅 디바이스로부터 복수의 컴퓨팅 디바이스들 중 적어도 하나의 컴퓨팅 디바이스로의 무선 액세스 포 인트를 통한 데이터 송신들에 대한 (i) 현재 데이터 레이트 및 (ii) 최고 데이터 레이트를 구축하는 단계; 상기 복수의 컴퓨팅 디바이스들 중 제1 컴퓨팅 디바이스로 송신된 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 왕복 시간 값을 결정하는 단계; 상기 왕복 시간 값이 제1 역치 값보다 작은 것에 응답하여, 상기 현재 데이터 레이트를 증가시키고 상기 최고 데이터 레이트를 상기 현재 데이터 레이트로 설정하는 단계; 및 상기 왕복 시간 값이 제2 역치 값보다 큰 것에 응답하여, (i) 상기 최고 데이터 레이트를 감소시키고 (ii) 상기 최고 데이터 레이트에 기초하여 상기 현재 데이터 레이트를 감소시키는 단계 를 포함하는 방법. 청구항 2 상기 현재 데이터 레이트를 증가시키는 단계는 상기 현재 데이터 레이트를 미리 결정된 양만큼 선형적으로 증가 시키는 단계를 포함하는 방법. 청구항 3 상기 현재 데이터 레이트를 증가시키는 단계는 상기 현재 데이터 레이트를 지수적으로 증가시키는 단계를 포함 하는 방법. 청구항 4 상기 최고 데이터 레이트를 감소시키는 단계는 상기 최고 데이터 레이트를 미리 결정된 백분율만큼 감소시키는 단계를 포함하는 방법. 청구항 5 제4항에 있어서, 상기 최고 데이터 레이트를 감소시키는 단계는 상기 최고 데이터 레이트를 10 퍼센트만큼 감소시키는 단계를 포 함하는 방법. 청구항 6 상기 최고 데이터 레이트를 감소시키는 단계는 미리 결정된 시간 기간이 경과되지 않은 경우에만 상기 최고 데 이터 레이트를 감소시키는 단계를 포함하는 방법. 청구항 7 상기 현재 데이터 레이트를 감소시키는 단계는, 상기 최고 데이터 레이트와 이전에 결정된 중간점(midpoint) 데이터 레이트 값의 합의 절반과 같은 새로운 중간 점 데이터 레이트 값을 결정하는 단계; 및 - 2 -
상기 현재 데이터 레이트를 상기 이전에 결정된 중간점 데이터 레이트 값으로 설정하는 단계 를 포함하는 방법. 청구항 8 상기 제1 역치 값은 상기 제2 역치 값과 실질적으로 같은 방법. 청구항 9 상기 왕복 시간 값이 상기 제1 역치 값보다 크고 상기 제2 역치 값보다 작은 것에 응답하여, 상기 현재 데이터 레이트 및 상기 최고 데이터 레이트를 유지하는 단계를 더 포함하는 방법. 청구항 10 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 상기 왕복 시간 값을 결정하는 단계는, 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷을 상기 제1 컴퓨팅 디바이스에 송신하는 단계; 상기 송신된 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 응답하여 상기 제1 컴퓨팅 디바이스로부터의 응답을 수 신하는 단계; 및 상기 송신 및 수신 단계들 사이의 시간 기간을 측정하는 단계 를 포함하는 방법. 청구항 11 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 상기 왕복 시간 값을 결정하는 단계는 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 상기 왕복 시간 값을 주기적으로 결정하는 단계를 포함하는 방법. 청구항 12 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 상기 왕복 시간 값을 결정하는 단계는 데이터를 상기 복 수의 컴퓨팅 디바이스들에 송신하는 것과 동시에 상기 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 상기 왕 복 시간 값을 결정하는 단계를 포함하는 방법. 청구항 13 상기 복수의 컴퓨팅 디바이스들로부터 상기 제1 컴퓨팅 디바이스를 무작위로 선택하는 단계를 더 포함하는 방법. 청구항 14 상기 복수의 컴퓨팅 디바이스들 중 각각의 컴퓨팅 디바이스의 수신 신호 강도 표시(RSSI) 측정에 기초하여 상기 복수의 컴퓨팅 디바이스들로부터 상기 제1 컴퓨팅 디바이스를 선택하는 단계를 더 포함하는 방법. 청구항 15 프로세서; 및 - 3 -
상기 프로세서에 통신 가능하도록 연결된 메모리 디바이스를 포함하며, 상기 메모리 디바이스는 그곳에 저장된 복수의 명령어들을 포함하며, 상기 복수의 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 복수의 컴퓨팅 디바이스들 중 적어도 하나의 컴퓨팅 디바이스로의 무선 액세스 포인트를 통한 데이터 송신들에 대한 (i) 현재 데이터 레이트 및 (ii) 최고 데이터 레이트를 구축하고; 상기 복수의 컴퓨팅 디바이스들 중 제1 컴퓨팅 디바이스로 송신된 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 왕복 시간 값을 결정하고; 상기 왕복 시간 값을 결정하는 것에 응답하여, (i) 상기 왕복 시간 값이 제1 역치 값보다 작다면, 상기 현재 데이터 레이트를 증가시키고 상기 최고 데이터 레 이트를 상기 현재 데이터 레이트와 같게 설정하고, (ii) 상기 왕복 시간 값이 상기 제1 역치 값보다 크고 제2 역치 값보다 작다면, 상기 현재 데이터 레이트 및 상 기 최고 데이터 레이트를 유지하고, (iii) 상기 왕복 시간 값이 상기 제2 역치 값보다 크다면, 상기 최고 데이터 레이트 및 상기 현재 데이터 레이 트를 감소시키는 동작들 중 하나를 수행하게 하는 컴퓨팅 시스템. 청구항 16 제15항에 있어서, 상기 최고 데이터 레이트를 감소시키는 것은 미리 결정된 시간 기간이 경과되지 않았을 때에만 상기 최고 데이 터 레이트를 감소시키는 것을 포함하는 컴퓨팅 시스템. 청구항 17 제15항에 있어서, 상기 현재 데이터 레이트를 감소시키는 것은 상기 현재 데이터 레이트를 상기 최고 데이터 레이트에 기초하여 결정된 값으로 감소시키는 것을 포함하는 컴퓨팅 시스템. 청구항 18 제15항에 있어서, 상기 현재 데이터 레이트를 감소시키는 것은, 상기 최고 데이터 레이트와 이전에 결정된 중간점 데이터 레이트 값의 합의 절반과 같은 새로운 중간점 데이터 레이트 값을 결정하는 것; 및 상기 현재 데이터 레이트를 상기 이전에 결정된 중간점 데이터 레이트 값으로 설정하는 것 을 포함하는 컴퓨팅 시스템. 청구항 19 복수의 명령어들을 포함하는 비일시적인 기계 판독 가능한 매체로서, 상기 복수의 명령어들은 실행되는 것에 응 답하여 소스 컴퓨팅 디바이스로 하여금, 상기 소스 컴퓨팅 디바이스로부터 복수의 컴퓨팅 디바이스들 중 적어도 하나의 컴퓨팅 디바이스로의 무선 액세 스 포인트를 통한 데이터 송신들에 대한 (i) 현재 데이터 레이트 및 (ii) 최고 데이터 레이트를 구축하고; 상기 소스 컴퓨팅 디바이스로부터 상기 복수의 컴퓨팅 디바이스들 중 제1 컴퓨팅 디바이스로 송신된 인터넷 제 어 메시지 프로토콜(ICMP) 패킷에 대한 왕복 시간 값을 결정하고; 상기 왕복 시간 값을 결정하는 것에 응답하여, (i) 상기 왕복 시간 값이 제1 역치 값보다 작다면, 상기 현재 데이터 레이트를 증가시키고 상기 최고 데이터 레 이트를 상기 현재 데이터 레이트로 설정하고, - 4 -
(ii) 상기 왕복 시간 값이 상기 제1 역치 값보다 크고 제2 역치 값보다 작다면, 상기 현재 데이터 레이트 및 상 기 최고 데이터 레이트를 유지하고, (iii) 상기 왕복 시간 값이 상기 제2 역치 값보다 크다면, 상기 최고 데이터 레이트 및 상기 현재 데이터 레이 트를 감소시키는 동작들 중 하나를 수행하고; 상기 결정 및 수행 단계들을 반복하게 하는 비일시적인 기계 판독 가능한 매체. 청구항 20 제19항에 있어서, 상기 최고 데이터 레이트를 감소시키는 것은 상기 최고 데이터 레이트를 10 퍼센트만큼 감소시키는 것을 포함하 는 비일시적인 기계 판독 가능한 매체. 명 세 서 [0001] [0002] 배 경 기 술 협동 컴퓨팅 환경은 흔히 소스 컴퓨팅 디바이스로부터 복수의 목적지 또는 싱크(sink) 컴퓨팅 디바이스들로의 데이터 전달에 의존한다. 예컨대, 교육 환경에서, "교실 협동"은 교사의 컴퓨팅 디바이스로부터 각각의 학생의 컴퓨팅 디바이스로의 파일들, 비디오 및 다른 데이터의 전달에 의존한다. 전형적으로, 그러한 데이터 전달을 달성하기 위해 멀티캐스트, 방송, 또는 다른 일대다(one-to-many) 데이터 송신들이 사용된다. 멀티캐스트 또는 방송 송신들과 달리, 유니캐스트 송신들은 일대일 데이터 송신(즉, 하나의 소스 컴퓨팅 디바이 스로부터 하나의 목적지 또는 싱크 컴퓨팅 디바이스로의)들이다. 일부 통신 디바이스들 및 표준들은 멀티캐스 트 또는 방송 송신들에 비해 유니캐스트 송신들에 대해 최적화되거나 또는 유니캐스트 송신들에서 더 나은 서비 스 및/또는 신뢰도를 제공한다. 예컨대, 일부 액세스 포인트들(예컨대, 유선 또는 무선 라우터, 스위치 또는 허브)은 유니캐스트 송신들을 라우팅하기 위해 최적화된다. 반대로, 멀티캐스트 송신에서, 액세스 포인트는 소 스 컴퓨팅 디바이스로부터 (통상적으로 유니캐스트 송신을 통해) 수신한 데이터를 로컬 영역 네트워크(LAN) 상 의 각각의 싱크 컴퓨팅 디바이스에 송신해야 하므로, 액세스 포인트는 로컬 영역 네트워크의 "보틀넥 (bottleneck)"이 될 수 있다. 이와 같이, 액세스 포인트로부터의 인출(outgoing) 데이터 레이트는 전형적으로 소스 컴퓨팅 디바이스로부터의 인입(incoming) 데이터 레이트보다 현저히 낮다. 데이터 레이트의 이러한 불일 치는 액세스 포인트의 데이터 큐(queue)들이 오버플로우(overflow)되게 할 수 있으며, 이는 손실된 데이터 및 지연된 송신들을 야기한다. 이러한 어려움들은, 유니캐스트 송신들에 멀티캐스트 송신들보다 높은 우선 순위 또는 서비스 품질이 주어지는 일부 네트워크 환경들에서 악화될 수 있다. 더욱이, 많은 액세스 포인트 디바이 스들은, 추가적인 데이터 전달 혼잡 어려움들을 야기할 수 있는 최적이 아닌 디폴트 멀티캐스트 세팅들을 갖는 다. [0003] 도면의 간단한 설명 본원에 설명된 시스템들, 디바이스들, 및 방법들은 수반하는 도면들에서 예로서, 그리고 제한적이지 않도록 예 시된다. 예시의 간략함 및 명료함을 위해, 도면들에 예시된 요소들은 반드시 비율에 맞게 그려진 것은 아니다. 예컨대, 명료함을 위해, 일부 요소들의 크기는 다른 요소들에 비해 과장될 수 있다. 더욱이, 적합하다고 생각 되는 곳에서, 대응하는 또는 유사한 요소들을 나타내기 위해 도면들 사이에서 참조 라벨들이 반복되었다. 도 1은 네트워크의 액세스 포인트 내의 데이터 전달 혼잡을 검출하고 감소시키기 위한 시스템의 일 실시예의 간 략화된 블록도이다. 도 2는 도 1의 시스템의 컴퓨팅 디바이스의 일 실시예의 간략화된 블록도이다. 도 3은 도 1의 네트워크의 액세스 포인트 내의 데이터 전달 혼잡을 검출하고 감소시키기 위한 방법의 일 실시예 의 간략화된 흐름도이다. 도 4는 도 1의 네트워크의 액세스 포인트 내의 데이터 전달 혼잡을 검출하고 감소시키기 위한 다른 실시예의 간 략화된 흐름도이다. 도 5는 도 3 및 4의 혼잡 검출 및 감소 방법들을 사용하는 소스 컴퓨팅 디바이스의 데이터 레이트 트렌드의 그 - 5 -
래프이다. [0004] [0005] [0006] [0007] [0008] [0009] [0010] [0011] 발명을 실시하기 위한 구체적인 내용 본 명세서의 개념들은 다양한 변형들 및 대안적인 형태들의 여지가 있지만, 그들의 특정한 예시적인 실시예들이 도면들에서 예로서 도시되었으며 본원에서 상세히 설명될 것이다. 그러나, 본 명세서의 개념들을 개시된 특정 한 형태들로 제한하려는 의도는 없으며, 반대로, 첨부된 청구항들에 의해 정의된 본 발명의 진의 및 범위 내에 있는 모든 변형들, 동등물들, 및 대안들을 포함하도록 의도됨을 이해해야 한다. 하기 설명에서, 본 명세서의 더 완전한 이해를 제공하기 위해 로직 구현들, 조작 부호들(opcodes), 피연산자들 을 특정하는 수단들, 자원 분할/공유/복제 구현들, 시스템 컴포넌트들의 종류들 및 상호 관계들, 및 로직 분할/ 통합 선택들과 같은 다수의 특정한 세부 사항들이 제시될 수 있다. 그러나, 본 명세서의 실시예들은 그러한 특 정한 세부 사항들 없이 실시될 수 있다는 것이 본 기술분야의 당업자에 의해 인식될 것이다. 다른 경우들에서, 본 명세서를 모호하게 하지 않기 위해, 제어 구조들, 게이트 레벨 회로들 및 전체 소프트웨어 명령 시퀀스들은 상세히 도시되지 않았을 수 있다. 본 기술분야의 통상적인 기술자들은, 포함된 설명들을 사용하여, 불필요한 실험 없이 적합한 기능을 구현할 수 있을 것이다. 명세서에서의 "일 실시예", "실시예", "예시적 실시예" 등에 대한 참조는, 설명한 실시예가 특정한 특징, 구조, 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시예들이 반드시 특정한 특징, 구조, 또는 특성을 포함 하지 않을 수 있다. 더욱이, 그러한 어구들은 반드시 동일한 실시예를 참조하는 것은 아니다. 더욱이, 특정한 특징, 구조, 또는 특성이 실시예와 관련하여 설명되는 경우, 그러한 특징, 구조, 또는 특성을 다른 실시예들에 관련하여 달성하는 것은 명시적으로 설명되는지의 여부와 관계없이 본 기술분야의 당업자의 지식 내에 있다고 생각된다. 본 명세서의 일부 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 그들의 임의의 조합으로 구현될 수 있다. 컴퓨터 시스템 내에 구현된 본 명세서의 실시예들은 컴포넌트들 사이의 하나 이상의 버스 기반 인터커넥트들 그 리고/또는 컴포넌트들 사이의 하나 이상의 점대점 인터커넥트들을 포함할 수 있다. 본 발명의 실시예들은 또한, 하나 이상의 프로세서들에 의해 판독 및 실행될 수 있는 기계 판독 가능한 유형의(tangible) 매체에 저장 된 명령어들로서 구현될 수 있다. 기계 판독 가능한 유형의 매체는, 정보를 기계(예컨대, 컴퓨팅 디바이스)에 의해 판독 가능한 형태로 저장 또는 송신하기 위한 임의의 유형의 메커니즘을 포함할 수 있다. 예컨대, 기계 판독 가능한 유형의 매체는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 스토리지 매체, 광 학 스토리지 매체, 플래시 메모리 디바이스, 및 다른 유형의 매체들을 포함할 수 있다. 이제 도 1을 참조하면, 데이터 전달 혼잡을 검출하고 감소시키기 위한 시스템(100)은 소스 또는 서버 컴퓨팅 디 바이스(102) 및 수신 또는 클라이언트 컴퓨팅 디바이스 그룹(104)을 포함한다. 컴퓨팅 디바이스들(102, 104)은 액세스 포인트(108)를 통해 네트워크(106) 상에서 서로 통신 가능하도록 연결된다. 소스 컴퓨팅 디바이스(10 2)는 본원에 설명한 기능들을 수행할 수 있는 임의의 종류의 컴퓨팅 디바이스로서 구현될 수 있다. 예컨대, 일 부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 인터넷 디바이스(MID), 또는 다른 네트워크 가능 컴퓨팅 디바이스로서 구현될 수 있다. 컴퓨팅 디바이스 그룹(104)은 하나 이상의 싱크 컴퓨팅 디바이스(들)(112) 및 추가적인 컴퓨팅 디바이스들(11 4)을 포함하는 복수의 컴퓨팅 디바이스들(110)을 포함한다. 아래에 더 상세히 논의되는 것과 같이, 네트워크 (106)의(즉, 액세스 포인트(108)의) 혼잡의 양을 측정하기 위해 소스 컴퓨팅 디바이스(102)로부터 인터넷 제어 메시지 프로토콜(ICMP) 패킷들을 수신하도록 하나 이상의 싱크 컴퓨팅 디바이스(들)(112)이 컴퓨팅 디바이스 (110)로부터 선택된다. 싱크 컴퓨팅 디바이스(들)(112)은 무작위로 선택될 수 있거나, 또는 신호 품질 측정과 같은 일부 기준들에 기초하여 선택될 수 있다. 소스 컴퓨팅 디바이스(102)와 유사하게, 컴퓨팅 디바이스들(110) 각각은 본원에 설명한 기능들을 수행할 수 있 는 임의의 종류의 컴퓨팅 디바이스로서 구현될 수 있다. 예컨대, 컴퓨팅 디바이스들(110) 각각은 데스크톱 컴 퓨터, 랩톱 컴퓨터, 모바일 인터넷 디바이스(MID), 또는 다른 네트워크 가능 컴퓨팅 디바이스로서 구현될 수 있 다. 액세스 포인트(108)는 컴퓨팅 디바이스들(102, 110) 사이의 통신을 용이하게 한다. 액세스 포인트(108)는 컴퓨 팅 디바이스들(102, 110)을 통신 가능하도록 연결시킬 수 있는 유선 또는 무선 라우터, 스위치, 허브, 또는 다 른 네트워크 통신 디바이스와 같은 임의의 종류의 유선 또는 무선 네트워크 통신 라우팅 디바이스로서 구현될 수 있다. 일부 실시예들에서, 액세스 포인트(108)는 또한 통신 링크(124)를 통해 외부 네트워크(130)에 통신 - 6 -
가능하도록 연결된다. 네트워크(130)는, 로컬 영역 네트워크, 광역 네트워크, 공개적으로 사용 가능한 글로벌 네트워크(예컨대, 인터넷), 또는 다른 네트워크와 같은 임의의 종류의 유선 및/또는 무선 네트워크로서 구현될 수 있다. 유사하게, 통신 링크(124)는, 예컨대 임의의 수의 유선 또는 물리 연결들, 전선들, 케이블들, 및/또 는 다른 인터커넥트 링크들 또는 통로들과 같은, 액세스 포인트(108)와 외부 네트워크(130) 사이의 통신을 용이 하게 할 수 있는 임의의 종류의 유선 또는 무선 통신 링크로서 구현될 수 있다. 추가적으로, 네트워크(130)는 컴퓨팅 디바이스들(102, 110)과 원격 컴퓨팅 디바이스들 사이의 통신을 용이하게 하기 위한 라우터들, 스위치들, 개입 컴퓨터들 등과 같은 임의의 수의 추가적인 디바이스들을 포함할 수 있다. [0012] [0013] [0014] [0015] [0016] 일부 실시예들에서, 소스 컴퓨팅 디바이스(102) 및 컴퓨팅 디바이스 그룹(104)은 하나의 방에 위치하거나, 또는 다른 방법으로 서로 근거리에 있다. 예컨대, 한 특정한 실시예에서, 시스템(100)은 교실 내에 통합된다. 그러 한 실시예들에서, 소스 컴퓨팅 디바이스(102)는 교사의 또는 강사의 컴퓨팅 디바이스로서 구현될 수 있으며, 컴 퓨팅 디바이스들(110)은 학생의 컴퓨팅 디바이스들로 구현될 수 있다. 물론, 시스템(100)은 일대다 데이터 송 신들이 요구되는 다른 환경들 또는 구현들에서 또한 사용될 수 있다. 사용에서, 소스 컴퓨팅 디바이스(102)(또는 시스템(100)의 다른 컴포넌트)는 액세스 포인트(108) 및 네트워크 (106)의 데이터 트래픽 혼잡을 모니터링하고, 그것의 데이터 레이트를 그에 따라 조정하도록 구성된다. 그렇게 하기 위해, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스(들)(112)에 인터넷 제어 메시지 프로토콜(ICM P)을 송신하고, 인터넷 제어 메시지 프로토콜(ICMP)에 응답하여 싱크 컴퓨팅 디바이스(들)(112)로부터 응답을 수신하기 위한 왕복 시간 값을 측정한다. 소스 컴퓨팅 디바이스(102)는 네트워크 혼잡 모니터링 기능을 수행하 는 것으로 설명되었으나, 다른 실시예들에서 시스템(100)의 다른 컴포넌트들이 그러한 모니터링 작업들을 수행 할 수 있다는 것이 인식될 것이다. 예컨대, 다른 실시예들에서, 컴퓨팅 디바이스들(110) 중 하나는 네트워크 혼잡 모니터링을 수행하고, 네트워크 혼잡도를 시스템(100)의 다른 디바이스들(소스 컴퓨팅 디바이스(102)를 포 함하는)에 보고할 수 있다. 왕복 시간 값에 기초하여, 소스 컴퓨팅 디바이스(102)는 그것의 데이터 레이트를 증가시키거나, 그것의 데이터 레이트를 유지하거나, 또는 그것의 데이터 레이트를 감소시키도록 구성된다. 예컨대, 왕복 시간 값이 미리 결 정된 역치 값보다 작으면, 소스 컴퓨팅 디바이스(102)는 액세스 포인트(108)가 지나치게 혼잡하지 않다고 결정 한다. 그에 응답하여, 소스 컴퓨팅 디바이스(102)는 데이터 레이트를 증가시킨다. 데이터 레이트는 선형적으 로, 지수적으로, 또는 일부 다른 등식 또는 알고리즘에 따라 증가될 수 있다. 그러나, 왕복 시간 값이 미리 결 정된 역치 값보다 크다면, 소스 컴퓨팅 디바이스(102)는 액세스 포인트(108)가 혼잡하다고 결정한다. 그에 응 답하여, 소스 컴퓨팅 디바이스(102)는 최고 데이터 레이트를 감소시킨다. 추가적으로, 소스 컴퓨팅 디바이스 (102)는 최고 데이터 레이트에 기초하여 또는 의존하여 현재의 데이터 레이트를 감소시킨다. 예컨대, 아래에 더 상세히 논의된 것과 같이, 데이터 레이트는 새로운 시작 데이터 레이트가 시간에 따라 최고 데이터 레이트에 가깝게 증가되도록 중간점 계산식에 따라 감소될 수 있다. 최고 데이터 레이트는 고정된 양만큼 감소되거나, 예컨대 10 퍼센트 감소와 같은 백분율 양에 기초하여 감소될 수 있다. 이러한 방식으로, 소스 컴퓨팅 디바이스 (102)는 최고 데이터 레이트에 지속적으로 "부딪치지" 않음과 동시에 액세스 포인트(108)의 지나친 혼잡을 야기 하지 않는 사용 가능한 최고 데이터 레이트를 탐색한다. 즉, 아래에서 도 5에 관해 더 상세히 논의한 것과 같 이, 시작 데이터 레이트 및 최고 데이터 레이트 양쪽 모두는 시간에 따라 로컬 "최적" 데이터 레이트에 가깝게 조정된다. 이제 도 2를 참조하면, 일 실시예에서, 컴퓨팅 디바이스들(102, 110) 각각은 프로세서(200), 칩셋(204), 및 메 모리(202)를 포함한다. 컴퓨팅 디바이스들(102, 110)은 본원에 설명된 각각의 기능들을 수행할 수 있는 임의의 종류의 컴퓨팅 디바이스들로서 구현될 수 있다. 예컨대, 상기 논의한 것과 같이, 컴퓨팅 디바이스들(102, 11 0)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 인터넷 디바이스(MID), 또는 다른 네트워크 가능 컴퓨팅 디바이스 들로서 구현될 수 있다. 프로세서(200)는 프로세서 코어(206)를 갖는 싱글 코어 프로세서로서 예시적으로 구현된다. 그러나, 다른 실시 예들에서, 프로세서(200)는 복수의 프로세서 코어들(206)을 갖는 멀티 코어 프로세서로서 구현될 수 있다. 추 가적으로, 컴퓨팅 디바이스들(102, 110)은 하나 이상의 프로세서 코어들(206)을 갖는 추가적인 프로세서들(20 0)을 포함할 수 있다. 프로세서(200)는 복수의 신호 경로들(208)을 통해 칩셋(204)에 통신 가능하도록 연결된 다. 신호 경로들(208)은 프로세서(200)와 칩셋(204) 사이의 통신을 용이하게 할 수 있는 임의의 종류의 신호 경로들로서 구현될 수 있다. 예컨대, 신호 경로들(208)은 임의의 수의 버스 경로들, 인쇄 회로 보드 트레이스 들, 전선들, 비아들, 개입 디바이스들, 및/또는 다른 인터커넥트들로서 구현될 수 있다. - 7 -
[0017] [0018] [0019] [0020] [0021] [0022] [0023] 메모리(202)는, 예컨대 동적 랜덤 액세스 메모리 디바이스들(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트 동기식 DRAM(DDR SDRAM), 및/또는 다른 휘발성 메모리 디바이스들을 포함하는 하나 이상의 메모리 디바이스들 또는 데이터 스토리지 위치들로서 구현될 수 있다. 추가적으로, 도 2에는 하나의 메모리 디바이스(202)만 예시 되지만, 다른 실시예들에서 컴퓨팅 디바이스들(102, 110)은 추가적인 메모리 디바이스들을 포함할 수 있다. 칩셋(204)은 메모리 컨트롤러 허브(MCH) 또는 노스브리지(northbridge), 입/출력 컨트롤러 허브(ICH) 또는 사우 스브리지(southbridge), 및 펌웨어 디바이스를 포함할 수 있다. 그러한 실시예들에서, 펌웨어 디바이스는 BIOS(Basic Input/Output System) 데이터 및/또는 명령어들 및/또는 다른 정보를 저장하기 위한 메모리 스토리 지 디바이스로서 구현될 수 있다. 칩셋(204)은 다수의 신호 경로들(210)을 통해 메모리(202)에 통신 가능하도 록 연결된다. 신호 경로들(208)과 유사하게, 신호 경로들(210)은 예컨대 임의의 수의 버스 경로들, 인쇄 회로 보드 트레이스들, 전선들, 비아들, 개입 디바이스들, 및/또는 다른 인터커넥트들과 같은, 칩셋(204)과 메모리 디바이스(202) 사이의 통신을 용이하게 할 수 있는 임의의 종류의 신호 경로들로서 구현될 수 있다. 다른 실시예들에서, 칩셋(204)은 플랫폼 컨트롤러 허브(PCH)로서 구현될 수 있다. 그러한 실시예들에서, 메모 리 컨트롤러 허브(MCH)는 프로세서(200) 내에 통합되거나 또는 프로세서(200)와 다른 방법으로 연관될 수 있다. 추가적으로, 그러한 실시예들에서, 메모리 디바이스(202)는 다수의 신호 경로들(212)을 통해 칩셋(204)보다는 (즉, 플랫폼 컨트롤러 허브보다는) 프로세서(200)에 통신 가능하도록 연결될 수 있다. 신호 경로들(208)과 유 사하게, 신호 경로들(212)은, 예컨대 임의의 수의 버스 경로들, 인쇄 회로 보드 트레이스들, 전선들, 비아들, 개입 디바이스들, 및/또는 다른 인터커넥트들과 같은, 메모리 디바이스(202)와 프로세서(200) 사이의 통신을 용 이하게 할 수 있는 임의의 종류의 신호 경로들로서 구현될 수 있다. 컴퓨팅 디바이스들(102, 110)은 또한 네트워크(106) 상에서 서로 통신하기 위한 통신 회로(220)를 포함한다. 통신 회로(220)는 컴퓨팅 디바이스들(102, 110) 사이의 통신들을 가능하게 하기 위한 임의의 수의 디바이스들 및 회로로서 구현될 수 있다. 예컨대, 통신 회로(220)는 액세스 포인트(108)를 통해 다른 컴퓨팅 디바이스들 (102, 110)과 통신하기 위한 하나 이상의 유선 또는 무선 네트워크 인터페이스 카드들(NICs) 또는 다른 네트워 크 통신 카드들, 모듈들, 또는 회로들로서 구현될 수 있다. 컴퓨팅 디바이스들(102, 110)은 또한 데이터 스토리지(222), 디스플레이 디바이스(224), 및 다른 주변 디바이스 들(226)과 같은 추가적인 주변 디바이스들을 포함할 수 있다. 통신 회로(220), 데이터 스토리지(222), 디스플 레이 디바이스(224), 및 다른 주변 디바이스들(226) 각각은 신호 경로들(230)을 통해 칩셋(204)에 통신 가능하 도록 연결된다. 신호 경로들(208)과 유사하게, 신호 경로들(230)은, 예컨대 임의의 수의 버스 경로들, 인쇄 회 로 보드 트레이스들, 전선들, 비아들, 개입 디바이스들, 및/또는 다른 인터커넥트들과 같은, 칩셋(204)과 통신 회로(220), 데이터 스토리지(222), 디스플레이 디바이스(224), 및 다른 주변 디바이스들(226) 사이의 통신을 용 이하게 할 수 있는 임의의 종류의 신호 경로들로서 구현될 수 있다. 데이터 스토리지 디바이스(들)(222)는, 예컨대 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라 이브들, 솔리드 스테이트 드라이브, 또는 다른 데이터 스토리지 디바이스들과 같은, 데이터의 단기간 또는 장기 간 저장을 위해 구성된 임의의 종류의 디바이스들로서 구현될 수 있다. 디스플레이 디바이스(224)는, 예컨대 액정 디스플레이(LCD), 음극선관(CRT) 디스플레이, 발광 다이오드(LED) 디스플레이, 또는 다른 디스플레이 디바 이스와 같은, 데이터를 컴퓨팅 디바이스들(102, 110)의 사용자에게 디스플레이하기 위한 임의의 종류의 디스플 레이 디바이스로서 구현될 수 있다. 주변 디바이스들(226)은 입력 디바이스들, 출력 디바이스들, 및 다른 인터 페이스 디바이스들을 포함하는 임의의 수의 추가적인 주변 디바이스들을 포함할 수 있다. 예컨대, 주변 디바이 스들(226)은 컴퓨팅 디바이스(102, 110)에 입력을 제공하기 위한 키보드 및/또는 마우스를 포함할 수 있다. 주 변 디바이스들(226)에 포함된 디바이스들의 상세한 수 및 종류는, 예컨대 컴퓨팅 디바이스(102, 110)의 의도된 사용에 의존할 수 있다. 이제 도 3을 참조하면, 시스템(100)의 액세스 포인트(108) 내의 데이터 전달 혼잡을 검출하고 감소시키기 위한 방법(300)이 소스 컴퓨팅 디바이스(102)에 의해 실행될 수 있다. 방법(300)은 컴퓨팅 디바이스 그룹(104)이 소 스 컴퓨팅 디바이스(102)에 의해 결정되는 블록(302)으로 시작된다. 그렇게 하기 위해, 컴퓨팅 디바이스들 (110) 각각은, 소스 컴퓨팅 디바이스(102)가 각각의 컴퓨팅 디바이스(110)의 네트워크 어드레스(예컨대, MAC 어 드레스)에 액세스할 수 있도록 컴퓨팅 디바이스(102)에 등록할 수 있다. 그러한 등록은 수동적으로 또는 자동 적으로 수행될 수 있다. 예컨대, 일부 실시예들에서, 컴퓨팅 디바이스들(110)의 네트워크 어드레스들은 소스 컴퓨팅 디바이스(102)에 수동적으로 입력되고 그 안(예컨대, 메모리(202) 및/또는 데이터 스토리지(222) 안)에 저장될 수 있다. 대안적으로, 소스 컴퓨팅 디바이스(102)는 각각의 컴퓨팅 디바이스(110)가 그것의 네트워크 - 8 -
어드레스를 소스 컴퓨팅 디바이스(102)에 송신하도록 신호를 보내거나 또는 다른 방법으로 요청할 수 있다. 어 쨌든, 블록(302)에서 컴퓨팅 디바이스들(110) 각각이 소스 컴퓨팅 디바이스(102)에 등록된다. [0024] [0025] [0026] [0027] [0028] 블록(304)에서, 소스 컴퓨팅 디바이스(102)는 컴퓨팅 디바이스들(110) 중 하나 이상을 싱크 컴퓨팅 디바이스(들)(112)로서 선택한다. 위에서 논의된 것과 같이, 싱크 컴퓨팅 디바이스(112)는, 아래에 더 상세히 논의된 왕복 시간 값에 기초하여 소스 컴퓨팅 디바이스(102)가 액세스 포인트(108)의 현재의 데이터 전달 혼잡 을 결정하기 위해 인터넷 제어 메시지 프로토콜(ICMP) 패킷을 송신할 선택된 컴퓨팅 디바이스이다. 소스 컴퓨 팅 디바이스(102)는 임의의 적합한 방법 또는 알고리즘을 사용하여 컴퓨팅 디바이스들(110)로부터 싱크 컴퓨팅 디바이스(112)를 선택할 수 있다. 예컨대, 일 실시예에서, 소스 컴퓨팅 디바이스(102)는 적합한 무작위 생성 알고리즘을 사용하여 컴퓨팅 디바이스들(110)로부터 싱크 컴퓨팅 디바이스(112)를 무작위로 선택할 수 있다. 대안적으로, 소스 컴퓨팅 디바이스(102)는 각각의 컴퓨팅 디바이스(110)와 연관된 일부 기준 또는 데이터에 기 초하여 싱크 컴퓨팅 디바이스(112)를 선택할 수 있다. 예컨대, 일 실시예에서, 소스 컴퓨팅 디바이스(102)는 각각의 컴퓨팅 디바이스(110)의 수신된 신호 강도 표시(RSSI) 측정, 각각의 컴퓨팅 디바이스(110)의 신호 대 잡 음 비율(SNR) 측정, 또는 통신 품질에 연관된 일부 다른 측정 등에 기초하여 컴퓨팅 디바이스들(110)로부터 싱 크 컴퓨팅 디바이스(112)를 선택하도록 구성된다. 그러한 실시예들에서, 컴퓨팅 디바이스들(110)은, 블록(30 2)에서의 컴퓨팅 디바이스 그룹의 등록 동안 그러한 측정 조건들을 소스 컴퓨팅 디바이스로 송신하도록 구성될 수 있다. 대안적으로, 그러한 측정들은 각각의 컴퓨팅 디바이스(110)에 대해 수동적으로 결정될 수 있다. 그 러한 실시예들에서, 싱크 컴퓨팅 디바이스(112)는 그러한 측정들에 기초하여 수동적으로 선택될 수 있다. 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스(112)를 한 번 또는 여러 번 선택할 수 있다. 예컨대, 일부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 컴퓨팅 세션마다, 또는 주기적으로(예컨대, 매시간, 매일, 매주 등) 싱크 컴퓨팅 디바이스(112)를 재선택하도록 구성될 수 있다. 추가적으로, 일부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 일부 조건 또는 측정에 기초하여 컴퓨팅 디바이스들(110)로부터 싱크 컴퓨팅 디바이스(112)를 재선택하도록 구성될 수 있다. 예컨대, 소스 컴퓨팅 디바이스(102)는 RSSI, SNR, 또는 다른 신호 측정이 일부 미리 결정된 역치보다 높게 증가할 때; 싱크 컴퓨팅 디바이스(112)로부터 수신한 재송신 요청들의 레이트가 일 부 미리 결정된 역치보다 낮게 감소할 때; 등의 경우 싱크 컴퓨팅 디바이스(112)를 재선택할 수 있다. 이러한 방식으로, 소스 컴퓨팅 디바이스(102)는 최저값, 또는 최저값들 중 하나의 RSSI, SNR, 또는 다른 신호 측정들을 갖는 컴퓨팅 디바이스(110)가 싱크 컴퓨팅 디바이스(112)로 선택되는 것을 보증할 수 있다. 추가적으로, 소스 컴퓨팅 디바이스(102)는 컴퓨팅 디바이스들(110)로부터 하나의 또는 복수의 싱크 컴퓨팅 디바이스들(112)을 선 택할 수 있다. 복수의 싱크 컴퓨팅 디바이스들(112)이 선택되는 실시예에서, 소스 컴퓨팅 디바이스(102)는 왕 복 시간 값을 결정하기 위해 인터넷 제어 메시지 프로토콜(ICMP) 패킷들을 싱크 컴퓨팅 디바이스들(112) 각각에 송신하도록 구성된다. 블록(306)에서, 소스 컴퓨팅 디바이스(102)는 초기 또는 시작 데이터 레이트, 및 최고(peak) 또는 최대 (maximum) 데이터 레이트를 구축한다. 그렇게 하기 위해, 소스 컴퓨팅 디바이스(102)는 간단히 초기 및 최고 데이터 레이트를 미리 결정된 양으로 설정할 수 있다. 초기 데이터 레이트는 소스 컴퓨팅 디바이스(102)가 데 이터를 컴퓨팅 디바이스들(110)에 송신(예컨대, 멀티캐스팅)하기 시작할 때의 데이터 레이트이다. 아래 논의되 는 것과 같이, 최고 데이터 레이트는 데이터 전달 혼잡 전에 최대 데이터 레이트를 추적하고, 새로운 데이터 레 이트를 결정하기 위해 사용된다. 블록(306)에서 초기 데이터 레이트 및 최고 데이터 레이트가 구축되거나 다른 방법으로 결정된 후, 블록(308)에 서 소스 컴퓨팅 디바이스(102)가 현재의 데이터 레이트(처음에는 시작 데이터 레이트와 같음)를 사용하여 데이 터를 컴퓨팅 디바이스들(110)에 송신하기 시작한다. 블록(308)에서 데이터를 컴퓨팅 디바이스들(110)에 송신함 과 동시에, 블록(310)에서 소스 컴퓨팅 디바이스(102)가 네트워크 혼잡을 모니터링하도록 구성된다. 소스 컴퓨 팅 디바이스(102)는 네트워크 혼잡(즉, 액세스 포인트(108)의 데이터 전달 혼잡)을 주기적으로, 임의의 간격으 로, 또는 실질적으로 항상 모니터링할 수 있다. 그렇게 하기 위해, 블록(312)에서 소스 컴퓨팅 디바이스(102) 는 싱크 컴퓨팅 디바이스(들)(112)에 송신되는 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 왕복 시간 값을 결정한다. 즉, 소스 컴퓨팅 디바이스(102)는 인터넷 제어 메시지 프로토콜(ICMP) 패킷을 싱크 컴퓨팅 디바이스 (들)(112)에 송신하고, 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 응답하여 싱크 컴퓨팅 디바이스(들)(112)로 부터 응답을 수신할 때까지 경과한 시간을 측정한다. 왕복 시간 값은 경과한 시간과 같다. 그러나, 일부 실시 예들에서, 미리 결정된 최대 시간 기간 내에 싱크 컴퓨팅 디바이스(들)(112)로부터의 응답이 수신되지 않는다면, 왕복 시간 값은 최대 값으로 설정될 수 있다. 왕복 시간 값은 시스템(100)의 액세스 포인트(108) 및/또는 다른 컴포넌트들의 데이터 전달 혼잡의 측정임을 인 - 9 -
식해야 한다. 이와 같이, 왕복 시간 값의 더 높은 값들은 더 많은 양의 혼잡을 나타낸다. 블록(314)에서, 소 스 컴퓨팅 디바이스(102)는 측정된 왕복 시간 값이 역치 값보다 큰지의 여부를 결정한다. 역치 값은 미리 결정 되고 그리고/또는 시간에 따라 조정될 수 있다. 왕복 시간 값이 역치 값보다 작다면, 블록(316)에서 현재의 데 이터 레이트가 증가된다. 즉, 블록(308)에서 데이터를 컴퓨팅 디바이스들(110)에 송신하기 위해 소스 컴퓨팅 디바이스(102)에 의해 사용되는 데이터 레이트가 블록(316)에서 증가된다. 현재의 데이터 레이트는 시간에 관 해 선형적으로 또는 비선형적으로 증가될 수 있다. 예컨대, 일부 실시예들에서, 데이터 레이트는 미리 결정된, 고정된 양만큼 증가될 수 있다. 대안적으로, 데이터 레이트는 시간에 따라 지수적으로 증가될 수 있다. 추가 적으로, 블록(318)에서, 최고 데이터 레이트가 현재의 데이터 레이트로 설정된다. 이러한 방식으로, 가벼운 데 이터 트래픽 혼잡 동안 최고 데이터 레이트가 현재의 데이터 레이트를 추적한다. [0029] [0030] [0031] [0032] [0033] 블록(314)을 다시 참조하여, 왕복 시간 값이 역치 값보다 크다면, 블록(320)에서 최고 데이터 레이트가 감소된 다. 그렇게 하기 위해, 최고 데이터 레이트는 미리 결정된, 고정된 양, 백분율 양, 또는 다른 양만큼 감소될 수 있다. 하나의 특정한 실시예에서, 블록(320)에서 최고 데이터 레이트는 약 10 퍼센트만큼 감소된다(즉, 새 로운 최고 데이터 레이트는 현재의 최고 데이터 레이트의 90 퍼센트임). 일부 실시예들에서, 도 4에 관해 아래 에서 더 상세히 논의되는 것과 같이, 최고 데이터 레이트는 미리 결정된 시간 기간 동안만 감소된다. 이와 같 이, 얼마간의 시간 후, 소스 컴퓨팅 디바이스(102)가 새로운 로컬 최대 데이터 레이트를 다시 탐색할 수 있도록, 최고 데이터 레이트는 더 이상 감소되지 않을 수 있다. 블록(322)에서, 현재의 데이터 레이트가 또한 감소된다. 일부 실시예들에서, 현재의 데이터 레이트는 고정된 양, 백분율 값 등만큼 감소될 수 있다. 하나의 특정한 실시예에서, 현재의 데이터 레이트는 이전의 시작 값과 현재의 최고 데이터 레이트 사이의 중간점 데이터 레이트 값으로 감소된다. 그렇게 하기 위해, 소스 컴퓨팅 디 바이스(102)는 현재의 최고 데이터 레이트와, 초기에 0 또는 다른 초기 값으로 설정될 수 있는 이전에 결정된 중간점 데이터 레이트를 합함으로써 새로운 중간점 데이터 레이트를 계산할 수 있다. 새로운 중간점 데이터 레 이트를 결정하기 위해, 최고 데이터 레이트와 이전의 중간점 데이터 레이트의 합이 2로 나누어진다. 현재의 데 이터 레이트는 새롭게 결정된 중간점 데이터 레이트로 설정되며, 이는 그 후 후속의 계산들에서 이전의 중간점 데이터 레이트로서 사용된다. 이러한 방식으로, 현재의 데이터 레이트는 새로운 시작 값으로 감소되며, 새로운 시작 값 자체는 시간에 따라 증가된다. 예컨대, 도 5에 예시된 것과 같이, 데이터 레이트(502)는, 현재의 액세 스 포인트 혼잡 값(514)보다 낮은 로컬 "최적의" 데이터 레이트(512)를 얻을 때까지 로컬 최고 데이터 레이트 (504)로 증가되고, 로컬 중간점 데이터 레이트(506)로 감소되고, 다른 로컬 최고 데이터 레이트(508)로 증가되 고, 로컬 중간점 데이터 레이트(510)로 다시 감소되는 것 등을 반복할 수 있다. 이제 도 4를 참조하면, 다른 실시예에서, 소스 컴퓨팅 디바이스(102)는 시스템(100)의 액세스 포인트(108) 내의 데이터 전달 혼잡을 검출하고 감소시키기 위한 방법(400)을 실행할 수 있다. 방법(400)은, 예컨대 도 3에 관해 위에서 설명한 방법(300)의 블록들(306 및 310) 대신에 실행될 수 있다. 방법(400)은, 소스 컴퓨팅 디바이스 (102)가 초기 또는 시작 데이터 레이트, 최고 또는 최대 데이터 레이트, 데이터 레이트 역치 값들(블록들(410, 416, 및 420)에 대해 아래를 참조하라), 및 최고 회피 기간(peak avoidance period)을 구축하는 블록(402)으로 시작된다. 블록(306)과 유사하게, 블록(402)에서 초기 데이터 레이트, 최고 데이터 레이트, 역치 값들, 및 최 고 회피 기간 각각이 초기 값들로 설정될 수 있다. 위에서 논의된 것과 같이, 초기 데이터 레이트는 소스 컴퓨 팅 디바이스(102)가 데이터를 컴퓨팅 디바이스들(110)에 송신(예컨대, 멀티캐스팅)하기 시작할 때의 데이터 레 이트이다. 하기 논의된 것과 같이, 최고 데이터 레이트는 데이터 전달 혼잡 전에 최대 데이터 레이트를 추적하 고, 새로운 데이터 레이트를 결정하기 위해 사용된다. 데이터 레이트 역치 값들은 네트워크 혼잡도 및 그에 대 한 응답들을 결정하기 위해 사용된다. 방법(300)의 블록(320)에 관하여 위에서 논의된 것과 같이, 최고 회피 기간은 많은 양의 네트워크 혼잡이 검출되는 경우 최고 데이터 레이트가 감소되는 시간의 길이를 정의한다. 블록들(404 내지 408)에서, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스(들)(112)에 송신된 인터넷 제어 메시지 프로토콜(ICMP) 패킷에 대한 왕복 시간 값을 결정한다. 그렇게 하기 위해, 블록(404)에서, 소스 컴퓨팅 디바이스(102)는 인터넷 제어 메시지 프로토콜(ICMP) 패킷을 싱크 컴퓨팅 디바이스(들)(112)에 송신한다. 블록 (406)에서, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스(들)(112)로부터 인터넷 제어 메시지 프로토콜 (ICMP) 패킷에 응하는 응답을 수신한다. 블록(408)에서, 소스 컴퓨팅 디바이스(102)는 인터넷 제어 메시지 프 로토콜(ICMP) 패킷의 송신과 싱크 컴퓨팅 디바이스(들)(112)로부터의 응답의 수신 사이에 경과한 시간을 측정함 으로써 왕복 시간 값을 결정한다. 미리 결정된 최대 시간 기간 내에 싱크 컴퓨팅 디바이스(들)(112)로부터 응 답이 수신되지 않는다면, 왕복 시간 값은 최대값으로 설정될 수 있다. 후속으로, 블록들(410, 416, 및 420)에서, 소스 컴퓨팅 디바이스(102)는 왕복 시간 값을 복수의 역치 값들과 비 - 10 -
교하고, 그에 응답하여 하나 이상의 동작들을 수행한다. 예컨대, 블록(410)에서, 소스 컴퓨팅 디바이스(102)는 측정된 왕복 시간 값이 낮은 네트워크 혼잡을 나타내도록 선택될 수 있는 낮은 역치 값보다 작은지의 여부를 결 정한다. 왕복 시간 값이 낮은 역치 값보다 작다면, 블록(412)에서 현재 데이터 레이트가 증가된다. 즉, 블록 (412)에서, 데이터를 컴퓨팅 디바이스들(110)에 송신하기 위해 소스 컴퓨팅 디바이스(102)에 의해 사용되는 데 이터 레이트가 증가된다. 현재 데이터 레이트는 시간에 대해 선형적으로 또는 비선형적으로 증가될 수 있다. 예컨대, 일부 실시예들에서, 데이터 레이트는 미리 결정된, 고정된 양만큼 증가될 수 있다. 대안적으로, 데이 터 레이트는 시간에 걸쳐 지수적으로 증가될 수 있다. 추가적으로, 블록(414)에서, 최고 데이터 레이트가 현재 데이터 레이트로 설정된다. 이 방식으로, 도 3 및 5에 대해 위에서 논의한 것과 같이, 최고 데이터 레이트는 가벼운 데이터 트래픽 혼잡 동안 현재 데이터 레이트를 추적한다. [0034] [0035] [0036] [0037] 블록(416)을 다시 참조하면, 측정된 왕복 시간 값이 낮은 역치 값보다 크고 높은 역치 값보다 작다면, 블록 (418)에서 소스 컴퓨팅 디바이스(102)는 데이터 레이트를 현재 데이터 레이트에 유지하고, 최고 데이터 레이트 를 그것의 현재 값에 유지한다. 그러나, 블록(420)에서, 소스 컴퓨팅 디바이스(102)가 측정된 왕복 시간 값이 높은 역치 값보다 크다고 결정하면, 방법(400)은 블록(422)으로 진행된다. 블록(422)에서, 소스 컴퓨팅 디바이 스(102)는 최고 회피 기간이 끝났는지의 여부를 결정한다. 끝나지 않았다면, 블록(424)에서 최고 데이터 레이 트가 감소된다. 그렇게 하기 위해, 최고 데이터 레이트는 미리 결정된, 고정된 양, 백분율 양, 또는 다른 양만 큼 감소될 수 있다. 하나의 특정한 실시예에서, 블록(424)에서 최고 데이터 레이트가 약 10 퍼센트만큼 감소된 다(즉, 새로운 최고 데이터 레이트는 현재 최고 데이터 레이트의 90 퍼센트이다). 그러나, 최고 회피 기간이 끝났다면, 방법은 블록(426)으로 진행되며 최고 데이터 레이트는 감소되지 않는다. 최고 회피 기간은 주기적으 로 또는 최고 데이터 레이트가 미리 결정된 시간 기간 동안 현재 레이트에 유지되는 것에 응답하여 재시작될 수 있다는 것을 인식해야 한다. 블록(426)에서, 현재 데이터 레이트가 또한 감소된다. 일부 실시예들에서, 현재 데이터 레이트는 고정된 양, 퍼센트 값 등만큼 감소될 수 있다. 하나의 특정 실시예에서, 현재 데이터 레이트는 이전의 시작 값과 현재 최 고 데이터 레이트 사이의 중간점 데이터 레이트 값으로 감소된다. 그렇게 하기 위해, 소스 컴퓨팅 디바이스 (102)는 현재 최고 데이터 레이트와, 초기에 0 또는 다른 초기값으로 설정될 수 있는 이전에 결정된 중간점 데 이터 레이트를 합함으로써 새로운 중간점 데이터를 계산할 수 있다. 새로운 중간점 데이터 레이트를 결정하기 위해, 최고 데이터 레이트와 이전의 중간점 데이터 레이트의 합이 2로 나누어질 수 있다. 현재의 데이터 레이 트는 새롭게 결정된 중간점 데이터 레이트로 설정되며, 이는 그 후 후속의 계산들에서 이전의 중간점 데이터 레 이트로서 사용된다. 이러한 방식으로, 도 5에서 예시되고 도 3에 관해 위에서 논의한 것과 같이, 현재의 데이 터 레이트는 새로은 시작 값으로 감소되며, 새로운 시작 값 자체는 시간에 따라 증가된다. 위에서 상세하게 논 의된 것과 같이, 방법(400)은 후속으로 네트워크의 혼잡의 양을 다시 측정하고 그에 따라 응답하기 위해 블록 (404)로 되돌아간다. 시스템(100) 및 방법들(300, 400)은 데이터 전달 혼잡을 검출하고 감소시키기 위해 인터넷 제어 메시지 프로토 콜(ICMP) 패킷들을 사용하는 것으로 위에서 설명되었으나, 다른 실시예들에서 다른 통신 프로토콜들이 사용될 수 있다는 것을 인식해야 한다. 예컨대, 일부 실시예들에서, 위에서 논의된 것과 유사한 방식으로 액세스 포인 트(108)의 데이터 전달 혼잡을 결정하고 감소시키기 위해, 다른 사용자 데이터그램 프로토콜(UDP) 패킷들이 소 스 컴퓨팅 디바이스(102)(또는 시스템(100)의 다른 컴퓨팅 디바이스)에 의해 사용될 수 있다. 본 명세서는 도면들 및 전술한 설명에서 예시되고 상세히 설명되었으나, 그러한 예시 및 설명은 그 특성에 있어 서 예시적이고 제한적이지 않은 것으로 간주되어야 하며, 단지 예시적인 실시예들만이 도시되고 설명되었고 본 명세서의 진의 내에 있는 모든 변경 및 변형들이 보호되는 것이 요구된다는 것은 말할 것도 없다. - 11 -
도면 도면1-12 -
도면2 도면3-13 -
도면4-14 -
도면5-15 -