• 沒有找到結果。

支援網際網路影片串流的通用性分段式代理伺服器之設計與實作

N/A
N/A
Protected

Academic year: 2021

Share "支援網際網路影片串流的通用性分段式代理伺服器之設計與實作"

Copied!
7
0
0

加載中.... (立即查看全文)

全文

(1)

ЍජᆛሞᆛၡቹТՍࢬޑ೯Ҕ܄ϩࢤԄж౛՛ܺᏔϐ೛ीᆶჴբ

ู᐀Ꮒ ֆࡹᗶ

୯ҥࡀܿࣽמεᏢ

[email protected],[email protected]

ᄔा

ቹॣՍࢬמೌ(video streaming)ςቶݱӦ೏ၮ Ҕӧ྽Ϟ Internet ύගٮቹॣӭ൞ᡏ୍ܺǶฅԶҗ ܭҞ߻ WAN ޑᓎቨԖज़ǵ໺ᒡۯᒨၸߏǴЪӭࣁ best-effort ୍ܺǴӢԜӧΠၩೱុ൞ᡏ(continuous media/CM)(ӵǺቹॣ)ਔǴ۳۳Ѹ໪הڙϧߏޑ௴ۈ ฻ࡑᆶόᛙۓޑՍࢬࠔ፦ǶࣁΑׯ๓Ԝ΋ୢᚒǴ΋ ٤Ӄ߻ࣴز჋၂ॷշՍࢬж౛՛ܺᏔ(streaming proxy)ኩӸ೽ϩቹॣТࢤ(segment)ޑфૈǴගрΑ ӭᅿ segment-based caching ᄽᆉݤǴٰගϲ୔ୱᆛ ၡύ࣬ӕၗૻϩ٦ޑਏ੻Ǵ຾Զуೲӣᔈೲࡋᆶफ़ եቶୱᆛၡᓎቨ੃઻ǶฅԶ೭٤ࣴزӭ໻Зܭ౛ፕ ௖૸ǴԶҞ߻໒ܫޑ web proxy server ϝаೀ౛ᓉᄊ კТǵЎӷၗ਑ࣁЬǴۘ҂ගٮ streaming ޑᐒڋǴ ќѦѱय़΢ೡ୧ϐ streaming proxy server ౢࠔǴ௦ ࠾ഈԄ೛ीǴځϣ೽ၮբಒ࿯คவளޕǴ׳คݤග ٮϦ໒ϐჴᡍѳѠǴаٮᡍ᛾ӚᅿᄽᆉݤǴЪ୧ሽ ୏ᇷ΢ԭ࿤ǶԖ᠘ܭԜҁፕЎϐЬाҞޑ൩ࢂǴ٩ ᏵӃ߻ segment-based caching ౛ፕǴೕჄ٠໒ว΋ ঺Ѝජ Internet video streaming ޑ streaming proxy

serverѳѠǶ׆ఈၲԋаΠ൳໨Ҟ኱Ǻ(1) ࡕᆄ server

а web server ࣁѳѠǴserver ᆶ streaming proxy ϐ ໔೯ૻڐۓᒥྣ Http1.1 ኱ྗ໒วǴаߡᆶ౜Ԗ web ᕉ ნ ֹ ӄ ࣬ ৒ ǹ (2) ࣁ Α Б ߡ ჴ ፬ Ӛ ᅿ

segment-based cachingᄽᆉݤǴproxy ࢎᄬ΢௦Ҕ೯

ҔԄ(generic)ނҹኳಔ೛ीǴ٠уаୖኧϯǹ(3) җ ܭ WAN ᆶ LAN ޑᆛၡ੝܄όӕǴӢԜӧࢬໆ௓ڋ ΢੝ձ௦Ҕ LAN-stream/WAN-segment ޑషӝኳ ԄǴٰዴߥኞܫࠔ፦ޑᛙۓ܄ǹ(4)೸ၸԜѳѠךॺ ჹӚ໨س಍ਏૈ຾Չჴሞෳ၂ᆶຑ՗Ƕ ᜢᗖຒǺೱុ൞ᡏǵቹॣՍࢬǵж౛՛ܺᏔǵזڗ ฼ౣǶ

Abstract

Internet video streaming has been prevalently used in many multimedia services today. However, it is suffered from exceeding initial delay and unstable transmission quality because of the limited bandwidth, long network delay and the best-effort transmission service offered by most wide-area-networks (WAN) deployed today. Considerable amount of works have focused on how to utilize streaming proxy servers to

facilitate video segment caching and sharing in a local environment for reducing the response time and WAN bandwidth consumption. However, most of them focused on the theoretical study only, and lack of practical implementation. The practice (codes) of web proxy servers available in the public domain today primarily supports static media (e.g., image and text) only, and no special attention has been given on the streaming issues. Most of the streaming proxy server products available in the market are usually very expansive, and it is hard to find out their operational details. Therefore, the purpose of this thesis is to build up an open platform of streaming proxy to facilitate practicing and testing various segment-based caching algorithms. Specifically, in this project we try to achieve the following goals. (1) For being compatible with the web environment, the proxy server will interact with a normal web (content) server using Http 1.1. (2) For ease of implementation, we will take modular design strategy to identify a set of generic building blocks and configure various caching schemes through assembling and parameterizing these building blocks. (3) Since WAN and LAN posses different transmission characteristics, we will take a LAN-stream/WAN-segment hybrid flow control to enhance the stream playback quality. (4) We will conduct comprehensive test on various performance parameters.

Keywords: continuous media, video streaming, proxy server, caching policy.

