KR20170110621A - WiFi 미라캐스트에서의 스케일러블 멀티미디어 데이터 배포를 위한 피어-지원 애플리케이션 레벨 피드백에 의한 중앙집중형 애플리케이션 레벨 멀티캐스팅 - Google Patents

WiFi 미라캐스트에서의 스케일러블 멀티미디어 데이터 배포를 위한 피어-지원 애플리케이션 레벨 피드백에 의한 중앙집중형 애플리케이션 레벨 멀티캐스팅 Download PDF

Info

Publication number
KR20170110621A
KR20170110621A KR1020177021698A KR20177021698A KR20170110621A KR 20170110621 A KR20170110621 A KR 20170110621A KR 1020177021698 A KR1020177021698 A KR 1020177021698A KR 20177021698 A KR20177021698 A KR 20177021698A KR 20170110621 A KR20170110621 A KR 20170110621A
Authority
KR
South Korea
Prior art keywords
unicast
computing device
channel
group
determining
Prior art date
Application number
KR1020177021698A
Other languages
English (en)
Inventor
코스로 모하메드 라비
비자이 나이케르 수브라마니암
파담 랄 카프레
사니게팔리 프라벤쿠마르
파와드 샤우카트
쉬바쿠마르 발라수브라마니암
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170110621A publication Critical patent/KR20170110621A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
    • H04L65/4076
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법들, 디바이스들, 시스템들, 및 비일시성 프로세스-판독가능 저장 매체들. WiFi 미라캐스트 네트워크에서의 소스 컴퓨팅 디바이스의 프로세서는 서비스의 프레임 또는 패킷을 수신하도록 스케쥴링된 모든 싱크 컴퓨팅 디바이스들을 단일 멀티캐스트 그룹으로 그룹화하고 멀티캐스트 프레임 또는 패킷을 싱크 컴퓨팅 디바이스들로 송신할 수도 있다. WiFi 미라캐스트 네트워크에서의 개개의 싱크 컴퓨팅 디바이스들은 소스 컴퓨팅 디바이스와의 그들의 개별 무선 접속들의 품질을 표시하는 에러 로그들을 소스 컴퓨팅 디바이스로 전송하도록 구성될 수도 있다. 소스 컴퓨팅 디바이스는 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들로부터의 미싱 및/또는 수신된 에러 로그들에 적어도 부분적으로 기초하여 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들을 유니캐스트 그룹에 추가할 수도 있다.

Description

