日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

一、TCP

  • TCP首部
  • 流量控制
  • 擁塞控制
  • 三次握手,四次揮手
  • tcp 怎樣保證數據正確性?

流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個網絡的擁塞程度

1、TCP首部

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

  • 源端口號
  • 目標端口號
  • 32位序列號
  • 32位確認號
  • 首部長度(單位為4字節,默認為5,即20字節)
  • 保留位(6位)
  • 6個控制位(SYN、ACK、FIN、PUSH、URG、RST) SYN:同步序號位,TCP建立連接時要將這個值設為1 ACK:為1表示確認號 FIN:發送端完成位,提出斷開連接的一方把FIN置為1表示要斷開連接 PUSH:急迫位,緩存區將滿,立刻傳輸速度 RST:重置位,連接斷了重新連接 URG:緊急信號
  • 16位窗口大小:接收窗口大小,流量控制使用,如果窗口大小為0,可以發送窗口探測
  • 16位校驗和:校驗和用來做差錯控制,TCP校驗和的計算包括TCP首部、數據和其它填充字節。在發送TCP數據段時,由發送端計算校驗和,當到達目的地時又進行一次檢驗和計算。如果兩次校驗和一致,說明數據是正確的,否則將認為數據被破壞,接收端將丟棄該數據
  • 16位緊急指針:僅在URG控制位為 1 時有效。表示緊急數據的末尾在 TCP 數據部分中的位置。通常在暫時中斷通信時使用(比如輸入 Ctrl + C)

2、流量控制

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

流量控制,就是讓發送方的發送速率不要太快,要讓接收方來得及接收

利用滑動窗口機制可以很方便地在tcp連接上實現對發送方的流量控制

TCP接收方利用自己的接收窗口的大小來限制發送方發送窗口的大小

  • 重傳計時器
  • TCP發送方收到接收方的零窗口通知后,應啟動持續計時器。持續計時器超時后,向接收方發送零窗口探測報文
  • 即使接收窗口為0,接收方也會接收:零窗口探測報文段、確認報文段、攜帶緊急數據的報文段

TCP發送方的發送窗口大小 = Math.min(自身擁塞窗口大小, TCP接收方的接收窗口大小)

3、擁塞控制

什么是擁塞

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

假定條件

數據是單方向發送,而另一方向只傳送確認 接收方總是有足夠大的緩存空間,因而發送方發送窗口的大小由網絡的擁塞程度來決定 以最大報文段MSS的個數為討論問題的單位,而不是以字節為單位

【免費分享】資料包括《Andoird音視頻開發必備手冊+音視頻學習視頻+學習文檔資料包+大廠面試真題+2022最新學習路線圖》等,加Q君羊788280672,領取。

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

部分資料截圖


圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

慢開始 + 擁塞避免算法

MSS:TCP最大報文段 ssthresh:慢開始門限 cwnd:擁塞窗口 swnd:發送窗口 rtt:每次往返時間

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

快重傳

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

慢開始 + 擁塞避免算法中,發送方把擁塞窗口cwnd又設置為1,并錯誤地啟動慢開始算法,降低了傳輸效率

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

收到3個重復確認

  • 接收方收到失序的報文段,立即發出重復確認
  • 發送方收到3個連續的重復確認,立即重傳
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

快恢復

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

慢開始 + 擁塞避免+快重傳 + 快恢復結合

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4、三次握手,四次揮手

4.1 三次握手

  1. 發送端:SYN=1、seq=x
  2. 接收端:ACK=1、ack=x+1、SYN=1、seq=y
  3. 發送端:ACK=1、ack=y+1、seq=x+1

  • TCP規定:SYN被設置為1的報文段不能攜帶數據,但要消耗掉一個序號
  • TCP規定:普通的確認報文段如果不攜帶數據,則不消耗序號
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4.2 四次揮手

  1. 發送端:FIN=1,ACK=1,seq=u,ack=v(u等于發送端已傳送過的數據的最后一個字節序號+1,v等于發送端之前已收到的數據的最后一字節序號+1)
  2. 接收端:ACK=1,ack=u+1,seq=v
  3. 接收端:FIN=1,ACK=1,ack=u+1,seq=w(w:半關閉情況下,可能收到了數據)
  4. 發送端:ACK=1,ack=w+1,seq=u+1

  • TCP規定:終止位FIN等于1的報文段,即使不攜帶數據,也要一個消耗掉一個序號
  • MSL:最長報文段壽命,建議為2分鐘