1.

߻ق

Ҟ߻ԖόϿ proxy server ޑזڗᐒڋᄽᆉݤ೏ ගрǴՠࢂࣴزख़ᗺӭܫӧ౛ፕޑ௖૸ᆶᄽᆉݤޑ ೛ीǴس಍ਏૈޑຑ՗ӭаኳᔕޑБԄ຾ՉǴҞ߻ ϝલЮ΋঺ֹ᏾ЪϦ໒ޑჴբس಍Ǵёٮჴሞᡍ᛾ ᆶਏૈຑ՗ϐҔǶԶҞ߻ѱय़΢Ԗᜢගٮ streaming

proxy caching фૈޑౢࠔǴӵ:Microsoft ޑ media

serverගٮΑ୷ҁޑ streaming ޑᐒڋᆶำԄ໒วϟ

य़Ǵՠ܌௦Ҕޑ caching policy คவளޕǴΞӵӧ

content distribution network (CDN)ޑ ሦ ୱ ύ Ǵ

NetApp ޑ NetCache ǵ Compag ޑ Proliant ᆶ

CacheFlow฻ౢࠔǴЬाଛӝ Video-on-Demand ᆶ

Liveቶኞޑޑ୍ܺǴගٮ content security ᆶ caching ޑ୍ܺǴฅԶӕኬޑځύ܌௦Ҕޑ caching policy ٠҂Ϧ໒ǴЪ୧ሽ୏ᇷኧԭ࿤Ƕ

җܭቹТᔞޑၗ਑ໆ୏ᇷኧԭ MBǴऩाஒځ ӄ೽ኩӸΕזڗ৤ύǴࢂཱུੁ຤ᅶᅷޜ໔ǴЪߚத

(2)

ޑؒԖਏ౗ޑǴӢԜךॺ཮ӃஒቹТϪപԋኧঁТ ࢤ(segment)Ǵӆϩࢤ׬ڗ٠ኩӸΕ CM(Continuous

Media;CM) proxy serverύǴԶ proxy server ߾཮ॄ

ೢஒ೭٤ቹТТࢤӆख़ཥಔӝԋ΋చֹ᏾ޑՍࢬ

(stream)٠໺ଌډ٬Ҕޣᆄኞܫǹஒ΋೽ֹ᏾ޑቹТ

ϪപԋኧঁТࢤӆϩձ଺ኩӸޑ୏բǴ೭ኬޑ଺ݤ ൩ ࢂ ך ॺ ܌ ᒏ ޑ ຎ ૻ Т ࢤ ኩ Ӹ (segment-based

caching)ǴԶҁፕЎख़ᗺ൩ӧܭȨЍජຎૻТࢤኩӸ

(segment-based caching)фૈȩޑ CM proxy server

ޑ೛ीᆶ໒วǴךॺஒҁس಍ᆀϐࣁϩࢤԄж౛՛ ܺᏔ(Segment-based Proxy ServerǴSPS)Ǵ٬Ҕޣ ೸ၸԜ proxy server ջёೱጕԿ΋૓ web server а

streamingޑБԄኞܫቹТǶӕਔࣁΑाှ، Internet

ύ best-effort ޑ໺ଌᕉნ܌೷ԋޑ delay/jitterǴךॺ ගр΋঺Ԗਏ౗ޑ segment-based flow controlǴךॺ ᆀ ϐ ࣁ Adaptive TCP-Trunking Flow Control(ATCP+)Ǵ Ԝ Б ݤ ࿶ ၸ ჴ ᡍ ᛾ ܴ Ǵ ӧ best-effortޑᆛၡࢎᄬΠёаගٮၨᛙۓޑ segment ᆛၡ໺ᒡࠔ፦Ƕ

2.

SPS

೛ीᆶჴբ

2.1 س಍ࢎᄬ ҁፕЎ೛ीᆶჴբр΋঺ϩࢤԄж౛՛ܺᏔ

SPS(Segment-based Proxy Server)Ǵځس಍ࢎᄬӵკ

2-1܌ҢǶ

კ 2-1 SPS س಍ࢎᄬკ

аΠჹ proxy server ϣ೽ޑ storage management

planeᆶ flow control plane ଺΋ϟಏǶ

Storage management plane:ځύх֖Α Proxy

Managerᆶ Cache scheme policy database

 Proxy ManagerΚ

 ගٮ GUI س಍೛ۓǵᆅ౛ᆶᅱ௓ϟय़Ƕ

 ॄೢ Proxy Server ϣ೽ኳಔޑڐፓᆶѦ ೽ೱጕޑૻ৲ྎ೯Ǵஒ௓ڋૻ৲໺ଌډ ӚঁфૈኳಔύǴ٠଺ำׇᅱ௓Ƕ  ॄೢჹ client ᆶ web server ޑೱጕᆅ౛Ƕ  ჴ፬ caching policy ᆅ౛ၗ਑ᆶଛ࿼

storageၗྍǶ

 ࡰචۭቫޑၗ਑໺ᒡǴԖᜢ adaptive

cacheᆅ౛ᐒڋךॺӧҁകǴஒԖ၁ಒޑ

ඔॊǶ

 Cache scheme policy databaseΚ

 ךॺஒڋु΋ᅿᙁൂޑಔᄊᇟقǴҔٰ

ඔॊӚᅿ Cache SchemeǴ٠а

Configuration Fileޑ׎ԄஒдॺӸܫӧ

Ԝ database ύǴس಍཮٩ྣᒧۓޑ

configuration fileԾ୏ಔᄊǶ

