ЍජᆛሞᆛၡቹТՍࢬޑ೯Ҕ܄ϩࢤԄж՛ܺᏔϐीᆶჴբ
ู᐀Ꮒ ֆࡹᗶ
୯ҥࡀܿࣽמεᏢ
[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 proxyserverѳѠǶ׆ఈၲԋаΠ൳ҞǺ(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 ޑזڗᐒڋᄽᆉݤ ගрǴՠࢂࣴزख़ᗺӭܫӧፕޑᆶᄽᆉݤޑ ीǴسਏૈޑຑӭаኳᔕޑБԄՉǴҞ ϝલЮֹЪϦ໒ޑჴբسǴёٮჴሞᡍ ᆶਏૈຑϐҔǶԶҞѱय़Ԗᜢගٮ streamingproxy 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Ǵऩाஒځ ӄኩӸΕזڗύǴࢂཱུੁᅶᅷޜ໔ǴЪߚத
ޑؒԖਏޑǴӢԜךॺӃஒቹТϪപԋኧঁТ ࢤ(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ᆄǶ
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 ࢂ ց ࣁ resourcepreparerǴऩࢂ߾Ԝ client ΠঁΕޑ client ᡂԋ
resource preparerǴӆᔠԜ client ࢂցࣁ Multicast
ޑ master clientǴऩࢂ߾ᔠࢂցԖځд client ҅ӧ ٬ҔԜ Multicast sessionǴऩԖ߾ߥԜ Multicast
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 ኩਔό วрቹТТࢤޑሡाǶ
კ 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-2Send 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ǺᡉҢςۓֹޑ܌ Ԗᄽᆉݤ٬Ҕޑᄽᆉݤ
Ȝ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+ޑᐒڋᜢഈࡕǴӆෳԛؒ
Ԗ 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.