chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SPDY和QUIC的特性及定義

jf_78858299 ? 來(lái)源:思否segmentfault ? 作者:Nero ? 2023-02-13 14:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、開(kāi)拓者:SPDY

1. 簡(jiǎn)介:

spdy 是由google推行的,改進(jìn)版本的HTTP1.1 (那時(shí)候還沒(méi)有HTTP2)。它基于TCP協(xié)議,在HTTP的基礎(chǔ)上,結(jié)合HTTP1.X的多個(gè)痛點(diǎn)進(jìn)行改進(jìn)和升級(jí)的產(chǎn)物。它的出現(xiàn)使web的加載速度有極大的提高。HTTP2也借鑒了很多spdy的特性。

2. 特性:

上一篇文章中有介紹,基本和HTTP2差不多,這里就不贅述了:

  • 多路復(fù)用
  • 頭部壓縮
  • 服務(wù)器推送
  • 請(qǐng)求優(yōu)先級(jí)
  • spdy的架構(gòu)圖:

圖片

3. 現(xiàn)狀:

在HTTP2未推出之前,spdy在業(yè)界內(nèi)已經(jīng)有一定的市場(chǎng)占用量,并且它的成績(jī)也是不容忽視的,因此在很長(zhǎng)一段時(shí)間,市場(chǎng)上可能會(huì)見(jiàn)到spdy和h2同時(shí)使用的場(chǎng)景。

二、顛覆者:QUIC

1. 前置知識(shí):

TCP 與 UDP

TCP(Transmission Control Protocol 傳輸控制協(xié)議) 是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

1)提供IP環(huán)境下的數(shù)據(jù)可靠傳輸(一臺(tái)計(jì)算機(jī)發(fā)出的字節(jié)流會(huì)無(wú)差錯(cuò)的發(fā)往網(wǎng)絡(luò)上的其他計(jì)算機(jī),而且計(jì)算機(jī)A接收數(shù)據(jù)包的時(shí)候,也會(huì)向計(jì)算機(jī)B回發(fā)數(shù)據(jù)包,這也會(huì)產(chǎn)生部分通信量),有效流控,全雙工操作(數(shù)據(jù)在兩個(gè)方向上能同時(shí)傳遞),多路復(fù)用服務(wù),是面向連接,端到端的傳輸;

2)面向連接:正式通信前必須要與對(duì)方建立連接。事先為所發(fā)送的數(shù)據(jù)開(kāi)辟出連接好的通道,然后再進(jìn)行數(shù)據(jù)發(fā)送,像打電話。

3)TCP支持的應(yīng)用協(xié)議:Telnet(遠(yuǎn)程登錄)、FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳輸協(xié)議)。TCP用于傳輸數(shù)據(jù)量大,可靠性要求高的應(yīng)用。

UDP(User Datagram Protocol用戶數(shù)據(jù)報(bào)協(xié)議) 是OSI(Open System Interconnection,開(kāi)放式系統(tǒng)互聯(lián)) 參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。

  1. 面向非連接的(正式通信前不必與對(duì)方建立連接,不管對(duì)方狀態(tài)就直接發(fā)送,像短信,QQ),不能提供可靠性、流控、差錯(cuò)恢復(fù)功能。UDP用于一次只傳送少量數(shù)據(jù),可靠性要求低、傳輸經(jīng)濟(jì)等應(yīng)用。
  2. UDP支持的應(yīng)用協(xié)議:NFS(網(wǎng)絡(luò)文件系統(tǒng))、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理系統(tǒng))、DNS(主域名稱系統(tǒng))、TFTP(通用文件傳輸協(xié)議)等。

總的來(lái)說(shuō):

TCP:面向連接、傳輸可靠(保證數(shù)據(jù)正確性,保證數(shù)據(jù)順序)、用于傳輸大量數(shù)據(jù)(流模式)、速度慢,建立連接需要開(kāi)銷較多(時(shí)間,系統(tǒng)資源)。

UDP:面向非連接、傳輸不可靠、用于傳輸少量數(shù)據(jù)(數(shù)據(jù)包模式)、速度快。

Diffie-Hellman 算法

圖片

D-H算法的數(shù)學(xué)基礎(chǔ)是離散對(duì)數(shù)的數(shù)學(xué)難題,其加密過(guò)程如下:

(1)客戶端與服務(wù)端確定兩個(gè)大素?cái)?shù) n和 g,這兩個(gè)數(shù)不用保密

(2)客戶端選擇另一個(gè)大隨機(jī)數(shù)x,并計(jì)算A如下:A = g^x mod n

(3)客戶端將 A 發(fā)給服務(wù)端

(4)服務(wù)端選擇另一個(gè)大隨機(jī)數(shù)y,并計(jì)算B如下:B = g^y mod n