Flow control plane: ځύх֖Α Stream flow control

ᆶ Segment-based flow control

 Stream flow controlΚ

 ௗڙ΢ቫޑہૼǴॄೢ proxy ᆶ client ϐ໔ޑ streamingǶ

 ௦Ҕ small datagram ޑБԄ໺ଌǶ

 Segment-based flow controlΚ

 ௗڙ΢ቫޑہૼǴॄೢ proxy ᆶ web

serverϐ໔ޑ streamingǶ

 ௦Ҕ ATCP+ᐒڋǴа file retrieval ޑБ ԄǴ໺ଌ segmentǴԖᜢ ATCP+ޑၮբ ךॺஒܭҁകύᇥܴǶ 2.2 س಍ၮբࢬำ

2.2.1

ௗԏډ client ୍ܺޑሡ؃

SPSس಍ௗԏډ client ޑ୍ܺሡ؃ਔޑၮբࢬ ำკӵკ 2-2 ܌ҢǴ྽٬Ҕޣวр୍ܺሡ؃ਔǴSPS س಍཮ӃᔠࢗࢂցᗋԖ҂٬ҔޑኩӸၗྍ(buffer resource)ǴऩؒԖ߾ж߄س಍ύޑ٬ҔޣΓኧς࿶ ຬၸߐᘖॶǴ߾ଌрܔ๊ૻ৲ډ clientǴऩԖ߾߄ Ңس಍ύϝԖӭᎩޑኩӸၗྍǴس಍཮ӆᔠࢗҞ߻ CPU ٬Ҕ౗ࢂցຬၸߐᘖॶ΢ज़ǴऩԖж߄Ҟ߻ SPSس಍ޑπբᕷԆǴӢԜܔ๊٬Ҕޣޑሡ؃Ǵऩ ؒԖ߾ᔠࢗSPSس಍ࢂցԖ໒௴Multicastޑ໺ᒡф ૈ Ǵ ऩ ؒ Ԗ Ǵ ߾ ໺ ଌ ځ ܌ ଛ ࿼ ډ ޑ MediaBufMgr[i].clnt_idډ client ᆄǴऩԖǴ߾ᔠࢗ ډ client ᆄޑᆛၡೱጕࢂցԖЍජ MulticastǴऩԖ ߾໺ଌځ܌ଛ࿼ډޑ MediaBufMgr[i].clnt_id ᆶځ ܌ଛ࿼ډޑ Multicast address ډ client ᆄǴऩؒԖǴ ߾໻໺ଌځ܌ଛ࿼ډޑ MediaBufMgr[i].clnt_id ډ

clientᆄǶ

(3)

2.2.2

ௗԏډ client วрቹТޑሡ؃

SPSس಍ௗԏډ client วрቹТሡ؃ਔޑၮբ ࢬำკӵკ 2-3 ܌ҢǴ྽Ԗ٬ҔޣวрቹТሡ؃ ਔǴس಍཮Ӄᔠࢗය URL ࢂց҅ዴǴௗ๱ᔠࢗԜ

web server ޑӣᔈਔ໔ࢂցၸᄌǴऩ೿಄ӝךॺޑ

೛ۓߐᘖॶǴԜਔךॺஒ client ϩԋ resource eater ᆶ resource preparer ٰೀ౛Ǵ೭΋ࢤ HTTP session

connection ޑࡌҥךॺӧΠ΋ࢤ཮଺၁ಒᇥܴǴԜ

ਔ WAN ᆄၗ਑ޑ׬ڗ߾໒ۈᙯҬ๏ךॺ܌೛ीޑ

ATCP+ᆶ adaptive cache ᆅ౛ᐒڋٰ଺ࡕុቹТТ

ࢤ༤ံޑЍජǴԜٿᅿᐒڋΨ཮ӧΠ΋ക࿯уа၁ ಒ ඔ ॊ ǹ ΢ ॊ ೭ ٤ ؁ ᡯ ς ࿶ ஒ WAN ޑ

segment-based flow controlᐒڋ௴୏Ǵௗ๱௴୏ LAN

ޑ stream flow control ᐒڋǴӃᔠࢗ SPS ޑ multicast ໺ᒡኳԄԖؒԖ௴୏ǴऩؒԖǴ߾ࣁԜ client ྗഢ ΋చ unicast ޑ೯ၰջёǴऩԖǴ߾ᔠࢗҞ߻ԖؒԖ Ԝ೽ቹТޑ master client ҅ӧௗԏ streamǴऩؒԖǴ ߾Ԝ client ԋࣁ master clientǴSPS ࣁԜ client ໒௴ ٩ཥޑ multicast sessionǴऩԖǴ߾ӆᔠࢗԜ client ຯᚆ master client ޑ Distance Ψ൩ࢂຯᚆ master

client ܌ኩӸޑ suffix window ࢂցຬၸ Threshold

ॶǴऩԖǴSPS ࣁԜ client ໒௴٩ཥޑ multicast

sessionǴऩؒԖǴ߾Ԝ client ԋф Join Ε master client

ޑ Multicast session ύǴ΋ᜐௗԏ master ޑ Multicast

stream΋ᜐΨௗԏ Unicast ޑ prefix ТࢤǴԜਔǴऩ

client ޑ຾Εਔ໔ᗺຬрΑ prefix ܌ᓯӸޑቹТߏ

ࡋЪΨӧߐᘖॶ ϐϣǴ߾ SPS Ѹ໪ࣁ client ډ

web server׬ڗځ܌ሡाޑ patch ТࢤǶ

