KR101234890B1 - 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법 - Google Patents

통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법 Download PDF

Info

Publication number
KR101234890B1
KR101234890B1 KR20060027624A KR20060027624A KR101234890B1 KR 101234890 B1 KR101234890 B1 KR 101234890B1 KR 20060027624 A KR20060027624 A KR 20060027624A KR 20060027624 A KR20060027624 A KR 20060027624A KR 101234890 B1 KR101234890 B1 KR 101234890B1
Authority
KR
South Korea
Prior art keywords
bit rate
client
data
transmission
server
Prior art date
Application number
KR20060027624A
Other languages
English (en)
Other versions
KR20060104915A (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 KR20060104915A publication Critical patent/KR20060104915A/ko
Application granted granted Critical
Publication of KR101234890B1 publication Critical patent/KR101234890B1/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
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • 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/18End to end
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate

Abstract

서버 클라이언트간의 데이터 송수신에서의 최적의 레이트 제어를 가능하게 하는 장치 및 방법을 제공한다. 연속 데이터 송신 개시로부터 수신 확인 응답(ack)의 수신까지의 기간의 계측값에 기초하여 최대 스루풋을 산출하고, 송신 비트 레이트의 제어를 행한다. 즉, 데이터 송수신에 대한 기여가 없는 데이터 송수신 비실행 기간을 생략한 데이터 송수신 기간에 기초하여 산출되는 최대 스루풋, 혹은, 클라이언트에 의해 계측되는 연속 송신 패킷의 수신 간격에 기초하여 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 레이트 제어를 행한다. 본 구성에 의해, 레이트의 과잉 상승이나 과잉 억제가 없어, 확실하게 효율적인 레이트 설정에 기초하는 데이터 송신이 실현된다.
Figure R1020060027624
서버, 네트워크, 클라이언트, 기지국, 송신 버퍼, 수신 버퍼

Description

통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법{COMMUNICATION PROCESSING APPARATUS, DATA COMMUNICATION SYSTEM, AND COMMUNICATION PROCESSING METHOD}
도 1은 본 발명의 적용 가능한 네트워크 구성 예를 도시하는 도면.
도 2는 스트리밍 데이터의 송수신 장치로서의 서버 및 클라이언트의 구성을 설명하는 블록도.
도 3은 서버 클라이언트간에서 실행하는 TCP 커넥션의 확립에 기초하는 데이터 배신 처리 시퀸스를 설명하는 도면.
도 4는 윈도우 사이즈에 기초하는 데이터의 연속 배신 처리 시퀸스에 대해서 설명하는 도면.
도 5는 본 발명의 실시예 1에서의 서버의 처리 시퀸스에 대해서 설명하는 플로우챠트를 도시하는 도면.
도 6은 본 발명의 실시예 1에서의 비트 레이트 결정부의 처리에 대해서 설명하는 도면.
도 7은 본 발명의 실시예 1에서의 비트 레이트 결정부의 처리 시퀸스에 대해서 설명하는 플로우챠트를 도시하는 도면.
도 8은 본 발명의 실시예 2에 대응하는 스트리밍 데이터의 송수신 장치로서 의 서버 및 클라이언트의 구성을 설명하는 블록도.
도 9는 본 발명의 실시예 2의 서버 클라이언트간의 데이터 송수신 처리에 있어서 송신되는 긴급 플래그 설정 데이터에 대해서 설명하는 도면.
도 10은 본 발명의 실시예 2에서의 서버의 처리 시퀸스에 대해서 설명하는 플로우챠트를 도시하는 도면.
도 11은 본 발명의 실시예 2에서의 클라이언트의 처리 시퀸스에 대해서 설명하는 플로우챠트를 도시하는 도면.
도 12는 서버의 AP 발견 처리 시퀸스에 대해서 설명하는 도면.
도 13은 본 발명의 실시예 3에 대응하는 스트리밍 데이터의 송수신 장치로서의 서버 및 클라이언트 및 기지국(AP)의 구성을 설명하는 블록도.
도 14는 본 발명의 실시예 3에서의 비트 레이트 결정부의 처리 시퀸스에 대해서 설명하는 도면.
도 15는 본 발명의 실시예 3에서의 비트 레이트 결정부의 처리 시퀸스에 대해서 설명하는 플로우챠트를 도시하는 도면.
도 16은 서버, 클라이언트, 기지국을 구성하는 하드웨어에 대해서 설명하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
101, 200 : 서버
110 : 네트워크
121, 122 : 클라이언트(PC)
123 : 클라이언트(휴대 단말기)
124 : 클라이언트(재생 장치)
131 : 기지국(AP)
201 : 콘텐츠 제공부
202 : 데이터 처리부
203 : 송신 버퍼
204, 301 : 데이터 송수신부
210 : 동적 레이트 제어부
211 : 스루풋 산출부
212 : 비트 레이트 결정부
300 : 클라이언트
302 : 수신 버퍼
303 : 재생 처리부
304 : 출력부
305 : 패킷 간격 계측부
400 : 기지국(AP)
401 : 데이터 송수신부
402 : 통신 대역 감시부
403 : 통신 대역 정보 생성부
501 : CPU
502 : ROM
503 : RAM
504 : 통신부
511 : 입력부
512 : 출력부
513 : 드라이브
514 : 기록 매체
521 : 버스
522 : 입출력 인터페이스
[특허 문헌 1] 일본 특허 공개 2002-204278호 공보
[특허 문헌 2] 일본 특허 공개 2004-297565호 공보
[특허 문헌 3] 일본 특허 공개 2005-005823호 공보
본 발명은, 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법, 및 컴퓨터 프로그램에 관한 것이다. 특히, 스트리밍 데이터의 송수신에서의 적확한 비트 레이트 제어를 행하는 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법, 및 컴퓨터 프로그램에 관한 것이다.
현재, 인터넷을 통한 데이터 통신이 활발히 행해지고, 또한 가정 내에서도 가전 기기나 컴퓨터, 그 외의 주변 기기를 네트워크 접속해서 기기 사이에서의 통신을 가능하게 한 홈 네트워크가 침투하고 있다. 홈 네트워크는, 예를 들면 네트워크 접속 기기 사이에서의 콘텐츠 송수신을 가능하게 하고, 유저에게 편리성과 쾌적성을 제공하는 것으로, 금후, 점점 더 보급되는 것이 예측된다.
서버가 유지하는 화상 데이터를, 네트워크를 통하여 클라이언트에 송신하고, 클라이언트측에서 데이터 수신을 실행하면서 재생을 행하는 데이터 배신 처리는, 소위 스트리밍 데이터 배신, 혹은 데이터 스트리밍 등으로 불린다. 이러한 스트리밍 데이터 배신을 행하는 서버를 스트리밍 서버, 스트리밍 서버로부터 데이터를 수신하는 클라이언트를 스트리밍 클라이언트라고 부른다. 스트리밍 서버는, 인코드 등의 데이터 처리를 실행하여 송신 데이터를 생성하여 네트워크에 출력한다. 한편, 스트리밍 클라이언트는, 수신 데이터를 버퍼에 일시적으로 축적하고, 그 후, 순차적으로 디코드 처리, 재생을 행한다.
대부분의 경우, 데이터 스트리밍에서 이용되는 통신 프로토콜은, RTP(Real Time Transport Protocol)이다. RTP는, 원칙으로서 재송 제어를 행하지 않는다. 즉, 패킷 손실 대책이나 전송 시간 보증 등은 행해져 있지 않은 UDP(User datagram Protocol)형의 프로토콜이다. 패킷 손실이 발생한 경우라도 재송 처리를 행하지 않기 때문에, 재송 처리에 기인하는 지연이 발생하지 않아서 리얼타임 재생에 적합한 프로토콜이다.
RTP를 적용한 통신에서는, 예를 들면 RTCP(RTP Control Protocol)를 이용한 레이트 제어가 행해진다. 예를 들면, 특허 문헌 1은, 데이터 수신측의 장치가, 데이터 송신측의 장치에 대하여 패킷 손실율 등을 RTCP의 RR(Receiver Report) 패킷에 기재하여 통지하고, 송신측에서 데이터의 전송 상태를 추정하고, 송신 레이트를 제어하는 방법을 개시하고 있다.
스트리밍 배신에서는, 최적의 전송 레이트로 데이터 배신을 행하는 것이 중요해진다. 예를 들면 특허 문헌 2에는, 데이터 송수신 장치의 쌍방이, 상행 또는 하행의 전송 레이트를 계측하고, 레이트 제어를 실행하는 장치가, 계측된 레이트 중, 작은 쪽의 레이트로 제어함으로써 안정적으로 데이터 전송을 행하는 구성을 개시 하고 있다.
전술한 RTP에 의한 스트리밍 배신에서는, 패킷 손실이 발생해도 재송을 행하지 않기 때문에 재생 지연을 발생시키지 않는다고 하는 장점이 있지만, 데이터 품질을 향상시키기 위해서는, 클라이언트측에서, 완전한 데이터 수신이 행해지는 것이 바람직하다. 또한, 배신 콘텐츠가, 암호화 데이터인 경우 등에서는, 클라이언트측에서의 콘텐츠 복호 시에, 소실 데이터 부분이 있으면 복호가 불가능해져서 재생을 할 수 없게 되는 경우도 있다. 이러한 콘텐츠의 경우, RTP와 같은 재송 제어를 행하지 않은 프로토콜은 부적당하다.
이와 같이 전송 데이터의 완전성을 원하는 경우에는, 패킷 손실에 대한 대처를 행하는 프로토콜, 예를 들면 TCP(Transmission Control Protocol) 등의 트랜스포트 프로토콜이 적용된다. TCP에 의한 화상 데이터의 배신 구성에 대해서는, 예를 들면 특허 문헌 3에 기재되어 있다.
TCP 등의 트랜스포트 프로토콜을 이용한 통신은 베스트 에포트에 의해 행해진다. 멀티미디어 데이터의 스트리밍을 행하는 경우, 베스트 에포트의 통신에 의한 통신 대역폭의 변동은 심각한 문제로 된다. 이 문제는 예를 들면 TCP에서는 현저해진다. TCP에서는, 데이터의 상실이 없는 대신에 데이터의 도달 시간이 지연되기 때문에, 통신 대역폭이 좁아지면 데이터 도달 시간이 지연된다. 이 데이터 도달 시간의 지연에 의해, TCP 스트리밍에서는, 폭주 시에 영상이나 음성이 끊어지기 쉬워진다. 따라서, 그 해결 방법으로서 스트리밍 서버로부터의 데이터 배신에서 송신 데이터의 비트 레이트를 증감시켜서, 통신 대역폭의 변동에 적응시키는 것이 일반적으로 행해진다. 영상 데이터 등을 포함하는 멀티미디어 데이터의 비트 레이트 증감 방법은, 데이터 스트리밍의 품질에 크게 영향을 준다.
종래의 방법에서는 스트리밍 서버가 배신 데이터의 비트 레이트를 증감시키는 판단 재료는, 주로 클라이언트로부터의 정보이다. 예를 들면, 클라이언트의 어플리케이션 버퍼에 축적되어 있는 데이터량에 관한 정보가 이용된다. 그러나, 클라이언트의 어플리케이션 버퍼에 축적되어 있는 데이터량의 계산만으로는, 네트워크의 대역 허용량 이상의 비트 레이트에서 데이터를 송신하게 될 가능성이 있다. 네트워크의 대역 허용량 이상의 비트 레이트에서 데이터를 송신하면, 결과적으로 폭주가 발생하고, 원하는 대로 멀티미디어 데이터가 클라이언트에 닿지 않아서, 클라이언트의 어플리케이션 버퍼에 축적되어 있는 데이터량의 고갈이 발생하여, 영상이나 음성의 끊김이 발생할 가능성이 높아지게 된다.
또한, 클라이언트로부터의 정보를 이용하는 종래의 방법에서는, 통신 대역폭 의 변동에 신속하게 대응할 수 없다고 하는 문제가 있다. 예를 들면 스트리밍 서버와 스트리밍 클라이언트간의 통신 대역폭이 타 트래픽의 출현 등에 의해 급격히 좁아진 것으로 한다. 통신 대역폭이 좁아진 시점에서 스트리밍 서버가 송신 데이터의 비트 레이트를 감소시켜서 대응하면, 송신 데이터의 재생이 끊어지지 않는다. 그러나, 전술한 처리 구성과 같이, 클라이언트로부터의 정보를 이용하는 구성에서는, 통신 대역폭이 좁아진 후, 일정 시간 후에 클라이언트의 버퍼 축적 데이터량의 감소가 발생하고, 그 버퍼 데이터의 감소를 서버측에서 인식할 때까지 시간을 필요로 하게 된다. 따라서, 서버는, 통신 대역폭이 가늘어진 시점에서의 즉시 대응을 할 수 없다. 이 결과, 서버측에서의 비트 레이트 삭감 등의 처리를 행하기 이전에, 클라이언트의 버퍼가 고갈되게 되어, 영상이나 음성의 끊김이 발생한다고 하는 사태가 발생하게 된다.
본 발명은, 전술한 문제점을 감안하여 이루어진 것으로, 스트리밍 데이터 송수신 처리에서, 최적의 송신 양태에 기초하는 데이터 송신을 실현하는 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
또한, 구체적으로는, 본 발명은, 통신 경로 상의 폭주나 무선 링크의 외란의 영향 등을 고려한 뒤에, 서버측에서 송신 데이터의 비트 레이트의 최적값을 예측하고, 예측값에 기초하여 비트 레이트의 동적 변경을 행하여 최적의 데이터 송신 양태를 따른 데이터 스트리밍을 실현하는 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 제1 측면은,
클라이언트에 대한 데이터 송신 처리를 실행하는 서버로서의 통신 처리 장치로서,
클라이언트와의 통신 처리를 실행하는 데이터 송수신부와,
클라이언트에 대한 송신 데이터의 비트 레이트를 결정하는 레이트 제어부와,
상기 레이트 제어부에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리부를 갖고,
상기 레이트 제어부는,
서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 발생하는 데이터 송수신 비실행 기간을 제외하는 데이터 송수신 실행 기간을 추출하고, 그 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출부와,
상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정부
를 갖는 구성인 것을 특징으로 하는 통신 처리 장치에 있다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 스루풋 산출부는, 윈도우 사이즈에 기초하는 연속 데이터 송신의 개시로부터, 송신된 연속 데이터에 대한 수신 확인 응답(ack)을 수신할 때까지의 기간을 데이터 송수신 실행 기간으로 하고, 그 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 스루풋 산출부는, 윈도우 사이즈에 기초하는 연속 데이터 송신의 개시로부터, 송신된 연속 데이터에 대한 수신 확인 응답(ack)을 수신할 때까지의 기간을 데이터 송수신 실행 기간으로 하고, 복수의 데이터 송수신 실행 기간의 시간을 샘플 데이터로 하여 취득하고, 취득한 복수의 샘플 데이터로부터 예외값이라고 판정되는 데이터를 제외한 복수의 샘플 데이터에 기초하여 최대 스루풋을 산출하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 비트 레이트 결정부는, 클라이언트측 버퍼의 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 구성으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 비트 레이트 결정부는,
(a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
(b) 클라이언트가 재생을 개시하고나서의 경과 시간 : [T(sec)]
(c) 클라이언트가 재생을 개시한 이후, 경과 시간 [T(sec)]의 사이에 서버로부터의 송신 데이터량 : [D_serv(byte)]
(d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
이들 (a)∼(d)의 정보를 이용하여, 클라이언트의 버퍼량의 견적 처리를 실행하는 구성으로서, 클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T로 하고, 클라이언트측 버퍼의 견적 버퍼량을 산출하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 데이터 송수신부는, 상기 클라이언트와의 통신을 중개하는 기지국으로부터, 기지국과 클라이언트간의 통신 대역 정보를 수신하고, 상기 비트 레이트 결정부는, 상기 통신 대역 정보에 기초하여, 송신 비트 레이트의 결정 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 통신 대역 정보는, 기지국과 클라이언트간의 통신에서의 RTT(Round Trip Time), RSSI(전파 강도), 송신 레이트 중 적어도 어느 하나의 데이터에 기초하여 생성되는 정보인 것을 특징으로 한다.
또한, 본 발명의 제2 측면은,
클라이언트에 대한 데이터 송신 처리를 실행하는 서버로서의 통신 처리 장치로서,
클라이언트와의 통신 처리를 실행하는 데이터 송수신부와,
클라이언트에 대한 송신 데이터의 비트 레이트를 결정하는 레이트 제어부와,
상기 레이트 제어부에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리부를 갖고,
상기 레이트 제어부는,
서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 연속 송신되는 데이 터 패킷의 수신 간격 정보에 기초하여 산출되는 스루풋을 최대 스루풋으로 하고, 그 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정부를 갖는 구성인 것을 특징으로 하는 통신 처리 장치에 있다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 레이트 제어부는, 서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 연속 송신되는 데이터 패킷의 수신 간격 정보를 클라이언트로부터 수신하고, 그 수신 간격 정보와 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출부를 갖고, 상기 비트 레이트 결정부는, 상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 데이터 송수신부는, 클라이언트에서의 수신 간격 측정 대상 패킷의 식별 정보로서, 패킷 헤더의 긴급 플래그를 특정 값으로 설정한 패킷을 연속 송신하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 비트 레이트 결정부는, 클라이언트측 버퍼의 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 구성으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 비트 레이트 결정부는,
(a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
(b) 클라이언트가 재생을 개시하고나서의 경과 시간 : [T(sec)]
(c) 클라이언트가 재생을 개시한 이후, 경과 시간 [T(sec)]의 사이에 서버로부터의 송신 데이터량 : [D_serv(byte)]
(d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
이들 (a)∼(d)의 정보를 이용하여, 클라이언트의 버퍼량의 견적 처리를 실행하는 구성으로서, 클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T로 하고, 클라이언트측 버퍼의 견적 버퍼량을 산출하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 데이터 송수신부는, 상기 클라이언트와의 통신을 중개하는 기지국으로부터, 기지국과 클라이언트간의 통신 대역 정보를 수신하고, 상기 비트 레이트 결정부는, 상기 통신 대역 정보에 기초하여, 송신 비트 레이트의 결정 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 통신 대역 정보는, 기지국과 클라이언트간의 통신에서의 RTT, RSSI(전파 강도), 송신 레이트 중 적어도 어느 하나의 데이터에 기초하여 생성되는 정보인 것을 특징으로 한다.
또한, 본 발명의 제3 측면은,
서버로부터의 데이터 수신 처리를 실행하는 클라이언트로서의 통신 처리 장치로서,
서버와의 통신 처리를 실행하는 데이터 송수신부와,
서버로부터 수신하는 데이터 패킷의 수신 간격을 측정하는 패킷 간격 측정부를 갖고,
상기 패킷 간격 측정부는,
서버로부터의 수신 패킷에 포함되는 식별 정보에 따라서 연속 수신하는 패킷의 수신 간격을 측정하는 구성으로서, 그 수신 간격 정보, 또는 그 수신 간격에 기초하여 산출되는 스루풋 정보를 상기 데이터 송수신부를 통하여 서버에 송신하는 처리를 실행하는 구성인 것을 특징으로 하는 통신 처리 장치에 있다.
또한, 본 발명의 통신 처리 장치의 1 실시 양태에서, 상기 패킷 간격 측정부는, 서버로부터의 수신 패킷에 포함되는 패킷 헤더의 긴급 플래그의 설정에 따라서 연속 수신 패킷의 수신 간격을 측정하는 구성인 것을 특징으로 한다.
또한, 본 발명의 제4 측면은,
데이터 송수신 처리를 실행하는 서버 클라이언트를 갖는 데이터 통신 시스템으로서,
상기 클라이언트는,
서버로부터의 수신 패킷에 포함되는 식별 정보에 따라서 연속 수신하는 패킷의 수신 간격을 측정하고, 그 수신 간격 정보, 또는 그 수신 간격에 기초하여 산출되는 스루풋 정보를 서버에 송신하는 처리를 실행하는 구성을 갖고,
상기 서버는,
상기 클라이언트로부터 수신하는 스루풋 정보, 또는 수신 간격 정보에 기초 하여 산출되는 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하고, 결정한 비트 레이트에 따라서, 상기 클라이언트에 대한 데이터 송신 처리를 실행하는 구성인 것을 특징으로 하는 데이터 통신 시스템에 있다.
또한, 본 발명의 데이터 통신 시스템의 1 실시 양태에서, 상기 서버는, 상기 클라이언트와의 통신을 중개하는 기지국으로부터, 기지국과 클라이언트간의 통신 대역 정보를 수신하고, 그 통신 대역 정보에 기초하여, 송신 비트 레이트의 결정 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 제5 측면은,
데이터 송신 처리를 실행하는 서버에서의 통신 처리 방법으로서,
클라이언트에 대한 송신 데이터의 비트 레이트를 결정하는 레이트 제어 스텝과,
상기 레이트 제어 스텝에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리 스텝을 갖고,
상기 레이트 제어 스텝은,
서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 발생하는 데이터 송수신 비실행 기간을 제외하는 데이터 송수신 실행 기간을 추출하고, 그 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출 스텝과,
상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정 스텝
을 갖는 것을 특징으로 하는 통신 처리 방법에 있다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 스루풋 산출 스텝은, 윈도우 사이즈에 기초하는 연속 데이터 송신의 개시로부터, 송신된 연속 데이터에 대한 수신 확인 응답(ack)을 수신할 때까지의 기간을 데이터 송수신 실행 기간으로 하고, 그 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 스루풋 산출 스텝은, 윈도우 사이즈에 기초하는 연속 데이터 송신의 개시로부터, 송신된 연속 데이터에 대한 수신 확인 응답(ack)을 수신할 때까지의 기간을 데이터 송수신 실행 기간으로 하고, 복수의 데이터 송수신 실행 기간의 시간을 샘플 데이터로 하여 취득하고, 취득한 복수의 샘플 데이터로부터 예외값이라고 판정되는 데이터를 제외한 복수의 샘플 데이터에 기초하여 최대 스루풋을 산출하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 비트 레이트 결정 스텝은, 클라이언트측 버퍼의 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 스텝으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 비트 레이트 결정 스텝은,
(a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
(b) 클라이언트가 재생을 개시하고나서의 경과 시간 : [T(sec)]
(c) 클라이언트가 재생을 개시한 이후, 경과 시간 [T(sec)]의 사이에 서버로부터의 송신 데이터량 : [D_serv(byte)]
(d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
이들 (a)∼(d)의 정보를 이용하여, 클라이언트의 버퍼량의 견적 처리를 실행하는 스텝으로서, 클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T로 하고, 클라이언트측 버퍼의 견적 버퍼량을 산출하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 통신 처리 방법은, 상기 클라이언트와의 통신을 중개하는 기지국으로부터, 기지국과 클라이언트간의 통신 대역 정보를 수신하는 스텝을 더 갖고, 상기 비트 레이트 결정 스텝은, 상기 통신 대역 정보에 기초하여, 송신 비트 레이트의 결정 처리를 행하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 통신 대역 정보는, 기지국과 클라이언트간의 통신에서의 RTT, RSSI(전파 강도), 송신 레이트 중 적어도 어느 하나의 데이터에 기초하여 생성되는 정보인 것을 특징으로 한다.
또한, 본 발명의 제6 측면은,
데이터 송신 처리를 실행하는 서버에서의 통신 처리 방법으로서,
클라이언트에 대한 송신 데이터의 비트 레이트를 결정하는 레이트 제어 스텝 과,
상기 레이트 제어 스텝에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리 스텝을 갖고,
상기 레이트 제어 스텝은,
서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 연속 송신되는 데이터 패킷의 수신 간격 정보에 기초하여 산출되는 스루풋을 최대 스루풋으로 하여, 그 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정 스텝을 갖는 것을 특징으로 하는 통신 처리 방법에 있다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 레이트 제어 스텝은, 서버 클라이언트간에서의 통신 커넥션 설정 기간 내에서 연속 송신되는 데이터 패킷의 수신 간격 정보를 클라이언트로부터 수신하고, 그 수신 간격 정보와 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출 스텝을 갖고, 상기 비트 레이트 결정 스텝은, 상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 통신 처리 방법은, 클라이언트에서의 수신 간격 측정 대상 패킷의 식별 정보로서, 패킷 헤더의 긴급 플래그를 특정 값으로 설정한 패킷을 연속 송신하는 스텝을 더 갖는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 비트 레이트 결정 스텝은, 클라이언트측 버퍼의 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 스텝으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 비트 레이트 결정 스텝은,
(a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
(b) 클라이언트가 재생을 개시하고나서의 경과 시간 : [T(sec)]
(c) 클라이언트가 재생을 개시한 이후, 경과 시간 [T(sec)]의 사이에 서버로부터의 송신 데이터량 : [D_serv(byte)]
(d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
이들 (a)∼(d)의 정보를 이용하여, 클라이언트의 버퍼량의 견적 처리를 실행하는 스텝으로서, 클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T로 하고, 클라이언트측 버퍼의 견적 버퍼량을 산출하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 통신 처리 방법은, 상기 클라이언트와의 통신을 중개하는 기지국으로부터, 기지국과 클라이언트간의 통신 대역 정보를 수신하는 스텝을 더 갖고, 상기 비트 레이트 결정 스텝은, 상기 통신 대역 정보에 기초하여, 송신 비트 레이트의 결정 처리를 행하는 것을 특징으로 한다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 통신 대역 정보는, 기지국과 클라이언트간의 통신에서의 RTT, RSSI(전파 강도), 송신 레이트 중 적어도 어느 하나의 데이터에 기초하여 생성되는 정보인 것을 특징으로 한다.
또한, 본 발명의 제7 측면은,
데이터 수신 처리를 실행하는 클라이언트에서의 통신 처리 방법으로서,
서버로부터의 수신 패킷에 포함되는 식별 정보에 따라서 연속 수신하는 패킷의 수신 간격을 측정하는 패킷 수신 간격 측정 스텝과,
상기 패킷 수신 간격 측정 스텝에서 측정된 패킷 수신 간격 정보, 또는 그 수신 간격에 기초하여 산출되는 스루풋 정보를 서버에 송신하는 정보 송신 스텝
을 갖는 것을 특징으로 하는 통신 처리 방법에 있다.
또한, 본 발명의 통신 처리 방법의 1 실시 양태에서, 상기 패킷 간격 측정 스텝은, 서버로부터의 수신 패킷에 포함되는 패킷 헤더의 긴급 플래그의 설정에 따라서 연속 수신 패킷의 수신 간격을 측정하는 것을 특징으로 한다.
본 발명의 또 다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시예나 첨부하는 도면에 기초하는 보다 상세한 설명에 의해 밝혀질 것이다. 또한, 본 명세서에서 시스템은, 복수의 장치의 논리적 집합 구성으로, 각 구성의 장치가 동일 케이스 내에 있는 것에는 한하지 않는다.
<실시 형태>
이하, 도면을 참조하여, 본 발명의 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법, 및 컴퓨터 프로그램의 상세에 대해서 설명한다.
[시스템 개요]
우선, 도 1을 참조하여, 본 발명의 적용 가능한 네트워크 구성예에 대해서 설명한다. 도 1은, 다양한 클라이언트 장치로부터의 처리 요구에 따라서 처리를 실행하는 콘텐츠 배신 장치로서의 서버(101)와, 서버(101)에 대하여 처리 요구를 행하는 콘텐츠 수신 장치로서의 클라이언트(121∼124)가 네트워크(110)을 통해서 접속된 구성, 예를 들면 홈 네트워크 구성을 나타내고 있다. 클라이언트 장치로서는, 퍼스널 컴퓨터(PC)(121, 122), 휴대 단말기(123), 재생 장치(124)를 예시하고 있다. 단, 클라이언트 장치로서는, 그 외에도 다양한 전자 기기, 가전 기기가 접속 가능하다.
클라이언트(휴대 단말기)(123), 클라이언트(재생 장치)(124)는, 기지국(AP: Access Point)(131)을 통해서 무선 통신을 행하는 클라이언트이며, 클라이언트(PC)(121, 122)는 유선 LAN에 의한 통신을 서버(101)와 행한다. 예를 들면 클라이언트(121)(PC)는 100base-TX, 클라이언트(PC)(122)는 10base-T 규격에 의한 통신을 서버(101)와의 사이에서 실행한다. 클라이언트(휴대 단말기)(123), 클라이언트(재생 장치)(124)는, 기지국(AP)(131)을 통해서 서버(101)와의 통신을 실행하고, 기지국(AP) (131)과 클라이언트(휴대 단말기)(123) 사이에서는, IEEE802.11b 규격에 의한 무선 LAN 통신을 실행하고, 기지국(AP)(131)과 클라이언트(재생 장치)(124) 사이에서는, IEEE802.11g 규격에 의한 무선 LAN 통신을 실행한다.
이와 같이, 각 클라이언트(121∼124)는, 서버(101)와의 통신, 예를 들면, 서버(101)로부터 영상 데이터의 배신을 받을 때에, 각각의 기기에 대응한 통신 규격 에 따른 데이터 통신을 실행하여, 각각 상이한 비트 레이트에서의 데이터 수신을 행하게 된다. 서버(101)가 클라이언트로부터의 요구에 따라서 실행하는 처리는, 예를 들면 서버(101)에 장착된 하드 디스크, DVD 등의 기억 수단에 저장된 콘텐츠, 혹은 서버(101)가 갖는 튜너를 통하여 수신하는 라이브 콘텐츠의 제공, 즉 콘텐츠 배신 서비스 등이다.
네트워크(110)는, 예를 들면 이서넷(등록상표) 프레임 등의 통신 패킷을, 네트워크(100)를 통해서 송수신한다. 즉, 클라이언트는, 이서넷 프레임의 데이터부에 처리 요구 정보를 저장하여 서버(101)에 송신함으로써, 서버(101)에 대한 데이터 처리 요구를 실행한다. 서버(101)는, 처리 요구 프레임의 수신에 따라서, 데이터 처리를 실행하여 통신 패킷에 저장하여, 각 클라이언트에 송신한다.
서버(101)는, 클라이언트(121∼124)와 개별로, TCP(Transmission Control Protocol) 커넥션을 확립하여, 예를 들면 스트리밍 데이터 배신에 의해 영상 데이터 등을 포함하는 멀티미디어 데이터의 송신을 실행한다. 본 발명의 구성에서, TCP 커넥션에서의 서버(101)로부터의 클라이언트(121∼124)에 대한 데이터 배신은, 동적인 비트 레이트 제어를 수반하는 처리로서 실행된다.
이 비트 레이트의 동적 제어는,
서버와 각 클라이언트의 사이의 데이터 통신에서의 최대 스루풋 계측 처리,
계측된 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 한 비트 레이트 제어 처리,
이들의 처리를 포함하는 처리로서 실행된다. 이하, 이 비트 레이트의 동적 제어 처리의 복수의 실시예의 상세에 대해서, 순차적으로, 설명한다.
[실시예 1]
도 2에 스트리밍 데이터 배신을 실행하는 서버(200)와, 스트리밍 데이터의 수신, 재생을 실행하는 클라이언트(300)의 기능을 설명하는 블록도를 나타낸다. 서버(200)와 클라이언트(300) 사이에서는 TCP 커넥션이 설정되어서 통신이 실행된다.
서버(200)는, 송신 콘텐츠 저장부로서의 콘텐츠 제공부(201)를 갖는다. 콘텐츠 제공부(201)는, 하드 디스크나, DVD 등의 기억 수단, 혹은 외부로부터의 콘텐츠 수신을 행하는 튜너 기능을 구비한 구성이다. 콘텐츠 제공부(201)로부터, 클라이언트(300)에 대한 송신 콘텐츠가 데이터 처리부(202)에 입력된다.
데이터 처리부(202)에서는, 인코드 처리 등의 송신 데이터 생성 처리를 행한다. 이 송신 데이터 생성 처리에서는, 동적 레이트 제어부(210)에서 설정된 비트 레이트에 대응하는 인코드 데이터를 생성한다. 또한, 미리 복수의 비트 레이트 대응 데이터를 준비하고, 이들 복수의 비트 레이트 데이터로부터 송신 데이터를 선택하는 처리를 실행하는 구성으로 하여도 된다.
동적 레이트 제어부(210)는, 스루풋 산출부(211)와, 비트 레이트 결정부(212)를 갖는다. 스루풋 산출부(211)는, 서버의 데이터 송수신부(204)와 클라이언트의 데이터 송수신부(301) 사이에 실행되는 통신 상황의 감시를 실행하고, 감시 결과에 기초하여 스루풋을 산출한다. 비트 레이트 결정부(212)는, 스루풋 산출부(211)가 산출한 스루풋에 기초하여, 클라이언트(300)에 대한 데이터의 송신 비트 레이트를 결정하고, 데이터 처리부(202)에 통지한다. 이 동적 레이트 제어부(210)의 처리의 상세에 대해서는 후술한다.
데이터 처리부(202)는, 비트 레이트 결정부(212)가 결정한 비트 레이트에 따른 송신 데이터의 인코드, 혹은 비트 레이트 결정부(212)가 결정한 비트 레이트에 따른 인코드 데이터의 선택 처리를 실행하고, 송신 버퍼(203)에 입력한다. 데이터 송수신부(204)는, 송신 버퍼(203)에 축적된 송신 비트 레이트에 대응하는 데이터(패킷)를 클라이언트(300)와의 사이에 설정한 TCP 커넥션을 통해서 클라이언트(300)에 송신한다.
클라이언트(300)는, 데이터 송수신부(301)를 통해서 서버(200)로부터의 스트리밍 데이터(패킷)를 수신하고, 수신 버퍼(302)에 저장한다. 수신 버퍼(302)에 저장된 데이터는, 재생 처리부(303)에 의해 순차적으로, 취출되어 디코드 처리, 예를 들면 데이터 신장 처리, 암호화 데이터이면 복호 처리가 실행되어, 디스플레이, 스피커 등에 의해 구성되는 출력부(304)에 출력된다.
도 3은 서버 클라이언트간에서의 통신 처리의 시퀸스에 대해서 설명하는 도면이다. 우선, 스텝 S11에서, 서버와 클라이언트간에서 TCP 커넥션의 확립 처리가 실행된다. 그 후, 스텝 S12에서, 클라이언트로부터 서버에 대한 버퍼량 통지 처리가 실행된다. 또한, 버퍼량 통지 처리는 커넥션 확립 처리에 포함되는 처리로서 실행하여도 된다.
본 실시예에서는, 스트리밍 데이터를 수신하는 클라이언트의 어플리케이션 버퍼의 최대량, 즉 스트리밍 데이터 수신을 위해 준비되는 버퍼의 최대량을 스트리 밍 개시 시에 서버에 통지한다. 도 2의 수신 버퍼(302)는, 스트리밍 데이터를 수신하는 클라이언트의 어플리케이션 버퍼를 나타내고 있으며, 이 수신 버퍼(302) 최대량이 서버에 통지된다. 예를 들면, 스트리밍이 HTTP 방식에 따른 스트리밍 데이터인 경우, 클라이언트는 어플리케이션 버퍼량을 HTTP 헤더에 포함시켜서 서버에 통지한다. 서버는, 클라이언트로부터 통지된 버퍼량을, 동적 레이트 제어부(210)에서 결정하는 비트 레이트의 증감 처리의 지표로서 이용한다. 이 처리에 대해서는, 후술한다. 클라이언트로부터 서버에 대한 버퍼량 통지는, 스트리밍 개시 시의 1회만으로 된다.
그 후, 스텝 S13에서, 서버로부터 클라이언트에 대하여 스트리밍 데이터의 배신이 실행된다. 이 스트리밍 데이터의 송신 처리에서는, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)에서 동적인 송신 비트 레이트의 제어가 행해지고, 최적의 비트 레이트에서의 스트리밍 데이터 송신이 행해진다. 구체적인 처리에 대해서는 후술한다. 모든 스트리밍 데이터의 송신이 종료하면, 스텝 S14에서, 서버 클라이언트간의 커넥션 차단을 실행하여 처리를 종료한다.
다음으로, 도 4∼도 6을 참조하여, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)에서 실행하는 송신 데이터의 비트 레이트 제어 처리의 상세에 대해서 설명한다. 우선, 도 4를 참조하여, 동적 레이트 제어부(210)의 스루풋 산출부(211)의 실행하는 스루풋 산출 처리에 대해서 설명한다.
도 4는, 도 3에서의 스텝 S13의 데이터 전송 처리를, 보다 상세하게 나타낸 시퀸스도이다. 서버는, 스트리밍 배신 데이터를 TCP 패킷(TCP 세그먼트)에 저장하 여, 순차적으로 클라이언트에 송신한다. 도 4에 도시하는 데이터 1∼데이터 8은, 개개의 송신 패킷을 나타낸다. TCP 통신에서는, 클라이언트는, 수신 패킷의 수신 확인 응답으로서의 ack를 서버에 송신한다. 도면에 도시하는 ack1∼4가 클라이언트로부터 서버에 송신되는 수신 확인 응답(ack)을 나타내고 있다. 또한, 클라이언트로부터 서버에 송신되는 수신 확인 응답(ack)은, 반드시 모든 송신 데이터에 대응해서 클라이언트로부터 송신된다고는 한하지 않는다. 클라이언트측에서는, 시간적 여유가 없는 경우에는, 수신 확인 응답(ack)을 생략하는 경우도 있다. 도 4에 도시하는 ack1은, 데이터 1 및 데이터 2의 수신 확인 응답(ack)이며, ack2는, 데이터 3 및 데이터 4에 대한 수신 확인 응답(ack)이다.
서버로부터 클라이언트에 대한 데이터 송신은, 클라이언트로부터 서버에 제시되는 윈도우 사이즈에 기초하는 연속 송신 처리로서 실행된다. 예를 들면, 도 4에 도시하는 데이터 1∼데이터 4의 송신은, 연속 송신 처리로서 실행된 처리이다. 즉 각 패킷의 송신 후, 서버가, 그 수신 확인을 클라이언트로부터 수령하여 다음의 패킷을 송신한다고 하는 처리를 행하면, 스루풋이 저하하여 데이터 송신 처리의 효율이 떨어지게 된다.
이것을 방지하기 위해서, 일정한 일괄 송신 가능한 데이터량으로서의 윈도우 사이즈를 결정하여, 이 윈도우 사이즈에 기초하여 패킷을 연속해서 송신한다. 이 윈도우 사이즈는, 예를 들면 세션 확립 시에 클라이언트로부터 서버에 통지된다. 즉, 클라이언트측에서 일괄 수신 가능한 데이터량으로서 윈도우 사이즈를 서버에 통지한다. 서버측에서는, 이 윈도우 사이즈에 기초하여, 윈도우 사이즈에 대응하 는 데이터량을 갖는 패킷의 연속 송신을 실행한다. 또한, 클라이언트로부터 서버에 대하여 송신되는 수신 확인 응답(ack) 패킷에 갱신된 윈도우 사이즈를 서버에 통지하고, 서버측에서는 갱신된 윈도우 사이즈에 기초하여 연속 송신 데이터량을 축차 변경 제어하는 구성으로 하여도 된다.
윈도우 사이즈에 기초하는 데이터 송신을 실행하면, 서버로부터 클라이언트에 대한 데이터 송신은, 도 4에 도시한 바와 같이 간헐적인 데이터 송신 처리로서 실행되게 된다. 예를 들면 도 4에 도시하는 기간 A는, 연속 데이터 송신 및 송신된 연속 데이터에 대한 최종의 수신 확인 응답(ack)의 수신까지의 기간이다.
도 4에 도시하는 기간 B는, 기간 A의 종료점, 즉 기간 A에서의 [TCP 데이터군]의 최종의 수신 확인 응답(ack)의 수신 시간부터, 다음의 [TCP 데이터군]의 송신 개시까지의 대기 시간이다. 기간 C는, 기간 B의 후의 다음의 [TCP 데이터군]의 송신 및 수신 확인 응답(ack)의 수신 기간이다.
종래의 스루풋 산출 방법은, 송신 데이터의 양을 단순하게 송신 시간에서 제산해서 산출하고 있었다. 예를 들면 도 3의 데이터 송신 처리 시퀸스인 경우에 A∼C의 시간대에서의 스루풋을 구할 때는,
스루풋=(데이터 1∼8의 송신 데이터량)/(시간 A+B+C)
에 의해 스루풋을 산출하였다. 이 스루풋 산출 처리에 따르면, 서버로부터 송신된 데이터량 이상의 값이 TCP스루풋으로서 측정되는 경우는 없다.
그러나, TCP에서의 데이터 송신에서, 데이터 송신 비트 레이트를 제어하여, 보다 높은 비트 레이트에서의 송신을 행하는 경우, 어디까지 비트 레이트를 상승시 켜도 될지, 즉 최대 허용 비트 레이트를 결정하는 것이 필요해진다.
본 발명의 구성에서는, 도 4에 도시하는 B의 기간을 생략한 시간으로 전송 데이터량을 제산함으로써, 최대 스루풋을 예측하고, 이 최대 스루풋에 대응하는 비트 레이트를 최대 허용 비트 레이트로 한다. 도 4의 기간 B는, 서버가 클라이언트에 대한 데이터를 송신하지 않는 기간이다. 기간 B의 부분을 스루풋 산출을 위한 시간 계측값에 포함시키게 되면, 실제로 데이터의 송수신을 실행하지 않고 있는 기간이 스루풋 계측에 적용되게 되고, 실제의 스루풋에 대한 기여가 없는 기간이 스루풋 산출에 적용되게 된다. 즉, 데이터 송수신이 실행되지 않고 있는 B의 기간을 넣어, 최대 스루풋의 산출을 실행하면, 최대 스루풋의 값이 저하하게 된다. 즉, 이 경우의 TCP스루풋의 측정값은 콘텐츠의 비트 레이트 이상의 값으로 되지 않는다.
본 발명의 구성에서는, 기간 B와 같은 [데이터 송수신 비실행 기간]의 부분을 제외한 기간, 즉 윈도우 사이즈에 기초하는 연속 데이터 송신 및 그 수신 확인 응답(ack)의 수신에 이르기까지의 기간, 즉 도 4에 도시하는 기간 A나 기간 C를 스루풋 산출의 기간으로서 적용한다. 구체적으로는,
스루풋 산출용 샘플 1=(데이터 1∼4의 송신 데이터량)/(시간 A+B-B)
스루풋 산출용 샘플 2=(데이터 5∼8의 송신 데이터량)/(시간 C+D-D)
:
스루풋 산출용 샘플 n
과 같이, 복수의 스루풋 산출용 샘플을 산출하고, 이들 복수의 스루풋 산출 용 샘플에 기초하여, 최대 스루풋을 산출한다. 또한, 상기 식에서 D는, 도 4에 도시하는 기간 C 후에 발생하는 데이터 비송신 기간이다.
이와 같이, 본 발명의 최대 스루풋 산출 처리는, 도 4에 도시하는 A나 C의 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]만을 스루풋 산출 처리에 적용하는 기간으로 하고, 도 4에 도시하는 기간 B와 같은 [데이터 송수신 비실행 기간]에 대해서는 스루풋 산출 처리의 비적용 기간으로 한다. 이 처리에 의해, TCP 세션에서 실제의 데이터 송신 및 응답(ack) 수신이 행해지고 있는 유효기간만이 스루풋 산출 처리의 적용 기간으로 되고, 참인 TCP의 최대 스루풋을 측정할 수 있다.
전술한 바와 같이, TCP 세션에서의 데이터 패킷의 송신에서는, 윈도우 사이즈에 기초하는 데이터의 연속 송신이 실행된다. 즉, 클라이언트측에서 윈도우가 비어 있을 때에 수신 확인 응답(ack)을 대기하지 않고 연속해서 데이터 패킷을 송신한다. 그 때문에, 도 4의 A, C에 도시한 바와 같은, 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]과, B에 도시한 바와 같은 [데이터 송수신 비실행 기간]이 교대로 발생한다.
또한, 도 4의 A, C에 도시한 바와 같은, 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]에서 송신되는 TCP 패킷 데이터를 「TCP 데이터군」이라고 부른다. 개개의 TCP 데이터군에 대응하는 [데이터 송수신 실행 기간]은, 윈도우나 순간적인 폭주에 크게 영향을 받는다. 그 때문에, 값이 크게 변동하고, 최대 스루풋의 측정 결과가 안정되지 않는다. 본 발명에 서는, 이 문제를 회피하기 위해, 전술한 바와 같이, 복수의 스루풋 산출용 샘플, 즉
스루풋 산출용 샘플 1=(데이터 1∼4의 송신 데이터량)/(시간 A+B-B)
스루풋 산출용 샘플 2=(데이터5∼8의 송신 데이터량)/(시간 C+D-D)
:
스루풋 산출용 샘플 n
을 산출하고, 이들 복수의 스루풋 산출용 샘플에 기초하여, 스루풋을 산출한다. 또한, 스루풋 산출용 샘플 데이터 중, 다른 샘플 데이터과 크게 벗어나는 측정 결과는, 예외값으로서 제외하는 처리를 실행한다.
본 실시예에서, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)의 스루풋 산출부(211)가 실행하는 최대 스루풋 산출 처리의 수순에 대해서 도 5에 도시하는 플로우챠트를 참조하여 설명한다. 스루풋 산출부(211)는, 윈도우 사이즈에 기초하는 연속 데이터 송신의 개시로부터, 송신된 연속 데이터에 대한 수신 확인 응답(ack)을 수신할 때까지의 기간을 데이터 송수신 실행 기간으로 하고, 이 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출한다. 도 5는 서버(200)가 클라이언트와 TCP 커넥션을 확립하고, 통신을 실행하고, TCP 커넥션의 차단을 행할 때까지의 처리의 흐름을 설명한 플로우챠트이다.
우선, 스텝 S101에서, 서버는 스트리밍 데이터의 배신 대상으로서의 클라이언트와 TCP 커넥션을 확립한다. 또한, 이 커넥션 확립 시점에서, 서버는, 클라이언트로부터 버퍼량(윈도우 사이즈에 상당)의 통지를 받는다.
스텝 S102에서, 상위층의 어플리케이션으로부터의 데이터 송신 요구 있음의 판정이 이루어지면, 스텝 S103에서 TCP 세그먼트(패킷)의 송신을 개시하고, 송신 개시 시간 [Ts]을 메모리에 기억한다. 또한, 이 패킷 송신은, 앞서 클라이언트로부터 통지된 윈도우 사이즈에 상당하는 데이터량의 패킷의 연속 송신 처리로서 실행된다. 예를 들면 도 4에 도시하는 기간 A의 복수의 데이터 송신 처리이다.
스텝 S104에서, 서버는 클라이언트로부터의 수신 확인 응답(TCP ACK)을 수신하였는지의 여부를 판정한다. 수신 확인 응답(TCP ACK)을 수신하지 않은 경우에는, 스텝 S105로 진행하여, TCP 송신 윈도우가 MAX, 즉 윈도우 사이즈에 상당하는 데이터량의 패킷을 송신 완료했는지의 여부를 판정한다. 윈도우 사이즈에 상당하는 데이터량의 패킷을 송신 완료가 아닌 경우에는, 스텝 S106에서, TCP 세그먼트(패킷)를 계속해서 송신한다.
TCP송신 윈도우가 MAX, 즉 윈도우 사이즈에 상당하는 데이터량의 패킷을 송신 완료한 경우에는, 수신 확인 응답을 대기한다. 스텝 S104에서, 수신 확인 응답을 수신한 경우에는, 스텝 S107로 진행하여, 송신 완료 TCP 세그먼트의 최종 세그먼트에 대응하는 수신 확인 응답(TCP ACK)을 수신하였는지의 여부를 판정하고, 미수신인 경우에는, 수신할 때까지 대기한다. 이 최종 세그먼트에 대응하는 수신 확인 응답(TCP ACK)은, 예를 들면 도 4의 기간 A에서의 ack2이다.
스텝 S107에서, 최종 세그먼트에 대응하는 수신 확인 응답(TCP ACK)을 수신했다고 판정하면, 스텝 S108에서, 최종 세그먼트에 대응하는 수신 확인 응답(TCP ACK)의 수신 시간 [Te]를 메모리에 기억한다.
다음으로, 스텝 S109에서, 스루풋 산출용 샘플 대응 시간 Tn=Te-Ts를 산출한다. 이 처리는, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)에서의 스루풋 산출부(211)에 있어서 실행된다. 이 Tn=Te-Ts는, 즉 도 4에 도시하는 기간 A나 C의 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]의 계측값이다.
다음으로, 스텝 S110에서, 측정 샘플수 n이 미리 정한 임계값 [Thn] 이상으로 되었는지의 여부를 판정한다. 측정 샘플수 n이 미리 정한 임계값 [Thn] 이상이 아닌 경우에는, 스텝 S111에서 통신이 계속 중인지의 여부를 판정하고, 통신 계속 중인 경우에는, 스텝 S102로 진행하고, 또한 측정 샘플수 n이 미리 정한 임계값 [Thn] 이상으로 될 때까지, 마찬가지의 처리를 반복하고, 스루풋 산출용 샘플 대응 시간 Tn=Te-Ts를 모은다. 이 처리는, 예를 들면 도 4에서의 기간 A나 C의 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]의 계측값을 소정수, 즉 미리 정한 임계값 [Thn] 이상으로 될 때까지 모으는 처리이다.
스텝 S110에서, 측정 샘플수 n이 미리 정한 임계값 [Thn] 이상으로 되었다고 판정되면, 스텝 S112로 진행하여, 측정 샘플, 즉 스루풋 산출용 샘플 대응 시간 T1∼Tn 중, 값이 크게 벗어난 것을 예외값으로 하여 제거하는 처리를 실행하고, 스텝 S113에서, 예외값을 제거한 스루풋 산출용 샘플 대응 시간 T1∼Tn만을 적용하여, 최대 스루풋을 산출한다.
스텝 S113에서의 스루풋 산출은, 최대 스루풋을,
최대 스루풋=(Σ(각 데이터 송수신 실행 기간에서의 송신 데이터량))/(Σ(각 데이터 송수신 실행 기간))
으로 하여 산출한다. 단, 상기 식에서, Σ(각 데이터 송수신 실행 기간에서의 송신 데이터량), 및 Σ(각 데이터 송수신 실행 기간)에는, 예외값에 대응하는 기간 및 송신 데이터량은 포함하지 않는다.
이와 같이 하여, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)에서의 스루풋 산출부(211)는, 복수의 [데이터 송수신 실행 기간]의 계측 시간 및 송신 데이터량에 기초하여, 최대 스루풋을 산출한다. 이 처리에서 산출되는 스루풋은, 도 4에 도시하는 데이터 송수신 비실행 기간 (B)를 포함하지 않는다. 스루풋 산출부(211)는, 이 산출 스루풋을 최대 스루풋으로 하여, 도 2에 도시하는 서버(200)의 동적 레이트 제어부(210)의 비트 레이트 결정부(212)에 입력한다.
비트 레이트 결정부(212)의 처리에 대해서, 도 6, 도 7을 참조하여 설명한다. 도 6에 도시한 바와 같이 비트 레이트 결정부(212)는, 스루풋 산출부(211)가 전술한 처리에 의해 산출한 최대 스루풋을 입력함과 함께, 클라이언트의 버퍼량을 견적하고, 비트 레이트를 결정하고, 인코드 처리 혹은 인코드 데이터의 선택 처리 등을 실행하는 데이터 처리부(202)에 대하여, 송신 데이터의 비트 레이트 결정 정보를 입력한다.
비트 레이트 결정부(212)에서는, 클라이언트의 버퍼량의 견적 처리를 이하의 처리에 의해 행한다. 즉,
통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
클라이언트가 재생을 개시하고 나서의 경과 시간 : [T(sec)]
클라이언트가 재생을 개시한 이후, 경과 시간 [T(sec)]의 사이에 서버로부터의 송신 데이터량 : [D_serv(byte)]
송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
이들의 정보를 이용하여, 클라이언트의 버퍼량의 견적을 실행한다.
서버는, 클라이언트로 송신 콘텐츠의 재생이 개시된 것을, 서버가 실제로 송신한 데이터량이, 클라이언트로부터 통지된 버퍼량 [B_cli]를 상회한 것으로 판단할 수 있다. 즉, 클라이언트는, 콘텐츠 재생 개시 전에 클라이언트 버퍼량 [B_cli]분만큼, 버퍼에 데이터를 축적하고, 그 만큼의 양의 데이터를 서버가 송신한 시점에서, 서버는 클라이언트의 버퍼가 가득차서, 재생이 개시되었다고 판단한다.
클라이언트측에 있어서 콘텐츠의 재생이 개시된 시점에서는, 클라이언트의 버퍼량은 [B_cli]이며, 재생 개시 후, 시간 T가 경과하면, 서버는 [D_serv(byte)]의 데이터를 클라이언트에 송신하고, 클라이언트의 버퍼에 송신 데이터가 축적된다. 클라이언트는, [R*T(byte)]의 데이터량을 재생함으로써, 이 데이터량이 클라이언트의 버퍼로부터 소거된다.
서버는, 이들의 데이터의 추이에 기초하여,
B_cli+D_serv-R*T
의 데이터량이, 현재의 클라이언트의 버퍼량이라고 견적한다. 이와 같이 하여 견적된 버퍼량은, 도 6의 버퍼량 정보(250)에 나타낸 바와 같이 0∼MAX의 범위 에서 견적된다. MAX는 클라이언트 버퍼량 [B_cli]에 상당한다. 비트 레이트 결정부(212)는, 이와 같이 클라이언트측 버퍼의 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 구성으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 스루풋 산출부(211)가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행한다.
도 7에 도시하는 플로우챠트를 참조하여, 비트 레이트 결정부(212)의 처리 시퀸스에 대해서 설명한다. 스텝 S201에서, 비트 레이트 결정부(212)는, 버퍼량이, 미리 정한 임계값 Th1보다 적은지의 여부를 판정한다. 또한, 버퍼량과는, 전술한 견적 처리에 의해 견적된 버퍼량이다. 버퍼량이, 미리 정한 임계값 Th1보다 적다고 판정된 경우에는, 스텝 S202로 진행하여, 송신 비트 레이트의 저하 처리를 실행한다. 이 처리는, 도 6에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Ba의 영역에 있는 경우의 처리이다.
스텝 S201에서, 버퍼량이, 미리 정한 임계값 Th1보다 적지 않다고 판정되면, 스텝 S203으로 진행하여, 버퍼량이, 미리 정한 임계값 Th2보다 많은지의 여부를 판정한다. 버퍼량이, 미리 정한 임계값 Th2보다 많지 않은 경우에는, 스텝 S201로 되돌아간다. 이 처리는, 도 6에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Bb의 영역에 있는 경우의 처리이다.
버퍼량이, 미리 정한 임계값 Th2보다 많은 경우에는, 스텝 S204로 진행하여, 현재의 송신 데이터의 비트 레이트와, 스루풋 산출부(211)가 전술한 처리에 의해 산출한 최대 스루풋을 비교한다. 현재의 송신 데이터의 비트 레이트가, 스루풋 산 출부(211)가 산출한 최대 스루풋에 대응하는 비트 레이트보다 작은 경우에는, 스텝 S205로 진행하여, 송신 데이터의 비트 레이트를 상승시키는 처리를 실행한다. 단, 스루풋 산출부(211)가 산출한 최대 스루풋에 대응하는 비트 레이트, 즉 최대 허용 비트 레이트를 상한값으로 한다. 현재의 송신 데이터의 비트 레이트가, 스루풋 산출부(211)가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트와 동일한 경우에는, 비트 레이트의 제어를 행하지 않고, 스텝 S201로 되돌아간다. 이 처리는, 도 6에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Bc의 영역에 있는 경우의 처리이다.
또한, 앞서 설명한 도 5에 도시하는 플로우챠트에서의 스루풋 산출 처리는, 데이터 통신의 계속 중, 소정 기간마다 반복 실행되고, 스루풋 산출부(211)는, 최대 스루풋을 축차 갱신해서 비트 레이트 결정부(212)에 입력한다. 비트 레이트 결정부(212)에서도, 도 7의 플로우챠트에 나타내는 처리를 반복해 실행하고, 스루풋 산출부(211)가 산출한 최신의 최대 스루풋에 대응하는 최대 허용 비트 레이트에 기초하여 비트 레이트를 축차 결정한다. 따라서, 네트워크 상황에 따른 최대 스루풋에 기초하는 비트 레이트 제어가 행해진다.
본 실시예에서는, 도 4를 참조하여 설명한 바와 같이, 도 4에 도시하는 기간 A나 C의 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]의 계측값을 적용해서 최대 스루풋을 산출하고, 이 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 송신 비트 레이트의 제어를 행하는 구성으로 했다. 즉, 도 4에 도시하는 기간 B와 같은 데이터 송수신에 대한 기여가 없는 기간 [데이터 송수신 비실행 기간]을 생략한 데이터 송수신 기간에 기초하는 최대 스루풋을 산출하여, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
[실시예 2]
다음으로, 실시예 2로서, 클라이언트측에서 수신 데이터에 기초하여 스루풋을 산출, 혹은 스루풋 산출에 적용하는 값을 산출하고, 이 산출값에 기초하여 서버가 비트 레이트 제어를 실행하는 구성예에 대해서 설명한다.
도 8은 실시예 2에서의 스트리밍 데이터 배신을 실행하는 서버(200)와, 스트리밍 데이터의 수신, 재생을 실행하는 클라이언트(300)의 기능을 설명하는 블록도를 나타낸다. 서버(200)와 클라이언트(300) 간에는 TCP 커넥션이 설정되어 통신이 실행된다.
앞서 도 2를 참조하여 설명한 실시예 1의 구성과 상이한 점은, 클라이언트(300)가 패킷 간격 계측부(305)를 갖는 점이다. 그 외의 구성은 도 2의 구성과 마찬가지이다. 단, 각 구성부에서의 처리가 상이하다. 이하, 실시예 2의 구성에서, 실시예 1과 상이한 점을 중심으로 하여 설명한다.
실시예 2의 구성에서, 서버(200)의 데이터 송수신부(204)는, 소정 간격에서, 긴급 플래그(URG 플래그)를 ON[1]로 한 데이터 송신 패킷을 연속 송신한다. 긴급 플래그는, 통상적으로, TCP 패킷에 긴급 데이터가 포함되는 경우에 ON[1]로서 송신한다. 본 실시예에서는, 긴급 데이터의 유무에 상관없이, 클라이언트측에서 TCP 패킷의 수신 간격을 측정하는 패킷인 것을 나타내기 때문에, 긴급 플래그(URG 플래그)를 ON[1]로 한 패킷을 연속 송신한다.
도 9를 참조하여, 서버 클라이언트간의 데이터 통신 시퀸스를 설명한다. 실시예 2에서도, 실시예 1과 마찬가지로, 서버 클라이언트간에서, 커넥션 확립이 실행된 후, 서버로부터 클라이언트에 대하여 스트리밍 데이터의 배신이 실행된다. 도 9에 도시하는 데이터 통신 시퀸스는, 실시예 1에서 설명한 도 3에 도시하는 스텝 S13의 데이터 전송 처리의 상세 내용을 도시하는 도면이다.
실시예 2에서는, 도 9에 도시한 바와 같이 서버는 TCP 패킷으로서의 데이터 1로부터 순서대로 클라이언트에 송신한다. 서버는, 클라이언트에서 패킷 수신 간격을 계측하는 요구가 있는 패킷에 대해서, 긴급 플래그를 ON[1]로서 연속 송신한다. 도 9에 도시하는 패킷 n, 패킷 n+1의 TCP 패킷의 헤더에 설정되는 긴급 플래그가 ON[1]로 설정된 패킷이다. 이 긴급 플래그가 ON[1]로 설정된 2개의 연속하는 패킷을 스루풋 계측용 페어 패킷으로 한다.
클라이언트는, 긴급 플래그가 ON[1]로 설정된 패킷을 2개 연속해서 수신한 경우, 그 수신 간격 [t]를 계측한다. 이 계측값에 기초하여 스루풋을 산출하고, 서버에 통지한다. 혹은, 수신 간격 데이터 [t]를 서버에 통지하여, 서버에서 수신 간격 데이터 [t]에 기초하여 스루풋을 산출하여도 된다.
서버는 이 연속 패킷 수신 간격 데이터 [t]에 기초하여 산출되는 스루풋을 최대 스루풋으로 하여, 이 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 한 비트 레이트 제어를 실행한다. 도 10, 도 11을 참조하여, 실시예 2에서의 서버의 처리와, 클라이언트의 처리 시퀸스에 대해서 설명한다.
우선 도 10을 참조하여, 서버의 처리에 대해서 설명한다. 도 10은 서버(200)가 클라이언트와 TCP 커넥션을 확립하고, 통신을 실행하여, TCP 커넥션의 차단을 행할 때까지의 처리의 흐름을 설명한 플로우챠트이다.
우선, 스텝 S301에서, 서버는 스트리밍 데이터의 배신 대상으로서의 클라이언트와 TCP 커넥션을 확립한다. 스텝 S302에서, 클라이언트 어플리케이션으로부터의 데이터 송신 요구 있음의 판정이 이루어지면, 스텝 S303에서 TCP 세그먼트(패킷)의 송신을 개시한다.
스텝 S304에서, 서버는, 클라이언트에 대한 송신 패킷을 스루풋 계측용 페어 패킷으로 할지를 판정한다. 송신 패킷을 스루풋 계측용 페어 패킷으로 하는 경우에는, 스텝 S305로 진행하여, 긴급 플래그를 ON[1]로 설정한 패킷을 생성하고, 연속 송신한다. 송신 패킷을 스루풋 계측용 페어 패킷으로 하지 않는 경우에는, 스텝 S306으로 진행하여, 긴급 플래그를 OFF[0]으로 설정한 패킷을 생성해서 송신한다.
스텝 S307에서, 통신이 계속하고 있다고 판정한 경우에는, 스텝 S302 이하의 처리를 반복해 실행한다. 통신이 종료한 경우에는, 스텝 S308로 진행하여 TCP 커넥션을 차단해서 처리를 종료한다.
다음으로, 클라이언트측의 처리에 대해서, 도 11의 플로우챠트를 참조하여 설명한다. 도 11은 클라이언트(300)가 서버(200)와 TCP 커넥션을 확립하고, 통신을 실행하여, TCP 커넥션의 차단을 행할 때까지의 처리의 흐름을 설명한 플로우챠트이다.
우선, 스텝 S351에서, 클라이언트는 스트리밍 데이터의 배신원으로서의 서버와 TCP 커넥션을 확립한다. 스텝 S352에서, 클라이언트는, 서버로부터의 TCP 패킷을 수신하고, 스텝 S353에서 TCP 패킷의 수신 시간을 메모리에 기억한다.
스텝 S354에서, 수신 패킷의 긴급 플래그가 ON[1]인지의 여부를 판정하고, "아니오"이면, 스텝 S352로 되돌아간다. "예"이면, 1개 앞의 수신 패킷의 긴급 플래그도 ON[1]이었는지를 확인하고, "아니오"이면, 스텝 S352로 되돌아간다. "예"이면, 스텝 S356으로 진행하여, 긴급 플래그가 ON[1]인 2개의 연속 패킷의 수신 간격 [t]를 산출한다. 이 처리는, 도 8에 도시하는 클라이언트(300)의 패킷 간격 계측부(305)에서 실행된다.
스텝 S357에서는, 2개의 연속 패킷의 수신 간격 [t]에 기초하여, 최대 스루풋이 산출된다.
최대 스루풋=(페어 패킷의 뒤 패킷의 데이터량)/t
에 의해 산출된다. 이 산출 처리도 패킷 간격 계측부(305)에서 실행된다.
스텝 S358에서는, 산출 정보를 서버에 피드백할지의 여부를 판정하고, 피드백하지 않은 경우에는, 스텝 S360에서 통신의 계속을 판정하여, 계속하고 있는 경우에는 스텝 S352로 되돌아가 처리를 반복한다. 스텝 S358에서는, 산출 정보를 서버에 피드백한다고 판정한 경우에는, 스텝 S359로 진행하여, 산출 스루풋 정보, 또 는 수신 간격 정보를 서버에 송신한다.
스텝 S359의 처리 후, 스텝 S360에서 통신의 계속을 판정하여, 계속하고 있는 경우에는 스텝 S352로 되돌아가 처리를 반복한다. 스텝 S360에서 통신의 종료라고 판정된 경우에는, 스텝 S361에서 TCP 커넥션을 차단한다.
또한, 전술한 바와 같이, 클라이언트는, 긴급 플래그가 ON[1]로 설정된 패킷을 2개 연속해서 수신한 경우, 그 수신 간격 [t]를 계측하여, 계측값에 기초하여 스루풋을 산출하고, 서버에 통지하는 구성으로 하여도 되지만, 수신 간격 데이터 [t]를 서버에 통지하여, 서버에서 수신 간격 데이터 [t]에 기초하여 스루풋을 산출하여도 된다. 이 경우에는, 스텝 S357의 처리는, 클라이언트에서는 실행할 필요가 없다.
서버측에서는, 클라이언트로부터 수신한 정보가 수신 간격 데이터 [t]인 경우에는, 서버(200)의 스루풋 산출부(211)에서, 수신 간격 데이터 [t]에 기초하여, 상기한 바와 마찬가지의 스루풋 산출식, 즉
스루풋=(페어 패킷의 총 데이터량/2)/t
에 의해 최대 스루풋을 산출한다.
서버측의 비트 레이트 결정부(212)는, 클라이언트로부터 수신한 스루풋, 혹은, 클라이언트로부터 수신한 수신 간격 데이터 [t]에 기초하여 서버의 스루풋 산출부(211)에서 산출한 스루풋을 최대 스루풋으로 하여, 비트 레이트 입력부(212)에 입력한다.
비트 레이트 입력부(212)에서의 처리는, 실시예 1과 마찬가지의 처리로, 앞 서 도 7을 참조하여 설명한 비트 레이트 제어 처리가 실행된다. 본 처리에서도 실제의 연속 송신 패킷의 수신 간격에 기초하여 최대 스루풋이 계측된다. 즉, 앞서 도 4를 참조하여 설명한 기간 B와 같은 데이터 송수신에 대한 기여가 없는 기간 [데이터 송수신 비실행 기간]을 고려하지 않은 최대 스루풋이 산출되고, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행할 수 있다. 이와 같이 실시예 2도, 실제로 연속 송신되는 패킷의 계측에 기초하여 정해지는 최대 스루풋에 상당하는 최대 허용 비트 레이트에 따라서 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
[실시예 3]
다음으로, 실시예 3으로서, 기지국(AP: Access Point)에서 취득한 정보를 적용해서 비트 레이트 제어를 행하는 구성에 대해서 설명한다.
도 1의 네트워크 구성에서, 클라이언트(휴대 단말기)(123), 클라이언트(재생 장치)(124)는, 기지국(AP)(131)을 통해서 서버(101)와의 통신을 실행한다.
서버가 기지국(AP)을 통해서 클라이언트에 대하여 스트리밍 데이터를 배신 할 때, 서버는, 우선, 서버 클라이언트간에 있는 최적의 기지국(AP)을 발견하는 처리를 행하는 것이 필요하다. 우선 이 AP 발견 처리에 대해서 도 12를 참조하여 설명한다.
우선, 스트리밍 배신을 실행하는 서버(200)는, 스트리밍을 개시하기 전에, 스텝 S401에서, 서버(200) 자신 및 스트리밍 데이터의 전송처 클라이언트(123)의 2개의 MAC 어드레스를 저장한 「AP 발견 메시지」를 서브넷 내에 브로드캐스트한다.
브로드캐스트된 「AP 발견 메시지」는, LAN에 접속된 모든 기지국(AP)이 수신한다. 도면에는 2개의 기지국 a(APa)(400a)와 기지국 b(APb)(400b)를 나타내고 있다. 서버(200)로부터의 「AP 발견 메시지」를 수신한 각 AP(400a ,400b)는, 스텝 S402에서, 「AP 발견 메시지」에 포함되는 클라이언트의 MAC 어드레스를 갖는 노드가 무선 링크 내에 존재할지를, 자신의 무선 어소시에이션 리스트를 참조해서 조사한다.
만일, 어소시에이션 리스트에 상기 MAC 어드레스가 있는 경우에는, AP는 자신이 그 스트리밍의 통신 경로 상에 존재하고 있는 것을 알 수 있다. 또한, 어소시에이션 리스트에 그 MAC 어드레스가 없음에도 불구하고, 수신한 「AP 발견 메시지」는 무선 링크에는 전송하지 않고 파기한다.
AP가 스트리밍의 통신 경로 상에 존재하고 있는 것을 안 경우에는, 스텝 S403에서, AP, 도 12의 예에서는, 기지국 a(APa)(400a)는 서버(200), 클라이언트(123)의 MAC 어드레스 외에 기지국 a(APa)(400a) 자신의 MAC 어드레스를 저장한 「AP 발견 응답 메시지」를, 서버(200)에 유니캐스트로 송신한다. 스트리밍 배신 실행 서버(200)는, 이것부터 행하는 스트리밍의 경로 상에 무선 링크(보틀넥크)가 존재하는 것을 알 수 있다. 또한, AP가 스트리밍의 통신 경로 상에 존재하지 않고 있는 것을 안 경우에는, AP는 「AP 발견 응답 메시지」를 송신하지 않는다.
이상의 교환에 의해, 스트리밍 데이터 배신을 실행하는 서버 및 통신 경로 상의 기지국(AP)은, 서로의 MAC 어드레스를 파악할 수 있기 때문에, 양자간에 통신(무선 링크 정보를 AP로부터 서버에 통지)이 가능해진다. 또한, 스트리밍 데이터를 수신하는 클라이언트의 이동이나 전원 OFF 등에서, 기지국(AP) 자신의 어소시에이션 리스트로부터 그 MAC 어드레스가 삭제된 경우에는, 기지국(AP)은 서버에의 통지를 취소한다.
또한, 서버에 의한 「AP 발견 메시지」를 스트리밍 개시뿐만 아니라, 한창 스트리밍 중일 때에도, 정기적으로 송신함으로써, 스트리밍 클라이언트가 AP간을 핸드 오버한 경우에 대응 가능해진다. 즉, 이동처에서 접속한 AP가, 「AP 발견 메시지」를 수신한 순간에, 이동처 AP가, 「AP 발견 응답 메시지」를 서버에 회답하고, 무선 링크의 상황을 통지하기 개시한다. 또한, 자신의 어소시에이션 리스트로부터 그 스트리밍 클라이언트의 MAC 어드레스가 삭제된, 이동 전에 접속하고 있던 AP는, 서버에의 무선 링크 정보의 통지는 취소한다.
또한, 기지국(AP)으로부터 서버에의 통지를 L2(데이터 링크층) 레벨의 메시지가 아닌, 상위 레벨(IP)의 메시지로 행하는 경우에는, 「AP 발견 메시지」 「AP 발견 응답 메시지」에, MAC 어드레스 외에, IP 어드레스도 저장해둔다. 또한, 기지국(AP)은, 「AP 발견 응답 메시지」 대신에, 즉석에서 무선 링크 정보를 서버에 통지하여도 된다.
이러한 AP 발견 처리에 의해, 스트리밍 배신을 실행하는 서버와 기지국(AP)과 클라이언트의 관계가 설정된다. 실시예 3에서는, 스트리밍 배신을 실행하는 서 버가, 스트리밍 배신 경로 상의 기지국(AP)에서 취득하는 정보를 적용해서 비트 레이트 제어를 행한다.
도 13을 참조하여, 실시예 3에서의 스트리밍 데이터 배신을 실행하는 서버(200)와, 스트리밍 데이터의 수신, 재생을 실행하는 클라이언트(300), 및 스트리밍 배신 경로 상의 기지국(AP)(400)의 기능을 설명한다. 서버(200)와 클라이언트(300)간에는 기지국(AP)(400)을 통한 TCP 커넥션이 설정되어 통신이 실행된다.
서버(200) 및 클라이언트(300)의 구성은, 앞서 도 2를 참조하여 설명한 실시예 1의 구성과 마찬가지이다. 단 서버(200)에서의 처리는 상이하다. 기지국(AP)(400)은, 도 13에 도시한 바와 같이 데이터 송수신부(401), 통신 대역 감시부(402), 통신 대역 정보 생성부(403)를 갖는다.
기지국(AP)(400)의 통신 대역 감시부(402)는, 무선 통신 구간의 L2(데이터 링크층) 레이어에서의 RTT(Round Trip Time)이나, RSSI(전파 강도), 송신 레이트 등의 값을 감시한다. RTT는, 기지국(AP)(400)으로부터 패킷이 송신되고나서 클라이언트로부터 응답이 되돌아올 때까지의 시간이다. 기지국(AP)(400)의 통신 대역 감시부(402)에서의 감시 동작은 정기적으로 행해진다.
통신 대역 감시부(402)가 취득한 통신 구간의 정보는, 필요에 따라서 통신 대역 정보 생성부(403)에서, 서버에 통지하기 위한 데이터 처리가 실행된다. 데이터 처리의 예로서는 가중 평균값이나 표준 편차값의 도출 등이다. RTT, RSSI, 송신 레이트 등의 각 값에 대해서 가중 평균값이나 표준 편차값의 도출이 이루어지고, 서버에의 보고값이 생성된다. 통신 대역 정보 생성부(403)가 생성한 데이터 는, 데이터 송수신부(401), 통신망을 통해서 서버(200)에 통지된다.
기지국(AP)(400)으로부터 서버(200)에 송신된 통신 대역 정보는, 서버(200)의 데이터 송수신부(204)에서 수신되어, 동적 레이트 제어부(210)의 비트 레이트 결정부(212)에 입력된다. 비트 레이트 결정부(212)는, 기지국(AP)(400)으로부터 취득한 통신 대역 정보를 판정 알고리즘에 걸쳐서 해석하고, 스트리밍 데이터의 비트 레이트를 감소시킨 쪽이 좋다고 판단했을 때는, 즉석에서 비트 레이트를 감소시킨다.
판정 알고리즘은, 예를 들면 기지국(AP)(400)으로부터 취득한 통신 대역 정보와, 비트 레이트 결정부(212)가 유지하는 임계값과의 비교 처리로서 실행된다. 구체적으로는, 예를 들면 기지국(AP)(400)으로부터 취득한 통신 대역 정보에 포함되는 RTT, RSSI, 송신 레이트 등에 기초하는 가중 평균값이나 표준 편차값 등의 파라미터가, 비트 레이트 결정부(212)가 유지하는 임계값을 N회 연속으로 초과한 경우에 비트 레이트를 감소시키는 등의 처리를 실행한다. 이러한 복수회의 임계값 비교를 행하는 이유는, 돌발적으로 1회만 파라미터가 임계값을 초과한 경우 등에, 쓸데없이 비트 레이트를 감소시키게 되는 것을 방지하기 위해서이다.
실시예 3에서의 비트 레이트 결정부(212)의 처리에 대해서, 도 14, 도 15를 참조하여 설명한다. 실시예 3은, 실시예 1 또는 실시예 2에서의 스루풋 산출 처리를 병용하여, 비트 레이트 제어를 행한다. 도 14에 도시한 바와 같이, 비트 레이트 결정부(212)는, 스루풋 산출부(211)가 실시예 1 또는 실시예 2의 처리에 의해 산출한 최대 스루풋을 입력함과 함께, 전술한 기지국(AP)(400)으로부터 취득한 통 신 대역 정보, 구체적으로는, 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등에 기초하는 가중 평균값이나 표준 편차값 등의 파라미터를 입력한다. 또한, 앞서 설명한 클라이언트의 버퍼량의 견적 처리를 실행하여, 비트 레이트를 결정하고, 인코드 처리 혹은 인코드 데이터의 선택 처리 등을 실행하는 데이터 처리부(202)에 대하여, 송신 데이터의 비트 레이트 결정 정보를 입력한다. 견적 버퍼량은, 도 14의 버퍼량 정보(250)에 도시한 바와 같이, 클라이언트의 견적 버퍼량으로서 0∼MAX의 범위의 견적 버퍼량이 비트 레이트 결정부(212)에 의해 취득된다.
도 15에 도시하는 플로우챠트를 참조하여, 비트 레이트 결정부(212)의 처리 시퀸스에 대해서 설명한다. 비트 레이트 결정부(212)는, 스텝 S501에서, 기지국(AP)(400)으로부터 통신 대역 정보의 입력의 유무를 판정한다. 구체적으로는, RTT, RSSI, 송신 레이트 등에 기초하는 가중 평균값이나 표준 편차값 등의 파라미터이다. 스텝 S501에서, 기지국(AP)(400)으로부터 통신 대역 정보의 입력 있음이라고 판정하면, 스텝 S502로 진행하여, 기지국(AP)(400)으로부터 입력한 통신 대역 정보의 해석 처리를 실행한다.
스텝 S502의 해석 처리는, 예를 들면, 전술한 바와 같이, 기지국(AP)(400)으로부터 취득한 통신 대역 정보와, 비트 레이트 결정부(212)가 유지하는 임계값과의 비교 처리이다. 예를 들면 기지국(AP)(400)으로부터 취득한 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등에 기초하는 가중 평균값이나 표준 편차값 등의 파라미터와, 비트 레이트 결정부(212)가 유지하는 임계값과의 비교 처리로서 실행된다.
스텝 S503에서는, 스텝 S502에서의 해석 결과로서, 송신 비트 레이트의 저하가 필요하다고 판단되었는지의 여부를 판정하고, 송신 비트 레이트의 저하가 필요하다고 판정된 경우에는, 스텝 S504로 진행하여, 송신 비트 레이트의 저하 처리를 실행한다. 또한, 스텝 S505에서, 스텝 S502에서의 해석 결과로서, 송신 비트 레이트의 상승이 가능하다고 판단되었는지의 여부를 판정하고, 송신 비트 레이트의 상승이 가능하다고 판정된 경우에는, 스텝 S506으로 진행하여, 송신 비트 레이트의 상승 처리를 실행한다. 단, 스루풋 산출부(211)가 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트, 즉 상한값으로 한다. 이 상한값은, 실시예 1, 실시예 2에서 설명한 스루풋 산출부(211) 또는 클라이언트가 산출하는 최대 스루풋에 상당하는 최대 허용 비트 레이트이다.
스텝 S503 및 스텝 S505에서, 기지국(AP)(400)으로부터 취득한 통신 대역 정보의 해석에 기초하여, 송신 비트 레이트의 저하 혹은 상승이 필요하다고 판단하는 것은, 전술한 바와 같이, 기지국(AP)(400)으로부터 취득한 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등에 기초하는 가중 평균값이나 표준 편차값 등의 파라미터와, 비트 레이트 결정부(212)가 유지하는 임계값과의 비교 처리의 결과, 복수회, 연속해서 같은 결과가 발생한 경우에 비트 레이트의 변경 제어가 필요하다고 판단한다.
예를 들면, 기지국과 클라이언트간의 무선 통신에서의 RTT가 임계값a보다 긴 상태가 계속한 경우에는, 송신 비트 레이트를 저하시킨다. 임계값 b보다 짧은 상 태가 계속한 경우에는, 송신 비트 레이트를 상승시킨다. 기지국과 클라이언트간의 무선 통신에서의 RSSI(전파 강도)가 임계값 c보다 높은 상태가 계속한 경우에는, 송신 비트 레이트를 상승시킨다. 임계값 d보다 낮은 상태가 계속한 경우에는, 송신 비트 레이트를 저하시킨다. 기지국과 클라이언트간의 무선 통신에서의 비트 레이트가 임계값 e보다 낮은 상태가 계속한 경우에는, 송신 비트 레이트를 저하시킨다. 임계값f보다 높은 상태가 계속한 경우에는, 송신 비트 레이트를 상승시키는 등의 처리가 행해지게 된다.
스텝 S507∼S509의 처리는, 실시예 1과 마찬가지의 처리로, 견적 버퍼량에 기초하여 비트 레이트를 제어하는 처리이다. 즉, 스텝 S507에서, 비트 레이트 결정부(212)는, 버퍼량이, 미리 정한 임계값 Th1보다 적은지의 여부를 판정한다. 버퍼량이, 미리 정한 임계값 Th1보다 적다고 판정된 경우에는, 스텝 S504로 진행하여, 송신 비트 레이트의 저하 처리를 실행한다. 이 처리는, 도 14에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Ba의 영역에 있는 경우의 처리이다.
스텝 S507에서, 버퍼량이, 미리 정한 임계값 Th1보다 적지 않다고 판정되면, 스텝 S508로 진행하고, 버퍼량이, 미리 정한 임계값 Th2보다 많은지의 여부를 판정한다. 버퍼량이, 미리 정한 임계값 Th2보다 많지 않은 경우에는, 스텝 S501로 되돌아간다. 이 처리는, 도 6에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Bb의 영역에 있는 경우의 처리이다.
버퍼량이, 미리 정한 임계값 Th2보다 많은 경우에는, 스텝 S506으로 진행하여, 현재의 송신 데이터의 비트 레이트와, 스루풋 산출부(211)가 실시예 1의 처리 에 따라서 산출한 최대 스루풋, 혹은 실시예 2의 처리를 따라서, 클라이언트 또는 스루풋 산출부(211)가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 비교한다. 현재의 송신 데이터의 비트 레이트가, 최대 스루풋에 상당하는 최대 허용 비트 레이트보다 작은 경우에는, 스텝 S506으로 진행하여, 송신 데이터의 비트 레이트를 상승시키는 처리를 실행한다. 단, 최대 허용 비트 레이트를 상한값으로 한다. 현재의 송신 데이터의 비트 레이트가, 최대 스루풋에 상당하는 최대 허용 비트 레이트와 동일한 경우에는, 비트 레이트의 제어를 행하지 않고, 스텝 S501로 되돌아간다. 이 처리는, 도 14에 도시하는 버퍼량 정보(250)에서의 버퍼량이 Bc의 영역에 있는 경우의 처리이다.
실시예 3의 처리에서는, 실시예 1 또는 실시예 2의 스루풋 산출 처리에 따라서 산출되는 최대 스루풋에 기초하는 비트 레이트 제어 외에, 기지국(AP)이 측정하는 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등의 통신 대역 정보에 기초하여, 비트 레이트의 제어를 행하는 구성으로 하였기 때문에, 무선 통신에서의 통신 상태의 변동에 즉응한 비트 레이트 제어가 실현된다. 또한, 실시예 1, 실시예 2와 마찬가지로, 유효한 데이터 송수신 기간에 기초하는 스루풋 산출값을 최대 스루풋으로 한 설정이므로, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
또한, 기지국(AP)이 측정하는 기지국과 클라이언트간의 무선 통신에서의 통 신 대역 정보에 기초하여, 서버 클라이언트간의 스트리밍 데이터의 배신의 속행이 곤란하다고 판단된 경우에는, 서버 또는 기지국(AP)으로부터 클라이언트에 대하여 스트리밍 데이터의 배신의 속행이 곤란해진 것을 통지하는 구성으로 하여도 된다. 클라이언트에서는, 통지를 디스플레이에 표시하고, 유저에 데이터 배신이 곤란한 것을 알리는 처리를 실행한다. 이 처리에 의해, 유저는, 예를 들면 클라이언트 단말기를 기지국(AP)에 가까이 하거나, 혹은 장해를 발생시키고 있는 기기, 예를 들면 전자렌지의 정지 등의 처치를 행하는 등의 적절한 대응을 할 수 있다.
[서버, 기지국(AP), 클라이언트의 하드웨어 예]
다음으로, 서버, 기지국(AP), 클라이언트의 하드웨어 구성예에 대해서, 도 16 참조하여 설명한다. 도 1을 참조하여 설명한 바와 같이, 서버나 클라이언트는 다양한 기기에 의해 구성 가능하다. 도 16은 서버, 기지국(AP), 클라이언트로서 적용 가능한 하드웨어 구성의 일례를 나타내고 있다.
도 16의 하드 구성에 대해서 설명한다. CPU(Central Processing Unit)(501)는, ROM(Read Only Memory)(502), 또는 HDD(Hard Disk Drive) 등의 기록 매체(514) 등에 기억되어 있는 프로그램을 따라서, 각종의 처리를 실행하고, 데이터 처리 수단, 혹은 통신 제어 처리 수단으로서 기능한다. RAM(Random Access Memory)(503)에는, CPU(501)가 실행하는 프로그램이나 데이터가 적절히 기억된다. CPU(501), ROM(502) 및 RAM(503)은 버스(521)를 통해서 서로 접속되어 있다.
버스(521)에는, 입출력 인터페이스(522)이 접속되어 있고, 이 입출력 인터페이스(522)에는, 예를 들면, 유저에 의해 조작되는 키보드, 스위치, 버튼, 포인팅 디바이스, 혹은 마우스 등에 의해 구성되는 입력부(511), 유저에 각종의 정보를 제시하는 LCD, CRT, 스피커 등에 의해 구성되는 출력부(512)가 접속된다. 또한, 데이터 송수신 수단으로서 기능하는 통신부(504), 또한, 자기 디스크, 광 디스크, 광 자기 디스크, 또는 반도체 메모리 등의 기록 매체(514)를 장착하고, 기록 매체(514)로부터의 데이터 판독 혹은 기입 처리를 실행하는 드라이브(513)가 접속된다. 단, 기지국(AP)에서는, 입력부(511), 출력부(512), 드라이브(513), 기록 매체(514) 등은 반드시 필요하지는 않는다. 각종 설정을 행하는 설정부가 구비되면 된다.
도 16에 도시하는 구성은, 도 1에 도시하는 네트워크 접속 기기로서의 서버, 기지국(AP), 클라이언트로서 이용 가능한 기기의 일례이지만, 네트워크 접속 기기는 도 16의 구성에 한하지 않고, 다양한 전자 기기, 정보 처리 장치에 의해 구성하는 것이 가능하다. 따라서, 각각의 기기 고유의 하드웨어 구성을 갖는 것이 가능하다.
이상, 특정한 실시예를 참조하면서, 본 발명에 대해서 자세히 해석해 왔다. 그러나, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 그 실시예의 수정이나 대용을 할 수 있는 것은 자명하다. 즉, 예시라고 하는 형태로 본 발명을 개시해 온 것으로, 한정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는, 특허 청구의 범위의 란을 참작해야 한다.
또한, 명세서 중에서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 혹은 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀸스를 기록한 프로그램을, 전용의 하드웨어에 조립된 컴퓨터내의 메모리에 인스톨하여 실행시키거나, 혹은 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록 매체로서의 하드 디스크나 ROM(Read Only Memory)에 미리 기록해 둘 수 있다. 혹은, 프로그램은 플렉시블 디스크, CD-ROM(Compact Disc Read Only Memory), MO(Magneto optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 혹은 영속적으로 저장(기록)해 둘 수 있다. 이러한 리무버블 기록 매체는, 소위 팩키지 소프트 웨어로서 제공할 수 있다.
또한, 프로그램은, 전술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN(Local Area Network), 인터넷과 같은 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 하여 전송되어 오는 프로그램을 수신하고, 내장하는 하드 디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종의 처리는, 기재에 따라서 시계열로 실행될 뿐만 아니라, 처리를 실행하는 장치의 처리 능력 혹은 필요에 따라 병렬적으로 혹은 개별적으로 실행되어도 된다. 또한, 본 명세서에서 시스템은, 복수의 장치의 논리적 집합 구성으로, 각 구성의 장치가 동일 케이스 내에 있는 것에는 한하지 않는다.
<산업상의 이용 가능성>
이상, 설명한 바와 같이, 본 발명의 구성에 따르면, 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]의 계측값을 적 용해서 최대 스루풋을 산출하고, 이 최대 스루풋에 기초하여, 송신 비트 레이트의 제어를 행하는 구성으로 했다. 즉, 데이터 송수신에 대한 기여가 없는 기간 [데이터 송수신 비실행 기간]을 생략한 데이터 송수신 기간에 기초하는 최대 스루풋을 산출하고, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 허용 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
또한, 본 발명의 구성에 따르면, 클라이언트에 의해 계측되는 연속 송신 패킷의 수신 간격에 기초하여 최대 스루풋이 산출되고, 산출된 최대 스루풋을 상한으로 한 비트 레이트 제어를 행할 수 있다. 실제로 연속 송신되는 패킷의 계측에 기초하여 정해지는 최대 스루풋을 산출하고, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 허용 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
또한, 본 발명의 구성에 따르면, 실제의 송수신 데이터 계측에 기초하여 산출되는 최대 스루풋에 기초하는 비트 레이트 제어 외에 기지국(AP)이 측정하는 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등의 통신 대역 정보에 기초하여, 비트 레이트의 제어를 행하는 구성으로 하였기 때문에, 무선 통 신에서의 통신 상태의 변동에 즉응한 비트 레이트 제어가 실현된다.
본 발명의 구성에 따르면, 「연속 데이터 송신 및 수신 확인 응답(ack)의 수신 기간」, 즉 [데이터 송수신 실행 기간]의 계측값을 적용해서 최대 스루풋을 산출하고, 이 최대 스루풋에 기초하여, 송신 비트 레이트의 제어를 행하는 구성으로 했다. 즉, 데이터 송수신에 대한 기여가 없는 기간 [데이터 송수신 비실행 기간]을 생략한 데이터 송수신 기간에 기초하는 최대 스루풋을 산출하고, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 허용 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
또한, 본 발명의 구성에 따르면, 클라이언트에 의해 계측되는 연속 송신 패킷의 수신 간격에 기초하여 최대 스루풋이 산출되고, 산출된 최대 스루풋을 상한으로 한 비트 레이트 제어를 행할 수 있다. 즉, 실제로 연속 송신되는 패킷의 계측에 기초하여 정해지는 최대 스루풋을 산출하고, 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 한 비트 레이트 제어를 행한다. 본 구성에 의해, 실제의 송신 레이트를 고려한 비트 레이트 제어가 가능해져서, 비트 레이트의 과잉 상승이나 과잉 억제와 같은 것은 없어서, 데이터 송신을 확실하게 실행 가능한 최대 허용 비트 레이트를 상한으로 한 데이터 송신이 실현된다.
또한, 본 발명의 구성에 따르면, 실제의 송수신 데이터 계측에 기초하여 산출되는 최대 스루풋에 기초하는 비트 레이트 제어 외에, 기지국(AP)이 측정하는 기지국과 클라이언트간의 무선 통신에서의 RTT, RSSI, 송신 레이트 등의 통신 대역 정보에 기초하여, 비트 레이트의 제어를 행하는 구성으로 하였기 때문에, 무선 통신에서의 통신 상태의 변동에 즉응한 비트 레이트 제어가 실현된다.

