Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebRTC について調べてみた

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

WebRTC について調べてみた

Avatar for Masakazu Asama

Masakazu Asama

June 06, 2020
Tweet

More Decks by Masakazu Asama

Other Decks in Technology

Transcript

  1. 8FC35$ͱ͸ʁ w 3FBM5JNF$PNNVOJDBUJPOPOUIF8FC w Ի੠௨࿩΍ϏσΦձٞͷΑ͏ͳϦΞϧλΠϜͳίϛϡχέʔγϣϯΛ ΢ΣϒΞϓϦ্Ͱߦ͏ͨΊͷ࢓૊Έ w ྫ +JUTJ.FFU w

    *&5'3UDXFC8(Ͱϓϩτίϧͷඪ४Խ͕͞Ε͍ͯΔ ͍ͨ  w ϒϥ΢βଆͰ࣮૷͢Δ+BWB4DSJQU"1*ͷ࢓༷͸8$8FC3FBM 5JNF$PNNVOJDBUJPOT8(Ͱඪ४Խ͞Ε͍ͯΔ w ʮ͜Μͳײ͡ͷ"1*ʹͯ͠Ͷʯͱ͍͏ͷ͸*&5'3UDXFC8(ଆͰ ͍ࣔͯ͠Δ w ͳΜͱͳ͘͢Ͱʹଘࡏ͢Δඪ४ΛͲ͏૊Έ߹ΘͤΔ͔Λنఆͯ͠Δײ͡ 2
  2. 3

  3. 4

  4. 5

  5. ͬ͘͟Γ w ΢Σϒϒϥ΢β͸΢Σϒαʔό͔Β΢Σϒ ΞϓϦ +BWB4DSJQUͰॻ͔ΕͨϓϩάϥϜ Λμ΢ϯϩʔυ͢Δ w γάφϦϯά ୭ͱԻ੠΍ө૾Λ΍ΓͱΓ͢ ΔʁίʔσοΫ͸ʁଳҬ͸ʁͳͲͷௐ੔

    ͸ ΢Σϒαʔόͱߦ͏ w ࣮ࡍͷϝσΟΞ Ի੠΍ө૾ͳͲ ͷ΍ΓͱΓ ͸γάφϦϯάͰಘΒΕͨ৘ใΛ΋ͱʹ ج ຊతʹ͸ ΢ΣϒαʔόΛհͣ͞ߦ͏ w ΢ΣϒΞϓϦ͸γάφϦϯάͱϝσΟΞͷ ΍ΓͱΓͷઃఆΛ+BWB4DSJQUͰߦ͏ +-----------+ +-----------+ | Web | | Web | | | Signaling | | | |-------------| | | Server | path | Server | | | | | +-----------+ +-----------+ / \ / \ Application-define / \ over / \ HTTPS/WebSockets / Application-defined over \ / HTTPS/WebSockets \ / \ +-----------+ +-----------+ |JS/HTML/CSS| |JS/HTML/CSS| +-----------+ +-----------+ +-----------+ +-----------+ | | | | | | | | | Browser | ------------------------- | Browser | | | Media path | | | | | | +-----------+ +-----------+ Figure 2: Browser RTC Trapezoid ESBGUJFUGSUDXFCPWFSWJFX͔ΒҾ༻ 6
  6. Ͱͯ͘Δ3'$*% Ұ෦ w ESBGUJFUGSUDXFCPWFSWJFX w 8FC35$ͷશମ૾Λઆ໌ w ESBGUJFUGSUDXFCUSBOTQPSUT w 8FC35$ͷτϥϯεϙʔτ

    ఻ૹ Λઆ໌ w ESBGUJFUGSUDXFCSUQVTBHF w 351Λ༻͍ͨϝσΟΞ఻ૹͷઆ໌ w SGDSGD w Ի੠ͱө૾ͷίʔσοΫͷઆ໌ w ESBGUJFUGSUDXFCTEQ w 8FC35$ͷγάφϦϯάʹ͍ͭͯઆ໌ w ESBGUJFUGSUDXFCKTFQ w 8FC35$Λ+BWB4DSJQU͔ΒͲ͏΍ͬͯ ࣮ߦ͢Δͷ͔Λઆ໌ +-----------+ +-----------+ | Web | | Web | | | Signaling | | | |-------------| | | Server | path | Server | | | | | +-----------+ +-----------+ / \ / \ Application-define / \ over / \ HTTPS/WebSockets / Application-defined over \ / HTTPS/WebSockets \ / \ +-----------+ +-----------+ |JS/HTML/CSS| |JS/HTML/CSS| +-----------+ +-----------+ +-----------+ +-----------+ | | | | | | | | | Browser | ------------------------- | Browser | | | Media path | | | | | | +-----------+ +-----------+ Figure 2: Browser RTC Trapezoid ESBGUJFUGSUDXFCPWFSWJFX͔ΒҾ༻ 7
  7. ͜Μͳͱ͖Ͳ͏͢Δʁ +---------+ +--------+ |Signaling| +--------+ | STUN | |Server |

    | STUN | | Server | +---------+ | Server | +--------+ / \ +--------+ / \ / \ / <- Signaling -> \ / \ +--------+ +--------+ | NAT | | NAT | +--------+ +--------+ / \ / \ +-------+ +-------+ | Agent | | Agent | | L | | R | +-------+ +-------+ Figure 1: ICE Deployment Scenario SGD͔ΒҾ༻ 9
  8. 4FTTJPO5SBWFSTBM6UJMJUJFTGPS/"5 456/ w /"5ͷ಺ଆʹ͍Δͻͱ 456/ΫϥΠΞϯτ ͕Πϯλʔωοτଆʹ͍Δ ͻͱ 456/αʔό ͱ΍ΓͱΓΛ͢Δ͜ͱͰ w

    ࣗ෼͕ͳΜΒ͔ͷ/"5ͷ಺ଆʹ͍Δ͔൱͔ w Πϯλʔωοτʹग़͍ͯ͘ͱ͖ͷૹ৴ݩΞυϨεͱૹ৴ݩϙʔτ൪߸ w Λ஌Δ͜ͱ͕Ͱ͖Δ࢓૊Έ w 456/ΫϥΠΞϯτ͕456/αʔόʹରͯ͠ϦΫΤετ όΠϯυϦΫΤ ετ ΛૹΔͱ456/αʔό͸456/ΫϥΠΞϯτʹૹ৴ݩ৘ใΛຒΊ ࠐΜͩϨεϙϯεΛฦ͢ w ϦΫΤετˍϨεϙϯεͷଞʹҰํతʹૹΓ͚ͭΔΠϯσΟέʔγϣϯͱ ͍͏ͷ΋͋Δ 10
  9. 5SBWFSTBM6TJOH3FMBZTBSPVOE/"5 563/ w ௚઀௨৴Ͱ͖ͳ͍ͻͱͨͪͷؒʹ͸͍ͬͯ௨৴ΛϦϨʔͯ͘͠ΕΔػೳ w ύέοτϑΥʔϚοτ͸456/ͰఆΊΒΕͨ΋ͷΛ༻͍Δ w ϦϨʔͷͨΊͷΞυϨεͱϙʔτ͸Ξϩέʔγϣϯͱ͍͏456/ϝιο υΛ༻ׂ͍ͯΓ౰ͯͯ΋Β͏ w

    ϦϨʔύέοτͷૹड৴ʹ͸ w ηϯυͱσʔλͱ͍͏456/ϝιουΛ༻͍Δํ๏ w νϟϯωϧΛׂΓ౰ͯͯ΋Β͍ͦͷνϟϯωϧΛ༻͍Δํ๏ w ͷ͕ͭ༻ҙ͞Ε͍ͯΔ w ͦ΋ͦ΋6%1Ͱ֎ͱ΍ΓͱΓͰ͖ͳ͍ͻͱͰ΋େৎ෉ͳΑ͏ʹ5$1ͱ 5-4PWFS5$1Λ࢖ͬͯ6%1σʔλάϥϜΛϦϨʔ͢Δ͜ͱ΋Ͱ͖Δ 11
  10. 5SBWFSTBM6TJOH3FMBZTBSPVOE/"5 563/ w खॱ w 563/ΫϥΠΞϯτ͕563/αʔόʹ ΞϩέʔγϣϯϦΫΤετΛૹΔ w 563/αʔό͸ΞυϨεͱϙʔτΛׂΓ ౰ͯ563/ΫϥΠΞϯτʹΞϩέʔγϣ

    ϯϨεϙϯεΛฦ͢ ӈਤͷ3FMBZFE 5SBOTQPSU"EESFTT  w 563/ΫϥΠΞϯτ͸ύέοτΛΤϯ Ωϟοϓ͠563/αʔόʹૹΔ w 563/αʔό͸σΩϟοϓ͠૬खʹૹΔ w ໭Γύέοτ͸563/αʔό͕Τϯ Ωϟοϓ͠563/ΫϥΠΞϯτʹૹΔ Peer A Server-Reflexive +---------+ Transport Address | | 192.0.2.150:32102 | | | /| | TURN | / ^| Peer A | Client's Server | / || | Host Transport Transport | // || | Address Address | // |+---------+ 10.1.1.2:49721 192.0.2.15:3478 |+-+ // Peer A | | ||N| / Host Transport | +-+ | ||A|/ Address | | | | v|T| 192.168.100.2:49582 | | | | /+-+ +---------+| | | |+---------+ / +---------+ | || |N| || | // | | | TURN |v | | v| TURN |/ | | | Client |----|A|----------| Server |------------------| Peer B | | | | |^ | |^ ^| | | | |T|| | || || | +---------+ | || +---------+| |+---------+ | || | | | || | | +-+| | | | | | | | | Client's | Peer B Server-Reflexive Relayed Transport Transport Address Transport Address Address 192.0.2.1:7000 192.0.2.15:50000 192.0.2.210:49191 Figure 1 SGD͔ΒҾ༻ 12
  11. *OUFSBDUJWF$POOFDUJWJUZ&TUBCMJTINFOU *$& w લड़ͷ456/΍563/Λ૊Έ߹Θͤͯ ͭͷΤϯυϙΠϯτؒͰ௨৴͢Δࡍͷϕε τͳํ๏Λ୳͠ग़ͨ͢Ίͷ࢓૊Έ w ͭͷΤϯυϙΠϯτؒͰ௨৴͠Α͏ͱ ࢥͬͨͱ͖ͷΞυϨεͱϙʔτͷ૊Έ߹Θ ͤީิΛϕετͳ΋ͷ͔Βࢼ͍͖ͯ͠௨৴

    Ͱ͖Δํ๏Λ୳͢ w ྫ w -ͱ3ʹ;ΒΕͨΞυϨεಉ࢜Ͱࢼ͢ w -ͱ3ͦΕͧΕͷ/"5ͷ֎ଆͷΞυϨ εಉ࢜Ͱࢼ͢ w 456/ 563/ αʔόͰΞϩέʔτͨ͠Ξ υϨεಉ࢜Ͱࢼ͢ +---------+ +--------+ |Signaling| +--------+ | STUN | |Server | | STUN | | Server | +---------+ | Server | +--------+ / \ +--------+ / \ / \ / <- Signaling -> \ / \ +--------+ +--------+ | NAT | | NAT | +--------+ +--------+ / \ / \ +-------+ +-------+ | Agent | | Agent | | L | | R | +-------+ +-------+ Figure 1: ICE Deployment Scenario SGD͔ΒҾ༻ 13
  12. ͜Εߦ͚Μͷʜʁ w /"5ͷ࣮૷ʹΑͬͯ͸ߦ͚Δ w -͕456/αʔόʹόΠϯυͨ͠ࡍʹ w -͔Βग़Δૹ৴ݩΞυϨεϙʔτ͕9Y w /"5͔Βग़ΔΞυϨεϙʔτ͕9Y w

    ͷͱ͖3޲͚ʹૹ৴ݩ9YͰग़͢ͱಉ͡ ͘9Yʹม׵ͯ͘͠ΕΔػೳ͕͋Γ͜ͷػ ೳ͕࣮૷͞Εͨ/"5ͷ৔߹͸ߦ͚Δ w -͸456/Ͱ9YΛٻΊΔ w 3͸456/Ͱ:ZΛٻΊΔ w -͸:Zͱ௨৴͠Α͏ͱ͠ w 3͸9Yͱ௨৴͠Α͏ͱ͢Δ w ͜ͷػೳ͸&OEQPJOUJOEFQFOEFOU NBQQJOHͱ͍͍SGDͰ.645ѻ͍ +---------+ +--------+ |Signaling| +--------+ | STUN | |Server | | STUN | | Server | +---------+ | Server | +--------+ / \ +--------+ / \ / \ / <- Signaling -> \ / \ +--------+ +--------+ | NAT | | NAT | +--------+ +--------+ / \ / \ +-------+ +-------+ | Agent | | Agent | | L | | R | +-------+ +-------+ Figure 1: ICE Deployment Scenario SGD͔ΒҾ༻ 9Y :Z :Z 9Y 14
  13. ESBGUJFUGSUDXFCSUQVTBHF w 8FC35$Ͱ͸ϝσΟΞͷ఻ૹʹ351 3FBMUJNF5SBOTQPSU1SPUPDPM  Λ༻͍Δ w 351͸SGDͰنఆ͞ΕͯΔ͚ͲϕʔεͱͳΔ෦෼͔͠نఆ͓ͯ͠Β ͣ۩ମతͳ͜ͱ͸ϓϩϑΝΠϧͰنఆ͢Δ͜ͱʹͳ͍ͬͯΔ w

    8FC35$Ͱ͸ҎԼͷϓϩϑΝΠϧ͕.465ʹͳ͍ͬͯΔ w 3514"71' &YUFOEFE4FDVSF3511SPpMFGPS35$1#BTFE 'FFECBDL <SGD> w ͦͷଞʹ΋351ͷଟॏԽʹରԠͯ͠Δ͜ͱͱ͔ಉظιʔεͲ͏͢Μͷͱ ͔͜͏͍͏֦ுػೳʹରԠͯ͠Ͷͱ͔͍Ζ͍Ζॻ͔Ε͍ͯΔ 15
  14. 4FTTJPO%FTDSJQUJPO1SPUPDPM 4%1 w جຊతʹ w ܕ஋ w ͷϖΞͰهड़͞ΕΔ w ܕ͕B

    ΞτϦϏϡʔτ ͷ࣌͸ w BΞτϦϏϡʔτ໊஋ w ͷΑ͏ʹهड़͞ΕΔ w ࠷ॳͷN ϝσΟΞ ͕Ͱग़Δ·Ͱ͕ڞ௨෦ ෼ͰN͕ग़ΔͨͼʹϝσΟΞͷఆٛʹೖΔ w ӈͷྫͰ͸BJDFPQUJPOTUSJDLMF͸ڞ௨ ͷΞτϦϏϡʔτͰBNJEBVEJP͸ NBVEJPʹର͢ΔΞτϦϏϡʔτͰ BCVOEMFPOMZ͸NWJEFPʹର͢Δ ΞτϦϏϡʔτ v=0 o=- 20518 0 IN IP4 0.0.0.0 s=- t=0 0 a=group:BUNDLE audio video a=group:LS audio video a=ice-options:trickle m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 c=IN IP4 203.0.113.141 a=mid:audio a=msid:ma ta a=sendrecv a=rtpmap:109 opus/48000/2 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=maxptime:120 ... লུ ... m=video 0 UDP/TLS/RTP/SAVPF 99 120 c=IN IP4 203.0.113.141 a=bundle-only a=mid:video a=msid:ma tb a=sendrecv a=rtpmap:99 H264/90000 17
  15. 4FTTJPO%FTDSJQUJPO1SPUPDPM 4%1 w Wϓϩτίϧόʔδϣϯ w Pੜ੒ݩͱηογϣϯ*% w Tηογϣϯ໊ w D઀ଓ৘ใ

    w Uηογϣϯ͕ΞΫςΟϒͳ࣌ؒ w NϝσΟΞ໊ͱτϥϯεϙʔτΞυϨε w ୈҰҾ਺ϝσΟΞλΠϓ BVEJP΍ WJEFPͳͲ  w ୈೋҾ਺τϥϯεϙʔτϙʔτ൪߸ w ୈࡾҾ਺τϥϯεϙʔτϓϩτίϧ w ୈ࢛Ҿ਺351ϖΠϩʔυλΠϓ൪߸ w BΞτϦϏϡʔτ w ͍Ζ͍Ζ v=0 o=- 20518 0 IN IP4 0.0.0.0 s=- t=0 0 a=group:BUNDLE audio video a=group:LS audio video a=ice-options:trickle m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 c=IN IP4 203.0.113.141 a=mid:audio a=msid:ma ta a=sendrecv a=rtpmap:109 opus/48000/2 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=maxptime:120 ... লུ ... m=video 0 UDP/TLS/RTP/SAVPF 99 120 c=IN IP4 203.0.113.141 a=bundle-only a=mid:video a=msid:ma tb a=sendrecv a=rtpmap:99 H264/90000 18
  16. ESBGUJFUGSUDXFCKTFQ w TFUVQMPDBMNFEJBTUBUF w  "MJDF+4͕৽͍͠1FFS$POOFDUJPO ΠϯελϯεΛ࡞੒ w  "MJDF+4͕Ի੠ͱϏσΦͷͭͷτ

    ϥοΫΛ1FFS$POOFDUJPOͷ BEE5SBDLϝιουͰ௥Ճ w  "MJDF+4͕1FFS$POOFDUJPOͷ DSFBUF0⒎FSϝιουͰΦϑΝʔΛऔಘ w  "MJDF+4͕  ͰಘͨΦϑΝʔΛ 1FFS$POOFDUJPOͷ TFU-PDBM%FTDSJQUJPOͰొ࿥ w  *$&ީิ͕൑໌͢Δͨͼʹ PO*DF$BOEJEBUFΠϕϯτ͕ൃੜ͢Δ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS      20
  17. ESBGUJFUGSUDXFCKTFQ w XBJUGPS*$&HBUIFSJOHUPDPNQMFUF w  *$&ީิͷऩू͕ऴΘͬͨ͜ͱΛࠂ͛ ΔPO*DF$BOEJEBUFΠϕϯτ͕ൃੜ͢Δ w  "MJDF+4͕1FFS$POOFDUJPOͷ

    QFOEJOH-PDBM%FTDSJQUJPOϝιουΛ࣮ ߦ͠4%1Ͱهड़͞ΕͨcP⒎FS"cΛऔ ಘ͢Δ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS   21
  18. ESBGUJFUGSUDXFCKTFQ w cP⒎FS"cJTTFOUPWFSTJHOBMJOH QSPUPDPMUP#PC w  "MJDF+4͔Β8FC4FSWFS΁cP⒎FS "cΛૹ৴ w 

    8FC4FSWFS͔Β#PC+4΁cP⒎FS "cΛૹ৴ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS   22
  19. ESBGUJFUGSUDXFCKTFQ w cP⒎FS"cBSSJWFTBU#PC w  #PC+4͕৽͍͠1FFS$POOFDUJPO ͷΠϯελϯεΛ࡞੒ w  #PC+4͕લทͰ8FC4FSWFS͔Βಘ

    ͨcP⒎FS"cΛ1FFS$POOFDUJPOͷ TFU3FNPUF%FTDSJQUJPOϝιουͰొ࿥ w  Ի੠ͱϏσΦͷτϥοΫ͔Β PO5SBDLΠϕϯτ͕ൃੜ͢Δ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS    23
  20. ESBGUJFUGSUDXFCKTFQ w #PCBDDFQUTDBMM w  #PC+4͕1FFS$POOFDUJPOͷ BEE5SBDLϝιουΛݺͼग़͠ϩʔΧϧ ͷτϥοΫΛ௥Ճ w 

    #PC+4͕1FFS$POOFDUJPOͷ DSFBUF"OTXFSϝιουΛݺͼग़͢ w  #PC+4͕  Ͱੜ੒ͨ͠ΞϯαʔΛ Ҿ਺ʹ1FFS$POOFDUJPOͷ TFU-PDBM%FTDSJQUJPOϝιουΛݺͿ w  *$&ީิ͕൑໌͢Δͨͼʹ PO*DF$BOEJEBUFΠϕϯτ͕ൃੜ͢Δ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS     24
  21. ESBGUJFUGSUDXFCKTFQ w XBJUGPS*$&HBUIFSJOHUPDPNQMFUF w  *$&ީิͷऩू͕ऴΘͬͨ͜ͱΛࠂ͛ ΔPO*DF$BOEJEBUFΠϕϯτ͕ൃੜ͢Δ w  #PC+4͕1FFS$POOFDUJPOͷ

    DVSSFOU-PDBM%FTDSJQUJPOϝιουΛ࣮ ߦ͠4%1Ͱهड़͞ΕͨcBOTXFS"cΛ औಘ͢Δ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS   25
  22. ESBGUJFUGSUDXFCKTFQ w cBOTXFS"cJTTFOUPWFSTJHOBMJOH QSPUPDPMUP"MJDF w  #PC+4͔Β8FC4FSWFS΁c BOTXFS"cΛૹ৴ w 

    8FC4FSWFS͔Β"MJDF+4΁c BOTXFS"cΛૹ৴ "MJDF+4 "MJDF6" #PC+4 #PC6" 8FC4FSWFS   26
  23. τϙϩδʔ͍Ζ͍Ζ w 1PJOUUP.VMUJQPJOU6TJOH.FTI w શһ͕֤ʑͱηογϣϯΛுΔํ๏ w ϝϦοτ w 35$1Ͱηογϣϯͷ඼࣭Λࡉ੍͔͘ ޚ͠΍͍͢

    w ૬खͷճઢଳҬʹԠͯ͡ߜͬͨ΋ͷΛ ૹΔΑ͏ͳ͜ͱ΋Մೳ w σϝϦοτ w ৘ใΛ૬खͷ਺͚ͩίϐʔͯ͠ૹ৴͠ ͳ͚Ε͹ͳΒͳ͍ w ඇྗͳΤϯυϊʔυʹ͸͠ΜͲ͍ w ৄࡉ͸SGDࢀর 29
  24. τϙϩδʔ͍Ζ͍Ζ w .VMUJQPJOU$POUSPM6OJU w શһͷ৘ใΛҰ୴ूΊ߹੒ͯͦ͠ΕΛશ һʹ഑৴͢Δ૷ஔ w ϝϦοτ w Τϯυϊʔυଆ͸ҰͭͷϝσΟΞΛ࠶

    ੜ͢Ε͹ྑ͍͚ͩͳͷͰ͍ܰ w σϝϦοτ w .$6͸σίʔυ͔ͯ͠ΒΤϯίʔυ ͠ͳ͍ͱͳͷͰηογϣϯ਺͕ଟ͘ͳ ΔͱΫι͠ΜͲ͍ w ଳҬ͕ڱ͍ͻͱʹ߹ΘͤΔ͔͠ͳ͘ͳ Δ w ৄࡉ͸SGDࢀর .$6 30
  25. τϙϩδʔ͍Ζ͍Ζ w 4FMFDUJWF'PSXBSEJOH.JEEMFCPY w શһͷ৘ใΛूΊΔ͕߹੒ͱ͔͸ͤͣͦ ΕΛͦͷ··഑৴͢Δ w ϝϦοτ w 4'.ͷॲཧ͸.$6ͱൺֱ͍ͯܰ͠

    ͷͰ݁ߏεέʔϧ͢ΔΒ͍͠ w σϝϦοτ w ϝσΟΞͷσίʔυ͸ͦΕͧΕͰ΍Β ͳ͍ͱͳͷͰඇྗͳΤϯυϊʔυͰ͸ .$6ͱൺֱͯ͠ॏ͍ͷ͔΋ w ৄࡉ͸SGDࢀর 4'. 31
  26. αΠϚϧΩϟετ w Ի੠΍ө૾ͷϝσΟΞΛ w ޿ଳҬ༻ w ඪ४ଳҬ༻ w ڱଳҬ༻ w

    ͷΑ͏ʹෳ਺ύλʔϯͰ4'.ʹૹΔ w 4'.͔Β͸ࣗ෼ͷճઢଳҬʹԠͨ͡΋ͷͷ ΈΛૹͬͯ΋Β͏ w ӈਤͰ͸੨ͷͻͱ͸4'.͔Β੺ԫ྘ͷ޿ ଳҬ൛Λ΋Β͍ԫͷͻͱ͸ڱଳҬ൛Λ΋ Β͍ͬͯΔ w ৄࡉ͸ESBGUJFUGSUDXFCKTFQࢀর  w +JUTJ.FFU͸͜ͷํࣜ 4'. 32
  27. ࢀߟจݙ w 3FBM5JNF$PNNVOJDBUJPOJO8&#CSPXTFST $PODMVEFE8(  w IUUQTUPPMTJFUGPSHXHSUDXFC w "VEJP7JEFP5SBOTQPSU$PSF.BJOUFOBODF "DUJWF8(

     w IUUQTUPPMTJFUGPSHXHBWUDPSF w .VMUJQBSUZ.VMUJNFEJB4FTTJPO$POUSPM "DUJWF8(  w IUUQTUPPMTJFUGPSHXHNNVTJD w 0WFSWJFX3FBM5JNF1SPUPDPMTGPS#SPXTFSCBTFE"QQMJDBUJPOT w IUUQTUPPMTJFUGPSHIUNMESBGUJFUGSUDXFCPWFSWJFX w 5SBOTQPSUTGPS8FC35$ w IUUQTUPPMTJFUGPSHIUNMESBGUJFUGSUDXFCUSBOTQPSUT w 8FC3FBM5JNF$PNNVOJDBUJPO 8FC35$ .FEJB5SBOTQPSUBOE6TFPG351 w IUUQTUPPMTJFUGPSHIUNMESBGUJFUGSUDXFCSUQVTBHF w 8FC35$"VEJP$PEFDBOE1SPDFTTJOH3FRVJSFNFOUT w IUUQTUPPMTJFUGPSHIUNMSGD w 8FC35$7JEFP1SPDFTTJOHBOE$PEFD3FRVJSFNFOUT w IUUQTUPPMTJFUGPSHIUNMSGD w +BWB4DSJQU4FTTJPO&TUBCMJTINFOU1SPUPDPM w IUUQTUPPMTJFUGPSHIUNMESBGUJFUGSUDXFCKTFQ w  33
  28. ࢀߟจݙ w 351"5SBOTQPSU1SPUPDPMGPS3FBM5JNF"QQMJDBUJPOT w IUUQTUPPMTJFUGPSHIUNMSGD w &YUFOEFE4FDVSF3511SPpMFGPS3FBMUJNF5SBOTQPSU$POUSPM1SPUPDPM 35$1 #BTFE'FFECBDL 3514"71'

     w IUUQTUPPMTJFUGPSHIUNMSGD w 3515PQPMPHJFT w IUUQTUPPMTJFUGPSHIUNMSGD w *OUFSBDUJWF$POOFDUJWJUZ&TUBCMJTINFOU *$& "1SPUPDPMGPS/FUXPSL"EESFTT5SBOTMBUPS /"5 5SBWFSTBM w IUUQTUPPMTJFUGPSHIUNMSGD w 4FTTJPO5SBWFSTBM6UJMJUJFTGPS/"5 456/  w IUUQTUPPMTJFUGPSHIUNMSGD w 5SBWFSTBM6TJOH3FMBZTBSPVOE/"5 563/ 3FMBZ&YUFOTJPOTUP4FTTJPO5SBWFSTBM6UJMJUJFTGPS/"5 456/  w IUUQTUPPMTJFUGPSHIUNMSGD w /FUXPSL"EESFTT5SBOTMBUJPO /"5 #FIBWJPSBM3FRVJSFNFOUTGPS6OJDBTU6%1 w IUUQTUPPMTJFUGPSHIUNMSGD w 8FC35$3FBMUJNF$PNNVOJDBUJPO#FUXFFO#SPXTFST w IUUQTXXXXPSH53XFCSUD w .FEJB$BQUVSFBOE4USFBNT w IUUQTXXXXPSH53NFEJBDBQUVSFTUSFBNT 34