i

G

კ 2-3 ௗԏډ client ቹТሡ؃ޑၮբࢬำ

2.2.3

ௗԏډ client วр Stalling ૻဦ

྽ client ޑ buffer ٬Ҕໆຬၸߐᘖॶޑ΢ज़ਔ ж߄ buffer ޑၗྍջஒ٬ҔֹǴࣁΑٛЗ client ᆄ ޑ buffer วғ overflow ޑ௃׎Ǵ܌а client ཮วр ΋ঁኩଶ(stalling)ޑૻဦ๏ SPS س಍ǴᡣԜ client ޑ stream ଶЗ໺ଌ΋ࢤኩଶਔ໔(stalling time)ǴӢ Ԝ SPS س಍ௗԏډ client วр stalling ૻဦਔޑၮբ ࢬำკӵკ 2-4 ܌ҢǴ྽ௗԏډ client วр stalling ޑ ૻ ဦ ਔ Ǵ Ӄ ᔠ ࢗ Ԝ client ࢂ ց ࣁ resource preparerǴऩࢂ߾ᔠࢗࢂցԖځд٬Ҕޣ҅ӧ٬ҔԜ ၗྍǴऩؒԖǴ߾௴୏ stalling ޑीਔᏔǴऩԖ߾ӆ ᔠࢗԜclientᆶΠ΋ঁclient ޑኞܫਔ໔ԖؒԖຬၸ

stalling timeǴऩؒԖຬၸǴ߾Ԝ client Π΋ঁ຾Ε

ޑ client ᡂԋ resource preparer ௗ๱௴୏ stalling ी ਔᏔǴऩԖຬၸ stalling timeǴ߾ޔௗ௴୏ stalling ीਔᏔǹऩԜ client όࢂ resource preparerǴ߾Ӄᔠ ࢗԜ client ࢂցԖ٬Ҕ Multicast ໺ᒡǴऩؒԖж߄ Ԝ client ࣁ unicast ໺ᒡǴ܌аޔௗ௴୏ stalling ी ਔᏔǴऩԖ߾ᔠࢗԜ client ࢂցࣁ master clientǴऩ όࢂ߾ SPS ཮ஒ܌ሡޑ multicast ࠾хӃኩӸӧ SPS ࣁ client ܌Ⴃ੮ޑ buffer ύǴऩԜ client ࢂ master

client߾ӆᔠࢗԜ client ᆶΠ΋ঁ client ޑኞܫਔ໔

ԖؒԖຬၸ stalling timeǴऩؒԖຬၸǴ߾Ԝ client Π΋ঁ຾Εޑ client ᡂԋ master client ௗ๱௴୏

stallingीਔᏔǴऩԖຬၸ stalling timeǴ߾ޔௗ௴୏

stallingीਔᏔǶ კ 2-4 ௗԏډ client วр stalling ૻဦޑၮբࢬำ

2.2.4

ௗԏډ client ᚆ໒ޑሡ؃

SPSس಍ௗԏډ client ᚆ໒ޑሡ؃ਔޑၮբࢬ ำკӵკ 2-5 ܌ҢǴ྽ௗԏډ client วрᚆ໒ޑሡ ؃ Ǵ س ಍ ཮ Ӄ ᔠ ࢗ Ԝ client ࢂ ց ࣁ resource

preparerǴऩࢂ߾Ԝ client Π΋ঁ຾Εޑ client ᡂԋ

resource preparerǴӆᔠࢗԜ client ࢂցࣁ Multicast

ޑ master clientǴऩࢂ߾ᔠࢗࢂցԖځд client ҅ӧ ٬ҔԜ Multicast sessionǴऩԖ߾ߥ࡭Ԝ Multicast

(4)

sessionᝩុ໺ଌǴऩؒԖځд client ӧ٬ҔǴ߾ᜢ ഈԜ Multicast sessionǴ୺Չֹ܌ԖޑᔠࢗǴ߾ SPS ཮ӣԏԜ client ܌Ԗଛ࿼ډޑኩӸၗྍǶ

კ 2-5 ௗԏډ client ᚆ໒ሡ؃ޑၮբࢬำ 2.3 Adaptive TCP-Trunking Flow Control

(ATCP+) җܭ SPS ޑၗ਑ٰྍЬाࢂ࿶җᆛሞᆛၡ (Internet)Ǵ࿶ၸჴᡍךॺว౜Ǵ౜໘ࢤ Internet ΢ޑ ໺ᒡϝࢂа best-effort ޑБݤӧ଺໺ଌǴ܌а྽ size ຫλޑ࠾хӧᆛၡ΢ޑ໺ଌೲࡋຫזǴ࣬ϸޑǴsize ຫεޑ࠾х߾໺ଌೲࡋ཮࣬ჹޑᄌ೚ӭǴӢԜךॺ ճҔΑ೭ঁ੝܄ǴගрΑ ATCP+ޑࢬໆ௓ڋᐒڋٰ ׯ๓ WAN segment-based flow control ޑਏૈǶ