WiFi 미라캐스트에서의 스케일러블 멀티미디어 데이터 배포를 위한 피어-지원 애플리케이션 레벨 피드백에 의한 중앙집중형 애플리케이션 레벨 멀티캐스팅{CENTRALIZED APPLICATION LEVEL MULTICASTING WITH PEER-ASSISTED APPLICATION LEVEL FEEDBACK FOR SCALABLE MULTIMEDIA DATA DISTRIBUTION IN WIFI MIRACAST}
관련 출원들
본 출원은 "Centralized Application Level Multicasting With Peer-Assisted Application Level Feedback For Scalable Multimedia Data Distribution In WiFi Miracast" 란 발명의 명칭으로, 2015년 2월 5일에 출원된 미국 가특허 출원번호 제 62/112,574호에 대해 우선권의 이익을 주장하며, 이의 전체 내용들이 본원에 참고로 포함된다.
종래의 무선 매체들 전달 플랫폼들 (예컨대, WiFi 미라캐스트® 수정안 1, 애플 AirPlay®, Wi-Di, 등) 은 동화상 전문가 그룹 (MPEG) 전송 스트림들을 이용하여 고선명 멀티미디어 인터페이스 (HDMI) 매체들 스트림들을 무선으로 모방하도록 대개 착상된다. 예를 들어, 사용자는 스마트폰 상의 버튼을 눌러서 스트리밍 MPEG 포맷 이미지를 하나 이상의 인접한 접속된 모니터들 및/또는 스피커들 상으로 무선으로 투사할 수도 있다.
유니캐스트, 브로드캐스트, 멀티캐스트, 및 피어캐스트, 네트워크 필터링 토폴로지들이 WiFi 미라캐스트® 와 같은, 무선 매체들 전달 플랫폼들에서 사용될 수 있다. 그러나, 수용가능한 서비스 품질 (QoS) 및 체감 품질 (QoE) 을 위해 멀티미디어 데이터를 멀티미디어 서버로부터 다수의 클라이언트들로 전달하는 것은, 서비스 기반구조의 스케일러빌리티에 전적으로 의존하며, 이에 따라서, 무선 매체들 전달 플랫폼들에서의 스케일러블 멀티미디어 데이터 배포는 멀티캐스트를 이용하는 것을 필요로 한다. 저-레이턴시/준-실시간 응답 (예컨대, 고선명 7.1 서라운드 사운드와 같은 멀티-채널-오디오, 멀티-채널-비디오, 등) 을 요구하는 애플리케이션들에 대한, WiFi 및 유니캐스트 성능 불확정성들의 분산 조정 함수 (DCF) 때문에, WiFi 미라캐스트® 와 같은 무선 매체들 전달 플랫폼들에서 다수의 수신기들로의 유니캐스트 전달이 일반적으로 불가능하다. 예를 들어, 비압축된 기저대역 오디오를 다수의 상이한 스피커들로 WiFi 미라캐스트® 를 통해서 전송할 때, 각각의 스피커로의 유니캐스트 송신들을 행하기 위한 대역폭 요건들은 WiFi 미라캐스트® 시스템에서 이용가능한 전체 가용 대역폭을 초과할 수도 있다. 따라서, 멀티캐스트 송신 레이트가 충분할 때, 멀티캐스트는 다수의 수신 디바이스들에 대한 저-레이턴시/준-실시간 응답 (예컨대, 고선명 7.1 서라운드 사운드와 같은 멀티-채널-오디오, 멀티-채널-비디오, 등) 을 요구하는 송신 애플리케이션들에 대한 실행가능한 대안이다.
콘텐츠 전달 네트워크 (CDN), 네트워크 계층 멀티캐스트, 및 P2P 콘텐츠 배포는 멀티미디어 데이터의 그룹 배포에 규칙적으로 사용되는 멀티캐스트 전략들이다. 그러나, 이러한 무선 매체들 전달 플랫폼들에서 멀티캐스트를 지원하는 것은 멀티캐스트 라우팅 프로토콜을 지원하는 컴퓨팅 디바이스들의 하이 레벨 운영 시스템에 의존하거나, 또는 많은 컴퓨팅 디바이스들이 갖지 않는 능력들인, 효과적인 액세스 제어 및 네트워크 관리를 필요로 한다. 추가적으로, 무선 네트워크의 고유의 비-신뢰성 때문에, WiFi 미라캐스트® 와 같은 무선 매체들 전달 플랫폼들에서의 그룹 통신 패킷들에 의한 실시간 멀티미디어 데이터 배포는 무선 매체들 전달 플랫폼들에 대한 현재의 멀티캐스트 전략들이 제공할 수 없는 수용가능한 품질에 대한 에러 복원력을 필요로 한다.
긍정적인 수신응답 (positive acknowledgment) 은 채널 액세스 및 접속 용량을 최적화하기 위한, WiFi 에 대한 반송파 감지 다중 접속/충돌 회피 (CSMA/CA) 의 요체 (lynchpin) 이다. 무선 매체들 전달 플랫폼들이 멀티캐스트를 지원해야 하지만, 미디어 액세스 제어 (MAC) 불공평성, 손실들, 및 효과가 낮은 채널 대역폭 (BW) 에 대한 문제들 때문에, 현재의 표준 WiFi 멀티캐스트는 WiFi 미라캐스트® 와 같은 현재의 무선 매체들 전달 플랫폼들이, 저-레이턴시/준-실시간 응답 (예컨대, 고선명 7.1 서라운드 사운드와 같은 멀티-채널-오디오, 멀티-채널-비디오, 등) 을 요구하는 애플리케이션들을 지원하는 것을 허용하지 않는다. 신뢰성있는 멀티캐스트를 위한 현재의 802.11 무선 표준 프로토콜들 (즉, WiFi) 은 애플리케이션 계층 및 애플리케이션 계층의 데이터 전송 프로토콜들과 독립적으로 기능하도록 설계되며, 현재의 무선 매체들 전달 플랫폼들 (예컨대, WiFi 미라캐스트®) 이 저-레이턴시/준-실시간 응답 (예컨대, 고선명 7.1 서라운드 사운드와 같은 멀티-채널-오디오, 멀티-채널-비디오, 등) 을 요구하는 애플리케이션들을 지원하도록 허용하지 않는다. 채널 왜곡들의 소스에 의존하여, 신뢰성있는 멀티캐스트를 위한 현재의 802.11 WiFi 프로토콜들은 브루트 포스 (brute force) 를 이용하여 프레임들 또는 패킷들을 블라인드로 반복하며, 이는 WiFi 송신 신뢰성을 거의 향상시키지 않는다. 추가적으로, 신뢰성있는 멀티캐스트를 위한 현재의 802.11 WiFi 프로토콜들은, 종종 콘텐츠 데이터를 송신하기 위해, 낮은-변조 및 코딩 방식 (MCS) 유니캐스트가 멀티캐스트를 이용함으로써 달성되도록 의도된 모든 채널 효율을 없앨 수 있기 때문에 동등하게 결함이 있는 실제 멀티캐스트 서비스를 제공하는 대신, 낮은-MCS 유니캐스트를 레버리지한다.
여러 실시형태들은 WiFi 미라캐스트® 에서의 스케일러블 데이터 서비스 배포를 위한 방법들, 디바이스들, 시스템들, 및 비일시성 프로세스-판독가능 저장 매체들을 제공한다. 일 실시형태에서, WiFi 미라캐스트® 네트워크에서의 소스 컴퓨팅 디바이스의 프로세서는 서비스의 프레임 또는 패킷을 수신하도록 스케쥴링된 모든 싱크 컴퓨팅 디바이스들을 단일 멀티캐스트 그룹으로 그룹화하고 멀티캐스트 프레임 또는 패킷을 싱크 컴퓨팅 디바이스들로 송신할 수도 있다. 일 실시형태에서, WiFi 미라캐스트® 네트워크에서의 개개의 싱크 컴퓨팅 디바이스들은 네트워크 리소스들을 모니터링하고 소스 컴퓨팅 디바이스와의 그들의 개별 무선 접속들의 품질을 결정하도록 구성될 수도 있다. 일 실시형태에서, WiFi 미라캐스트® 네트워크에서의 개개의 싱크 컴퓨팅 디바이스들은 소스 컴퓨팅 디바이스로부터 수신되는 WiFi 미라캐스트® 통신들의 서비스 품질을 표시하는 에러 로그들 또는 유사한 메시지들을 소스 컴퓨팅 디바이스로 전송하도록 구성될 수도 있다. 일 실시형태에서, 소스 컴퓨팅 디바이스는 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들로부터 수신되거나 및/또는 수신되지 않은 에러 로그들에 적어도 부분적으로 기초하여, 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들을 유니캐스트 그룹에 추가할 수도 있다.
WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 일 실시형태 방법은, 소스 컴퓨팅 디바이스에 의해, 데이터 서비스를 수신할 모든 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화하는 단계; WiFi 미라캐스트 멀티캐스트 송신을 통해서, 소스 컴퓨팅 디바이스로부터, 멀티캐스트 그룹 내 싱크 컴퓨팅 디바이스들로 데이터 서비스의 프레임을 전송하는 단계; 소스 컴퓨팅 디바이스에 의해, 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되었는지 여부를 결정하는 단계; 및 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되지 않았다고 결정하는 것에 응답하여, 소스 컴퓨팅 디바이스에 의해, 미싱 에러 로그들 (missing error logs) 과 연관된 임의의 그룹 멤버를 유니캐스트 그룹에 추가하는 단계를 포함할 수도 있다.
일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스에 의해, 임의의 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및 이러한 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여 소스 컴퓨팅 디바이스에 의해, 수용불가능한 채널 성능과 연관된 임의의 멀티캐스트 그룹 멤버를 유니캐스트 그룹에 추가하는 단계를 더 포함할 수도 있다.
일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스에 의해, 임의의 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및 이러한 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 소스 컴퓨팅 디바이스에 의해, 유니캐스트 그룹으로부터, 수용가능한 채널 성능과 연관된 임의의 유니캐스트 그룹 멤버를 제거하는 단계를 더 포함할 수도 있다.
일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스에 의해, 임의의 멀티캐스트 그룹 멤버에 대한 채널 상태가 수용불가능하다고 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및 그 멀티캐스트 그룹 멤버에 대한 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여 채널을 해제하거나 및/또는 이러한 멀티캐스트 그룹 멤버에 대한 데이터 서비스를 다운그레이드시키는 단계를 더 포함할 수도 있다.
일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스에 의해, 채널 대역폭이 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정하는 단계; 및 채널 대역폭이 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용불가능하다고 결정하는 것에 응답하여 채널을 해제하거나 및/또는 데이터 서비스를 다운그레이드시키는 단계를 더 포함할 수도 있다. 일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스에 의해, 채널 대역폭이 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 데이터 서비스의 다음 프레임의 송신을 위한 시간에 도달하였는지 여부를 결정하는 단계; 및 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서, 소스 컴퓨팅 디바이스로부터 유니캐스트 그룹에서의 싱크 컴퓨팅 디바이스들로 데이터 서비스의 프레임을 재송신하는 단계를 더 포함할 수도 있다. 일부 실시형태들에서, 본 방법은 채널 대역폭이 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 데이터 서비스의 다음 프레임을, 소스 컴퓨팅 디바이스로부터, WiFi 미라캐스트 멀티캐스트 송신을 통해서 멀티캐스트 그룹에서의 싱크 컴퓨팅 디바이스들로, 그리고, 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 유니캐스트 그룹에서의 싱크 컴퓨팅 디바이스들로 전송하는 단계를 더 포함할 수도 있다.
일부 실시형태들에서, 본 방법은 소스 컴퓨팅 디바이스로부터 싱크 컴퓨팅 디바이스들로, 싱크 컴퓨팅 디바이스들에게 에러 로그를 소스 컴퓨팅 디바이스로 전송하도록 지시하는 요청을 전송하는 단계를 더 포함할 수도 있다.
추가 실시형태들은 위에서 설명된 방법들의 동작들을 수행하는 프로세서-실행가능한 명령들로 구성된 프로세서를 포함하는 소스 컴퓨팅 디바이스를 포함한다. 추가 실시형태들은 소스 컴퓨팅 디바이스로 하여금, 위에서 설명된 방법들의 동작들을 수행시키도록 구성된 프로세서-실행가능한 명령들이 안에 저장된 비일시성 프로세서-판독가능 매체를 포함한다. 추가 실시형태들은 위에서 설명된 방법들의 동작들을 수행하는 수단을 포함하는 모바일 컴퓨팅 디바이스를 포함한다.
본원에 포함되어 본 명세서의 부분을 구성하는, 첨부 도면들은, 청구범위의 예시적인 실시형태들을 예시하며, 위에서 주어진 일반적인 설명 및 아래에 주어지는 상세한 설명과 함께, 청구범위의 특징들을 설명하는 것을 돕는다.
도 1 은 여러 실시형태들과 사용하기에 적합한 무선 매체들 전달 플랫폼 또는 시스템의 시스템 블록도이다.
도 2 는 일 실시형태에 따른, 중앙집중형-애플리케이션-계층-멀티캐스트 (ALM) 그룹을 확립하기 위해 소스 컴퓨팅 디바이스와 싱크 컴퓨팅 디바이스 사이에 교환되는 메시지들을 예시하는 콜 흐름도이다.
도 3 은 일 실시형태에 따른, WiFi 미라캐스트® 프로토콜 스택에서의 ALM 소켓 인터페이스를 예시하는 데이터 구조 다이어그램이다.
도 4 는 일 실시형태에 따른, ALM 을 가진 WiFi 미라캐스트® 프로토콜 스택을 예시하는 데이터 구조 다이어그램이다.
도 5 는 애플리케이션 레벨 채널 품질 추정을 위한 실시형태 방법을 예시하는 프로세스 흐름도이다.
도 6 은 그룹-기반의 채널-에러 정정을 위한 적응적 유니캐스트 반복/재송신을 위한 일 실시형태 방법을 예시하는 프로세스 흐름도이다.
도 7 은 그룹-기반의 채널-품질 질의를 위해 소스 컴퓨팅 디바이스와 싱크 컴퓨팅 디바이스 사이에 교환되는 메시지들을 예시하는 콜 흐름도이다.
도 8a 는 에러 로그를 발생시켜 전송하는 일 실시형태 방법을 예시하는 프로세스 흐름도이다.
도 8b 는 도 8a 의 실시형태 방법을 구현하는 일 실시형태 싱크 컴퓨팅 디바이스를 예시하는 블록도이다.
도 9a 및 9b 는 WiFi 미라캐스트® 에서의 스케일러블 데이터 서비스 배포를 위한 일 실시형태 방법을 예시하는 프로세스 흐름도들이다.
도 10 은 여러 실시형태들에서의 사용에 적합한 모바일 컴퓨팅 디바이스의 구성요소 블록도이다.
도 11 은 여러 실시형태들에서의 사용에 적합한 스피커 유닛의 구성요소 블록도이다.
여러 실시형태들이 첨부 도면들을 참조하여 자세히 설명된다. 가능한 경우에는 언제나, 동일한 또는 유사한 부재들을 지칭하기 위해서 동일한 참조 번호들이 도면들 전반에 걸쳐서 사용된다. 특정의 예들 및 구현예들에 대한 참조들은 예시적인 목적들을 위한 것이며, 청구항들의 범위를 한정하려고 의도되지 않는다.
단어 "예시적인" 은 "일 예, 사례, 또는 예시로서 기능하는 것" 을 의미하도록 본원에서 사용된다. 본원에서 "예시적인" 으로서 설명하는 임의의 구현예는 반드시 다른 구현예들보다 바람직하거나 또는 유리한 것으로 해석되어서는 안 된다.
용어 "컴퓨팅 디바이스" 는 셀룰러 전화기들, 스마트-폰들, 웹-패드들, 태블릿 컴퓨터들, 인터넷 이용가능 셀룰러 전화기들, WiFi 이용가능 전자 디바이스들, 개인 휴대 정보단말기들 (PDA들), 랩탑 컴퓨터들, 개인용 컴퓨터들, 스피커들, 홈 시어터 수신기, 셋-탑 박스들, 텔레비전들, 미디어 플레이어들, 프린터들, 헤드레스트 장착형 비디오 디스플레이들, 카메라들, 프린터들, 착용형 디바이스들, 및 적어도 프로세서가 탑재된 유사한 전자 디바이스들 중 임의의 하나 또는 모두를 지칭하기 위해 본원에서 사용된다. 여러 실시형태들에서, 이러한 컴퓨팅 디바이스들은 예컨대 광역 네트워크 (WAN) 또는 근거리 네트워크 (LAN) 를 통해서 무선 접속들을 확립하기 위해 트랜시버 (예컨대, LTE, 3G, 4G, Bluetooth, WiFi, 등., 무선 네트워크 트랜시버) 로 더 구성될 수도 있다.
여러 실시형태들에서, WiFi 미라캐스트® 네트워크와 같은 무선 네트워크에서의 컴퓨팅 디바이스들은 이들이 콘텐츠 데이터를 송신하거나 또는 수신하는지 여부에 따라서, 소스들 및/또는 싱크들로서 분류될 수도 있다. 소스들은 콘텐츠 프레임들 또는 패킷들을, 예를 들어, 프레임들 또는 패킷들을 무선 네트워크에서의 다른 컴퓨팅 디바이스들에 제공하는 서버로서 동작하는 하나 이상의 다른 컴퓨팅 디바이스들 (즉, 싱크 디바이스들) 로 전송하는 컴퓨팅 디바이스들일 수도 있다. 싱크들은 하나 이상의 다른 컴퓨팅 디바이스들로부터 콘텐츠 프레임들 또는 패킷들을 수신하는 컴퓨팅 디바이스들일 수도 있다. 컴퓨팅 디바이스들은 WiFi 미라캐스트® 네트워크와 같은 무선 네트워크에서, 소스들로서 배타적으로 동작하거나, 싱크들로서 배타적으로 동작하거나, 및/또는 싱크 및 소스 양자로서 동작할 수도 있다. 일 예로서, 가정용 서라운드 사운드 시어터 시스템이 고선명 7.1 서라운드 사운드와 같은 멀티-채널-오디오를, 싱크들로서 동작하는 일련의 스피커들로 무선으로 제공하는 소스로서 동작하는 홈 시어터 수신기를 포함하는 WiFi 미라캐스트® 네트워크에서 구현될 수도 있다. 다른 예로서, WiFi 미라캐스트® 네트워크는 스트리밍 MPEG 포맷 이미지를 하나 이상의 소스들로서 동작하는 하나 이상의 인접한 접속된 모니터들로 무선으로 투사하는 소스로서 동작하는 스마트폰을 포함할 수도 있다.
상이한 무선 접속들, 무선 네트워크들, 및 무선 매체들 전달 플랫폼들의 여러 예들, 특히, WiFi 미라캐스트® 접속들, 네트워크들, 및 매체들 전달 플랫폼들이 본원에서 설명된다. WiFi 미라캐스트® 의 설명들은 여러 실시형태들의 양태들을 보다 잘 예시하기 위한 예로서 제공되며, 특별히 언급하지 않는 한 청구범위를 WiFi 미라캐스트® 에 한정하려고 의도되지 않는다. 다른 무선 접속들, 무선 네트워크들, 및 무선 매체들 전달 플랫폼들 (예컨대, 애플 AirPlay®, Wi-Di, 등) 이 여러 실시형태들을 이용하거나 또는 다양한 실시형태와 함께 사용될 수도 있으며, 다른 무선 접속들, 무선 네트워크들, 및 무선 매체들 전달 플랫폼들은 본원에서 설명되는 여러 예들에서 대체될 수도 있다.
일 실시형태에서, WiFi 미라캐스트® 에서 다수의 구조화된-피어-투-피어 (P2P) 접속들을 가지는 소스 컴퓨팅 디바이스 (예컨대, 모바일 폰 또는 태블릿) 는 싱크 컴퓨팅 디바이스들의 그룹으로의 멀티미디어 데이터의 스케일러블 배포를 위한 애플리케이션 의존형 및 애플리케이션 제어형 1-홉 장애-방지 (one-hop fault-tolerant) 중앙집중형-애플리케이션-계층-멀티캐스트 (ALM) 그룹을 자가 구성할 수도 있다. 예를 들어, WiFi 미라캐스트® 싱크 컴퓨팅 디바이스들의 중앙집중형 ALM 그룹은 소스 컴퓨팅 디바이스로부터 오버레이 상에서 전달된 멀티캐스트 페이로드를 직접 수신하기 위해 가상 오버레이 네트워크를 협동적으로 형성한다. 애플리케이션 배포 모델에 기초하여, 다수의 WiFi 미라캐스트® 싱크 컴퓨팅 디바이스들은 WiFi 미라캐스트® 에서의 소켓으로부터 애플리케이션 데이터를 동시에 수신하기 위해 그룹화될 수도 있다. 일 실시형태에서, 중앙집중형 ALM 은 멀티캐스트 그룹을 능동적으로 구성하기 위해 싱크 컴퓨팅 디바이스들의 피어 클라이언트들에서의 소켓 오브젝트들을 직접 요청하여 그 소켓 오브젝트들과 통신하는 소스 컴퓨팅 디바이스에서의 멀티캐스트 소켓 인터페이스로 구현될 수도 있다. 코어 소켓 오브젝트 서비스들은 접속 개방, 접속 수락, 데이터 전송, 및 데이터 수신을 포함할 수도 있다. 서비스 관리는 중앙집중형 ALM 을 통해서 서비스 발견 프레임워크를 이용하여 지원될 수도 있다.
일 실시형태에서, WiFi 미라캐스트® 네트워크에서의 소스 컴퓨팅 디바이스의 프로세서는 서비스의 프레임 또는 패킷을 수신하도록 스케쥴링된 모든 싱크 컴퓨팅 디바이스들을 단일 멀티캐스트 그룹으로 그룹화하고, 멀티캐스트 프레임 또는 패킷을 싱크 컴퓨팅 디바이스들로 송신할 수도 있다. 일 실시형태에서, 멀티캐스트 프레임 또는 패킷은 임의의 수신 싱크 컴퓨팅 디바이스에게 에러 로그 (또는, 채널 통계치들의 임의의 다른 유형 표시) 를 발생시켜 소스 컴퓨팅 디바이스로 되전송하도록 지시하는 표시를 포함할 수도 있다. 소스 컴퓨팅 디바이스는 유입하는 에러 로그들을 수집하고, 에러 로그들의 수신 및/또는 수신의 부족에 기초하여, 특정의 싱크 컴퓨팅 디바이스가 멀티캐스트 프레임 또는 패킷을 수신하였는지 여부를 결정할 수도 있다. 일 실시형태에서, 멀티캐스트 프레임 또는 패킷을 수신하지 않은 것으로 소스 컴퓨팅 디바이스의 프로세서에 의해 결정된 임의의 싱크 컴퓨팅 디바이스들은 유니캐스트 그룹으로 이동될 수도 있으며, 멀티캐스트 프레임 또는 패킷은 유니캐스트 송신들을 통해서 유니캐스트 그룹 내 각각의 개별 싱크 컴퓨팅 디바이스로 직접 재송신될 수도 있다. 이상적으로는, 모든 싱크 컴퓨팅 디바이스들이 유니캐스트 재송신에 대한 임의의 요구를 제거하는 원래의 멀티캐스트 송신을 통해서 멀티캐스트 프레임 또는 패킷을 수신할 수도 있지만, 단일 멀티캐스트 그룹에서의 싱크 컴퓨팅 디바이스들 중 적어도 일부분이 별개의 유니캐스트 송신들을 통해서 프레임 또는 패킷을 모든 멤버 싱크 컴퓨팅 디바이스들로 전송하는 것에 비해 유니캐스트 송신들에 대한 요구를 감소시키는 원래의 멀티캐스트 송신을 통해서, 멀티캐스트 프레임 또는 패킷을 수신할 가능성이 있다. 원래 멀티캐스트 송신을 수신하지 않은 싱크 컴퓨팅 디바이스들의 서브세트의 각각에 도달시키기 위해 적응적 유니캐스트 재송신이 사용될 수도 있다. 이와 같이, 프레임 또는 패킷의 유니캐스트 송신이 원래의 송신을 수신한 단일 멀티캐스트 그룹에서의 그들 싱크 컴퓨팅 디바이스들에 대해 회피될 수도 있기 때문에, 보다 적은 대역폭이 유니캐스트 송신들에 전용될 수도 있다.
일부 실시형태들에서, 프레임들 또는 패킷들의 재송신은 비플래그된 프레임들 또는 패킷들이 미-송신된 것으로 소스 컴퓨팅 디바이스의 프로세서에 의해 다시 식별될 수 있도록, 소스 컴퓨팅 디바이스의 메모리에 버퍼된 이전에 송신된 프레임들 또는 패킷들과 연관된 플래그를 설정해제하는 것을 포함할 수도 있다. 이것은 소스 컴퓨팅 디바이스의 프로세서로 하여금, 버퍼로부터 비플래그된 프레임들 또는 패킷들을 재송신하도록 할 수도 있다.
추가 실시형태들에서, 소스 컴퓨팅 디바이스의 프로세서는 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하였는지 여부를 결정할 수도 있다. 예를 들어, 각각의 프레임 또는 패킷은 송신 시간과 연관될 수도 있으며, 소스 컴퓨팅 디바이스에서의 클록 시간에 기초하여, 소스 컴퓨팅 디바이스의 프로세서는 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하였는지 여부를 결정할 수도 있다. 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하지 않았다고 결정하는 것에 응답하여, 소스 컴퓨팅 디바이스의 프로세서는 유니캐스트 송신들을 통해서 이전 프레임 또는 패킷을 유니캐스트 그룹에서의 각각의 개별 싱크 컴퓨팅 디바이스로 직접 재송신할 수도 있다. 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하였다고 결정하는 것에 응답하여, 소스 컴퓨팅 디바이스의 프로세서는 이전 프레임 또는 패킷을 재송신함이 없이 다음 프레임 또는 패킷을 전송할 수도 있다. 이와 같이, 다음 프레임 또는 패킷의 송신을 위한 시간에 도달한 것으로 표시됨에 따라, 프레임 또는 패킷에 대한 송신 윈도우가 폐쇄될 때, 소스 컴퓨팅 디바이스의 프로세서는 재송신시 리소스를 소비하는 것을 회피할 수도 있으며, 다음 프레임 또는 패킷을, 멀티캐스트 송신들을 통해서 멀티캐스트 그룹에서의 개별 싱크 컴퓨팅 디바이스들로, 그리고, 유니캐스트 송신들을 통해서 유니캐스트 그룹에서의 각각의 개별 싱크 컴퓨팅 디바이스로 직접 전송하는 것으로 진행할 수도 있다.
일 실시형태에서, 에러 로그 (또는, 채널 통계치들의 임의의 다른 유형 표시) 에 대한 요청은 소스 컴퓨팅 디바이스로부터, 멀티캐스트 프레임 또는 패킷과는 별개인 메시지에 의해, 예컨대, 제어 평면 메시지들에 의해 전송될 수도 있다. 예를 들어, WiFi 미라캐스트® 는 멀티캐스트 송신과 연관된 에러 로그들을 요청하는 메시지들을 전송하기 위해 실시간 스트리밍 프로토콜 (RTSP) 시그널링을 이용할 수도 있다. 일 실시형태에서, 소스 컴퓨팅 디바이스는 RTSP SET_PARAMETER 요청과 같은 임의의 제어 메시지를 이용함으로써, 에러 로그 (또는, 채널 통계치들의 임의의 다른 유형 표시) 를 발생시켜 전송해달라는 요청을 싱크 컴퓨팅 디바이스들로 전송할 수도 있다. 일 실시형태에서, 에러 로그들에 대한 요청들은 또한 서비스 발견 프레임워크를 통해서 소스 컴퓨팅 디바이스로부터 싱크 컴퓨팅 디바이스들로 전송될 수도 있다.
여러 실시형태들에서, 에러 로그 (또는, 채널 통계치들의 임의의 다른 유형 표시) 에 대한 요청은 싱크 컴퓨팅 디바이스에 의한 에러 로그의 일회 송신에 대한 요청일 수도 있거나, 또는 요청은 싱크 컴퓨팅 디바이스에 의한 연속적인 에러 로그들의 주기적인 송신들에 대한 요청일 수도 있다. 예를 들어, 소스 컴퓨팅 디바이스로부터 전송된 에러 로그에 대한 요청은 싱크 컴퓨팅 디바이스가 단일 에러 로그를 발생시켜 전송해야 한다는 것을 표시할 수도 있다. 다른 예로서, 소스 컴퓨팅 디바이스로부터 전송된 에러 로그에 대한 요청은 싱크 컴퓨팅 디바이스가 에러 로그들을 규정된 기간에 (예컨대, 적어도 매 50 ms 마다) 발생시켜 전송해야 한다는 것을 표시할 수도 있다.
일 실시형태에서, WiFi 미라캐스트® 네트워크에서의 개개의 싱크 컴퓨팅 디바이스들은 소스 컴퓨팅 디바이스와의 그들의 개별 무선 접속들의 품질을 모니터링하고 결정하도록 구성될 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 프레임들 또는 패킷들이 수신됨에 따라서, MPEG 프레임들 또는 패킷들과 같은 멀티미디어 콘텐츠 프레임들 또는 패킷들에 포함된 하나 이상의 데이터 엘리먼트들을 모니터링할 수도 있다. 데이터 엘리먼트들은 멀티미디어 콘텐츠에 대응하는 시간 및/또는 시퀀스 정보를 포함할 수도 있다. 프레임들 또는 패킷들에서의 데이터 엘리먼트들에 기초하여, 싱크 컴퓨팅 디바이스의 프로세서는 소스 컴퓨팅 디바이스와 싱크 컴퓨팅 디바이스 사이의 무선 접속의 품질을 결정하기 위해 프레임 또는 패킷 손실 레이트와 같은 채널 상태 추정들을 행할 수도 있다. 시간 및 시퀀스 정보의 예들은 멀티미디어 콘텐츠를 포함하는 MPEG 전송 스트림의 프로그램 클록 기준 (PCR) 및 연속성 카운터 (CC) 를 포함할 수도 있다. 다른 예는 MPEG 전송 스트림을 포함하는 실시간 전송 프로토콜 (RTP) 의 시퀀스 번호 (SEQ_NUM) 를 포함할 수도 있다.
일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 포함된 MPEG 프로그램 클록 기준들 (PCR들) 을 비교하여 PCR 스킵 또는 미스 레이트 (skip or miss rate) 를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 PCR 스킵 또는 미스 레이트는 PCR 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, PCR 스킵 또는 미스 레이트 및/또는 PCR 에러 발생의 표시가 패킷 손실 레이트와 같은 채널 품질 (또는, 채널 상태) 추정을 행하기 위해 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다.
일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 포함된 MPEG 연속성 카운터 (CC들) 를 비교하여, 연속성 카운터 스킵 또는 미스 레이트 (즉, 시퀀스에서 하나 이상의 프레임들이 수신되지 않는 레이트) 를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 연속성 카운터 스킵 또는 미스 레이트는 연속성 카운터 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, 연속성 카운터 스킵 또는 미스 레이트 및/또는 연속성 카운터 에러 발생의 표시가 패킷 손실 레이트와 같은 채널 상태 추정을 행하기 위해, 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다.
일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 포함된 RTP 시퀀스 번호들 (SEQ_NUMs) 을 비교하여, RTP SEQ_NUM 스킵 또는 미스 레이트를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 RTP SEQ_NUM 스킵 또는 미스 레이트는 RTP SEQ 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, RTP SEQ_NUM 스킵 또는 미스 레이트 및/또는 RTP SEQ 에러 발생의 표시가 패킷 손실 레이트와 같은 채널 상태 추정을 행하기 위해 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다.
추가 실시형태들에서, PCR 스킵 또는 미스 레이트 및/또는 PCR 에러 발생의 표시, 연속성 카운터 스킵 또는 미스 레이트 및/또는 연속성 카운터 에러 발생의 표시, 및 RTP SEQ_NUM 스킵 또는 미스 레이트 및/또는 RTP SEQ 에러 발생의 표시 중 2개 이상의 여러 조합들이 패킷 손실 레이트와 같은 채널 상태 추정을 행하기 위해, 싱크 컴퓨팅 디바이스의 프로세서에 의해 함께 사용될 수도 있다.
일 실시형태에서, 싱크 컴퓨팅 디바이스는 패킷 손실 레이트와 같은 채널 상태 추정을, 메모리에 저장된 임계치와 비교할 수도 있으며, 채널 상태 추정이 임계치를 초과하는 것에 응답하여, 에러 로그 (예컨대, CQE 로그) 또는 채널 통계치들의 임의의 다른 유형 표시를 발생시킬 수도 있다. 일 실시형태에서, 에러 로그는 패킷 손실 레이트와 같은 채널 상태 추정을 표시할 수도 있다. 추가 실시형태들에서, 에러 로그는 애플리케이션 성능 추정 (예컨대, QoS 추정, QoE 추정, 등) 과 같은, 싱크 컴퓨팅 디바이스에 관련된 다른 메트릭들을 포함할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스는 소스 컴퓨팅 디바이스로부터 싱크 컴퓨팅 디바이스로 전송되는 프레임 또는 패킷에 포함되는 에러 로그 요청과 같은, 소스 디바이스로부터의 에러 로그에 대한 요청에 응답하여, 에러 로그 (예컨대, CQE 로그) 를 발생시킬 수도 있다. 여러 실시형태들에서, 패킷 손실 레이트가 메모리에 저장된 패킷 손실 임계치를 초과하는 것과 같은, 채널 상태 추정이 임계치를 초과하는 것에 응답하여, 및/또는 소스 디바이스로부터의 에러 로그에 대한 요청에 응답하여, 싱크 컴퓨팅 디바이스는 발생된 에러 로그 (예컨대, CQE 로그) 를 소스 컴퓨팅 디바이스로 전송할 수도 있다. 일 실시형태에서, 에러 로그는 별개의 무선 업링크 채널을 통해서 유니캐스트 송신으로 싱크 디바이스로부터 소스 컴퓨팅 디바이스로 전송될 수도 있다.
일 실시형태에서, 소스 컴퓨팅 디바이스는 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들로부터 수신된 에러 로그들에 포함된 정보 뿐만 아니라, 멀티캐스트 그룹의 멤버로부터의 에러 로그의 부재 (즉, 미싱 에러 로그들) 에 적어도 부분적으로 기초하여, 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들을 유니캐스트 그룹에 추가할 수도 있다. 예를 들어, 에러 로그가 멀티캐스트 그룹의 멤버인 특정의 싱크 컴퓨팅 디바이스로부터 소스 컴퓨팅 디바이스에 의해 수신되지 않았다고 결정하는 것에 기초하여, 소스 컴퓨팅 디바이스는 컴퓨팅 디바이스가 멀티캐스트 송신들을 수신하고 있지 않다고 가정하여 그 컴퓨팅 디바이스를 유니캐스트 그룹 또는 리스트에 추가할 수도 있다. 다른 예로서, 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스에 대한 채널 성능이 수용가능한 레벨보다 아래라고 표시하는 에러 로그를 수신하는 것에 응답하여, 소스 컴퓨팅은 콘텐츠 데이터의 신뢰성있는 전달을 보장하기 위해 그 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스를 유니캐스트 그룹 또는 리스트에 추가할 수도 있다.
여러 실시형태들에서, 프레임 또는 패킷을 멀티캐스트 그룹 멤버 싱크 컴퓨팅 디바이스들로 멀티캐스트 송신을 통해서 송신한 후, 소스 컴퓨팅 디바이스는 동일한 프레임 또는 패킷을 또한 유니캐스트 그룹 내 또는 유니캐스트 리스트 상에서의 싱크 컴퓨팅 디바이스들로 유니캐스트를 통해서 재송신할 수도 있다. 이와 같이, 소스 컴퓨팅 디바이스는 유니캐스트 그룹 멤버들로의 송신을 2번, 첫번째는 프레임 또는 패킷의 멀티캐스트 송신을 통해서, 그리고 두번째는 각각의 유니캐스트 그룹 멤버로의 유니캐스트 송신을 통해서, 시도할 수도 있다. 일 실시형태에서, 소스 컴퓨팅 디바이스는 현재의 채널 상에서의 가용 대역폭을 체크할 수도 있으며, 가용 대역폭이 필요한 유니캐스트 송신들을 지원하기에 충분히 높다는 것에 응답하여, 유니캐스트 그룹 멤버들로의 유니캐스트 재송신이 발생할 수도 있다. 대역폭이 충분히 높지 않다는 것에 응답하여, 소스 컴퓨팅 디바이스는 채널을 해제할 수도 있다.
일 실시형태에서, 싱크 컴퓨팅 디바이스들은 소스 컴퓨팅 디바이스에 의해 수신된 그들의 개별 에러 로그들이 그 싱크 컴퓨팅 디바이스에 대한 채널 성능이 수용가능한 레벨을 달성하였다는 것을 표시하는 것에 응답하여, 유니캐스트 그룹 또는 리스트로부터 제거될 수도 있다. 이와 같이, 싱크 컴퓨팅 디바이스들이, 이들이 멀티캐스트 송신들로부터 서비스 신뢰도를 수신하고 있을 때 유니캐스트 그룹으로부터 제거될 수 있으며, 이에 의해 추가적인 프레임들 또는 패킷들이 이러한 싱크 컴퓨팅 디바이스들로 유니캐스트를 통해서 재송되지 않기 때문에 유니캐스트 대역폭에 대한 요구들을 감소시킬 수도 있다.
일 실시형태에서, 소스 컴퓨팅 디바이스는 하나 이상의 수신된 에러 로그들에 기초하여, 채널 상태가 수용가능한지 여부를 결정할 수도 있다. 채널 상태가 수용불가능하다는 것에 응답하여, 소스 컴퓨팅 디바이스는 채널을 해제하거나 및/또는 서비스를 다운그레이드시킬 수도 있다. 이와 같이, 채널이 멀티캐스트를 지원하지 않을 때 유니캐스트를 통해서 재송신을 시도하면 리소스들이 낭비되지 않을 수도 있다. 예를 들어, 채널 상태가 수용불가능하다고 결정하는 것에 응답하여, 소스 컴퓨팅 디바이스는 서비스를 7.1 서라운드 사운드 서비스로부터 5.1 서라운드 사운드 서비스로 다운그레이드시킬 수도 있다.
도 1 은 WiFi LAN (190) 에 접속되거나 및/또는 WiFi 통신들을 이용할 수 있는 여러 컴퓨팅 디바이스들 (102-118) 을 포함하는 WiFi 미라캐스트® 플랫폼 또는 시스템과 같은 무선 매체들 전달 플랫폼 또는 시스템 (100) 의 일 예를 예시한다. 이 시스템 (100) 에서, 컴퓨팅 디바이스들은 프레임들 또는 패킷들, 메시지들, 로그들, 등과 같은 데이터를 무선 접속들 (120 및/또는 122) 을 통해서 서로 교환할 수도 있다. 예를 들어, 스마트폰 (102) 은 MPEG 스트림들을 비디오 카메라 (118) (예컨대, 인터넷 또는 웹 캠, 등), 착용형 디바이스 (116) (예컨대, 스마트 시계, 등), 개인 또는 데스크탑 컴퓨터 (114), 및/또는 디지털 카메라 (112) 로부터 무선 접속들 (120) (예컨대, LAN (190) 을 통한 WiFi 접속들, 등) 을 통해서 수신할 수도 있다. 이러한 예들에서, 비디오 카메라 (118), 착용형 디바이스 (116), 개인 또는 데스크탑 컴퓨터 (114), 및/또는 디지털 카메라 (112) 는 프레임들 또는 패킷들을 싱크 컴퓨팅 디바이스로서 동작하는 스마트폰 (102) 에 제공하는 소스 컴퓨팅 디바이스들로서 동작할 수도 있다. 싱크 컴퓨팅 디바이스로서 동작하는 스마트폰 (102) 은 수신응답 메시지들과 같은 메시지들, 및/또는 에러 로그들 (또는, 채널 통계치들의 임의의 다른 유형 표시) 과 같은 로그들을, 소스 컴퓨팅 디바이스들로서 동작하는, 비디오 카메라 (118), 착용형 디바이스 (116), 개인 또는 데스크탑 컴퓨터 (114), 및/또는 디지털 카메라 (112) 에 제공할 수도 있다.
추가적인 예들로서, 스마트폰 (102) 은 MPEG 스트림들을 무선 접속들 (122) (예컨대, LAN (190) 을 통한 WiFi 접속들, 등) 을 통해 스피커 디바이스 (104), 프린터 디바이스 (106), 모니터 디바이스 (108), 및/또는 머리-장착형 디스플레이 (HMD) 디바이스 (110) 로 송신할 수도 있다. 이러한 일-대-다 능력들에 의해, WiFi 미라캐스트® 및 유사한 무선 매체들 전달 플랫폼들은 복수의 디바이스들을 통해서 전체 서비스를 가능하게 하는 디바이스간 연결성을 제공할 수도 있다. 예를 들어, 영화를 렌더링하기 위해서, 스마트폰 (102) 은 비디오 MPEG 스트림을 머리-장착형 디스플레이 디바이스 (110) 에, 그리고, 오디오 MPEG 스트림을 스피커 디바이스 (104) 에 제공할 수도 있다. 이러한 예들에서, 스마트폰 (102) 은 프레임들 또는 패킷들을 싱크 컴퓨팅 디바이스들로서 동작하는 스피커 디바이스 (104), 프린터 디바이스 (106), 모니터 디바이스 (108), 및/또는 HMD 디바이스 (110) 에 제공하는 소스 컴퓨팅 디바이스로서 동작할 수도 있다. 싱크 컴퓨팅 디바이스들로서 동작하는 스피커 디바이스 (104), 프린터 디바이스 (106), 모니터 디바이스 (108), 및/또는 HMD 디바이스 (110) 는 수신응답 메시지들과 같은 메시지들, 및/또는 에러 로그들 (또는, 채널 통계치들의 임의의 다른 유형 표시) 과 같은 로그들을, 소스 컴퓨팅 디바이스로서 동작하는 스마트폰 (102) 에 제공할 수도 있다.
도 2 는 일 실시형태에 따른, 중앙집중형-ALM 그룹을 확립하기 위해 소스 컴퓨팅 디바이스와 싱크 컴퓨팅 디바이스 사이에 교환되는 메시지들을 예시하는 콜 흐름도이다. 도 2 는 소스 컴퓨팅 디바이스의 프로세서 상에서 실행하는 소스 스택 태스크 계층 (202) 및 소스 WiFi 계층 (204) (예컨대, 인증 요청자 (supplicant) 계층 및/또는 MAC 계층, 등) 과, 싱크 컴퓨팅 디바이스의 프로세서 상에서 실행하는 싱크 WiFi 계층 (206) (예컨대, 인증 요청자 계층 및/또는 MAC 계층, 등) 및 싱크 스택 태스크 계층 (208) 사이에 무선 WiFi 미라캐스트® 채널과 같은 사용자 채널 (205) 을 통해서 전송되는 메시지들을 예시한다. 일 실시형태에서, 중앙집중형 ALM 은 대응하는 피어 클라이언트들에서의 많은 소켓 오브젝트들을 직접 요청하여 그들과 통신하여 멀티캐스트 그룹을 능동적으로 조직하기 위해 호스트 Mobil-PH/Pad 피어 서버에서의 멀티캐스트 소켓 인터페이스로 구현될 수도 있다. 따라서, 코어 소켓 오브젝트 서비스들은 접속 개방, 접속 수락, 데이터 전송, 및 데이터 수신을 포함할 수도 있다. 서비스 관리는 중앙집중형 ALM 을 통해서 서비스 발견 프레임워크를 이용하여 지원될 수도 있다.
도 2 에 예시된 바와 같이, WiFi 수신응답들은 접속 개방 및 접속 수락 메시지들이 싱크 컴퓨팅 디바이스에 의해 수신될 때 사용자 채널 (205) 을 통해서 싱크 WiFi 계층 (206) 과 소스 WiFi MAC 계층 (204) 사이에 (예컨대, WiFi MAC 계층들 사이에) 교환된다. 추가적으로, 소스 컴퓨팅 디바이스의 소스 스택 태스크 계층 (202) 은 멀티캐스트 채널-상태-추정 조회들 (inquires) (예컨대, 에러 로그들에 대한 요청들) 을 멀티캐스트 그룹의 싱크 컴퓨팅 디바이스들로 원격 멀티캐스트-포트로의 기록 및/또는 판독 메시지들을 통해서 전송할 수도 있다. 싱크 컴퓨팅 디바이스의 싱크 스택 태스크 계층 (208) 은 사용자 채널 (205) 을 통해서 소스 어드레스 및 포트로 전송되는 판독-응답/기록 메시지 (예컨대, 요청된 에러 로그) 로 응답할 수도 있다.
도 3 은 일 실시형태에 따른, WiFi 미라캐스트® 프로토콜 스택 (300) 에서의 ALM 소켓 인터페이스를 예시하는 데이터 구조 다이어그램이다. 애플리케이션 계층의 서비스 관리 모듈 (302) 로부터 나오고 그리고 그로 들어가는 여러 화살표들로 표시된 바와 같이, 애플리케이션 세션 및 액세스 제어 관리 메시지들은 필요에 따라 유니캐스트되거나 또는 브로드캐스트될 수도 있다. 일 실시형태에서, 무선 채널 송신은 서비스 관리 모듈 (302) 로부터 멀티-채널-오디오 패킷화기 모듈 (304) 및 멀티캐스트 라우팅 모듈 (306) 을 통해서 멀티캐스트로서 배포될 수도 있다. 추가적으로, 멀티캐스트 송신을 위한 접속 맵핑은 싱크 컴퓨팅 디바이스들이 소스 컴퓨팅 디바이스의 설정된 로컬 포트를 어드레스함으로써 멀티캐스트 송신들에 응답할 수 있도록 소스 컴퓨팅 디바이스에 대한 로컬 포트를 설정하는 접속 개방 모듈 (308) 에 의해 제어될 수도 있다.
도 4 는 일 실시형태에 따른, ALM 을 가진 WiFi 미라캐스트® 프로토콜 스택 (400) 을 예시하는 데이터 구조 다이어그램이다. 일 실시형태에서, 다수의 싱크 컴퓨팅 디바이스들은 WiFi 미라캐스트® 에서의 단일 소스 소켓으로부터 애플리케이션 데이터를 수신하기 위해 멀티캐스트 그룹으로 그룹화될 수도 있다. 도 4 에 볼 대시된 (ball dashed) 멀티캐스트 라인들에 의해 예시된 바와 같이, 패킷들 수신기 모듈 및 유입 패킷들 라우터 모듈로부터의 유입하는 멀티캐스트 프레임들 또는 패킷들은 싱크 컴퓨팅 디바이스의 프로세서 상에서 실행하는 오버레이 패킷들 구성기의 ALM 모듈 (402) 로 라우팅될 수도 있다. 추가적으로, 유출 (outgoing) 패킷들 검사 및 라우터 모듈로부터의 유출 프레임들 또는 패킷들은 싱크 컴퓨팅 디바이스의 프로세서 상에서 실행하는 오버레이 패킷들 구성기의 ALM 모듈 (402) 로 라우팅될 수도 있다. 이와 같이, 멀티캐스트 그룹의 싱크 컴퓨팅 디바이스들은 패킷들을 수신하고 (예컨대, FEC nags 를 통해서) 소스 컴퓨팅 디바이스에서의 애플리케이션 서버에 도달하기 위해 멀티캐스트 소켓을 이용할 수도 있다.
도 5 는 애플리케이션 레벨 채널 상태 추정을 위한 실시형태 방법 (500) 을 예시하는 프로세스 흐름도이다. 일 실시형태에서, 방법 (500) 의 동작들은 싱크 컴퓨팅 디바이스의 프로세서에 의해 수행될 수도 있다. 블록 502 에서, 싱크 컴퓨팅 디바이스의 프로세서는 애플리케이션 성능 메트릭을 계산할 수도 있다. 블록 504 에서, 싱크 컴퓨팅 디바이스의 프로세서는 PCR 스킵/미스 레이트를 계산할 수도 있다. 블록 506 에서, 싱크 컴퓨팅 디바이스의 프로세서는 연속성-카운터 스킵/미스 레이트를 계산할 수도 있다. 블록 508 에서, 싱크 컴퓨팅 디바이스의 프로세서는 RTP 시퀀스-번호 스킵/미스 레이트를 계산할 수도 있다. 블록 510 에서, 싱크 컴퓨팅 디바이스의 프로세서는 블록들 502, 504, 506, 및 508 에서의 계산들의 결과들 중 하나 이상에 기초하여 채널 상태 추정을 결정할 수도 있다. 예를 들어, 채널 상태 추정은 패킷-손실-레이트일 수도 있다.
결정 블록 512 에서, 싱크 컴퓨팅 디바이스의 프로세서는 패킷-손실-레이트가 임계치보다 큰지 여부를 결정할 수도 있다. 패킷 손실 레이트가 임계치보다 높다고 결정하는 것에 응답하여 (즉, 결정 블록 512 = "예"), 싱크 컴퓨팅 디바이스의 프로세서는 블록 514 에서 에러 로그를 소스 컴퓨팅 디바이스로 별개의 무선 업링크 채널을 통해서 유니캐스트 송신으로 전송할 수도 있다. 패킷 손실 레이트가 임계치보다 높지 않다고 결정하는 것에 응답하여 (즉, 결정 블록 512 = "아니오"), 싱크 컴퓨팅 디바이스의 프로세서는 무선 접속에서의 변화들을 검출하고 조정하기 위해서 블록들 502, 504, 506, 및 508 에서의 성능 메트릭들을 계산하는 동작들을 반복할 수도 있다.
도 6 은 그룹-기반의 채널-에러 정정을 위한 적응적 유니캐스트 반복/재송신을 위한 일 실시형태 방법을 예시하는 프로세스 흐름도이다. 일 실시형태에서, 방법 (600) 의 동작들은 소스 컴퓨팅 디바이스의 프로세서에 의해 수행될 수도 있다. 결정 블록 602 에서, 소스 컴퓨팅 디바이스의 프로세서는 멀티캐스트 프레임이 대기중인지 여부를 결정할 수도 있다. 멀티캐스트 프레임이 대기 중이라고 결정하는 것에 응답하여 (즉, 결정 블록 602 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 604 에서 채널이 클리어한지 여부를 결정할 수도 있다. 채널이 클리어하다고 결정하는 것에 응답하여 (즉, 결정 블록 604 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 606 에서 분산 조정 함수 (DCF) 인터프레임 공간 (DIFS) 지속기간과 같은, 요구된 인터프레임 공간 (IFS) 지속기간을 대기하고, 결정 블록 610 에서 채널이 클리어한지 여부를 결정할 수도 있다. 소스 컴퓨팅 디바이스가 DIFS 일 수도 있는 요구된 IFS 지속기간을 대기하는 것으로 설명되지만, DIFS 는 단지 하나의 예시적인 IFS 시간이며, 요구된 IFS 지속기간은 중재 인터-프레임 간격 (AIFS) 액세스 카테고리 (AC) AIFS[AC] 지속기간과 같은 하나 이상의 다른 시간 기간들에 의해 표현될 수도 있다.
채널이 클리어하지 않다고 결정하는 것에 응답하여 (즉, 결정 블록 604 = "아니오" 또는 결정 블록 610 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 612 에서 백-오프 (back-off) 기간이 타임아웃되었는지 여부를 결정할 수도 있다. 백-오프 기간이 타임아웃되었다고 결정하는 것에 응답하여 (즉, 결정 블록 612 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 614 에서 DIFS 지속기간을 대기하고, 블록 616 에서 채널이 클리어한지 여부를 결정할 수도 있다. 채널이 클리어하지 않다고 결정하는 것에 응답하여 (즉, 결정 블록 616 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 618 에서 백-오프 기간을 재계산할 수도 있다.
블록 618 에서 백-오프 기간을 재계산 시 또는 백-오프 기간이 타임아웃되지 않았다고 결정하는 것에 응답하여 (즉, 결정 블록 612 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 608 에서, 유입하는 에러 로그들 (예컨대, CQE 로그들) 을 수집하고, 다시, 결정 블록 612 에서 백-오프 기간이 타임아웃되었는지 여부를 결정할 수도 있다.
채널이 클리어하다고 결정하는 것에 응답하여 (즉, 결정 블록들 610 또는 616 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 620 에서 멀티캐스트 프레임들을 재송신할 수도 있다. 블록 621 에서, 소스 컴퓨팅 디바이스의 프로세서는 각각의 그룹 멤버에 대해 CQE 를 계산하고 멀티캐스트 애플리케이션 QoS/QoE 를 측정할 수도 있다. 결정 블록 622 에서, 소스 컴퓨팅 디바이스의 프로세서는 각각의 그룹 멤버에 대한 CQE 및 멀티캐스트 애플리케이션 QoS/QoE 중 적어도 일부분에 기초하여, 채널이 이용가능한지 여부를 결정할 수도 있다. 채널이 이용불가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 622 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 624 에서 채널을 해제할 수도 있다.
채널이 이용가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 622 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 626 에서 모든 그룹 멤버들에 도달하였는지 여부를 결정할 수도 있다. 예를 들어, 소스 컴퓨팅 디바이스의 프로세서는 CQE 로그가 각각의 그룹 멤버로부터 수신되었는지 여부 및/또는 수신응답 메시지의 일부 유형이 각각의 그룹 멤버로부터 수신되었는지 여부를 결정하여, 각각의 그룹 멤버에 도달하였는지 여부를 결정할 수도 있다. 적어도 하나의 그룹 멤버에 도달하지 않았다고 결정하는 것에 응답하여 (즉, 결정 블록 626 "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 630 에서 멀티캐스트 애플리케이션 프레임들을 뮤트된 (muted) 노드들 (예컨대, 도달되지 않은 싱크 컴퓨팅 디바이스들) 로 유니캐스트로 전송할 수도 있다.
모든 그룹 멤버들에 도달되었다고 결정하는 것에 응답하여 (즉, 결정 블록 626 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 628 에서 채널 성능 또는 멀티캐스트 애플리케이션 QoS 가 열악한지 여부를 결정할 수도 있다. 채널 성능 또는 멀티캐스트 애플리케이션 QoS 가 열악하다고 결정하는 것에 응답하여 (즉, 결정 블록 628 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 624 에서 채널을 해제할 수도 있다. 채널 성능 또는 멀티캐스트 애플리케이션 QoS 가 열악하지 않다고 결정하는 것에 응답하여 (즉, 결정 블록 628 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 632 에서 멀티캐스트 애플리케이션 프레임들을 유니캐스트로 레이트-이상 문제들을 가진 노드들로 반복/재송신할 수도 있다. 프로세서는 블록 602 에서 다음 멀티캐스트 프레임이 대기 중인지 여부를 결정함으로써 방법 (602) 의 동작들을 루프로 수행할 수도 있다.
도 7 은 그룹-기반의 채널-품질 질의를 위해 소스 컴퓨팅 디바이스와 싱크 컴퓨팅 디바이스 사이에 교환되는 메시지들을 예시하는 콜 흐름도이다. 도 7 은 위에서 설명된 사용자 채널 (205) 을 가로지르는, 계층들 (202, 204, 206, 및 208) 사이의 추가적인 교환들을 도시한다는 점에서 위에서 설명된 도 2 와 유사하다. 도 7 은 모든 그룹 멤버들에게 그들의 개별 CQE 및/또는 애플리케이션 QoS/QoE 를 쿼리하기 위해 멀티캐스트가 어떻게 사용될 수 있는지를 예시한다. 일 실시형태에서, 강건성 (health) 질의들에 응답하지 않는 노드들 (예컨대, 싱크 컴퓨팅 디바이스들) 또는 열악한 링크 성능을 보고하는 이들 노드들은 유니캐스트 재송신용으로 리스트될 수도 있다.
도 8a 는 에러 로그를 발생시켜 전송하는 일 실시형태 방법 (800) 을 예시하는 프로세스 흐름도이다. 일 실시형태에서, 방법 (800) 의 동작들은 싱크 컴퓨팅 디바이스의 프로세서에 의해 수행될 수도 있다. 블록 802 에서, 싱크 컴퓨팅 디바이스의 프로세서는 프레임 또는 패킷을 수신할 수도 있다. 예를 들어, 프레임 또는 패킷은 소스 컴퓨팅 디바이스로부터의 멀티캐스트 송신 및/또는 소스 컴퓨팅 디바이스로부터의 유니캐스트 송신을 통해서 수신된 프레임 또는 패킷일 수도 있다.
블록 804 에서, 싱크 컴퓨팅 디바이스의 프로세서는 이전에 수신된 프레임 또는 패킷에서의 하나 이상의 데이터 엘리먼트들에 대한, 수신된 프레임 또는 패킷에서의 하나 이상의 데이터 엘리먼트들의 비교에 적어도 부분적으로 기초하여 채널 상태를 추정할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 프레임들 또는 패킷들이 수신됨에 따라서 MPEG 프레임들 또는 패킷들과 같은 콘텐츠 프레임들 또는 패킷들을 모니터링할 수도 있다. RTP SEQ_NUM, MPEG-TS, 및 PCR 과 같은 프레임들 또는 패킷들에서의 데이터 엘리먼트들에 기초하여, 싱크 컴퓨팅 디바이스의 프로세서는 현재 수신된 프레임 또는 패킷을 이전에 수신된 프레임 또는 패킷과 비교함으로써 채널 상태를 추정할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 포함된 프로그램 클록 기준들 (PCR들) 을 비교하여 PCR 스킵 또는 미스 레이트를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 PCR 스킵 또는 미스 레이트는 PCR 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, PCR 스킵 또는 미스 레이트 및/또는 PCR 에러 발생의 표시가 채널에 대한 패킷 손실 레이트와 같은 채널 상태를 추정하기 위해 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 포함된 MPEG-시간 스탬프들 (TS들) 및 연속성 카운터 (CC들) 를 비교하여 연속성 카운터 스킵 또는 미스 레이트를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 연속성 카운터 스킵 또는 미스 레이트는 연속성 카운터 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, 연속성 카운터 스킵 또는 미스 레이트 및/또는 연속성 카운터 에러 발생의 표시가 채널에 대한 패킷 손실 레이트와 같은 채널 상태를 추정하기 위해 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 프로세서는 2개 이상의 연속적으로 수신된 프레임들 또는 패킷들에 표시된 실시간 전송 프로토콜 (RTP) 시퀀스 번호들 (SEQ_NUMs) 을 비교하여, RTP SEQ_NUM 스킵 또는 미스 레이트를 계산할 수도 있다. 일 실시형태에서, 싱크 컴퓨팅 디바이스의 메모리에 저장된 임계값보다 높은 RTP SEQ_NUM 스킵 또는 미스 레이트는 RTP SEQ 에러가 발생하였다는 것을 표시할 수도 있다. 일 실시형태에서, RTP SEQ_NUM 스킵 또는 미스 레이트 및/또는 RTP SEQ 에러 발생의 표시가 채널에 대한 패킷 손실 레이트와 같은 채널 상태를 추정하기 위해, 싱크 컴퓨팅 디바이스의 프로세서에 의해 사용될 수도 있다. 추가 실시형태들에서, PCR 스킵 또는 미스 레이트 및/또는 PCR 에러 발생의 표시, 연속성 카운터 스킵 또는 미스 레이트 및/또는 연속성 카운터 에러 발생의 표시, 및 RTP SEQ_NUM 스킵 또는 미스 레이트 및/또는 RTP SEQ 에러 발생의 표시 중 2개 이상의 여러 조합들이 채널에 대한 패킷 손실 레이트와 같은 채널 상태를 추정하기 위해, 싱크 컴퓨팅 디바이스의 프로세서에 의해 함께 사용될 수도 있다.
결정 블록 806 에서, 소스 컴퓨팅 디바이스의 프로세서는 추정된 채널 상태가 임계치보다 큰지 여부를 결정할 수도 있다. 예를 들어, 싱크 컴퓨팅 디바이스의 프로세서는 추정된 채널 상태를 메모리에 저장된 임계치와 비교할 수도 있다. 구체적인 예로서, 싱크 컴퓨팅 디바이스의 프로세서는 추정된 패킷 손실 레이트를 메모리에 저장된 최대 패킷 손실 레이트와 비교할 수도 있다. 추정된 채널 상태가 임계치 이하라고 결정하는 것에 응답하여 (즉, 결정 블록 806 = "아니오"), 싱크 컴퓨팅 디바이스의 프로세서는 결정 블록 808 에서 에러 로그가 소스 컴퓨팅 디바이스에 의해 요청되는지 여부를 결정할 수도 있다. 예를 들어, 싱크 컴퓨팅 디바이스의 프로세서는 에러 로그 요청 표시가 소스 컴퓨팅 디바이스로부터의 수신된 프레임 또는 패킷에 포함되었는지 여부를 결정할 수도 있다.
에러 로그가 요청되지 않았다고 결정하는 것에 응답하여 (즉, 결정 블록 808 = "아니오"), 싱크 컴퓨팅 디바이스의 프로세서는 블록 802 에서 다음 프레임 또는 패킷을 수신할 수도 있다.
에러 로그가 소스 컴퓨팅 디바이스에 의해 요청되었다고 (즉, 결정 블록 808 = "예"), 또는 추정된 채널 상태가 임계치보다 크다고 (즉, 결정 블록 806 = "예") 결정하는 것에 응답하여, 싱크 컴퓨팅 디바이스의 프로세서는 블록 810 에서, 추정된 채널 상태를 포함하는 에러 로그를 발생시켜 전송할 수도 있다. 예를 들어, 에러 로그는 유니캐스트를 통해서 소스 컴퓨팅 디바이스로 전송된 CQE 로그일 수도 있다. 프로세서는 블록 802 에서 다음 프레임 또는 패킷을 수신함으로써 방법 (800) 을 반복할 수도 있다.
도 8b 는 도 8a 의 실시형태 방법 (800) 을 구현하는 일 실시형태 싱크 컴퓨팅 디바이스 (850a) 를 예시하는 블록도이다. 실시형태 싱크 컴퓨팅 디바이스들 (850a, 850b, 850c, 및 850d) (일괄하여 850) 의 각각은 무선 네트워크 (870) (예컨대, WiFi 미라캐스트®) 를 통해서 소스 컴퓨팅 디바이스 (880) (예컨대, WiFi 미라캐스트® 서버 디바이스 (880)) 와 통신하는 WiFi 미라캐스트® 클라이언트 디바이스일 수도 있다.
일 실시형태에서, 소스 컴퓨팅 디바이스 (880) 는 멀티미디어 또는 다른 실시간 콘텐츠를 WiFi 미라캐스트® 클라이언트 디바이스들 (850) 로 무선 멀티캐스트 채널을 통해서 멀티캐스트할 수도 있으며, 싱크 컴퓨팅 디바이스들은 에러 로그들 또는 멀티캐스트 채널 품질 또는 상태의 다른 표시들을 소스 컴퓨팅 디바이스 (880) 로 다시 통신할 수도 있다. 에러 로그들은 에러 임계치를 만족시키는 것에 응답하여, 또는 소스 컴퓨팅 디바이스 (880) 에 의한 요구 시에, 주기적으로 (예컨대, 적어도 매 50 ms 마다) 통신될 수도 있다. 일 예로서, WiFi 미라캐스트® 서버 디바이스는 미디어 플레이어를 구현할 수도 있으며, WiFi 미라캐스트® 클라이언트 디바이스들은 멀티-채널 서라운드 사운드 시스템의 여러 오디오 스피커 구성요소들을 구현할 수도 있다.
실시형태 싱크 컴퓨팅 디바이스 (850a) 는 제어기 모듈 (852), 흐름 모니터 (854), 흐름 분석기 (856), 및 리소스 관리기 (858) 를 포함할 수도 있다. 제어기 모듈 (852), 흐름 모니터 (854), 및 흐름 분석기 (856) 의 기능은 향상된 실시간 프로세싱을 위한 회로 또는 회로 모듈들과 같은 하드웨어로 구현될 수도 있다.
싱크 컴퓨팅 디바이스 (850a) 는 또한 하나 이상의 애플리케이션 모듈들 (860) 및 하나 이상의 통신 모듈들 (862) 을 포함할 수도 있다. 애플리케이션 모듈 (860) 은 데이터에의 저-레이턴시 액세스를 요구하는 멀티미디어 또는 다른 실시간 애플리케이션을 구현할 수도 있다. 예를 들어, 애플리케이션 모듈 (860) 은 오디오, 비디오 또는 오디오 및 비디오 양쪽을 출력하는 멀티미디어 애플리케이션을 구현할 수도 있다. 하나 이상의 통신 모듈들 (862) 은 무선 네트워크 (870) 를 통해서 통신하는 통신 프로토콜들의 세트를 구현할 수도 있다. 예를 들어, 통신 모듈들 (862) 은 WiFi 미라캐스트® 네트워크를 통해서 통신하도록 전송, 네트워크, 및 물리 계층 통신 프로토콜들의 세트를 구현할 수도 있다. 하나 이상의 애플리케이션 모듈들 (860) 및 하나 이상의 통신 모듈들 (862) 은 회로 또는 회로 모듈들과 같은 하드웨어로 또는 프로세서 상에서 실행하는 소프트웨어 모듈들로서 구현될 수도 있다.
동작 시, 멀티캐스트 그룹의 멤버들인 싱크 컴퓨팅 디바이스들 (850) 은 소스 컴퓨팅 디바이스 (880) 로부터 무선 네트워크 (870) 를 통해서 멀티캐스트 데이터 스트림 (882) 을 수신한다. 멀티캐스트 데이터 스트림 (882) 은 싱크 컴퓨팅 디바이스들 (850) 에 의한 플레이백 또는 다른 출력 프리젠테이션을 위한 멀티미디어 또는 다른 실시간 콘텐츠를 운반할 수도 있다. 예를 들어, WiFi 미라캐스트® 오디오 스피커들 (싱크 컴퓨팅 디바이스들 (850) 의 일 예) 의 세트는 WiFi 미라캐스트® 서라운드 사운드 미디어 플레이어로부터 멀티-채널 오디오 데이터의 멀티캐스트 데이터 스트림을 수신할 수도 있다. 미디어 플레이어는 고정된 컴퓨팅 디바이스 (예컨대, 셋 탑 박스), 또는 모바일 컴퓨팅 디바이스 (예컨대, 휴대형 뮤직 플레이어) 일 수도 있다.
싱크 컴퓨팅 디바이스 (850a) 는 수신된 멀티캐스트 데이터 스트림 (882) 을 여러 물리, 네트워크, 및 전송 계층 프로토콜들에 따라서 프로세싱하는 하나 이상의 통신 모듈들 (862) 을 통해서 통신할 수도 있다. 예를 들어, 통신 모듈들 (862) 은 WiFi 물리 계층 모듈, 인터넷 프로토콜 (IP) 네트워크 모듈, 및 사용자 데이터그램 프로토콜 (UDP) 전송 모듈을 포함할 수도 있다. 멀티캐스트 데이터 스트림 (882) 은 버스 또는 다른 하드웨어 인터페이스를 통해서, 애플리케이션 계층 특정의 프로세싱이 멀티미디어 또는 실시간 콘텐츠에 대해 수행되는 애플리케이션 모듈 (860) 로 추가로 통신될 수도 있다. 예를 들어, WiFi 미라캐스트® 오디오 스피커의 애플리케이션 모듈 (860) 은 특정의 오디오 채널 (예컨대, 전면 좌측, 중심, 전면 우측, 서라운드 좌측, 서라운드 후면, 서라운드 우측, 서브우퍼) 에 대한 멀티 채널 오디오 데이터의 디코딩 및 플레이백을 제어할 수도 있다.
통신 모듈들 (862) 과 애플리케이션 모듈 (860) 사이에 통신되는 멀티캐스트 데이터 스트림 (882) 은 패킷들, 프레임들 또는 다른 유닛들로 세그먼트화될 수도 있다. 예를 들어, 멀티캐스트 데이터 스트림 (882) 은 어떤 애플리케이션 계층 프로토콜들, 예컨대, 실시간 전송 프로토콜 (RTP) 에 따라서 포맷된 패킷들로 세그먼트화될 수도 있다. 각각의 RTP 패킷은 RTP 헤더 및 페이로드를 포함할 수도 있다. RTP 패킷의 헤더는 각각의 RTP 패킷에 대해 증분되는 시퀀스 번호 (RTP_SEQ_NUM) 를 포함한, 어떤 애플리케이션 계층 (또는, 애플리케이션-특정의) 시간 및/또는 시퀀스 정보를 나타내는 데이터 엘리먼트들을 포함할 수도 있다. RTP 패킷의 페이로드는 멀티미디어 또는 다른 실시간 콘텐츠를 운반할 수도 있거나 또는 하나 이상의 서브패킷들을 포함할 수도 있다. 예를 들어, 일부 실시형태들에서, RTP 패킷의 페이로드는 오디오 및/또는 비디오 데이터의 기본 스트림들을 운반하는 MPEG-2 전송 스트림 (TS) 패킷을 포함할 수도 있다. MPEG-2 TS 패킷의 헤더는 또한 애플리케이션 계층 (또는, 애플리케이션-특정의) 시간 및/또는 시퀀스 정보를 나타내는 데이터 엘리먼트들을 포함할 수도 있다.
멀티미디어 또는 다른 실시간 콘텐츠의 경우, 애플리케이션 모듈 (850) 은 멀티캐스트 데이터 스트림을 잘, 예컨대, 최소의 패킷 손실로, 수신하는 것이 바람직할 수도 있다. 싱크 컴퓨팅 디바이스들 (850) 중 하나 이상이 패킷들을 미싱중이거나 또는 스킵중이면 (즉, 모든 패킷들이 수신 및 디코딩되는 것은 아니면), 대응하는 플레이백 또는 출력이 부정적인 영향을 받을 수도 있다. 클라이언트 디바이스 (850) 가 멀티캐스트 데이터를 얼마나 잘 수신하고 있는지를 결정하기 위해, 싱크 컴퓨팅 디바이스들 (850) 의 각각은 멀티캐스트 데이터 스트림 (882) 에서의 수신된 패킷들의 어떤 애플리케이션 계층 데이터 엘리먼트들 (예컨대, 시간 및/또는 시퀀스 정보) 을 모니터링하여 분석하고 그리고 필요에 따라서 교정 동작을 위해 이러한 분석의 결과들을 에러 로그들 또는 채널 품질의 다른 표시들의 형태로 소스 컴퓨팅 디바이스 (880) 로 다시 통신하도록 구성될 수도 있다.
일부 실시형태들에서, 제어기 모듈 (852) 은 수신된 멀티캐스트 데이터 스트림 (882) 의 패킷들을 검출하고 모니터링하기 위한 소스 컴퓨팅 디바이스 (880) 로부터의 정보로 구성될 수도 있다. 예를 들어, 제어기 모듈 (852) 은 멀티캐스트 어드레스 및 포트 번호를 포함할 수도 있는 목적지 소켓 식별자로 구성될 수도 있다. 제어기 모듈 (852) 은 멀티캐스트 데이터 스트림 (882) 내에서 멀티플렉싱될 수도 있는 기본 스트림들 (예컨대, 오디오, 비디오, 등) 중 하나를 식별하기 위한 패킷 식별자로 더 구성될 수도 있다. 소스 컴퓨팅 디바이스 (880) 는 수신된 멀티캐스트 스트림의 패킷들을 검출하도록 제어기 모듈 (852) 을 구성하기 위해, 이러한 구성 정보를 리소스 관리기 (858) 에 의해 수신되어 사용되는 별개의 멀티캐스트 또는 유니캐스트 메시지로 각각의 싱크 컴퓨팅 디바이스 (850) 로 통신할 수도 있다.
멀티캐스트 데이터 스트림 (882) 의 패킷들이 통신 모듈들 (862) 로부터 애플리케이션 모듈 (860) 로 통신됨에 따라서, 제어기 모듈 (852) 은 구성된 소켓 식별자 및/또는 패킷 식별자를 이용하여, 모니터링되고 있는 멀티캐스트 데이터 스트림 (882) 에 대응하는 패킷들을 검출할 수도 있다. 멀티캐스트 데이터 스트림 (882) 의 패킷이 검출될 때마다, 제어기 모듈 (852) 은 검출된 패킷의 존재를 표시하는 인터럽트 또는 다른 경보를 흐름 모니터 (854) 로 전송할 수도 있다.
흐름 모니터 (854) 는 검출된 패킷에 포함된 하나 이상의 데이터 엘리먼트들을 모니터링하도록 구성될 수도 있다. 일 실시형태에서, 하나 이상의 데이터 엘리먼트들은 패킷에서 운반되는 멀티미디어 콘텐츠에 대응하는 시간 또는 시퀀스 정보를 포함할 수도 있다. 예를 들어, 패킷이 RTP 패킷인 구현예들에서, 흐름 모니터 (854) 는 RTP 패킷의 헤더에서 시퀀스 번호 (RTP_SEQ_NUM) 의 값을 판독하거나 또는 추출하도록 구성될 수도 있다. 다른 예로서, RTP 의 페이로드는 MPEG 2 전송 스트림 (TS) 패킷을 더 포함할 수도 있으며, 따라서, 흐름 모니터 (854) 는 MPEG-2 TS 패킷에서 프로그램 클록 기준 (PCR) 및/또는 연속성 카운터 (CC) 의 값을 판독하거나 또는 추출하도록 구성될 수도 있다.
흐름 모니터 (854) 는 검출된 패킷 내 모니터링된 데이터 엘리먼트들을 이전에 수신된 패킷 내 데이터 엘리먼트들과 비교하도록 더 구성될 수도 있다. 검출된 패킷에서의 모니터링된 데이터 엘리먼트의 값이 예상된 값과 상이하다고 결정하는 것에 응답하여, 흐름 모니터는 수신 에러가 발생하였다고 결정할 수도 있다. 예를 들어, RTP 패킷의 헤더에서의 시퀀스 번호 (RTP_SEQ_NUM) 가 각각의 RTP 데이터 패킷에 대해 1 만큼 증분된다. 따라서, 연속된 RTP 패킷들의 시퀀스 번호들에서의 차이가 1보다 크다고 결정하는 것에 응답하여, 흐름 모니터 (854) 는 RTP_SEQ_NUM 에러가 존재한다고 결정할 수도 있다. RTP_SEQ_NUM 에러는 일반적으로 하나 이상의 손실된 (즉, 수신되지 않은) RTP 패킷들을 나타낸다. 이와 유사하게, MPEG-2 TS 패킷들의 프로그램 클록 기준 (PCR) 및 연속성 카운터 (CC) 의 값들이 또한 어떤 레이트들 및 간격들로 증분될 것으로 예상된다. 따라서, 2개의 연속적으로 수신된 PCR 값들 사이의 실제 간격이 예상된 간격 (예컨대, 매 100 밀리초 마다 한번) 과는 상이하다고 결정하는 것에 응답하여, 프로그램 클록 기준 (PCR) 에러가 검출될 수도 있다. 이와 유사하게, 연속성 카운터 (CC) 에러가, 연속적으로 모니터링된 연속성 카운터들 (CC) 의 값들 사이의 차이가 1 보다 크다고 결정하는 것에 응답하여 검출될 수도 있다.
흐름 모니터 (854) 는 수신 에러 (예컨대, RTP_SEQ_NUM PCR, 및/또는 CC 에러) 가 존재한다고 결정하는 것에 응답하여 수신 에러 및 추가적인 관련된 메타데이터를 흐름 분석기 (856) 로 통신하도록 구성될 수도 있다. 흐름 분석기 (856) 는 여러 수신 에러들의 기록을 유지하고 시간에 따라서 이러한 에러들의 레이트 (예컨대, RTP_SEQ_NUM, PCR, 및/또는 CC 스킵된/미싱 에러 레이트들) 를 추적하도록 구성될 수도 있다. 흐름 분석기 (856) 는 수신 에러 레이트들 중 하나 이상에 기초하여 무선 채널의 상태 또는 품질의 추정을 계산하도록 더 구성될 수도 있다. 일 실시형태에서, 추정된 채널 상태는 패킷 손실 레이트일 수도 있다. 예를 들어, 패킷 손실 레이트의 추정은 RTP_SEQ_NUM, PCR, 및/또는 CC 스킵된/미싱 에러 레이트들 중 하나 이상에 기초할 수도 있다.
흐름 분석기 (854) 는 또한 패킷 손실 레이트와 같은 추정된 채널 상태를, 최대 패킷 손실 레이트와 같은 에러 임계치에 대해, 비교하도록 구성될 수도 있다. 무선 채널의 추정된 채널 상태가 에러 임계치를 만족시키거나 또는 초과한다고 결정하는 것에 응답하여, 흐름 분석기 (854) 는 추정된 채널 상태를 경보 또는 인터럽트의 형태로 리소스 관리기 (858) 로 통신할 수도 있다. 그 경보에 응답하여, 리소스 관리기 (858) 는 추정된 채널 상태를 포함하는 에러 로그를 발생시켜, 소스 컴퓨팅 디바이스 (880) 로 다시 송신할 수도 있다. 일부 실시형태들에서, 리소스 관리기 (858) 는 로그가 발생된 직후에 에러 로그를 소스 컴퓨팅 디바이스 (880) 로 전송할 수도 있다. 싱크 컴퓨팅 디바이스들 (850) 이 미리 결정된 시간들에서 (예컨대, 매 50 ms 마다) 또는 소스 컴퓨팅 디바이스 (880) 에 의한 요구시 에러 로그를 송신하도록 구성되는 다른 실시형태들에서, 리소스 관리기 (858) 는 시간에 걸쳐서 집합된 추정된 채널 상태들의 다수의 시간-스탬프된 엔트리들을 포함하는 에러 로그를 발생시킬 수도 있다. 싱크 컴퓨팅 디바이스 (850) 의 리소스 관리기 (858) 는 에러 로그를 유니캐스트 메시지로 소스 컴퓨팅 디바이스 (880) 로 별개의 WiFi 미라캐스트® 채널 접속을 통해서 다시 송신할 수도 있다.
일부 실시형태들에서, 리소스 관리기 (858) 는 또한 경보를, 추정된 채널 상태와 함께 또는 없이, 애플리케이션 모듈 (860) 로 통신하도록 구성될 수도 있다. 클라이언트 디바이스가 멀티캐스트 데이터 스트림을 잘 수신하고 있지 않다고 추정된 채널 상태가 표시할 때, 경보가 멀티미디어 또는 실시간 콘텐츠의 플레이백 또는 다른 출력 프리젠테이션을 중단하라는 지령의 형태로 통신될 수도 있다. 경보는 또한 애플리케이션 모듈 (860) 로 하여금, 클라이언트 디바이스가 멀티캐스트 데이터 스트림을 잘 수신하고 있지 않다는 것에 기초하여, 콘텐츠의 플레이백 또는 다른 출력 프리젠테이션을 중단할지 여부를 결정가능하게 하기 위해서, 추정된 채널 상태를 포함한, 통지 메시지의 형태로 통신될 수도 있다.
일부 실시형태들에서, 소스 컴퓨팅 디바이스 (880) 및 싱크 컴퓨팅 디바이스들 (850) 은 서비스 중재 및 어드레싱 제어를 포함할 수도 있는 향상된 피어 지원 리소스 관리로, 통합된 서비스 발견 프레임워크를 구현할 수도 있다. 서비스 중재는 서비스의 레벨을 (예컨대, 7.1 내지 5.1 멀티-채널 서라운드 사운드로부터) 피어 클라이언트 디바이스들 (850) 로 다운그레이드시키거나 및/또는 협상하는 것을 포함할 수도 있다. 서비스 중재는 또한 싱크 컴퓨팅 디바이스들 (850) 에 대한 무선 채널 품질이 수용가능할 때 서비스의 레벨을 업그레이드시키고 협상하는 것을 포함할 수도 있다. 어드레스 제어는 데이터를 수용가능한 무선 채널 품질을 경험하는 피어 싱크 컴퓨팅 디바이스들 (850) 로 멀티캐스트하는 것 및 동일한 데이터를 수용불가능한 무선 채널 품질을 경험하는 하나 이상의 클라이언트 디바이스들 (850) 로 유니캐스트하는 것을 포함할 수도 있다. 소스 컴퓨팅 디바이스 (880) 는 서비스 발견 프레임워크의 새로운 또는 기존 채널들을 통해서 통신될 수도 있는 에러 로그들에 기초하여, 하나 이상의 클라이언트 디바이스들 (850) 이 수용불가능한 무선 채널 품질을 경험하고 있는지 여부를 결정할 수도 있다. 소스 컴퓨팅 디바이스 (880) 와 싱크 컴퓨팅 디바이스들 (850) 사이의 구성 정보 및/또는 에러 로그들의 통신은 서비스 발견 프레임워크의 기존 채널들을 통한 메시지들의 송신을 통해서 구현될 수도 있다.
도 9a 및 9b 는 WiFi 미라캐스트® 에서의 스케일러블 데이터 서비스 (예컨대, 멀티미디어 데이터 서비스) 배포를 위한 일 실시형태 방법 (900) 을 예시하는 프로세스 흐름도들이다. 일 실시형태에서, 방법 (800) 의 동작들은 소스 컴퓨팅 디바이스의 프로세서에 의해 수행될 수도 있다. 블록 902 (도 9a) 에서, 프로세서 또는 소스 컴퓨팅 디바이스는 멀티미디어 데이터 서비스 (예컨대, 고선명 오디오, 비디오, 등) 와 같은 데이터 서비스를 수신할 모든 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화할 수도 있다. 블록 904 에서, 프로세서 또는 소스 컴퓨팅 디바이스는 데이터 서비스의 프레임 또는 패킷을 멀티캐스트 송신을 통해서 (예컨대, WiFi 미라캐스트® 멀티캐스트 송신을 통해서) 전송할 수도 있다. 일 실시형태에서, 전송되는 프레임 또는 패킷은 상태 및/또는 성능 표시들을 포함하는 에러 로그를 발생시켜 소스 컴퓨팅 디바이스로 다시 전송해달라는, 임의의 수신 싱크 컴퓨팅 디바이스들에 대한 표시를 포함할 수도 있다.
블록 906 에서, 프로세서 또는 소스 컴퓨팅 디바이스는 수신된 에러 로그들을 체크할 수도 있다. 예를 들어, 프로세서 또는 소스 컴퓨팅 디바이스는 임의의 수신된 에러 로그들이 싱크 컴퓨팅 디바이스들로부터 수신된 에러 로그들의 저장용으로 지정된 메모리 로케이션에 저장되어 있는지 여부를 결정할 수도 있다.
결정 블록 908 에서, 프로세서 또는 소스 컴퓨팅 디바이스는 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그가 수신되었는지 여부를 결정할 수도 있다. 멀티캐스트 그룹 멤버로부터 에러 로그를 수신하는 것의 실패는 그룹 멤버가 에러 로그로 응답하지 않았기 때문에 그룹 멤버에게 멀티캐스트 프레임 또는 패킷이 도달되지 않았다는 것을 표시할 수도 있다. 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그가 수신되지 않았다고 결정하는 것에 응답하여 (즉, 결정 블록 908 = "예"), 프로세서 또는 소스 컴퓨팅 디바이스는 블록 910 에서 미싱 에러 로그들과 연관된 멀티캐스트 그룹 멤버들을 유니캐스트 그룹에 추가할 수도 있다. 이와 같이, 에러 로그들이 수신되지 않은 싱크 컴퓨팅 디바이스들은 멤버들 또는 멀티캐스트 그룹 및 유니캐스트 그룹 양자가 될 수도 있다.
모든 멀티캐스트 그룹 멤버들에 대한 에러 로그가 수신되었다고 결정하는 것에 응답하여 (즉, 결정 블록 908 = "예") 또는 블록 910 에서 멀티캐스트 그룹 멤버들을 유니캐스트 그룹에 추가하는 것에 응답하여, 프로세서 또는 소스 컴퓨팅 디바이스는 결정 블록 912 에서 채널 상태가 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정할 수도 있다. 예를 들어, 프로세서 또는 소스 컴퓨팅 디바이스는 패킷 손실 레이트가 최대 패킷 손실 레이트보다 낮다고 수신된 에러 로그들의 모두 또는 일부 (예컨대, 대다수, 평균, 등) 가 표시하는지 여부를 결정할 수도 있다.
채널 상태가 수용가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여 (즉, 결정 블록 912 = "예"), 프로세서 또는 소스 컴퓨팅 디바이스는 결정 블록 914 에서 모든 멀티캐스트 그룹 멤버들에 대한 채널 성능이 수용가능하다고 임의의 수신된 에러 로그들이 표시하는지 여부를 결정할 수도 있다. 모든 멀티캐스트 그룹 멤버들에 대한 채널 성능이 수용불가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 914 = "아니오"), 프로세서 또는 소스 컴퓨팅 디바이스는 블록 916 에서, 수용불가능한 채널 성능을 가진 임의의 멀티캐스트 그룹 멤버들을 유니캐스트 그룹에 추가할 수도 있다. 이와 같이, 그 특정의 싱크 컴퓨팅 디바이스에 대한 채널 성능이 수용불가능하다는 것을 에러 로그들이 표시하는 싱크 컴퓨팅 디바이스들이 멤버들 또는 멀티캐스트 그룹 및 유니캐스트 그룹 양쪽이 될 수도 있다.
모든 멀티캐스트 그룹 멤버들에 대한 채널 성능이 수용가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 914 = "예") 또는 블록 916 에서 수용불가능한 채널 성능을 가진 멀티캐스트 그룹 멤버들을 유니캐스트 그룹에 추가하는 것에 응답하여, 프로세서 또는 소스 컴퓨팅 디바이스는 결정 블록 918 (도 9b) 에서, 임의의 유니캐스트 그룹 멤버들에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정할 수도 있다. 위에서 설명한 바와 같이, 프레임 또는 패킷은 수신시 에러 로그를 발생시켜 전송해달라는 표시를 포함할 수도 있으며, 재송신된 프레임 또는 패킷을 유니캐스트 송신 (예컨대, WiFi 미라캐스트® 유니캐스트 송신) 을 통해서 수신 시, 싱크 컴퓨팅 디바이스는 에러 로그를 소스 컴퓨팅 디바이스로, 예를 들어, WiFi 미라캐스트® 유니캐스트를 통해서 전송할 수도 있다. 유니캐스트 그룹 멤버에 의해 표시되는 채널 성능은 유니캐스트 그룹으로부터 제거될 유니캐스트 그룹 멤버에게 자격을 부여하고, 소스 컴퓨팅 디바이스로부터 오직 멀티캐스트를 통해서만 수신중인 프레임들 또는 패킷들로 반환될 수도 있다. 이와 같이, 싱크 컴퓨팅 디바이스에 대한 채널 성능이 (예컨대, 간섭 소스의 제거, 등으로 인해) 향상된다면, 유니캐스트 리소스들이 그 싱크 컴퓨팅 디바이스로의 송신에 더 이상 전용되지 않을 수도 있다.
임의의 유니캐스트 그룹 멤버들에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여 (예컨대, 결정 블록 918 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 920 에서 유니캐스트 그룹으로부터 수용가능한 채널 성능을 가진 유니캐스트 그룹 멤버들을 제거할 수도 있다. 이와 같이, 제거된 그룹 멤버들은 멀티캐스트 프레임들 또는 패킷들의 유니캐스트 재송신들을 더 이상 수신하지 않을 것이다.
임의의 유니캐스트 그룹 멤버들에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하지 않는다고 결정하는 것에 응답하여 (예컨대, 결정 블록 918 = "아니오") 또는 블록 920 에서 유니캐스트 그룹으로부터 유니캐스트 그룹 멤버들을 제거하는 것에 응답하여, 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 922 에서 채널 대역폭이 유니캐스트 그룹 내 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정할 수도 있다. 이와 같이, 소스 컴퓨팅 디바이스는 유니캐스트 그룹의 모든 현재의 멤버들로의 유니캐스트 송신들을 완료하기 위해 필요한 대역 폭이 이용가능한지 여부를 체크할 수도 있다.
대역폭이 유니캐스트 송신들에 이용가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 922 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 결정 블록 923 에서 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하였는지 여부를 결정할 수도 있다. 예를 들어, 각각의 프레임 또는 패킷은 송신 시간과 연관될 수도 있으며, 소스 컴퓨팅 디바이스에서의 클록 시간에 기초하여, 소스 컴퓨팅 디바이스의 프로세서는 다음 프레임 또는 패킷의 송신을 위한 시간에 도달하였는지 여부를 결정할 수도 있다.
다음 프레임 또는 패킷의 송신을 위한 시간이 아니라고 결정하는 것에 응답하여 (즉, 결정 블록 923 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 924 에서 프레임 또는 패킷을 유니캐스트 그룹 내 그룹 멤버들로의 유니캐스트 송신 (예컨대, WiFi 미라캐스트® 유니캐스트 송신) 을 통해서 재전송할 수도 있다. 예를 들어, 프레임들 또는 패킷들의 재송신은 소스 컴퓨팅 디바이스의 메모리에 버퍼된 이전에 송신된 프레임들 또는 패킷들과 연관된 플래그를 설정해제하는 것을 포함할 수도 있다. 이러한 비플래그된 프레임들 또는 패킷들은 소스 컴퓨팅 디바이스의 프로세서에 의해 미-송신된 것으로 다시 식별될 수도 있으며, 소스 컴퓨팅 디바이스의 프로세서는 버퍼로부터 비플래그된 프레임들 또는 패킷들을 재송신할 수도 있다. 블록 924 에서의 프레임 또는 패킷의 재송신을 통해서, 유니캐스트 그룹 멤버들이 프레임 또는 패킷을 수신하도록 보장하려고 시도하기 위해서, 소스 컴퓨팅 디바이스에 의해, 블록 904 (도 9a) 에서 원래 멀티캐스트 송신을 넘어서 프레임 또는 패킷을 제공하려는 추가적인 시도들이 이루어질 수도 있다.
블록 924 (도 9b) 에서 프레임 또는 패킷을 유니캐스트를 통해서 재송신하는 것에 응답하여 또는 다음 프레임 또는 패킷의 송신을 위한 시간이라고 결정하는 것에 응답하여 (즉, 결정 블록 923 = "예"), 소스 컴퓨팅 디바이스의 프로세서는 블록 905 (도 9a) 에서 다음 프레임 또는 패킷을 멀티캐스트를 통해서 멀티캐스트 그룹으로, 그리고, 유니캐스트를 통해서 유니캐스트 그룹으로 전송할 수도 있다.
채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여 (즉, 결정 블록 912 = "아니오") 또는 대역폭이 유니캐스트 송신들에 이용불가능하다고 결정하는 것에 응답하여 (즉, 결정 블록 922 = "아니오"), 소스 컴퓨팅 디바이스의 프로세서는 블록 926 (도 9b) 에서 채널을 해제하거나 및/또는 서비스를 다운그레이드시킬 수도 있다. 예를 들어, 소스 컴퓨팅 디바이스의 프로세서는 채널이 멀티캐스트를 통한 수용가능한 송신을 지원하지 않을 수도 있기 때문에, 또는 채널이 싱크 컴퓨팅 디바이스들에 의해 멀티캐스트를 통해서 수신되지 않은 프레임들 또는 패킷들을 정정하는데 필요한 유니캐스트 송신들을 지원하지 않을 수도 있기 때문에, 더 낮은 품질 표현의 서비스로 전환시킬 수도 있다.
여러 실시형태들은 다양한 무선 컴퓨팅 디바이스들에서 구현될 수도 있으며, 이의 일 예가 모바일 디바이스 (1000) 의 형태로 도 10 에 예시된다. 여러 실시형태들에서, 모바일 디바이스 (1000) 는 터치 스크린 제어기 (1004) 및 내부 메모리 (1002) 에 커플링된 프로세서 (1001) 를 포함할 수도 있다. 프로세서 (1001) 는 일반적인 또는 특정의 프로세싱 태스크들용으로 지정된 하나 이상의 멀티-코어 집적 회로들 (IC들) 일 수도 있다. 내부 메모리 (1002) 는 휘발성 또는 비-휘발성 메모리일 수도 있으며, 또한 보안 및/또는 암호화된 메모리, 또는 비보안 및/또는 비암호화된 메모리, 또는 이들의 임의의 조합일 수도 있다. 터치 스크린 제어기 (1004) 및 프로세서 (1001) 는 또한 저항-감지 터치 스크린, 정전용량-감지 터치 스크린, 적외선 감지 터치 스크린, 또는 등등과 같은, 터치 스크린 패널 (1012) 에 커플링될 수도 있다.
모바일 디바이스 (1000) 는 서로 및/또는 프로세서 (1001) 에 커플링되어, 전송하고 그리고 수신하기 위한, 하나 이상의 무선 신호 트랜시버들 (1008) (예컨대, Bluetooth®, Zigbee®, Wi-Fi®, RF 라디오) 및 안테나들 (1010) 을 가질 수도 있다. 트랜시버들 (1008) 및 안테나들 (1010) 은 여러 무선 송신 프로토콜 스택들 및 인터페이스들을 구현하기 위해 위에서 언급된 회로와 함께 사용될 수도 있다. 일부 실시형태들에서, 모바일 디바이스 (1000) 는 셀룰러 네트워크를 통해서 통신을 가능하게 하며 프로세서에 커플링된 셀룰러 네트워크 무선 모뎀 칩 (1016) 을 포함할 수도 있다.
모바일 디바이스 (1000) 는 프로세서 (1001) 에 커플링된 주변장치 디바이스 접속 인터페이스 (1018) 를 포함할 수도 있다. 주변장치 디바이스 접속 인터페이스 (1018) 는 한 유형의 접속을 수용하도록 단일로 구성되거나, 또는 USB (universal serial bus), FireWire, Thunderbolt, 또는 PCIe 와 같은, 여러 유형들의, 공통적인 또는 독점적인, 물리 및 통신 접속들을 수용하도록 다중으로 구성될 수도 있다. 주변장치 디바이스 접속 인터페이스 (1018) 는 또한 유사하게 구성된 주변장치 디바이스 접속 포트 (미도시) 에 커플링될 수도 있다.
모바일 디바이스 (1000) 는 또한 오디오 출력들을 제공하기 위한 스피커들 (1014) 을 포함할 수도 있다. 모바일 디바이스 (1000) 는 또한 본원에서 설명된 구성요소들의 모두 또는 일부를 포함하기 위한, 플라스틱, 금속, 또는 재료들의 조합으로 이루어지는 하우징 (1020) 을 포함할 수도 있다. 모바일 디바이스 (1000) 는 1회용 또는 재충전가능한 배터리와 같은, 프로세서 (1001) 에 커플링된 전력 소스 (1022) 를 포함할 수도 있다. 재충전가능한 배터리는 또한 모바일 디바이스 (1000) 외부에 있는 소스로부터 충전 전류를 수신하기 위해 주변장치 디바이스 접속 포트에 커플링될 수도 있다.
위에서 설명된 여러 실시형태들은 또한 도 11 에 예시된 스피커 유닛 (1100) 과 같은 다양한 컴퓨팅 디바이스들 내에서 구현될 수도 있다. 예를 들어, 스피커 유닛 (1100) 은 메모리 (1104) 에 커플링된 프로세서 (1102) 를 포함할 수도 있다. 스피커 유닛 (1100) 은 프로세서에 접속되어 출력 사운드를 출력하도록 구성된 스피커 (1106) 를 포함할 수도 있다. 스피커 유닛 (1100) 은 또한 서로 및/또는 프로세서 (1102) 에 커플링되어, 전송하고 그리고 수신하기 위한, 하나 이상의 무선 신호 트랜시버들 (1110) (예컨대, Bluetooth®, Zigbee®, Wi-Fi®, RF 라디오, 등) 및 안테나들을 포함할 수도 있다. 트랜시버들 (1110) 및 안테나들은 여러 무선 송신 프로토콜 스택들 및 인터페이스들을 구현하기 위해 위에서 언급된 회로와 함께 사용될 수도 있다. 스피커 유닛 (1100) 은 또한 프로세서 (1102) 에 모두 커플링된 터치패드 (1108) 및 디스플레이 (1112) 를 포함할 수도 있다.
본원에서 설명된 여러 프로세서들은 본원에서 설명한 여러 실시형태들의 기능들을 포함한, 다양한 기능들을 수행하는 소프트웨어 명령들 (애플리케이션들) 로 구성될 수 있는, 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 여러 디바이스들에서, 다수의 프로세서들이 하나의 프로세서가 무선 통신 기능들을 담당하고 하나의 프로세서가 다른 애플리케이션들을 실행하는 것을 담당하는 것과 같이, 제공될 수도 있다. 일반적으로, 소프트웨어 애플리케이션들은 액세스되어 프로세서들에 로드되기 전에 내부 메모리에 저장될 수도 있다. 프로세서들은 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 많은 디바이스들에서, 내부 메모리는 휘발성 또는 비휘발성 메모리, 예컨대, 플래시 메모리, 또는 양쪽의 혼합체일 수도 있다. 이 설명의 목적을 위해, 메모리에 대한 전반적인 언급은, 여러 디바이스들에 플러그되는 내부 메모리 또는 착탈식 메모리, 및 프로세서들 내 메모리를 포함하여, 프로세서들에 의해 액세스가능한 메모리를 지칭한다.
상기 방법 설명들 및 프로세스 흐름도들은 단지 예시적인 예들로서 제공되며 여러 실시형태들의 동작들이 제시된 순서로 수행되어야 한다는 것을 요구하거나 또는 암시하려고 의도된 것이 아니다. 당업자가 주지하고 있는 바와 같이 전술한 실시형태들에서 동작들의 순서는 임의의 순서로 수행될 수도 있다. "그후", "따라서", "다음" 등과 같은 단어들은 동작들의 순서를 제한하려고 의도되지 않으며; 이들 단어들은 방법들의 설명을 통해서 독자를 안내하기 위해서 단지 사용된다. 또, 단수형으로, 예를 들어, 한정사 "한", "하나" 또는 "그" 를 이용한, 청구항 엘리먼트들에 대한 임의의 언급은, 그 엘리먼트를 단수에 한정하는 것으로 해석되어서는 안된다.
본원에서 개시한 실시형태들과 관련하여 설명한 여러가지 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 동작들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽의 조합들로서 구현될 수도 있다. 이러한 하드웨어와 소프트웨어의 상호 교환가능성을 명확히 예시하기 위하여, 여러가지 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 동작들 일반적으로 그들의 기능의 관점에서 위에서 설명되었다. 이런 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정의 애플리케이션 및 전체 시스템에 부과되는 설계 제한 사항들에 의존한다. 숙련자들은 각각의 특정의 애플리케이션 마다 설명한 기능을 여러가지 방법으로 구현할 수도 있으며, 그러나 이러한 구현 결정들은 청구항들의 범위로부터 일탈을 초래하는 것으로 해석되어서는 안된다.
본원에서 개시한 실시형태들과 관련하여 설명한 여러 예시적인 로직들, 로직 블록들, 모듈들, 및 회로들을 구현하기 위해 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들, 또는 본원에서 설명한 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으며, 그러나, 대안적으로는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 대안적으로, 일부 동작들 또는 방법들은 주어진 기능에 특유한 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기능들은 비일시성 프로세서-판독가능, 컴퓨터-판독가능 또는 서버-판독가능 매체, 또는 비일시성 프로세서-판독가능 저장 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 송신될 수도 있다. 본원에서 개시한 방법 또는 알고리즘의 동작들은 비일시성 컴퓨터-판독가능 저장 매체, 비일시성 서버-판독가능 저장 매체, 및/또는 비일시성 프로세서-판독가능 저장 매체 상에 상주할 수도 있는 프로세서-실행가능한 소프트웨어 모듈에서 구현될 수도 있다. 여러 실시형태들에서, 이러한 명령들은 저장된 프로세서-실행가능한 명령들 또는 저장된 프로세서-실행가능한 소프트웨어 명령들일 수도 있다. 유형의, 비일시성 컴퓨터-판독가능 저장 매체들은 컴퓨터에 의해 액세스될 수도 있는 임의의 가용 매체들일 수도 있다. 비한정적인 예로서, 이런 비일시성 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수도 있으며 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크, 및 블루-레이 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 조합들이 또한 비일시성 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다. 게다가, 방법 또는 알고리즘의 동작들은 컴퓨터 프로그램 제품에 포함될 수도 있는 유형의, 비일시성 프로세서-판독가능 저장 매체 및/또는 컴퓨터-판독가능 매체 상에, 코드들 및/또는 명령들 중 하나 또는 임의의 조합 또는 세트로 상주할 수도 있다.
개시된 실시형태들의 상기 설명은 임의의 당업자가 청구항들을 실시하고 이용할 수 있도록 제공된다. 이들 실시형태들에 대한 여러 변경들은 당업자들에게 명백할 것이며, 본원에서 정의한 일반적인 원리들은 청구항들의 범위로부터 일탈함이 없이 다른 실시형태들에도 적용될 수도 있다. 따라서, 본 발명은 본원에서 나타낸 실시형태들에 한정시키려는 것이 아니라, 다음 청구범위에 부합하는 최광의의 범위 및 본원에서 개시된 원리들 및 신규한 특징들을 부여받게 하려는 것이다.

Claims (30)

  1. WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법으로서,
    소스 컴퓨팅 디바이스에 의해, 데이터 서비스를 수신할 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화하는 단계;
    상기 소스 컴퓨팅 디바이스로부터, WiFi 미라캐스트 멀티캐스트 송신을 통해서, 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 상기 데이터 서비스의 프레임을 전송하는 단계;
    상기 소스 컴퓨팅 디바이스에 의해, 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되었는지 여부를 결정하는 단계; 및
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되지는 않았다고 결정하는 것에 응답하여, 상기 소스 컴퓨팅 디바이스에 의해, 미싱 에러 로그들과 연관된 임의의 그룹 멤버를 유니캐스트 그룹에 추가하는 단계를 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  2. 제 1 항에 있어서,
    상기 소스 컴퓨팅 디바이스에 의해, 임의의 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및
    그러한 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 소스 컴퓨팅 디바이스에 의해, 수용불가능한 채널 성능과 연관된 임의의 멀티캐스트 그룹 멤버를 상기 유니캐스트 그룹에 추가하는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  3. 제 1 항에 있어서,
    상기 소스 컴퓨팅 디바이스에 의해, 임의의 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및
    그러한 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 소스 컴퓨팅 디바이스에 의해, 상기 유니캐스트 그룹으로부터 수용가능한 채널 성능과 연관된 임의의 그룹 멤버를 제거하는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  4. 제 1 항에 있어서,
    상기 소스 컴퓨팅 디바이스에 의해, 임의의 멀티캐스트 그룹 멤버에 대한 채널의 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 단계; 및
    그 멀티캐스트 그룹 멤버에 대한 상기 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 채널을 해제하거나 및/또는 그러한 멀티캐스트 그룹 멤버에 대한 상기 데이터 서비스를 다운그레이드시키는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  5. 제 1 항에 있어서,
    상기 소스 컴퓨팅 디바이스에 의해, 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정하는 단계; 및
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용불가능하다고 결정하는 것에 응답하여, 채널을 해제하거나 및/또는 상기 데이터 서비스를 다운그레이드시키는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  6. 제 5 항에 있어서,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 소스 컴퓨팅 디바이스에 의해, 상기 데이터 서비스의 다음 프레임의 송신을 위한 시간에 도달되었는지 여부를 결정하는 단계; 및
    상기 데이터 서비스의 상기 프레임을 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 상기 소스 컴퓨팅 디바이스로부터, 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 재송신하는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  7. 제 5 항에 있어서,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 소스 컴퓨팅 디바이스로부터, 상기 데이터 서비스의 다음 프레임을, WiFi 미라캐스트 멀티캐스트 송신을 통해서 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로, 그리고 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 전송하는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  8. 제 1 항에 있어서,
    상기 소스 컴퓨팅 디바이스로부터 상기 싱크 컴퓨팅 디바이스들로, 상기 싱크 컴퓨팅 디바이스들에게 에러 로그를 상기 소스 컴퓨팅 디바이스로 전송하도록 지시하는 요청을 전송하는 단계를 더 포함하는, WiFi 미라캐스트에서의 스케일러블 데이터 서비스 배포를 위한 방법.
  9. 소스 컴퓨팅 디바이스로서,
    WiFi 트랜시버; 및
    상기 WiFi 트랜시버에 커플링된 프로세서를 포함하며,
    상기 프로세서는
    데이터 서비스를 수신할 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화하는 것;
    상기 WiFi 트랜시버로부터의 WiFi 미라캐스트 멀티캐스트 송신을 통해서, 상기 데이터 서비스의 프레임을 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 전송하는 것;
    상기 WiFi 트랜시버를 통해서 모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되었는지 여부를 결정하는 것; 및
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되지는 않았다고 결정하는 것에 응답하여, 미싱 에러 로그들과 연관된 임의의 그룹 멤버를 유니캐스트 그룹에 추가하는 것
    을 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  10. 제 9 항에 있어서,
    상기 프로세서는,
    임의의 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그러한 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 수용불가능한 채널 성능과 연관된 임의의 멀티캐스트 그룹 멤버를 상기 유니캐스트 그룹에 추가하는 것
    을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  11. 제 9 항에 있어서,
    상기 프로세서는,
    임의의 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그러한 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 유니캐스트 그룹으로부터 수용가능한 채널 성능과 연관된 임의의 유니캐스트 그룹 멤버를 제거하는 것
    을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  12. 제 9 항에 있어서,
    상기 프로세서는,
    임의의 멀티캐스트 그룹 멤버에 대한 채널의 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그 멀티캐스트 그룹 멤버에 대한 상기 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 채널을 해제하거나 및/또는 그러한 멀티캐스트 그룹 멤버에 대한 상기 데이터 서비스를 다운그레이드시키는 것
    을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  13. 제 9 항에 있어서,
    상기 프로세서는,
    채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정하는 것; 및
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용불가능하다고 결정하는 것에 응답하여, 채널을 해제하거나 및/또는 상기 데이터 서비스를 다운그레이드시키는 것
    을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  14. 제 13 항에 있어서,
    상기 프로세서는,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 데이터 서비스의 다음 프레임의 송신을 위한 시간에 도달되었는지 여부를 결정하는 것; 및
    상기 데이터 서비스의 상기 프레임을 상기 WiFi 트랜시버로부터의 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 재송신하는 것
    을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  15. 제 13 항에 있어서,
    상기 프로세서는,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 WiFi 트랜시버를 통해서, 상기 데이터 서비스의 다음 프레임을, WiFi 미라캐스트 멀티캐스트 송신을 통해서 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로, 그리고, 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로, 전송하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  16. 제 9 항에 있어서,
    상기 프로세서는,
    상기 WiFi 트랜시버를 통해서 상기 싱크 컴퓨팅 디바이스들로, 상기 싱크 컴퓨팅 디바이스들에게 에러 로그를 상기 소스 컴퓨팅 디바이스로 전송하도록 지시하는 요청을 전송하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능한 명령들로 구성되는, 소스 컴퓨팅 디바이스.
  17. 프로세서 실행가능한 명령들이 저장된 비일시성 프로세서 판독가능 저장 매체로서,
    상기 프로세서 실행가능한 명령들은, 소스 컴퓨팅 디바이스의 프로세서로 하여금,
    데이터 서비스를 수신할 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화하는 것;
    WiFi 미라캐스트 멀티캐스트 송신을 통해서 상기 데이터 서비스의 프레임을 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 전송하는 것;
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되었는지 여부를 결정하는 것; 및
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되지는 않았다고 결정하는 것에 응답하여, 미싱 에러 로그들과 연관된 임의의 그룹 멤버를 유니캐스트 그룹에 추가하는 것
    을 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    임의의 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그러한 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 수용불가능한 채널 성능과 연관된 임의의 멀티캐스트 그룹 멤버를 상기 유니캐스트 그룹에 추가하는 것
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  19. 제 17 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    임의의 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그러한 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 유니캐스트 그룹으로부터 수용가능한 채널 성능과 연관된 임의의 유니캐스트 그룹 멤버를 제거하는 것
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  20. 제 17 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    임의의 멀티캐스트 그룹 멤버에 대한 채널의 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 것; 및
    그 멀티캐스트 그룹 멤버에 대한 상기 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 채널을 해제하거나 및/또는 그러한 멀티캐스트 그룹 멤버에 대한 상기 데이터 서비스를 다운그레이드시키는 것
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  21. 제 17 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정하는 것; 및
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용불가능하다고 결정하는 것에 응답하여, 채널을 해제하거나 및/또는 상기 데이터 서비스를 다운그레이드시키는 것
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 데이터 서비스의 다음 프레임의 송신을 위한 시간에 도달되었는지 여부를 결정하는 것; 및
    개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서, 상기 데이터 서비스의 상기 프레임을 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 재송신하는 것
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  23. 제 21 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능하다고 결정하는 것에 응답하여, 상기 데이터 서비스의 다음 프레임을, WiFi 미라캐스트 멀티캐스트 송신을 통해서 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로, 그리고, 개별 WiFi 미라캐스트 유니캐스트 송신들을 통해서 상기 유니캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로, 전송하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  24. 제 17 항에 있어서,
    상기 저장된 프로세서 실행가능한 명령들은,
    소스 컴퓨팅 디바이스의 프로세서로 하여금,
    상기 싱크 컴퓨팅 디바이스들로, 상기 싱크 컴퓨팅 디바이스들에게 에러 로그를 상기 소스 컴퓨팅 디바이스로 전송하도록 지시하는 요청을 전송하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 프로세서 판독가능 저장 매체.
  25. 소스 컴퓨팅 디바이스로서,
    데이터 서비스를 수신할 싱크 컴퓨팅 디바이스들을 멀티캐스트 그룹으로 그룹화하는 수단;
    WiFi 미라캐스트 멀티캐스트 송신을 통해서 상기 데이터 서비스의 프레임을 상기 멀티캐스트 그룹 내 상기 싱크 컴퓨팅 디바이스들로 전송하는 수단;
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되었는지 여부를 결정하는 수단; 및
    모든 멀티캐스트 그룹 멤버들에 대한 에러 로그들이 수신되지는 않았다고 결정하는 것에 응답하여, 미싱 에러 로그들과 연관된 임의의 그룹 멤버를 유니캐스트 그룹에 추가하는 수단을 포함하는, 소스 컴퓨팅 디바이스.
  26. 제 25 항에 있어서,
    임의의 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 수단; 및
    그러한 멀티캐스트 그룹 멤버에 대한 채널 성능이 수용불가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 수용불가능한 채널 성능과 연관된 임의의 멀티캐스트 그룹 멤버를 상기 유니캐스트 그룹에 추가하는 수단을 더 포함하는, 소스 컴퓨팅 디바이스.
  27. 제 25 항에 있어서,
    임의의 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 수단; 및
    그러한 유니캐스트 그룹 멤버에 대한 채널 성능이 수용가능하다는 것을 상기 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 유니캐스트 그룹으로부터 수용가능한 채널 성능과 연관된 임의의 유니캐스트 그룹 멤버를 제거하는 수단을 더 포함하는, 소스 컴퓨팅 디바이스.
  28. 제 25 항에 있어서,
    임의의 멀티캐스트 그룹 멤버에 대한 채널의 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시하는지 여부를 결정하는 수단; 및
    그 멀티캐스트 그룹 멤버에 대한 상기 채널 상태가 수용불가능하다는 것을 수신된 에러 로그들이 표시한다고 결정하는 것에 응답하여, 상기 채널을 해제하거나 및/또는 그러한 멀티캐스트 그룹 멤버에 대한 상기 데이터 서비스를 다운그레이드시키는 수단을 더 포함하는, 소스 컴퓨팅 디바이스.
  29. 제 25 항에 있어서,
    채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용가능한지 여부를 결정하는 수단; 및
    상기 채널 대역폭이 상기 유니캐스트 그룹 내 모든 그룹 멤버들로의 유니캐스트 송신에 이용불가능하다고 결정하는 것에 응답하여, 채널을 해제하거나 및/또는 상기 데이터 서비스를 다운그레이드시키는 수단을 더 포함하는, 소스 컴퓨팅 디바이스.
  30. 제 25 항에 있어서,
    상기 싱크 컴퓨팅 디바이스들에게 에러 로그를 상기 소스 컴퓨팅 디바이스로 전송하도록 지시하는 요청을 상기 싱크 컴퓨팅 디바이스들로 전송하는 수단을 더 포함하는, 소스 컴퓨팅 디바이스.
KR1020177021698A 2015-02-05 2015-11-23 WiFi 미라캐스트에서의 스케일러블 멀티미디어 데이터 배포를 위한 피어-지원 애플리케이션 레벨 피드백에 의한 중앙집중형 애플리케이션 레벨 멀티캐스팅 KR20170110621A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562112574P 2015-02-05 2015-02-05
US62/112,574 2015-02-05
US14/799,820 2015-07-15
US14/799,820 US20160234031A1 (en) 2015-02-05 2015-07-15 Centralized Application Level Multicasting with Peer-Assisted Application Level Feedback for Scalable Multimedia Data Distribution in WiFi Miracast
PCT/US2015/062090 WO2016126303A1 (en) 2015-02-05 2015-11-23 Centralized application level multicasting with peer-assisted application level feedback for scalable multimedia data distribution in wifi miracast

Publications (1)

Publication Number Publication Date
KR20170110621A true KR20170110621A (ko) 2017-10-11

Family

ID=55071132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021698A KR20170110621A (ko) 2015-02-05 2015-11-23 WiFi 미라캐스트에서의 스케일러블 멀티미디어 데이터 배포를 위한 피어-지원 애플리케이션 레벨 피드백에 의한 중앙집중형 애플리케이션 레벨 멀티캐스팅

Country Status (8)

Country Link
US (1) US20160234031A1 (ko)
EP (1) EP3254491B1 (ko)
JP (1) JP2018511958A (ko)
KR (1) KR20170110621A (ko)
CN (1) CN107211257A (ko)
BR (1) BR112017016754A2 (ko)
CA (1) CA2972756A1 (ko)
WO (1) WO2016126303A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210155B2 (en) * 2016-03-01 2019-02-19 Panasonic Intellectual Property Management Co., Ltd. Apparatus state estimation method, apparatus state estimation device, and data providing device
EP3373524B1 (en) * 2017-03-08 2023-08-23 Robert Bosch GmbH Audio stream network with network components and method for running and/or configuring the network with network components
US10892966B2 (en) * 2018-06-01 2021-01-12 Apple Inc. Monitoring interconnect failures over time
US11223959B2 (en) 2020-05-12 2022-01-11 T-Mobile Usa, Inc. Unlicensed assisted access aggregated band for improving direct communication channel bandwidth reliability in a V2X communication
US11259190B2 (en) 2020-05-12 2022-02-22 T-Mobile Usa, Inc. Direct communication channel bandwidth reliability in a V2X communication
US11228883B2 (en) * 2020-06-02 2022-01-18 T-Mobile Usa, Inc. Vehicle-to-everything (V2X) communication assisted medical devices
CN115065851B (zh) * 2022-06-09 2024-05-31 深圳创维-Rgb电子有限公司 支持多设备连接的投屏方法、电子设备及可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626153B2 (en) * 2005-04-04 2014-01-07 Core Wireless Licensing, S.a.r.l. Method, apparatus and computer program for terminating mobile station receipt of multimedia broadcast/multimedia service (MBMS) service bearer
ATE541383T1 (de) * 2005-11-04 2012-01-15 Research In Motion Ltd Korrektur von fehlern in funkkommunikationen in abhängigkeit von der fehlerfrequenz
US8346256B2 (en) * 2006-01-27 2013-01-01 Alcatel Lucent Method of multicast service provisioning
WO2008046144A1 (en) * 2006-10-17 2008-04-24 Avega Systems Pty Ltd Media distribution in a wireless network
WO2010061483A1 (ja) * 2008-11-28 2010-06-03 富士通株式会社 無線通信装置、無線通信システム、及び通信方式切り替え方法
US8848590B2 (en) * 2009-09-24 2014-09-30 Nokia Corporation Multicast group management in wireless networks
WO2011072422A1 (en) * 2009-12-17 2011-06-23 Intel Corporation Method and system for facilitating one-to-many data transmissions with reduced network overhead
US8514824B2 (en) * 2011-04-20 2013-08-20 Mobitv, Inc. Methods and apparatus for broadcast and multicast/unicast transition
EP2557818B1 (en) * 2011-08-12 2016-11-02 Alcatel Lucent Method for providing multicast broadcast services continuity in a wireless network, corresponding network node and user equipment
US8887222B2 (en) * 2011-09-14 2014-11-11 Qualcomm Incorporated Multicasting in a wireless display system
US20130195119A1 (en) * 2011-10-14 2013-08-01 Qualcomm Incorporated Feedback channel for wireless display devices
US9820259B2 (en) * 2012-05-04 2017-11-14 Qualcomm Incorporated Smooth transition between multimedia broadcast multicast service (MBMS) and unicast service by demand
US9473906B2 (en) * 2013-03-22 2016-10-18 Mediatek Inc. Idle mode reception for group communication over LTE eMBMS
US20140376376A1 (en) * 2013-06-20 2014-12-25 Alcatel-Lucent Usa Inc. Method And Apparatus For Improved Multicast Rate Control
US9699500B2 (en) * 2013-12-13 2017-07-04 Qualcomm Incorporated Session management and control procedures for supporting multiple groups of sink devices in a peer-to-peer wireless display system
US9774465B2 (en) * 2014-12-24 2017-09-26 Intel Corporation Media content streaming
US10070273B2 (en) * 2015-01-05 2018-09-04 Apple Inc. Multicast group management technique

Also Published As

Publication number Publication date
EP3254491B1 (en) 2018-11-21
EP3254491A1 (en) 2017-12-13
BR112017016754A2 (pt) 2018-04-10
JP2018511958A (ja) 2018-04-26
US20160234031A1 (en) 2016-08-11
CN107211257A (zh) 2017-09-26
WO2016126303A1 (en) 2016-08-11
CA2972756A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
EP3254491B1 (en) Centralized application level multicasting with peer-assisted application level feedback for scalable multimedia data distribution in wifi miracast
US10419502B2 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US9137286B1 (en) Streaming traffic classification method and apparatus
US8839065B2 (en) Packet loss anticipation and pre emptive retransmission for low latency media applications
US9681418B2 (en) Wireless multicast communication
US7505447B2 (en) Systems and methods for improved data throughput in communications networks
EP3254490B1 (en) Unified service discovery with peer-assisted resource management for service mediation and addressing control in wifi-miracast
US9515941B2 (en) Dynamic determination of transmission parameters based on packet priority and network conditions
KR20170067830A (ko) 링크 상태, 트래픽 유형 및/또는 우선 순위에 대한 통신 파라미터 적응
US20110096712A1 (en) Unicast to Multicast Conversion
JP5792183B2 (ja) 無線マルチキャスト通信を支援するための方法及びシステム
CN105075323A (zh) 早期分组丢失检测和反馈
TW201306527A (zh) 利用相異網路傳送一封包之方法
US10638347B2 (en) Method, device and computer storage medium for transmitting a control message
US20200120152A1 (en) Edge node control
US9538558B2 (en) Methods and apparatuses for managing acknowledgements for multicast data in a wireless network
CN111224889A (zh) 一种数据传输的方法和装置
US9717014B1 (en) Cross-network traffic management of neighboring WLANs
TWI549496B (zh) 行動電子裝置以及視訊補償方法
US20230397038A1 (en) Traffic engineering for real-time applications
Afzal et al. A reliable and scalable groupCast block acknowledgement scheme for video multicast over IEEE 802.11 aa
Simmonds J eá, 00Y