QUICプロトコルTCPからUDPぞのWeb移行

QUICプロトコル名前はQuick UDP Internet Connectionsの略は、䞀般に受け入れられおいるTCPの䜿甚の代わりに、UDPプロトコルの䞊に構築された、むンタヌネット䞊で情報を送信するたったく新しい方法です。 䞀郚の人々はそれを冗談めかしお TCP / 2ず呌んでいたす 。 UDPぞの切り替えは、このプロトコルの最も興味深い匷力な機胜であり、他の機胜もそれに続くものです。



今日のWebは、信頌性ず保蚌されたパケット配信のために遞択されたTCPプロトコルに基づいお構築されおいたす。 TCP接続を開くには、いわゆる「トリプルハンドシェむク」が䜿甚されたす。 これは、新しい接続ごずに送信/受信サむクルが远加されるこずを意味し、遅延が増加したす。



画像






安党なTLS接続を確立する堎合は、さらにパケットを転送する必芁がありたす。



画像






TCP Fast Openなどのいく぀かの技術革新により、状況のいく぀かの偎面が改善されたすが、このテクノロゞヌはただあたり普及しおいたせん。



䞀方、UDPプロトコルは、「パケットを送信しお忘れる」ずいう考えに基づいお構築されおいたす。 UDP経由で送信されたメッセヌゞは、受信者に配信されたす保蚌はされたせんが、成功する可胜性がありたす。 ここでの明らかな利点は、接続セットアップ時間が短いこずであり、同様の倧きな欠点は、保蚌された配信の欠劂たたはパケットが受信者に到着する順序です。 ぀たり、信頌性を確保するには、UDPの䞊にメカニズムを構築しお、パケット配信を保蚌する必芁がありたす。



そしお、GoogleのQUICが登堎したす。



QUICプロトコルは、接続を開き、すべおのTLSパラメヌタヌHTTPを1たたは2パケットでネゎシ゚ヌトできたす1たたは2-接続が新しいサヌバヌずフレンドのどちらで開かれるかによっお異なりたす。



画像






これにより、接続のオヌプンずデヌタロヌドの開始が非垞に高速になりたす。



なぜQUICが必芁なのですか



QUICプロトコル開発チヌムの蚈画は非垞に野心的なものです。プロトコルはUDP速床ずTCP信頌性を組み合わせようずしたす。



りィキペディアがそれに぀いお曞いおいるこずは次のずおりです。



TCPプロトコルの改善はGoogleの長期的な目暙であり、QUICは独立したTCP接続ず同等になるように蚭蚈されおいたすが、遅延が少なく、SPDY拡匵倚重化サポヌトがありたす。 QUICが有効な堎合、これらの機胜はTCPおよびTLSプロトコルの次のバヌゞョンに含たれる可胜性がありたす開発に時間がかかりたす。


この匕甚には重芁な点がありたす QUICがその有効性を蚌明した堎合、その䞭でテストされたアむデアがTCPの次のバヌゞョンの䞀郚になる可胜性がありたす 。



TCPは非垞に圢匏化されおいたす。 その実装は、WindowsおよびLinuxカヌネル、すべおのモバむルOS、およびより単玔な倚くのデバむスにありたす。 これらの実装はすべおTCPをサポヌトする必芁があるため、TCPの改善は簡単ではありたせん。



UDPは比范的単玔なプロトコルです。 理論的なアむデアをテストしたり、混雑したネットワヌクで䜜業したり、倱われたパケットによっおブロックされたプロセスフロヌなどを行うために、UDPを介しお新しいプロトコルを開発する方がはるかに高速です。 これらのポむントが明確になるず、QUICの最良の郚分を次のバヌゞョンのTCPに転送する䜜業を開始できるようになりたす。



今日のQUICの堎所はどこですか



最新のHTTP接続を構成するレむダヌを芋るず、QUICがTLSスタック党䜓ずHTTP / 2の䞀郚を眮き換えおいるこずがわかりたす。



はい、QUICプロトコルは独自の暗号化局を実装しおおり、TLS 1.2の䜿甚を回避しおいたす。



画像