ATCP+ᄽᆉݤ໒ۈ୺ՉਔǴךॺ೛ۓ L ࣁ lowerboundǴ྽(Tstream-Tsegment)εܭ΢ࣚ ਔǴ ж߄ segment ׬ڗޑೲࡋၸזǴ܌а(L+=1 Ǵஒ HTTP session ܌ ॄ ೢ ׬ ڗ ޑ ࠾ х ၗ ਑ ໆ у 100kBǴᡣ k ॶΠफ़Ǵаफ़ե segment ׬ڗ ࣬ϸޑǴऩ(Tstream-Tsegment)λܭ฻ܭΠࣚ Ǵ ߾߄Ң stream ޑ੃઻ೲࡋК segment ׬ڗޑೲࡋ זǴӢԜѸ໪٬ L ॶΠफ़ǴΨ൩ࢂஒ HTTP session ܌ॄೢ׬ڗޑ࠾хၗ਑ໆ෧Ͽ 100kBǴᡣ k ॶ΢ ϲǴаගϲ segment ׬ڗޑೲࡋǴᄽᆉݤӵკ 2-6 ܌ҢǴำԄޑಃ 6~14 ՉҔٰೀ౛ segment ᘏڗೲࡋ ၸזਔǴಃ 11 Չ཮຾Չ subsegmentsize ޑቚуǴಃ 12Չޑ k ॶΨ཮ᒿ๱Πफ़ǹำԄޑಃ 16~23 ՉҔٰ ೀ౛ segment ᘏڗೲࡋၸᄌਔǴಃ 21 Չ཮຾Չ subsegmentsizeޑफ़եǴಃ 22 Չޑ k ॶΨ཮ᒿ๱΢ ϲǴ೸ၸԜᐒڋޑ௓ڋǴᡣ SPS س಍ёа௓ڋ WAN ޑࢬໆೲࡋᆶᛙۓࡋǶ H1 00) ቚ ޑೲࡋǴ H2 კ 2-6 ATCP+ᄽᆉݤ 2.4 Adaptive Cache ᆅ౛ᐒڋ

྽ client ຾Ε SPS س಍Ǵ٬Ҕֹ cache base ύ ޑ prefix ቹТТࢤࡕǴௗ๱൩Ѹ໪௴୏ adaptive

cacheᆅ౛ᐒڋவ web server ׬ڗ client ܌ሡाޑࡕ

ុቹТТࢤǴ൩ࢂ܌ᒏޑ suffixǹऩԜ client ຾Εࡕ ว౜ؒԖځдॺ client ӧ᠐ڗԜቹТТࢤǴ߾Ԝ

client߾ԋࣁ resource preparerǴҗԜ client ޑ HTTP

session connectionٰ׬ڗቹТТࢤǴࡕុऩԖځд

٬Ҕډ࣬ӕቹТТࢤޑ client ຾ΕǴ߾೯ᆀࣁ

resource eaterǴޔௗ੃઻߻΋ঁ client ޑ resourceǹ

аΠϟಏ SPS س಍ӧࣁ؂΋ঁ٬Ҕޣ଺ cache ᆅ౛ ਔޑၮբǴҗܭ suffix window ཮ᒿ๱٬Ҕޣޑ੃ ઻Զ଺ඹඤޑ୏բǴΨ཮ᒿ๱ቹТᗺᒧΓኧቚуԶ ٬ Cache Queue ᡂߏǴӵკ 2-7 ܌ҢǴ྽ SPS س಍ ޑ suffix window ӧਔ໔ᗺ t ਔ Cache Queue ԖΟঁ ޜ໔ӸܫቹТ 100-102 ޑТࢤǴЪӧ t Ԗ΋ঁཥޑ

client໒ۈ٬ҔԜ resourceǴ߾ t ਔ Cache Queue ᡂ

ߏԋࣁѤঁǴҗܭ Cache Queue ύഭᎩΑٿঁޜ ໔Ǵ܌а SPS ཮วр pFile->seek( )ᆶ pFile->Read( ) ޑቹТሡ؃Ǵweb server ӆ໺ଌٿ༧ቹТТࢤ 103 ᆶ 104 ډ SPS ύǴЪӧ t ΞԖ΋ঁཥޑ client ໒ۈ ٬ҔԜ resourceǴt ਔԜਔ Cache Queue ύ઻௞ቹТ 101ޑТࢤǴՠ Cache Queue Ξቚу΋ঁӸܫޜ໔Ǵ ܌ а t Ԗ ഭ Ꭹ ޑ ٿ ঁ ޜ ໔ Ǵ SPS Ξ ཮ ว р

pFile->seek( )ᆶ pFile->Read( )ޑቹТሡ؃Ǵweb

serverӆ໺ଌٿ༧ቹТТࢤ 105 ᆶ 106 ډ SPS ύǴ

Ԝਔ Cache Queue ς࿶೏༤ᅈΑǴ߾ SPS ኩਔό཮ วрቹТТࢤޑሡाǶ

(5)

კ 2-7 Adaptive Cache ᆅ౛ᐒڋკ

3.

س಍ၮբϟय़

3.1 SPSᅱ௓ϟय़

SPSޑᅱ௓ϟय़ӵკ 3-1Ǵёϩԋΐε೽ϩǺ

(1) Control ButtomǺ௓ڋ່Ǵх֖ΑȜ௴୏ Proxy

ServerȝǵȜ೛ۓϣ೽ୖኧȝǵȜ೛ۓזڗಔᄊȝǵȜᜢ

ഈ Proxy Serverȝ

(2) LAN StatusǺᡉҢҞ߻ SPS ໺ଌ video stream

ډ client ᆄޑೲࡋ(MB/sec)

(3) WAN StatusǺᡉҢҞ߻ SPS Ծ web server ௗԏ

ቹТ୔ࢤ(video segment)ޑೲࡋ(MB/sec)

(4) Proxy MoniterǺᡉҢҞ߻ SPS ܌ԖޑၗૻǴх

֖Α UserOnlineǵSessionNumǵSend Rate(MBps)ǵ

