Share
Embed
入門QUIC
teru0x1
June 12, 2020
Transcript
36 slides
-
QUICͱʢ1/2ʣ wτϥϯεϙʔτϓϩτίϧͷͭ ʮ͍ͬ͘͘ʯ ུޠͰͳ͍ 6%1ͷ্Ͱಈ࡞ ίωΫγϣϯܕͷϓϩτίϧ
5$1 5-4૬ͷػೳΛ࣋ͭ ओʹ8FCͰར༻͞ΕΔ 4 ग़య<> -
QUICͱʢ2/2ʣ wΓཱͪͱݱঢ় (PPHMF͕ʹൃද H26*$ ͦͷޙ*&5'8PSLJOHHSPVQ͕ൃɽඪ४ԽʢJ26*$ʣ H26*$$ISPNFͱ(PPHMFαʔόؒͷҎ্ͷίωΫγϣϯͰ
ར༻͞Ε͍ͯΔɽ J26*$υϥϑτͷWFSTJPO͕ ࠷৽ w େܾ·͍ͬͯͯɼࡉ͔ͳमਖ਼͕ଓ͍͍ͯΔ 5 ग़యɿ IUUQTUPPMTJFUGPSHIUNMESBGUJFUGRVJDUSBOTQPSU -
QUICͷϞνϕʔγϣϯ w8FCΞϓϦέʔγϣϯʹର͢Δཁٻͷଟ༷Խ Ԇཁٻ͕ݫ͍͠ ҉߸Խ wར༻Ͱ͖Δϓϩτίϧ 5$1 5-4
w ෆຬ͕৭ʑ͋ͬͨʢޙड़ʣ 7 5$1 5-4ʹมΘΔ৽ͨͳϓϩτίϧΛ࡞Γɼ8FCͰ͓͏ʂ -
TCPʹର͢Δෆຬʢ1/2ʣ wϓϩτίϧมߋʹ͏ࠔ ϛυϧϘοΫεʹΑΔӨڹΛड͚Δ w ະରԠͷϑΝΠΞΥʔϧʹःஅ͞ΕΔ͔ w /"5ʢ/FUXPSL"EESFTT5SBOTMBUJPOʣͷαϙʔτ͕ඞཁ͔ wߋ৽ʹ͏ࠔ
5$1ͩͱΞοϓσʔτͷࡍɼ04Χʔωϧ͝ͱΞοϓσʔτ͢Δඞ ཁ͕͋Δ 8 -
TCPʹର͢Δෆຬʢ2/2ʣ wϋϯυγΣΠΫʹ͔͔ΔԆ 5$1IBOETIBLF 355 5-4IBOETIBLF 355 w
5-4ʹ355Έ͍ͨͳͷ͕͋Δ͚Ͳ w)FBEPG-JOFϒϩοΩϯά ͋Δύέοτ͕ԿΒ͔ͷཧ༝Ͱಧ͔ͳ͍ͱ͖ɼޙଓͷύέοτ͕ ͨ͞ΕΔݱ 5$1Ͱύέοτϩε࣌ʹൃੜ͠ɼ௨৴࣭Լʹܨ͕Δ w zύέοτzɼ5$1ηάϝϯτɼ)551ϝοηʔδͳͲ w ৄ͘͠ޙड़ 9 ग़య IUUQTIQCODPUSBOTQPSUMBZFSTFDVSJUZUMTUMTIBOETIBLF 'JHVSF -
ΰʔϧ1ɿσϓϩΠ͕؆୯ w6%1্Ͱಈ࡞ͤ͞Δ ϢʔβʔۭؒͰಈ࡞͢Δʢ5$1 6%1ҰൠతʹΧʔωϧۭؒʣ ϓϩτίϧͷΞοϓάϨʔυʹ͏04ͷΞοϓάϨʔυඞཁͳ ͍ ߴͳ։ൃαΠΫϧΛճ͢͜ͱ͕Մೳ
wϔομͷେ෦Λ҉߸Խ͢Δ ϑΝΠΞΥʔϧ/"5ͳͲͷϛυϧϘοΫε͔Βड͚ΔӨڹΛ ࠷খԽ w ϛυϧϘοΫε26*$ύέοτͷେ෦ΛݟΔ͜ͱ͕Ͱ͖ͳ͍ w ϛυϧϘοΫε͕ରԠ͍ͯ͠ͳ͍͔Β26*$Λ͑ͳ͍ɼΞοϓάϨʔυͰ͖ͳ͍ͱ͍͏ࣄଶΛ ͍Ͱ͍Δɽ 11 -
ΰʔϧ2ɿϋϯυγΣΠΫͷԆ͕খ͍͞ w355ͰϋϯυγΣΠΫ 5-4ͷϋϯυγΣΠΫʹ૬ ʢΫϥΠΞϯτʣαʔόূ໌ॻͷݕূ ʢΫϥΠΞϯτɼαʔόʣ伴ަ 12 ग़య
IUUQTHJUIVCDPNqBOPZVLJIUUQOPUFCMPCNBTUFSIUUQOPUF@QEG -
ΰʔϧ3ɿHoLϒϩοΩϯάͷӨڹΛड͚ͮΒ͍ wίωΫγϣϯதʹෳͷετϦʔϜΛੜ ετϦʔϜ͕5$1ͷετϦʔϜʹ૬͢Δ ֤ετϦʔϜಠཱ͍ͯ͠Δ ͋ΔετϦʔϜதͷσʔλ͕ಧ͔ͳͯ͘ɼผͷετϦʔϜΛྲྀ ΕΔσʔλϒϩοΫ͞Εͳ͍ 13
ΤϯυϙΠϯτ ΤϯυϙΠϯτ 26*$ετϦʔϜ 26*$ίωΫγϣϯ -
HoLϒϩοΩϯάͷྺ࢙ʢ2/8ʣ w)551 1JQFMJOJOH Ϩεϙϯε͕ฦΒͳ͍͏ͪʹ࣍ͷϦΫΤετΛൃߦͰ͖Δ֦ு )551ͷ্༷ɼϨεϙϯεॱংಉظ͠ͳ͍ͱ͍͚ͳ͍ w /൪ͷϨεϙϯε͕ະ౸ୡͷ࣌ɼ/ʴ൪ͷϨεϙϯε͕ಧ͍͍ͯͯɼ্Ґʹ͞Εͣʹػ ʢ)551ʹ͓͚Δ)P-#ʣ
1JQFMJOJOHଟ͘ͷϒϥβͰແޮʹ͞Εͯ͠·ͬͨ w ଟ͘ͷϓϩΩγ͕ରԠ͍ͯ͠ͳ͍ɼͳͲͷཧ༝ 15 -
HoLϒϩοΩϯάͷྺ࢙ʢ4/8ʣ w)551 ෳίωΫγϣϯ 5$1ίωΫγϣϯΛෳுΔɼےͳΓํ ίωΫγϣϯ͚ͩฒྻʹऔಘͰ͖Δ w $ISPNFͰͭ΄ͲίωΫγϣϯΛுΔΒ͍͠
ιέοτͷແବɼαʔόͷෛՙ૿ ίωΫγϣϯ͝ͱʹ੍ޚ͞ΕΔͷͰɼίωΫγϣϯ͋ͨΓͷ ੑೳΛϑϧʹൃشͰ͖ͳ͍ w ͦΕͧΕͷίωΫγϣϯ͕ଳҬΛޓ͍ʹୣ͍߹͏ঢ়ଶ 16 -
HoLϒϩοΩϯάͷྺ࢙ʢ5/8ʣ w)551 )551ϨΠϠΛଟॏԽ͢Δ͜ͱͰɼγϯάϧ5$1ίωΫγϣϯͰ͋Γͳ͕Β ϦΫΤετΛฒྻʹൃߦͰ͖Δ w ϖʔδಡΈࠐΈ࣌ؒͷॖʹޭʂ ଟॏԽϦΫΤετɼϨεϙϯεͷ͝ͱʹҟͳΔ*%Λ༩ͯ͠ɼίωΫγϣϯதʹྲྀ͢ w
)551ɼϦΫΤετ͝ͱʹ*%͕ͳ͔ͬͨ w ΫϥΠΞϯτ͕͛ͨϦΫΤετʹରԠ͢ΔϨεϙϯεΛࣝผ͢Δํ๏ͳ͔ͬͨ w ͦͷͨΊɼʮϨεϙϯεશͯલʹൃߦͨ͠ϦΫΤετʹରԠ͢Δʯͱ͢Δ͔͠ͳ͍ 17 ग़య IUUQTEFWFMPQFSTHPPHMFDPNXFCGVOEBNFOUBMTQFSGPSNBODFIUUQ -
HoLϒϩοΩϯάͷྺ࢙ʢ6/8ʣ w)551 5$1ύέοτ͕ϩεͨ͠߹ɼ࠶ૹ͕ͪੜ͡Δ ͜ͷ࣌ɼผͷ*%Λ࣋ͬͨ)551ϨεϙϯεʢΛӡͿ5$1ύέοτʣ ϒϩοΫ͞ΕΔʢ5$1ͷ)P-#ʣ w γϯάϧίωΫγϣϯ͔ͩΒ w
Ͱɼ͜ͷϨεϙϯεϩεͨ͠Ϩεϙϯεͱؔͳ͍ 18 )551ʹΑΔ)P-# ग़యIUUQTEPDTHPPHMFDPNQSFTFOUBUJPOE-4/$$W#JKBCOO4#CX3MNH/IO1')#Z&99QULQSFTFOU TMJEFJEHBGCEFC@ -
HoLϒϩοΩϯάͷྺ࢙ʢ7/8ʣ w26*$ τϥϯεϙʔτϨϕϧͰଟॏԽͷΈΛಋೖ ͋ΔετϦʔϜͰύέϩε͕ൃੜͯ͠ɼผͷετϦʔϜʹӨ ڹ͠ͳ͍ w ύέϩε͕ൃੜͨ͠ετϦʔϜϒϩοΫ͕ى͜Δʢ)P-#͕ͳ͘ͳΔΘ͚Ͱͳ͍ʣ 19
26*$ʹΑΔ)P-#ͷ੍ ग़యɿIUUQTEPDTHPPHMFDPNQSFTFOUBUJPOE -4/$$W#JKBCOO4#CX3MNH/IO1')#Z&99QULQSFTFOU TMJEFJEHBGCEFC@ -
HoLϒϩοΩϯάͷྺ࢙ʢ8/8ʣ w)551 26*$ΛτϥϯεϙʔτϨΠϠʹར༻͢Δ)551 )551ͱಉ͘͡ɼϦΫΤετϨεϙϯεͷʹ*%ΛׂΓͯΔ ͕ɼͦΕʹ26*$Λར༻͢Δɽ )551ͷ͕ܽղܾʂ 20
26*$ʹΑΔ)P-#ͷ੍ ग़యɿIUUQTEPDTHPPHMFDPNQSFTFOUBUJPOE -4/$$W#JKBCOO4#CX3MNH/IO1')#Z&99QULQSFTFOU TMJEFJEHBGCEFC@ -
ΰʔϧ3ɿHoLϒϩοΩϯάͷӨڹΛड͚ͮΒ͍ʢ࠶ܝʣ wίωΫγϣϯதʹෳͷετϦʔϜΛੜ ετϦʔϜ͕5$1ͷετϦʔϜʹ૬͢Δ ֤ετϦʔϜಠཱ͍ͯ͠Δ ͋ΔετϦʔϜதͷσʔλ͕ಧ͔ͳͯ͘ɼผͷετϦʔϜΛྲྀ ΕΔσʔλϒϩοΫ͞Εͳ͍ 21
ΤϯυϙΠϯτ ΤϯυϙΠϯτ 26*$ετϦʔϜ 26*$ίωΫγϣϯ -
QUICͷΰʔϧͱୡख๏·ͱΊ wσϓϩΠ͕؆୯ ϔομͷ҉߸ԽͰϛυϧϘοΫε͔ΒৄࡉΛӅṭ͢Δ wߋ৽͕؆୯ 6%1ͷ্ʹϢʔβεϖʔεͰಈ࡞͢Δϓϩτίϧͱ࣮ͯ͠ wϋϯυγΣΠΫͷԆ͕খ͍͞ 5$1ͱ5-4Ͱผʑʹߦ͍ͬͯͨϋϯυγΣΠΫΛͭʹ·ͱΊͨ
w)P-ϒϩοΩϯάͷӨڹΛड͚ͮΒ͍ ετϦʔϜʹΑΔଟॏԽ 22 -
index w26*$ͱ w26*$ͷϞνϕʔγϣϯ 5$1ͷෆຬ 26*$ͷΰʔϧ )P-ϒϩοΩϯάʹ͍ͭͯ w26*$ͷৄࡉ
w26*$ͷ՝ͱ͜Ε͔Β 23 -
QUICͷ༻ޠ w26*$ίωΫγϣϯ 26*$Ͱ௨৴Λߦ͏ࡍɼ࠷ॳʹߏ͢ΔԾతͳ௨৴࿏ *%ׂ͕ΓͯΒΕɼϚΠάϨʔγϣϯ͕Մೳ w ճઢͷΓସ͑/"5ϦόΠϯσΟϯά͕ىͬͯ͜ɼίωΫγϣϯΛ࡞Γ͢ඞཁ͕ͳ͍ w26*$ύέοτ
6%1ύέοτʹ֨ೲ͞ΕΔ w26*$ϑϨʔϜ 26*$ύέοτʹ֨ೲ͞ΕΔɼ26*$ͷ࠷খ୯Ґ ׂ͝ͱʹ໊લͱϑΥʔϚοτ͕ܾΊΒΕ͍ͯΔ w ΞϓϦέʔγϣϯσʔλʢϖΠϩʔυʣૹ৴༻ͷϑϨʔϜˠ453&".ϑϨʔϜ w "$,Λ͑ΔͨΊͷϑϨʔϜˠ"$,ϑϨʔϜ w26*$ετϦʔϜ 26*$ίωΫγϣϯ্ʹଟॏԽ͞ΕΔɼԾతͳ௨৴࿏ɼ ࠶ૹ੍ޚɼϑϩʔ੍ޚͳͲ5$1ετϦʔϜͱࣅͨΑ͏ͳػೳΛ࣋ͭ ϖΠϩʔυετϦʔϜΛྲྀΕΔ 24 -
QUICϩεݕग़͕ΑΓγϯϓϧʹ wύέοτ*%ͱϖΠϩʔυΦϑηοτͷ 26*$ϖΠϩʔυͷόΠτΦϑηοτΛύέϩεఆʹ ར༻͠ͳ͍ w 5$1֬ೝԠ൪߸ʢϖΠϩʔυͷόΠτΦϑηοτʣΛར༻͍ͯͨ͠ w 5$1ΫϥΠΞϯτ͕ύέϩεఆΛͯ͠࠶ૹͨ͠ޙɼ"$,͕ฦ͖ͬͯͨɼ͜ͷ"$,ɼͲͷૹ৴ύέοτʹର͢Δ"$,ͩΖ͏͔ʁ w
͜ͷ߹ɼ355Λਖ਼֬ʹਪଌͰ͖ͳ͘ͳΔ350 3FUSBOTNJTTJPO5JNFPVU ͷܾఆ͕ࠔʹ 27 -
QUICϑϨʔϜ wશ෦Ͱछྨ ϑϨʔϜ͝ͱʹಛఆͷׂ͕͋Δ w ϖΠϩʔυૹ৴༻ʢ453&".ϑϨʔϜʣ w γάφϧɼͦͷଞͷσʔλૹ৴༻ʢͦͷଞʣ ಠࣗͷϑϨʔϜΛఆ֦ٛͯ͠ு͢Δ
͜ͱՄೳ 28 ग़యɿ IUUQTUPPMTJFUGPSHIUNMESBGUJFUGRVJDUSBOTQPSU -
QUICͦͷଞͷػೳ wϑϩʔ੍ޚ ௨৴૬खͷड৴Οϯυ͕ᷓΕͳ͍Α͏ʹྲྀྔΛ੍ޚ͢Δػೳ ֤ετϦʔϜͱίωΫγϣϯͷ྆ํͷϨϕϧͰߦΘΕΔ w੍ޚ ωοτϫʔΫͷ͕ى͜Βͳ͍Α͏ྲྀྔΛ੍ޚ͢Δػೳ
&$/&YQMJDJU$POHFTUJPO/PUJpDBUJPOʢ໌ࣔత௨ʣͷ αϙʔτ w ࣌ɼωοτϫʔΫϊʔυ͕*1ϔομʹରͯ͠ϑϥάΛཱͯɼϗετʹΛ௨͢Δ 29 -
Real World QUIC wݕࡧͪ࣌ؒʹର͢ΔධՁ ݕࡧ༻ޠΛೖྗ͔ͯ͠Βɼશͯͷίϯςϯπ͕දࣔ͞ΕΔ·Ͱͷ࣌ؒ wͦͷଞͷධՁ :PV5VCF w
ϏσΦ࠶ੜͪ࣌ؒ ΄Ͳͷվળ w ϑϦʔζ࣌ؒ ˋ΄Ͳͷվળ 355ʹର͢ΔධՁ w ৄ͘͠จͰ 31 -
index w26*$ͱ w26*$ͷϞνϕʔγϣϯ 5$1ͷෆຬ 26*$ͷΰʔϧ )P-ϒϩοΩϯάʹ͍ͭͯ w26*$ͷৄࡉ
w26*$ͷ՝ͱ͜Ε͔Β 32 -
QUICͷ՝ɼݒ೦ wߴ͍$16༻ 5$1 5-4ͷഒ w 26*$ͷεςʔτϚγϯཧɼϢʔβʔεϖʔε࣮ʹΑΔΦʔόʔϔουʢଟͷγεςϜίʔϧɼ/*$Φϑϩʔ υͷܽʣ wଳҬɼԆɼଛࣦڥͰͷੑೳྼԽ
26*$͕ಘҙͳͷɼߴԆɼߴଛࣦڥ ٯͷڥͩͱɼ5$1ΑΓੑೳ͕ѱ͘ͳΔ͜ͱ w 5$1ΘΕ͍ͯΔͷͰόΩόΩʹ࠷దԽ͞ΕͯΔ w 26*$ϢʔβεϖʔεͰಈ࡞͢ΔͨΊɼ04εέδϡʔϥͷಈ࡞ΧʔωϧεϖʔεͰಈ͘5$1ͱҟͳΔ wར༻Ͱ͖ͳ͍ ϑΝΠΞΥʔϧͰ26*$·ͨ6%1͕ϒϩοΫ͞ΕΔՄೳੑ w (PPHMFͷܭଌ࣮ݧͷੳ݁Ռ͔ΒɼશମͷͰ26*$͕ϒϩοΫ͞Ε͍ͯΔ w اۀωοτϫʔΫͷதʹ͍Δ߹͕ଟ͍ 33 -
QUICͷ͜Ε͔Β wݱࡏWͷ༷ݕ౼த ඪ४Խ·Ͱͷ࣌ؒΛॖ͢ΔͨΊɼ8FC༻్ʹݶఆ͠ػೳߜͬ ͍ͯΔ wͦͷޙͷ֦ு )551ετϦʔϜͷ༏ઌ੍ޚ %/4PWFS26*$
.VMUJQBUI26*$ 8FC5SBOTQPSUʢ8FC4PDLFUͷΑ͏ͳΫϥΠΞϯτɼαʔόؒ ͷํ௨৴ʣ 34 -
·ͱΊ w26*$ͷಛͭ σϓϩΠ͕؆୯ ߋ৽͕؆୯ ϋϯυγΣΠΫͷԆ͕খ͍͞ )P-ϒϩοΩϯάͷӨڹΛड͚ͮΒ͍
w26*$ߴԆɼߴଛࣦͷڥͰޮՌΛൃش͢Δ w26*$͍͍ͧ 5$1ʹ͋ͬͨΖΖͷ՝Λ͏·͘ղܾ͍ͯ͠Δͱ͜Ζ͕͋ͬ ͯ໘ന͍ 35 -
ࢀߟจݙ "EBN-BOHMFZ 5IFRVJDUSBOTQPSUQSPUPDPM%FTJHOBOE JOUFSOFUTDBMFEFQMPZNFOU*O1SPDFFEJOHTPGUIF $POGFSFODFPGUIF"$.4QFDJBM*OUFSFTU(SPVQPO%BUB $PNNVOJDBUJPO QBHFTr"$.
.JLF#JTIPQ )ZQFSUFYUUSBOTGFSQSPUPDPMWFSTJPO )551 *OUFSOFU%SBGUESBGUJFUGRVJDIUUQ *OUFSOFU &OHJOFFSJOH5BTL'PSDF +*ZFOHBS 26*$"6%1#BTFE.VMUJQMFYFEBOE4FDVSF 5SBOTQPSUESBGUJFUGRVJDUSBOTQPSU *OUFSOFU &OHJOFFSJOH5BTL'PSDF 36