(5)服務(wù)端將B發(fā)給客戶端

(7)計(jì)算秘密密鑰K1如下:K1=B^2 mod n , 計(jì)算秘密密鑰K2如下:K2=A^y mod n , K1=K2,因此服務(wù)端和客戶端可以用其進(jìn)行加解密

攻擊者知道n和g,并且截獲了A和B,但是當(dāng)它們都是非常大的數(shù)的時(shí)候,依靠這四個(gè)數(shù)來(lái)計(jì)算k1和k2非常困難,這就是離散對(duì)數(shù)數(shù)學(xué)難題。

2. 什么是QUIC?

quic 是google推出的,基于UDP的高效可靠協(xié)議。quic在UDP的基礎(chǔ)上實(shí)現(xiàn)了TCP的一些特性,而由于底層使用的是UDP,所以傳輸效率比TCP高效。

3. 特性

a. 基于UDP建立的連接:

我們知道,基于TCP的協(xié)議,如http2,在首次建立連接的時(shí)候需要進(jìn)行三次握手,即至少需要3個(gè)ntt,而考慮安全HTTPS的TLS層,又需要至少次的通信才能協(xié)商出密鑰。這在短連接的場(chǎng)景中極大的增加了網(wǎng)絡(luò)延遲,而這種延遲是無(wú)法避免的。

而基于UDP的quic協(xié)議,則不需要3次握手的過(guò)程,甚至在安全協(xié)商階段只需要進(jìn)行1~2次的協(xié)商通信,即可建立安全穩(wěn)定的連接,極大的減少了網(wǎng)絡(luò)延遲。

圖片

b. 基于Diffie-Hellman的加密算法:

HTTPS 使用的是 TLS + SSL 的加密手段,在交換證書(shū)、協(xié)商密鑰的過(guò)程中,至少需要2次ntt進(jìn)行協(xié)商通信。而quic使用了Diffie-Hellman算法,算法的原理使得客戶端和瀏覽器之間只需要1次的協(xié)商就能獲得通信密鑰,quic建立安全鏈接的詳細(xì)過(guò)程:

圖片

  • 客戶端發(fā)起Inchoate client hello
  • 服務(wù)器返回Rejection,包括密鑰交換算法的公鑰信息,算法信息,證書(shū)信息等被放到server config中傳給客戶端
  • 客戶端發(fā)起client hello,包括客戶端公鑰信息

c. 改進(jìn)的多路復(fù)用

我們知道,無(wú)論是HTTP2還是SPDY,基于TCP的協(xié)議盡管實(shí)現(xiàn)了多路復(fù)用,但仍然沒(méi)有避免隊(duì)頭阻塞的問(wèn)題,這個(gè)問(wèn)題是由于TCP底層的實(shí)現(xiàn)造成的,即TCP的包有嚴(yán)格的順序控制,前序包如果丟失,則后續(xù)包即使返回了也不會(huì)通知到應(yīng)用層協(xié)議,從而導(dǎo)致了前序包阻塞。而quic基于UDP則天然的避免了這個(gè)問(wèn)題,由于UDP沒(méi)有嚴(yán)格的包順序,一個(gè)包的阻塞只會(huì)影響它自身,并不會(huì)影響到其他資源,且quic也實(shí)現(xiàn)了類似HTTP2的多路復(fù)用,這種沒(méi)有隊(duì)頭阻塞的多路復(fù)用對(duì)延遲的降低是顯而易見(jiàn)的。

d. 連接的遷移

在以往的基于TCP的協(xié)議中,往往使用四元組(源IP,源端口,目的IP,目的端口)來(lái)標(biāo)識(shí)一條連接,當(dāng)四元組中的IP或端口任一個(gè)發(fā)生變化了連接就需要重新建立,從而不具備連接遷移的能力。

而QUIC使用了connection id對(duì)連接進(jìn)行唯一標(biāo)識(shí)。即使網(wǎng)絡(luò)從4G變成了wifi,只要兩次連接中的connection id不變,并且客戶端或者服務(wù)器能通過(guò)校驗(yàn),就不需要重新建立連接,連接遷移就能成功。

這在移動(dòng)端場(chǎng)景的優(yōu)勢(shì)極為明顯,因?yàn)?a target="_blank">手機(jī)經(jīng)常會(huì)在wifi和4g中切換,使用quic協(xié)議降低了重建連接的成本。

e. 協(xié)商的升級(jí)

在chorme瀏覽器中,發(fā)起一個(gè)TCP請(qǐng)求,這個(gè)請(qǐng)求會(huì)同時(shí)與服務(wù)器開(kāi)始建立tcp 和 quic 的連接(前提是服務(wù)器支持),如果quic連接先建立成功,則使用quic建立的連接通信,反之,則使用tcp建立的連接進(jìn)行通信。具體步驟如下:

  • 1、客戶端發(fā)出tcp請(qǐng)求
  • 2、服務(wù)端如果支持quic可以通過(guò)響應(yīng)頭alt-svc告知客戶端
  • 3、客戶端同時(shí)發(fā)起tcp連接和quic連接競(jìng)賽
  • 4、一旦quic建立連接獲勝則采用quic協(xié)議發(fā)送請(qǐng)求
  • 5、如遇網(wǎng)絡(luò)或服務(wù)器不支持quic/udp,客戶端標(biāo)記quic為broken
  • 6、傳輸中的請(qǐng)求通過(guò)tcp重發(fā)
  • 7、5min后嘗試重試quic,下一次嘗試增大到10min
  • 8、一旦再次成功采用quic并把broken標(biāo)記取消

其中,支持quic的alt-svc頭部信息如下圖示:

圖片

d. 其他特性:

  • 改進(jìn)的擁塞控制
  • 丟包恢復(fù)
  • 底層的連接持久化
  • head stream 保證包順序
  • 雙級(jí)別流量控制

三、總結(jié)與思考

在web通信協(xié)議的演進(jìn)中,SPDY是不可或缺的角色,在沒(méi)有HTTP2的時(shí)代,它的出現(xiàn)極大的提升了網(wǎng)頁(yè)加載速度,甚至HTTP2也是吸取了它很多的特性而制定的,是當(dāng)之無(wú)愧的開(kāi)拓者。而在有HTTP2的今天,quic協(xié)議的出現(xiàn)無(wú)異于對(duì)TCP的顛覆,它在底層拋棄了傳統(tǒng)的TCP,而使用高效的UDP,并實(shí)現(xiàn)了TCP的特性,并且沒(méi)有修改到應(yīng)用層協(xié)議,我們可以無(wú)縫的基于原有的規(guī)范去開(kāi)發(fā)。最后,這兩東西居然都是google提出并推行的。只能說(shuō)google真的牛叉~

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    33206
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    330

    瀏覽量

    34613
  • OSI
    OSI
    +關(guān)注

    關(guān)注

    0

    文章

    85

    瀏覽量

    15646
  • SPDY
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    4966
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是QUIC協(xié)議?

    Quic
    電子學(xué)習(xí)
    發(fā)布于 :2023年02月08日 11:25:15

    請(qǐng)問(wèn)為什么需要QUIC

    請(qǐng)問(wèn)為什么需要QUIC?
    發(fā)表于 10-25 06:32

    Google開(kāi)發(fā)新網(wǎng)絡(luò)協(xié)議“SPDY” 可提速55%

    Google開(kāi)發(fā)新網(wǎng)絡(luò)協(xié)議“SPDY” 可提速55% 北京時(shí)間11月13日消息,據(jù)國(guó)外媒體報(bào)道, Google宣布正在開(kāi)發(fā)一種新的網(wǎng)絡(luò)協(xié)議,可大幅度提升
    發(fā)表于 11-13 17:26 ?540次閱讀

    什么是SPDY

    什么是SPDY SPDY是GOOGLE正在開(kāi)發(fā)一種新的網(wǎng)絡(luò)協(xié)議,可大幅度提升網(wǎng)絡(luò)傳輸速度。 Google在其官方博客中宣布,
    發(fā)表于 11-13 17:33 ?1296次閱讀

    QUIC在CDN 超遠(yuǎn)節(jié)點(diǎn)間的互聯(lián)應(yīng)用

    QUIC在CDN 超遠(yuǎn)節(jié)點(diǎn)間的互聯(lián)應(yīng)用 導(dǎo)語(yǔ):2018年11月13~14日,由亞太CDN聯(lián)盟主辦的第七屆GFIC全球家庭互聯(lián)網(wǎng)大會(huì)在上海舉辦, 藍(lán)汛ChinaCache資深架構(gòu)師王立鷗先生分享了
    發(fā)表于 11-30 20:38 ?601次閱讀

    什么是QUIC和HTTP/3呢?

    今天,QUIC和HTTP/3在我們的互聯(lián)網(wǎng)通信中使用率超過(guò)75%(我們將QUIC和HTTP/3統(tǒng)稱為QUIC)。QUIC已經(jīng)顯著地改善多個(gè)指標(biāo),包括請(qǐng)求錯(cuò)誤、尾延遲(Tail Late
    的頭像 發(fā)表于 11-02 10:04 ?6223次閱讀

    發(fā)明QUIC的原因以及QUIC的使用人群

    QUIC出現(xiàn)以前,TCP的主要替代選擇是UDP。簡(jiǎn)而言之,TCP提供了可靠的互聯(lián)網(wǎng)傳輸,其中可以確保數(shù)據(jù)的傳輸,而UDP提供了更快、但卻非可靠的傳輸。QUIC的目的就是結(jié)合TCP的最佳特性和UDP傳輸層。
    的頭像 發(fā)表于 06-08 10:13 ?2151次閱讀

    深入探索使用QUIC的優(yōu)勢(shì)和劣勢(shì)

    TCP沒(méi)有任何版本協(xié)商(version negotiation)擴(kuò)展位,相比之下,QUIC有32位,所以它有很多空間部署新版本,廠商也可以利用這些空間定義自己的專屬版本。
    的頭像 發(fā)表于 06-09 10:06 ?4299次閱讀

    QUIC快速UDP互聯(lián)網(wǎng)連接協(xié)議

    ./oschina_soft/proto-quic.zip
    發(fā)表于 06-13 10:27 ?5次下載
    <b class='flag-5'>QUIC</b>快速UDP互聯(lián)網(wǎng)連接協(xié)議

    QUIC通信協(xié)議到底講了什么?

    QUIC(Quick UDP Internet Connection)是谷歌制定的一種基于UDP的低時(shí)延的互聯(lián)網(wǎng)傳輸層協(xié)議,很好地解決了當(dāng)今傳輸層和應(yīng)用層面臨的各種需求,包括處理更多的連接,低延遲以及安全性保障等,目前QUIC開(kāi)始了它的標(biāo)準(zhǔn)化過(guò)程,已經(jīng)成為新一代傳輸層協(xié)議
    的頭像 發(fā)表于 12-14 10:24 ?1277次閱讀

    什么是QUIC,QUIC在MQTT通信場(chǎng)景中的應(yīng)用前景

    QUIC(Quick UDP Internet Connection)是Google提出的一個(gè)基于UDP的傳輸協(xié)議,因其高效的傳輸效率和多路并發(fā)的能力,已經(jīng)成為下一代互聯(lián)網(wǎng)協(xié)議HTTP/3的底層傳輸協(xié)議,2021年5月IETF公布RFC9000,QUIC規(guī)范推出了標(biāo)準(zhǔn)化版
    發(fā)表于 12-26 11:56 ?4757次閱讀

    QUIC是如何工作的?為什么HTTP/3要選擇QUIC協(xié)議?

    QUIC發(fā)布之前,HTTP 使用 TCP 作為傳輸數(shù)據(jù)的底層協(xié)議。隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,人們對(duì)實(shí)時(shí)交互和多樣化網(wǎng)絡(luò)場(chǎng)景的需求越來(lái)越大。
    的頭像 發(fā)表于 08-10 17:21 ?2807次閱讀
    <b class='flag-5'>QUIC</b>是如何工作的?為什么HTTP/3要選擇<b class='flag-5'>QUIC</b>協(xié)議?

    一文讀懂QUIC協(xié)議:更快、更穩(wěn)、更高效的網(wǎng)絡(luò)通信

    HTTP/3 是第三個(gè)主要版本的 HTTP 協(xié)議。與其前任 HTTP/1.1 和 HTTP/2 不同,在 HTTP/3 中,棄用 TCP 協(xié)議,改為使用基于 UDP 協(xié)議的 QUIC 協(xié)議實(shí)現(xiàn)。所以
    的頭像 發(fā)表于 08-24 15:43 ?2380次閱讀
    一文讀懂<b class='flag-5'>QUIC</b>協(xié)議:更快、更穩(wěn)、更高效的網(wǎng)絡(luò)通信

    QUIC協(xié)議的特性、原理及應(yīng)用場(chǎng)景

    QUIC(Quick UDP Internet Connection,快速UDP網(wǎng)絡(luò)連接)發(fā)音同 "quick",是 Google 公司在 2012 年提出的使用 UDP 進(jìn)行多路并發(fā)傳輸?shù)膮f(xié)議。
    的頭像 發(fā)表于 09-15 11:21 ?6424次閱讀
    <b class='flag-5'>QUIC</b>協(xié)議的<b class='flag-5'>特性</b>、原理及應(yīng)用場(chǎng)景

    UDP的特性與應(yīng)用場(chǎng)景

    一、UDP的特性與應(yīng)用場(chǎng)景 采用UDP有3個(gè)關(guān)鍵點(diǎn): 網(wǎng)絡(luò)帶寬需求較小,而實(shí)時(shí)性要求高 大部分應(yīng)用無(wú)需維持連接 需要低功耗 應(yīng)用場(chǎng)景: 網(wǎng)頁(yè)瀏覽:新浪微博就已經(jīng)用了QUIC協(xié)議 流媒體:WebRTC
    的頭像 發(fā)表于 11-13 15:34 ?1376次閱讀
    UDP的<b class='flag-5'>特性</b>與應(yīng)用場(chǎng)景