Recv Rate(MBps)ǵSend Speed(sec)ǵRecv Speed(sec)

(5) Subsegment SizeǺᡉҢ΋చ session ܌Ѹ໪׬

ڗޑ segment ޑ size (6) K valueǺᡉҢҞ߻ SPS ҅ӧ٬Ҕޑ K value (7) Control MessageǺᡉҢҗ SPS ܌ౢғޑ܌Ԗ௓ ڋૻ৲Ǵх֖ኩଶ୍ܺǵ٬Ҕޣύᘐ฻ (8) Memory UtilityǺᡉҢҞ߻ SPS ޑ૶Ꮻᡏ٬Ҕ ௃׎ (9) CPUUtilǺᡉҢҞ߻ SPS ޑ CPU ٬Ҕ௃׎ კ 3-1 SPS س಍ᅱ௓კ 3.2 SPS೛ۓϟय़ SPSޑ೛ۓϟय़х֖ΑΟঁηჹ၉ຎืǴϩձࣁȬୖ ኧ೛ۓჹ၉ຎืȭǵȬזڗ฼ౣ೛ۓჹ၉ຎืȭǵȬEdit Algorithmჹ၉ຎืȭǶ

3.2.1

ୖኧ೛ۓჹ၉ຎื

SPSޑୖኧ೛ۓჹ၉ຎืӵკ 3-2

 Send SettingǺځфૈӧܭ೛ۓ໺ଌډ client ᆄ

ޑࢬໆ௓ڋ

 DelayWaitingTime (sec)Ǻ྽ client ᆄޑ

bufferวғ overflow ਔǴSPS ܌Ѹ໪ኩ

ଶ୍ܺǴ٠ڐշԜ client ߥ੮ኧࣾޑቹ Т

 Send rate(MBps)Ǻ໺ଌ video stream ޑೲ

 READ LENGTHǺ໺ଌᆶௗԏޑ࠾хε

λǴࣁ኱ྗॶ 65500Bytes

 Recv SettingǺځфૈӧ௓ڋᘏڗ web server

ޑቹТၗྍޑࢬໆ௓ڋ

 Segment ൂՏ(Packets)Ǻsegment ࣁᓯӸ

ӧ cache base ύޑᓯӸൂՏǴё೛ۓࣁ

Packet sizeޑ७ኧ

 Recv Time Interval(MBps)Ǻௗԏ segment

ޑೲ౗  subsegment lowerbound (KB)ǺSPS ܌೛ ۓޑᘏڗ subsegment size ޑΠࣚ  subsegment upperbound (KB)ǺSPS ܌೛ ۓޑᘏڗ subsegment size ೲࡋޑ΢ࣚ  H1 threshold (Secs)Ǻ໺ଌᆶௗԏࣾৡޑ ΢ࣚ  H2 threshold (Secs)Ǻ໺ଌᆶௗԏࣾৡޑ Πࣚ  Initial K valueǺଞჹ K ॶ߃ۈϯ  ၗྍϩଛǺځфૈࢂଞჹ؂΋ঁ٬Ҕޣଛ࿼ځ ஑ឦޑ૶Ꮻᡏၗྍ  User നεॶǺࣁΑाႣӃߥ੮ client ܌ ሡޑၗྍǴ܌аѸ໪Ӄ೛ۓ user ޑനε ёೱጕኧ  ߥ᛾ Buffe r ኧໆǺႣӃߥ੮๏ client ޑၗྍελ  ଶЗ୍ܺߐᘖ(%)Ǻ྽ cpu ٬Ҕ౗ຬၸӼ ӄॶǴ߾ SPS ߾ଶЗௗڙ client ޑ୍ܺ ፎ؃ კ 3-2 ୖኧ೛ۓჹ၉ຎื

3.2.2

זڗ฼ౣ೛ۓჹ၉ຎื

SPSޑזڗ฼ౣ೛ۓჹ၉ຎืӵკ 3-3  Config SettinhǺځфૈࢂҔٰ೛ۓ SPS ܌ा௦ Ҕޑ Cache Scheme  Cache SchemeǺᡉҢς࿶೛ۓֹ౥ޑ܌ Ԗᄽᆉݤ

(6)

٬Ҕޑᄽᆉݤ

 ȜEditȝǺёа௴୏ Edit Algorithm ჹ၉ Б༧ٰ຾Չᄽᆉݤޑጓᒠ

 ȜChangeȝǺவ Cache Scheme ύᒧڗ΋ ঁᄽᆉݤǴ٠ஒځ঺ҔډԜ SPS ύ

 Select Scheme Parameter

 Scheme NameǺ౜ӧ Cache Scheme List

ύ܌ᒧڗډޑ Scheme  Default SettingǺᡉҢрᒧڗډޑᄽᆉݤ ϐ࣬ᜢୖኧ კ 3-4 Edit Algorithm ჹ၉ຎื

4.

ჴᡍෳ၂

4.1 Initial Delay ෳ၂ ჴᡍҞޑǺᢀჸԖ SPS Ѝජޑ DXMediaǴᆶؒԖ

proxy serverЍජޑ media player ϐ Initial Delay ޑ

КၨǶ ჴᡍၸำǺ  ჴᡍ΋Ǻӧեਏૈޑ Web server చҹΠቹТၗ ྍٰྍࣁࡀܿࣽמεᏢ  ჴᡍΒǺӧᏢೌᆛၡޑ҅தೱጕೲࡋΠቹТၗ ྍٰྍࣁԋфεᏢ  ჴᡍΟǺ྽ web server ޑೱጕೲࡋԖज़ڋޑ௃ ׎ΠቹТၗྍٰྍࣁܿහႝຎѠ კ 3-3 זڗ฼ౣ೛ۓჹ၉ຎื