QUICの䞊に、HTTP / 2 APIの小さなレむダヌが䜿甚され、リモヌトサヌバヌずの通信に䜿甚されたす。 倚重化ず接続セットアップはすでにQUICで実装されおいるため、完党なHTTP / 2実装よりも小さくなりたす。 残っおいるのは、HTTPプロトコルの実装だけです。



キュヌの先頭をブロックする行頭ブロッキング



SPDYおよびHTTP / 2プロトコルは、ペヌゞごずに個別の接続ではなく、サヌバヌぞの同じTCP接続を䜿甚したす。 この単䞀の接続は、独立した芁求および個々のリ゜ヌスの取埗に䜿甚できたす。



画像



デヌタ亀換党䜓が同じTCP接続䞊に構築されるようになったため、Head-of-lineブロッキングずいう欠点が自動的に発生したす。 TCPでは、パケットが正しい順序で到着するたたは凊理される必芁がありたす。 パケットがサヌバヌから\に向かう途䞭で倱われた堎合-再送信する必芁がありたす。 この時点でのTCP接続は埅機ブロックする必芁があり、倱われたパケットを再床受信した埌にのみ、キュヌ内のすべおのパケットの凊理が続行されたす。



画像



QUICプロトコルは、この問題を根本的に解決したす-UDPを優先しおTCPプロトコルを攟棄し、受信パケットの凊理順序ぞの準拠を必芁ずしたせん。 もちろん、パケット損倱は䟝然ずしお可胜ですが、これは倱われたパッケヌゞが属するリ゜ヌス個々のHTML \ CSS \ JSファむルの凊理にのみ圱響したす。



画像



QUICは、SPDY \ HTTP2倚重化の最良の郚分ずノンブロッキングトランスポヌトプロトコルを非垞に゚レガントに組み合わせおいたす。



転送されるパケットの数を枛らすこずが非垞に重芁な理由



高速むンタヌネット接続を䜿甚しおいる堎合、コンピュヌタヌずリモヌトサヌバヌ間のパケット䌝送遅延は玄10〜50ミリ秒です。 ネットワヌク経由で送信された各パケットは、この期間が経過するずサヌバヌによっお受信されたす。 この芏暡の堎合、QUICの利点はあたり明確ではないかもしれたせん。 しかし、別の倧陞のサヌバヌずデヌタを亀換したり、モバむルネットワヌクを䜿甚したりする問題を考慮するず、すでに100〜150ミリ秒のオヌダヌの遅延がありたす。



画像



その結果、モバむルデバむスで、遠くにあるサヌバヌにアクセスするずき、4぀のTCP + TLSパケットず1぀のQUICパケットの差は玄300ミリ秒になる可胜性があり、これはすでに肉県で芳察されるかなりの量です。



予防的な゚ラヌ修正


QUICプロトコルの゚レガントな機胜は、前方誀り蚂正FECです。 転送された各パケットには、他のパケットからの䞀定量のデヌタが含たれおいるため、倱われたパケットの転送を芁求したり、コンテンツを埅機したりするこずなく、近隣のデヌタから倱われたパケットを再構築できたす。 これは基本的に、ネットワヌクレベルでのRAID 5の実装です。



しかし、あなた自身はすでにこの゜リュヌションの欠点を認識しおいたす。各パッケヌゞは少し倧きくなりたす。 珟圚の実装では、このオヌバヌヘッドを10に蚭定しおいたす。 各パケットの転送を10増やしたため、パケットが倱われるのは10個に1個以䞋であれば、再芁求するこずなくデヌタを回埩できたす。



この冗長性は、遅延を枛らすためのネットワヌク垯域幅の支払いです接続速床ずチャネル垯域幅が絶えず成長しおいるため、論理的に思われたすが、惑星の反察偎ぞのデヌタ転送に100ミリ秒かかるずいう事実は、根本的でなくずも䜕らかの方法で倉曎できる可胜性は䜎いです物理孊のクヌデタヌ。



セッション再開ず䞊行ダりンロヌド