Claims (34)

  1. 클라이언트에 데이터 송신 처리를 실행하는 서버로서의 통신 처리 장치로서,
    클라이언트와의 통신 처리를 실행하는 데이터 송수신부와,
    클라이언트에 송신되는 데이터의 비트 레이트를 결정하는 레이트 제어부와,
    상기 레이트 제어부에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리부를 갖고,
    상기 레이트 제어부는,
    서버와 클라이언트간에 통신 연결 설정 기간동안 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋(throughput)을 산출하는 스루풋 산출부와,
    상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정부
    를 구비하고,
    상기 비트 레이트 결정부는,
    (a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
    (b) 클라이언트가 재생을 개시한 이후의 경과 시간 : [T(sec)]
    (c) 클라이언트가 재생을 개시한 이후의 경과 시간 [T(sec)] 동안 서버로부터 송신된 데이터량 : [D_serv(byte)]
    (d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
    이들 (a)∼(d)의 정보를 이용하여,
    클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T에 따라,
    클라이언트의 버퍼량의 견적 처리를 실행하고, 상기 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 구성으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출부가 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 구성인 것을 특징으로 하는 통신 처리 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 데이터 송신 처리를 실행하는 서버에서의 통신 처리 방법으로서,
    클라이언트에 송신되는 데이터의 비트 레이트를 결정하는 레이트 제어 스텝과,
    상기 레이트 제어 스텝에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리 스텝을 구비하고,
    상기 레이트 제어 스텝은,
    서버와 클라이언트간에 통신 연결 설정 기간동안 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출 스텝과,
    상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정 스텝을 구비하고,
    상기 비트 레이트 결정 스텝은,
    (a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
    (b) 클라이언트가 재생을 개시한 이후의 경과 시간 : [T(sec)]
    (c) 클라이언트가 재생을 개시한 이후의 경과 시간 [T(sec)] 동안 서버로부터 송신된 데이터량 : [D_serv(byte)]
    (d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
    이들 (a)∼(d)의 정보를 이용하여,
    클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T에 따라,
    클라이언트의 버퍼량의 견적 처리를 실행하고, 상기 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 스텝으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 것을 특징으로 하는 통신 처리 방법.
  19. 송신 데이터의 레이트 제어를 컴퓨터 상에서 실행시키는 프로그램이 기록된 컴퓨터 판독가능한 기록 매체로서,
    상기 프로그램은,
    레이트 제어부에서, 클라이언트에 송신되는 데이터의 비트 레이트를 결정하는 레이트 제어 스텝과,
    데이터 처리부에서, 상기 레이트 제어 스텝에서 결정된 비트 레이트에 대응하는 송신 데이터의 설정 처리를 실행하는 데이터 처리 스텝을 구비하고,
    상기 레이트 제어 스텝은,
    서버와 클라이언트간에 통신 연결 설정 기간동안 데이터 송수신 실행 기간의 시간 및 송신 데이터량에 기초하여 최대 스루풋을 산출하는 스루풋 산출 스텝과,
    상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 비트 레이트를 최대 허용 비트 레이트로 하여 송신 비트 레이트를 결정하는 비트 레이트 결정 스텝을 구비하고,
    상기 비트 레이트 결정 스텝은,
    (a) 통신 개시 시에 클라이언트로부터 통지된 버퍼량 : [B_cli(byte)]
    (b) 클라이언트가 재생을 개시한 이후의 경과 시간 : [T(sec)]
    (c) 클라이언트가 재생을 개시한 이후의 경과 시간 [T(sec)] 동안 서버로부터 송신된 데이터량 : [D_serv(byte)]
    (d) 송신 콘텐츠로부터 취득 가능한 콘텐츠의 재생 레이트 [R(byte/sec)]
    이들 (a)∼(d)의 정보를 이용하여,
    클라이언트 버퍼의 견적 버퍼량=B_cli+D_serv-R*T에 따라,
    클라이언트의 버퍼량의 견적 처리를 실행하고, 상기 견적 버퍼량의 추이에 기초하여 비트 레이트를 결정하는 스텝으로서, 견적 버퍼량이 미리 정한 임계값 이상인 경우, 상기 스루풋 산출 스텝에서 산출한 최대 스루풋에 상당하는 최대 허용 비트 레이트를 상한으로 하여 비트 레이트 상승 처리를 행하는 스텝인 것을 특징으로 하는 컴퓨터 판독가능한 기록 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR20060027624A 2005-03-28 2006-03-27 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법 KR101234890B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005092452A JP4643330B2 (ja) 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
JPJP-P-2005-00092452 2005-03-28

Publications (2)

Publication Number Publication Date
KR20060104915A KR20060104915A (ko) 2006-10-09
KR101234890B1 true KR101234890B1 (ko) 2013-02-19

Family

ID=36271430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060027624A KR101234890B1 (ko) 2005-03-28 2006-03-27 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법

Country Status (7)

Country Link
US (1) US7987284B2 (ko)
EP (1) EP1708438B1 (ko)
JP (1) JP4643330B2 (ko)
KR (1) KR101234890B1 (ko)
CN (1) CN1841984B (ko)
DE (1) DE602006001019T2 (ko)
TW (1) TW200637282A (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
ES2313323T3 (es) * 2005-04-11 2009-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Tecnica para controlar transmisiones de paquetes de datos de velocidad binaria variable.
JP4407700B2 (ja) 2007-02-02 2010-02-03 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
US9300923B2 (en) * 2007-03-26 2016-03-29 Pelco, Inc. Method and apparatus for improving video performance in a wireless surveillance system
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
EP2129130A1 (fr) * 2008-05-26 2009-12-02 THOMSON Licensing Procédé de transmission simplifié d'un flux de signaux entre un émetteur et un appareil électronique
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8254441B2 (en) * 2008-08-18 2012-08-28 Sprint Communications Company L.P. Video streaming based upon wireless quality
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
KR101051709B1 (ko) * 2008-12-18 2011-07-25 (주)씨디네트웍스 데이터 전송 방법 및 장치
US9380091B2 (en) * 2012-06-12 2016-06-28 Wi-Lan Labs, Inc. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US8631455B2 (en) * 2009-07-24 2014-01-14 Netflix, Inc. Adaptive streaming for digital content distribution
CN102484695A (zh) 2009-08-31 2012-05-30 惠普发展公司,有限责任合伙企业 减少视频数据的通信延迟
WO2011072134A2 (en) * 2009-12-09 2011-06-16 Velocent Systems Incorporated Method and apparatus pertaining to data-session peak-throughput measurements
WO2011075670A1 (en) * 2009-12-18 2011-06-23 Google Inc. Matching encoder output to network bandwidth
CN101808239A (zh) * 2010-03-01 2010-08-18 北京东方广视科技股份有限公司 一种控制ts流播出的方法和装置
EP2381621A1 (en) * 2010-04-21 2011-10-26 Thomson Licensing Method for evaluating an available path bitrate based on an acknowledgment path selection
US9003022B2 (en) 2010-06-17 2015-04-07 Zettics, Inc. Determining an average effective data through-put as corresponds to a network-served end user
JP5737871B2 (ja) * 2010-06-29 2015-06-17 キヤノン株式会社 情報処理装置、画像出力装置、情報処理方法およびプログラム
JP5329581B2 (ja) 2011-02-04 2013-10-30 株式会社東芝 無線通信端末および無線通信方法
US9118559B2 (en) * 2011-04-06 2015-08-25 Sejent Corporation Measuring instantaneous bit rate in a network connection
JP5909886B2 (ja) * 2011-06-10 2016-04-27 ソニー株式会社 通信装置及び通信方法、並びに通信システム
JP5803306B2 (ja) * 2011-06-10 2015-11-04 ソニー株式会社 通信装置及び通信方法、並びに通信システム
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
US20130246575A1 (en) * 2011-09-16 2013-09-19 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
US9736045B2 (en) 2011-09-16 2017-08-15 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
CN102333350B (zh) * 2011-10-19 2014-02-26 华为技术有限公司 提高小流量用户体验的方法、装置和系统
JP5814829B2 (ja) * 2012-03-01 2015-11-17 株式会社東芝 無線通信装置及び方法
US20130305332A1 (en) * 2012-05-08 2013-11-14 Partha Narasimhan System and Method for Providing Data Link Layer and Network Layer Mobility Using Leveled Security Keys
EP2916521B1 (en) * 2012-11-05 2018-02-21 Nec Corporation Communication device, transmission data output control method, and program for same
US9049731B2 (en) 2012-12-03 2015-06-02 At&T Mobility Ii Llc Facilitation of bandwidth-based femto cell management
US9307432B2 (en) * 2013-01-03 2016-04-05 Qualcomm Incorporated Processing delay estimate based on crowdsourcing data
US10171887B2 (en) * 2013-03-13 2019-01-01 Comcast Cable Communications, Llc Methods and systems for intelligent playback
JP6163954B2 (ja) * 2013-08-08 2017-07-19 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
KR102154800B1 (ko) * 2014-01-10 2020-09-10 삼성전자주식회사 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
JP6459645B2 (ja) * 2015-03-06 2019-01-30 富士通株式会社 スループット計測プログラム、スループット計測方法及びスループット計測装置
JP2016184824A (ja) * 2015-03-25 2016-10-20 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
DE102015106405A1 (de) * 2015-04-27 2016-10-27 Intel IP Corporation Verfahren und vorrichtungen auf der basis vondynamischer empfangsdiversität
JP6464911B2 (ja) * 2015-05-01 2019-02-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び受信装置
US10412779B2 (en) 2015-09-18 2019-09-10 Whatsapp Inc. Techniques to dynamically configure jitter buffer sizing
US9749178B2 (en) * 2015-09-18 2017-08-29 Whatsapp Inc. Techniques to dynamically configure target bitrate for streaming network connections
JP6589505B2 (ja) 2015-09-24 2019-10-16 ヤマハ株式会社 ルータ
US10516593B2 (en) * 2016-02-17 2019-12-24 Amit Goel Method and network monitoring device for calculating throughput of traffic flows in communication networks
US10237779B2 (en) * 2016-03-23 2019-03-19 Arris Enterprises Llc Identifying congested access points within a network based on measured throughput
JP2017183842A (ja) * 2016-03-28 2017-10-05 富士通株式会社 計測装置、計測方法、および、通信システム
US10499285B2 (en) * 2016-07-14 2019-12-03 Cloudstreet Oy Maximum cell throughput estimation
US10887794B2 (en) * 2018-04-03 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for controlling data receiving rate in mobile communication system
CN110300315B (zh) * 2019-07-24 2021-08-13 北京达佳互联信息技术有限公司 一种视频码率确定方法、装置、电子设备及存储介质
JPWO2022269723A1 (ko) * 2021-06-21 2022-12-29

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021830A1 (en) * 2001-09-21 2005-01-27 Eduardo Urzaiz Data communications method and system using buffer size to calculate transmission rate for congestion control

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513185A (en) * 1992-11-23 1996-04-30 At&T Corp. Method and apparatus for transmission link error rate monitoring
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
JPH1172850A (ja) 1997-08-29 1999-03-16 Dainippon Printing Co Ltd 透過型投影スクリーン及びマルチ投影装置
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
JP2000216811A (ja) 1999-01-22 2000-08-04 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP2000270015A (ja) 1999-03-18 2000-09-29 Toshiba Corp コンテンツ配信システム、同システムに用いられるサーバコンピュータ、およびサーバコンピュータの制御方法
CA2299022A1 (en) 1999-04-30 2000-10-30 Nortel Networks Corporation Method and apparatus for bandwidth management of aggregate data flows
JP2001144802A (ja) 1999-11-11 2001-05-25 Canon Inc データ通信装置及びその方法及び通信システム及び記憶媒体
US6940831B1 (en) * 1999-11-29 2005-09-06 Matsushita Electric Industrial Co., Ltd Wireless communications system
JP4596693B2 (ja) 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
WO2002025878A1 (fr) 2000-09-22 2002-03-28 Matsushita Electric Industrial Co., Ltd. Procede de transmission/reception de donnees, dispositif de transmission, dispositif de reception, systeme de transmission/reception et programme
JP2002204255A (ja) 2000-10-27 2002-07-19 Matsushita Electric Ind Co Ltd 伝送レート制御装置及び伝送レート制御方法
JP3699910B2 (ja) 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
US20020071388A1 (en) * 2000-11-16 2002-06-13 Einar Bergsson Selectable network protocol
CA2428325C (en) * 2000-11-29 2011-08-30 Matthew David Walker Transmitting and receiving real-time data
JP2003169090A (ja) * 2001-11-30 2003-06-13 Fujitsu Ltd 伝送システム
KR100474719B1 (ko) * 2001-11-30 2005-03-08 삼성전자주식회사 이동통신시스템에서 제어정보를 송수신하는 방법 및 장치
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
AU2003252347A1 (en) * 2002-07-31 2004-03-11 Sharp Kabushiki Kaisha Data communication device, its intermittent communication method, program describing its method, and recording medium on which program is recorded
FI20021527A0 (fi) * 2002-08-27 2002-08-27 Oplayo Oy Menetelmä ja järjestelmä mediavirran kaistanleveyden säätämiseksi
JP4061643B2 (ja) 2002-12-11 2008-03-19 ソニー株式会社 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP4192627B2 (ja) 2003-02-26 2008-12-10 日本電気株式会社 パケット送受信方法、及び装置
JP2004266741A (ja) 2003-03-04 2004-09-24 Sony Corp 配信システム、送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
JP3731665B2 (ja) * 2003-03-27 2006-01-05 ソニー株式会社 データ通信システム、情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US7502352B2 (en) * 2003-05-16 2009-03-10 Alcatel-Lucent Usa Inc. Scheduling method for quality of service differentiation for non-real time services in packet radio networks
JP3988682B2 (ja) 2003-06-10 2007-10-10 ソニー株式会社 送信装置および方法、記録媒体、並びにプログラム
DE10337067B4 (de) * 2003-08-12 2008-04-17 Infineon Technologies Ag Optimierung des Datendurchsatzes einer Mobilfunk-Verbindung über effiziente Pakettypwechsel
KR20050020526A (ko) * 2003-08-23 2005-03-04 삼성전자주식회사 이동통신시스템에서 비트 인터리빙장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021830A1 (en) * 2001-09-21 2005-01-27 Eduardo Urzaiz Data communications method and system using buffer size to calculate transmission rate for congestion control

Also Published As

Publication number Publication date
DE602006001019T2 (de) 2009-05-28
EP1708438B1 (en) 2008-04-30
KR20060104915A (ko) 2006-10-09
US7987284B2 (en) 2011-07-26
US20060218264A1 (en) 2006-09-28
DE602006001019D1 (de) 2008-06-12
TWI308440B (ko) 2009-04-01
TW200637282A (en) 2006-10-16
JP4643330B2 (ja) 2011-03-02
CN1841984A (zh) 2006-10-04
CN1841984B (zh) 2011-11-09
EP1708438A1 (en) 2006-10-04
JP2006279283A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
KR101234890B1 (ko) 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법
JP4730427B2 (ja) 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
JP4448341B2 (ja) 帯域制御プログラム、方法およびエンド・システム
US9203886B2 (en) Content rate control for streaming media servers
US9538220B2 (en) Video streaming quality of experience degradation control using a video quality metric
KR101524325B1 (ko) 스트리밍 미디어 서버에 있어서 프록시 구동의 콘텐츠 레이트 선택
JP4827652B2 (ja) 中継装置、中継方法および中継プログラム
US8081609B2 (en) Proxy-based signaling architecture for streaming media services in a wireless communication system
JP4878391B2 (ja) 適応的なキュー待ち時間を伴うスケジューリング及びキューマネージメント
JP4697525B2 (ja) 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
US20130298170A1 (en) Video streaming quality of experience recovery using a video quality metric
US20130290492A1 (en) State management for video streaming quality of experience degradation control and recovery using a video quality metric
KR20170067830A (ko) 링크 상태, 트래픽 유형 및/또는 우선 순위에 대한 통신 파라미터 적응
CN108833930B (zh) 直播数据传输控制方法、装置、直播设备及存储介质
JP2017069849A (ja) 映像制御装置、映像配信システムおよび映像制御方法
US10341047B2 (en) Method and system for controlling the forwarding of error correction data
KR20180007794A (ko) 무선 통신 시스템에서 데이터의 전송 속도 제어 방법 및 장치
JP2004297127A (ja) 携帯端末及びサーバ
Hahm et al. Dynamic media buffer control scheme for seamless streaming in wireless local area networks
JP2004153610A (ja) 動画像配信方法、無線端末、動画像配信制御装置、及び動画像配信システム
Park et al. A network-aware encoding rate control algorithm for real-time up-streaming video services
JP2009044651A (ja) コンテンツ配信方法、コンテンツ配信システム、無線端末及びコンテンツ配信サーバ
JP4115810B2 (ja) ルータ装置
WO2007103205A1 (en) Link layer packet loss classification for link adaptation in wlan
Lee et al. Handoff-aware adaptive media streaming in mobile IP networks

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
FPAY Annual fee payment

Payment date: 20160211

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170203

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180202

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee