天天看點

UDP可靠傳輸協定QUIC

1.如何做到可靠性傳輸

a.ACK機制(應答機制)(延遲ACK和非延遲ACK,和ARQ中的累積确認是一回事嗎?)

b.重傳機制 重傳政策

c.序号機制 3 2 1→ 2 3 1

d.重排機制 2 3 1→ 3 2 1

e.視窗機制(流量控制)

①視窗探測(當接收方緩存已滿,發送方啟動一個定時器,每隔一段時間發送視窗探測去詢問接收方有沒有緩存空間,打聽是否可以發送資料,如果可以,接收方就告訴它此時的接收視窗大小,如果接收視窗大小還是為0,則發送方再次重新整理啟動定時器)

②當接收方處理好資料,接收視窗win>0,接收方發送通知封包通知發送方可以繼續發送資料

2.UDP與TCP,我們如何選擇

3.UDP如何可靠,KCP協定在哪些方面有優勢(以10%-20%帶寬浪費的代價換取了比TCP快30%-40%的傳輸速度)

  • 延遲ACK vs 非延遲ACK(TCP 為了充分利用帶寬,延遲發送ACK(NODELAY都沒有),這樣逾時計算會算出較大RTT時間,延長了丢包時的判斷過程。KCP的ACK是否延遲發送可以調節)
  • UNA vs ACK+UNA(在KCP協定中,除去單獨的ACK包外,所有包都有UNA資訊)
  • 非退讓流控(可以配置→udp可控),發送視窗大小由:發送緩存大小、接收端剩餘接收緩存大小、丢包退讓及慢啟動這四要素決定。但傳送及時性要求很高的資料時,可選擇通過配置跳過後兩項,僅用前兩項來控制發送頻率。以犧牲部分公平性及貸款使用率的代價,換取開着BT都能流暢傳輸的效果。

UDP-KCP實時性 > TCP實時性

KCP的帶寬效率能否比TCP更好?

  • 非退讓流控不斷嘗試發送資料時,有效包不多(擁塞的情況下)
  • 每個包都應答,也占用一定的帶寬

是以KCP的帶寬效率沒有TCP的高

4.kCP協定精講(重點講解)

kcp名詞

UDP可靠傳輸協定QUIC
UDP可靠傳輸協定QUIC

kcp會話請求機制

5.QUIC(快速UDP傳輸)時代是否已經到來

DNS查詢目的:采用UDP,發送域名,傳回域名ip,為什麼不用TCP:①考慮實時性(tcp還需三次握手,四次揮手),②考慮資源

UDP可靠傳輸協定QUIC

udp和tcp比較,tcp有序列号字段,udp沒有

ARQ(Automatic Retransmission reQuest 自動重傳請求)協定

  1. 停等協定(stop and wait)
  2. 回退n幀(go-back-n GBN)協定(①檢查發送視窗是否已滿②累積确認③逾時重傳已發送但未被确認的分組)
  3. 選擇重傳(selective-repeat)(與GBN不同,SR的每個分組都有獨立的計時器)

TCP協定通過使用連續ARQ協定和滑動視窗協定,來保證資料傳輸的正确性,進而提供可靠的傳輸。

RTO(Retransmission TimeOut)即重傳逾時時間

RTT(Round-Trip Time)往返時延

RTO >= RTT*1.5倍以上

UDP可靠傳輸協定QUIC

RTT = T1+T2+T3

繼續閱讀