為什么要等待2MSL?

如果接收端發送FIN連接釋放,發送端接收后發送ACK,如果丟失,會導致接收端超時重傳,而無法進入CLOSED狀態

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4.3 保活計時器

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4.4 半連接隊列

服務器第一次收到客戶端的 SYN 之后,就會處于 SYN_RCVD 狀態,此時雙方還沒有完全建立其連接,服務器會把此種狀態下請求連接放在一個隊列里,我們把這種隊列稱之為半連接隊列

4.5 三次握手能不能改成兩次握手?

  • 不能
  • TCP發送連接請求,但長時間沒到達,然后觸發了超時重傳
  • 又發送了一次,后建立連接,數據傳輸,并斷開了連接
  • 但此時之前沒達到的請求報文段突然又到了接收端服務器,接收端服務器變成了ESTABLISHED狀態
  • 接收端一直在等發送端發送數據,白白浪費了主機很多資源,導致了錯誤
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4.6 四次揮手能不能改成三次揮手?

  • 不能
  • 接收端可能還有數據沒有發送
  • 需要等待一段時間,發送完數據,才會發送FIN

4.7 SYN攻擊

服務器端的資源分配是在二次握手時分配的,而客戶端的資源是在完成三次握手時分配的,所以服務器容易受到SYN洪泛攻擊。SYN攻擊就是Client在短時間內偽造大量不存在的IP地址,并向Server不斷地發送SYN包,Server則回復確認包,并等待Client確認,由于源地址不存在,因此Server需要不斷重發直至超時,這些偽造的SYN包將長時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網絡擁塞甚至系統癱瘓。SYN 攻擊是一種典型的 DoS/DDoS 攻擊。

5、tcp 怎樣保證數據正確性?

差錯控制 發送的數據包的二進制相加然后取反,檢測數據在傳輸過程中的任何變化,如果收到段的檢驗和有差錯,TCP 將丟棄這個報文段和不確認收到此報文段。 編號 + 排序 TCP 給發送的每一個包進行編號,接收方對數據包進行排序,把有序數據傳送給應用層 確認 + 超時重傳的機制 當 TCP 發出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。 流量控制

TCP 連接的每一方都有固定大小的緩沖空間,TCP 的接收端只允許發送端發送接收端緩存區能接納的數據。當接收方來不及處理發送方的數據,能提示發送方降低發送的速率,防止包丟失。TCP 使用的流量控制協議是可變大小的滑動窗口協議。

擁塞控制

當網絡擁塞時,減少數據的發送。發送方有擁塞窗口,發送數據前比對接收方發過來的接收窗口,取兩者的最小值---慢啟動、擁塞避免、擁塞發送、快速恢復

二、UDP

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

三、TCP/UDP對比

TCP/IP協議架構

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

對比

圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

1、是否面向連接

  • UDP:無連接
  • TCP:面向連接(三次握手,四次揮手)
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

2、是否支持廣播和多播

  • UDP:支持一對一,一對多,多對一和多對多交互通信
  • TCP:只能一對一通信
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

3、對應用層報文的處理

  • UDP:面向報文(對應用層交付的報文直接打包)
  • TCP:面向字節流(是tcp實現可靠傳輸,流量控制,擁塞控制的基礎)
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

4、是否提供可靠傳輸

  • UDP:向上提供無連接不可靠服務
  • UDP:適用于實時應用(IP電話、視頻會議等)
  • TCP:向上提供面向連接的可靠服務
  • TCP:適用于要求可靠傳輸的應用,例如文件傳輸
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

5、首部開銷

  • UDP:8個字節
  • TCP:最小20字節,最大60字節
圖解TCP、UDP,流量控制,擁塞控制,一次看懂

 

【免費】
FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級開發-學習視頻教程-騰訊課堂

分享到:
標簽:TCP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定