3.2.3 Edit Algorithm

ჹ၉ຎื

SPSޑ Edit Algorithm ჹ၉ຎืӵკ 3-4  Algorithm NameǺ೛ۓጓᒠޑᄽᆉݤӜᆀ  LAN ServiceǺ೛ۓ୔ୱᆛၡ໺ᒡԖব٤໺ᒡ ୍ܺ  UnicastǺࢂց௴୏ Uuicast ໺ᒡ  MulticastǺࢂց௴୏ Multicast ໺ᒡ  Threshold Distance(Segment)Ǻ೛ۓӝݤ ޑచҹߐᘖॶ

 Type of cached contentsǺ೛ۓ SPS ӧ຾Չ cahce

ਔǴ܌Ѝජޑ cache ኳԄ

 PrefixǺࢂց௴୏ prefix זڗ

 Prefix ኧໆ(Segments)Ǻ೛ۓ prefix cache

ӧ cache base ύޑߏࡋ

 SuffixǺࢂց௴୏ suffix זڗ

 Suffix ኧໆ(Segments)Ǻ೛ۓ suffix cache

ӧ cache base ύޑߏࡋ  PatchǺࢂց௴୏ patch זڗ  Adaptive modeǺ೛ۓࢂցЍජፓ፾܄  AdaptiveǺࢂցЍජፓ፾܄  Adaptive ቚ෧ൂՏ(Segment)ǺSPS ଺ፓ ፾܄௓ڋਔ܌ቚ෧ޑ segment ൂՏ  ȜSaveȝǺஒԜۓကޑᄽᆉݤǴᓯӸډ SPS ύ  ȜOKȝǺӣډזڗ฼ౣ೛ۓჹ၉ຎื კ 4-1 Initial Delay Кၨკ ่݀ϩ݋Ǻ җკ 4-1 ޑϩ݋ךॺว౜Ǵӧಃ΋Տ client ޑ Initial Delay ޑਔ໔΢Ǵךॺޑӣᔈೲࡋ٠ؒԖ

media playerזǴӢࣁ SPS Ѹ໪ୢಃ΋Տ client ྗഢ

ځ܌ሡޑ prefix ᆶ suffix ၗྍǴ܌аѸ໪ᚐѦ޸຤ Ͽໆޑਔ໔Ǵ྽ᆛၡ໒ۈᏱᔒ܈ web server ޑ

loading໒ۈуख़ਔǴSPS ܌ૈׯ๓ޑ Initial Delay

཮׳уܴᡉǴ܌а྽٬ҔޣຫӭਔǴჹךॺޑس಍ ࢂຫԖճޑǶ 4.2 ATCP+ჹ SPS ܌ගϲޑਏૈ ჴᡍҞޑǺᢀჸԖ SPS ύԖ໒௴ ATCP+ᐒڋᆶ҂໒ ௴ ATCP+ᐒڋޑਏૈКၨ ჴᡍၸำǺ ೛ीѤ೽ client ϩձวрѤ೽ቹТޑሡ؃Ǵቹ Тၗ਑ٰྍϩձࣁύѧεᏢǵమ๮εᏢǵԋфε ᏢǵࡀܿࣽמεᏢǴ٠ӃෳໆԖ໒௴ ATCP+ᐒڋޑ SPSϐਏૈǹஒ ATCP+ޑᐒڋᜢഈࡕǴӆෳ΋ԛؒ

(7)

Ԗ ATCP+ᐒڋޑ SPS ϐਏૈǶ

კ 4-2 ᜢഈ ATCP+ᐒڋޑ SPS ਏૈკ

კ 4-3 ໒௴ ATCP+ᐒڋޑ SPS ਏૈკ ่݀ϩ݋Ǻ

җკ 4-2 ךॺᢀჸډǴ҂໒௴ ATCP+ޑ SPS җܭؒԖؼӳޑ flow controlǴ܌аᏤठځ session ௗԏೲ౗คݤຬၸځ໺ଌډ client ޑೲ౗ǴᏤठ

client ӧௗԏ streaming ਔǴ཮Ԗᝄख़ޑ buffer

underflowޑ௃׎ǹҗკ 4-3 ёа࣮рٰǴsession ӧ

׬ၗ਑ޑೲࡋǴ཮ᒿ๱ subsegment size ᡂλǴᆶ K ॶᡂεǴԶೲࡋуזǴΨ཮ᒿ๱ subsegment size ᡂ εǴᆶ K ॶᡂλǴԶೲࡋ෧ᄌǴӢԜךॺёаஒ

web server ΠၩၸٰޑቹТ୔༧Ǵ଺Ԗਏޑ flow

controlǴ٬ client ᆄޑ streaming όܰౢғ buffer

underflowǴЪ SPS ΨόሡाߥӸϼӭޑ buffer ๏

clientᓯӸ܌ሡޑቹТ୔༧Ƕ

5.

่ፕᆶ҂ٰࣴزБӛ

