MultipathQUIClinux编译 参考原作者QuentinDeConinck的编译教程(https:multipathquic。org20171209artifactsavailable。html)gogitinstallinstallgo1。9Downloadthegolangarchivewgethttps:redirector。gvt1。comedgedlgogo1。9。2。linuxamd64。tar。gzExtractthearchivesudotarCusrlocalxzfgo1。9。2。linuxamd64。tar。gzAddgotoyourPATHin。profileechoexportPATHPATH:usrlocalgobin。profileReloadthe。profilesource。profileThisshouldreturnyourgoversiongoversionsudoaptgetinstallgitMultipathQUICbuildGetupstreamquicgocodegogetgithub。comlucasclementequicgoAddthempquicremoteandcheckouttotheprototypebranchcdgosrcgithub。comlucasclementequicgogitremoteaddmpquichttps:github。comqdeconinckmpquic。gitgitfetchmpquicgitcheckoutconext17Downloadalldependencypackagesgogettu。。。。cdgosrcgithub。combifurcationmintgitresetharda6080d464fb57a9330c2124ffb62f3c233e3400ecdgosrcgolang。orgxcryptogitresethardd16218638d0ddeca135cea78b4b479f8a705eec0Checkthatnomorebuildissuesarisecdgosrcgithub。comlucasclementequicgogobuildMultipathQUIC几处代码修改Replacethehardcodedurlquic。clemente。ioatquicgointernalhandshakecryptosetupclient。goinmpquicprojectwithh。hostname Interfacenameinifstatementjudgmentneedtoeditbyrealenvatline203inquicgopconnmanager。go YoucanchangeschedulerselectPathfunctionreturnstatementatline208inquicgoscheduler。goaftereditneedrebuildcdgosrcgithub。comlucasclementequicgogobuildMultipathQUIC说明 MPQUIC作为传输层多路径解决方案,和MPTCP大框架一样需要解决三个关键问题:多路径管理、多路径调度分包及多路径拥塞控制算法。 作者QuentinDeConinck在MPQUIC实现上参考MPTCP,针对如上三个问题实现上如下所述:多路径管理目前硬编码哪些接口建立路径(quicgopconnmanager。go);多路径调度分包默认使用最优RTT算法(LowLatency),支持了RoundRobin分包算法(quicgoscheduler。go);多路径拥塞控制算法默认使用Olia算法,支持了Cubic算法(quicgocongrestion)