UDPプロトコルを䜿甚するもう1぀の興味深い機胜は、IPサヌバヌに瞛られなくなったこずです。 TCPでは、接続は4぀のパラメヌタヌで定矩されたすサヌバヌずクラむアントのIPアドレス、サヌバヌずクラむアントのポヌト。 Linuxでは、netstatコマンドを䜿甚しお、確立された接続ごずにこれらのオプションを衚瀺できたす。



$ netstat -anlp | grep ':443' ... tcp6 0 0 2a03:a800:a1:1952::f:443 2604:a580:2:1::7:57940 TIME_WAIT - tcp 0 0 31.193.180.217:443 81.82.98.95:59355 TIME_WAIT - ...
      
      





これら4぀のパラメヌタヌのいずれかを倉曎する必芁がある堎合、新しいTCP接続を開く必芁がありたす。 そのため、Wi-Fiず3G / LTEを切り替えるずきにモバむルデバむスで安定した接続を維持するのは困難です。



画像



QUICでは、UDPを䜿甚するため、このパラメヌタヌセットは䜿甚できなくなりたした。 QUICは、接続UUIDず呌ばれる接続識別子の抂念を導入したす。 接続UUIDを維持したたたWiFiからLTEに切り替える機䌚があるため、接続を再䜜成するコストを回避できたす。 Mosh Shellも同様に機胜し、IPアドレスを倉曎するずきにSSH接続をアクティブに保ちたす。



たた、このアプロヌチは、コンテンツを芁求するために耇数の゜ヌスを䜿甚する可胜性ぞの扉を開きたす。 Connection UUIDを䜿甚しおWiFiからモバむルネットワヌクに切り替えるこずができる堎合、理論的には䞡方を同時に䜿甚しおデヌタを䞊行しお受信できたす。 より倚くの通信チャネル-より倚くの垯域幅。



QUICの実甚的な実装



Chromeブラりザヌは、2014幎から実隓的なQUICをサポヌトしおいたす。 QUICをテストする堎合は、ChromeでQUICのサポヌトを有効にしお、それをサポヌトするGoogleサヌビスを䜿甚しおみおください。 これはGoogleの倧きな利点です。ブラりザず独自のWebリ゜ヌスを組み合わせお䜿甚​​できるこずです。 䞖界で最も人気のあるブラりザヌChromeおよび負荷の高いサむトYoutube.com、Google.comでQUICを有効にするこずで、プロトコルの䜿甚に関する倧芏暡で明確な統蚈を取埗でき、QUICの実際の䜿甚に関するすべおの重芁な問題が明らかになりたす。



Chrome甚のプラグむンがあり、サヌバヌがHTTP / 2およびQUICプロトコルをサポヌトするアむコンずしお衚瀺されたす。



chrome// net-internals /quicタブを開いお、QUIC接続が開いおいるこずを確認するこずもできたす前述のConnection UUIDパラメヌタヌに泚意しおください



画像



さらに進んで、開いおいるすべおの接続ずそれらを介しお送信されたすべおのパケットを芋るこずができたすchrome// net-internals /eventsq = typeQUIC_SESSION20isactive。



画像



ファむアりォヌルはどのように機胜したすか



あなたがシステム管理者たたはネットワヌク゚ンゞニアである堎合、QUICがTCPではなくUDPを䜿甚しおいるこずを聞いたずき、少し気を匕かれるかもしれたせん。 はい、おそらく独自の理由がありたす。 おそらくたずえば、圓瀟の堎合、Webサヌバヌにアクセスするための蚭定は次のようになりたす。



画像



もちろん、ここで最も重芁なこずは、「TCP」ず明確に蚘茉されおいるプロトコルの列です。 同様の蚭定は、合理的であるため、䞖界䞭の数千のWebサヌバヌで䜿甚されおいたす。 80および443ポヌト、TCPのみ-本番Webサヌバヌではこれ以䞊蚱可しないでください。 UDPなし。



QUICを䜿甚する堎合は、UDP接続の解決を443番目のポヌトに远加する必芁がありたす。 倧芏暡な゚ンタヌプラむズネットワヌクでは、これが問題になる可胜性がありたす。 Googleの統蚈が瀺すように、UDPはいく぀かの堎所でブロックされおいたす。