౜ӧޑ Internet Streaming ޑמೌዴჴςᅌᖿԋ ዕǴа Media Player ᆶ RealPlayer ೿൳Яς࿶ࢂঁ Γႝတޑ኱ྗ೬ᡏǴՠךॺӧჴሞ໒วس಍ਔΨว ౜Ǵӧ୔ୱᆛၡ໔໺ᒡǴዴჴ Media Player Ԗߚத ઓڻޑ buffering фਏǴՠऩჴᡍᕉნඤԋӭΓ܈೸ ၸ WAN ׬ڗၗ਑Ǵ೭ਔ streaming ޑמೌ൩όӆѝ ࢂ client ޑୢᚒΑǴԶࢂ᏾ঁᆛၡࢎᄬޑୢᚒǹך ॺ܌೛ीϐ SPS ൩ࢂࣁΑाှ،೭ঁୢᚒԶӸӧǴ ӧךॺ΋ೱՍޑෳ၂ύǴSPS ዴჴёаӧׯ๓ᓎቨ όىᆶՍࢬό໩ޑୢᚒǴӢࣁ౜Ϟޑᆛၡϝࢂа best-effortࣁЬࢬǴӢԜךॺёаගٮ΋ঁ׳ё᎞ޑ

Սࢬ๏ clientǴаှ،ϧߏޑ Initial Delay ࢂ΋ҹ࣬ ྽ख़ाޑמೌࣴزǶ

ଞჹ SPS ޑࣴزᆶၸำၶډޑୢᚒ଺аΠ᏾ ౛Ǻ

(1) ฯᅷӸڗׯؼǺSPS ޑ໒วόК΋૓ޑ web

proxy serverǴӢࣁ client ܌ा؃ޑނҹࣁቹТǴ୏

ᇷ΢ԭ MBǴࡽόёૈֹӄӸڗǴΨόёૈӄ೽ܫ ૶ᏫᡏǴӢԜ܌ԖޑቹТ୔ࢤǴ೿Ѹ໪ኩӸӧฯᅷ ύǴࡺԖਔ๊ε೽ϩޑୢᚒ཮р౜ӧฯᅷ᠐ڗό୼ זೲ΢ǴᏤठ SPS ޑ throughput फ़եǴӢԜ҂ٰࡌ ᝼ёаරӛ SCSI ޑᅶᅷତӈբ᏾ӝ໒วǶ

(2) Media Playerޑ࣬৒ǺόёցᇡǴMedia Player

ӧ౜ϞঁΓႝတޑӭ൞ᡏኞܫᏔѱ՞౗௨Ӝಃ ΋ǴӢԜऩૈکځ᏾ӝǴ཮٬ளس಍ޑёҔ܄ᆶௗ ڙࡋ׳уගଯǶ

ୖԵЎ᝘

[1]B. Wang., S. Sen., M. Adler., and D.Towsley.,

“Optimal Proxy Cache Allocation for Efficient Streaming Media Distribution,” IEEE INFOCOM, April 2001.

[2]E. J. Lim., S. H. Park., H. O. Hong., and

K.D.Chung., “A Proxy Caching Scheme for Continuous Media Streams on the Internet,” IEEE ICOIN, pp. 720-725, 2001.

[3]H. Shachnai., and P.S. Yu., “The role of wait

tolerance in effective batching: A paradigm for multimedia scheduling schemes,” Technical Report RC 20038, IBM Research Division, Watson, T.J. Research Center, April 1995.

[4]K.L. Wu., P.S.Yu., and L.W. Joel.,

“Segment-Based Proxy Caching of Multimedia Streams,” ACM, May 2001.

[5]L. Gao., and D. Towsley., “Threshold-Based

Multicast for Continuous Media Delivery,” IEEE TRANSACTION ON MULTIMEDIA, VOL. 3, NO. 4, December 2001.

[6]R. Fielding., U. Irvine., J. Gettys., J. Mogul., H. Frystyk., L. Masinter., P. Xerox., and B. Lee.,, “Hypertext Transfer Protocol -- HTTP/1.1,” RFC 2616, June 1999.

[7]S. Sen., J. Rexford., and D. Towsley., “Proxy

Prefix Caching for Multimedia Streams,” IEEE INFOC OM, April 1999.

[8]S. R. Tong., and C. H. Chiang., “An Adaptive

Suffix-Window Caching Scheme for CM proxy server,” TANET 2004, October 2004.

[9]S. R. Tong., and C. Lin., “Suffix-Window Caching: A Proxy Caching Strategy for Delivery of Continuous Media in a Heterogeneous Environment,” Journal of Internet Technology, Vol. 5, No. 1, pp. 27-32, 2004.

[10]Z. Xiang., Z. Zhong., and Y. Zhong., “A cache

cooperation management for wireless multimedia streaming,” ICII 2001, 2001 International Conferences on, Vol. 5, 2001.

參考文獻

相關文件

整體網站之規劃與設計設,包括網站企畫,網頁版面美工設計,網頁版面

(二)使用 PHP 語言、MySQL 資料庫與 Apache 伺服軟體開發互

包括三維機械設計的所更的功能(SolidWorks 三維建模軟體)、資料管 理軟體 PDMWorks Client、以及用於設計交流的常用工具:eDrawings 專 業版(基於 e-mail 的設計交流工具),

了解電腦網路的原理,學習使用 個人網誌及簡易的網頁設計,具 備電子商務的觀念、網路安全以 及網路犯罪與相關法規.

整體網站之規劃與設計設,包括網站企畫,網頁版面美工設計,網頁版面

由於較大型網路的 規劃必須考慮到資料傳 輸效率的問題,所以在 規劃時必須將網路切割 成多個子網路,稱為網 際網路。橋接器是最早

● 每間學校訂購 myTV SUPER 應用程式版 /網頁版 通行證最 低限額: 50張。.. 1 OTT 網路串流平台

熟悉 MS-OFFICE