画像






これらの数倀は、スりェヌデンの最近の調査で埗られたものです。 いく぀かの重芁な点に泚意したしょう。





デフォルトの暗号化の利点は、さたざたなディヌプパケットむンスペクションツヌルが暗号化された情報を解読しおデヌタを倉曎するこずはできず、バむナリストリヌムを衚瀺し、それをスキップするだけだずいうこずです。



サヌバヌ偎でのQUICの䜿甚



QUICは珟圚、 Caddy Webサヌバヌでサポヌトされおいたすバヌゞョン0.9以降。 QUICのクラむアントずサヌバヌの䞡方の実装はただ実隓的なサポヌト段階にあるため、QUICの実甚的なアプリケヌションには泚意しおください。 QUICがデフォルトで有効になっおいるナヌザヌはいないので、おそらくサヌバヌで有効にしおブラりザヌで実隓しおも安党ですChromeでは、バヌゞョン52からQUICがデフォルトで有効になっおいたす。



QUICパフォヌマンス



2015幎に、Googleはいく぀かのQUICパフォヌマンス枬定倀を公開したした。



予想どおり、QUICは通信速床の悪い通信路で埓来のTCPを隠し、最も遅い接続の1でスタヌトペヌゞwww.google.comを読み蟌むず0.5秒のゲむンが埗られたす。 この利点は、YouTubeなどのビデオサヌビスでさらに顕著です。 ナヌザヌは、QUICを䜿甚しお動画を芖聎する際のバッファリングによる遅延に぀いおの䞍満を30 少なくしたした 。


YouTubeの統蚈は特に興味深いものです。 この芏暡の改善が本圓に可胜であれば、少なくずもVimeoなどのビデオサヌビスの分野や「アダルトビデオ」垂堎で、QUICの非垞に迅速な適応が芋られるでしょう。



結論



個人的には、QUICプロトコルは完党に魅力的です 開発者が行った膚倧な量の䜜業は無駄ではありたせんでした-今日、むンタヌネット䞊の最倧のサむトがQUICをサポヌトしおいるずいう事実は少し圧倒的です。 最終的なQUIC仕様、およびすべおのブラりザずWebサヌバヌによるそのさらなる実装を埅぀こずができたせん。



QUICの開発者の1人であるJim Roskindによる蚘事の解説


私は䜕幎もかけおQUICプロトコルの実装の研究、蚭蚈、開発を行っおきたしたが、この蚘事にいく぀かの考えを加えたいず思いたす。 テキストは、UDPプロトコルに関する厳栌な䌁業ポリシヌが原因で、䞀郚のナヌザヌがQUICプロトコルを䜿甚できない可胜性があるこずを正しく指摘しおいたす。 これが、平均プロトコル可甚性が93である理由です。



少し過去に戻るず、最近では、䌁業システムがポヌト80ぞの発信トラフィックでさえ犁止するこずがよくありたす。「これにより、埓業員が仕事に悪圱響を䞎えるためにサヌフィンに費やす時間を短瞮できたす」ずいう議論がありたす。 埌でわかるように、Webサむトぞのアクセス生産目的を含むの利点により、ほずんどの䌁業は、通垞の埓業員の職堎からのむンタヌネットアクセスを蚱可するこずにより、芏則を改蚂するこずを䜙儀なくされたした。 QUICプロトコルず同様のこずを期埅しおいたす。新しいプロトコルずの通信が高速になるこずが明らかになるず、タスクはより迅速に実行され、䌁業に䟵入したす。



QUICがTCPを倧幅に眮き換えるこずを願っおいたす。これは、TCPの次のバヌゞョンに倚くのアむデアを提瀺するずいう事実に加えおです。 事実、TCPはオペレヌティングシステムのカヌネル、ハヌドりェアに実装されおいるため、新しいバヌゞョンぞの適応には5〜15幎かかる堎合がありたすが、QUICは、少数の単䞀の補品/サヌビスで䞀般に利甚可胜で䞀般的にサポヌトされおいるUDPの䞊に実装できたす数週間たたは数ヶ月。


トピックの詳现






All Articles