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

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

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

超硬核TCP、UDP基礎(chǔ)知識匯總1

jf_78858299 ? 來源:阿Q正磚 ? 作者:阿Q正磚 ? 2023-02-15 09:57 ? 次閱讀

今天開始進行計算機網(wǎng)絡(luò)相關(guān)的總結(jié)及細節(jié)剖析,將會對??嫉南嚓P(guān)知識進行更詳細的解讀,本章是TCP相關(guān)的,圖文并茂,也是花了作者一個周末時間搞定的,歡迎大家點贊轉(zhuǎn)發(fā)。

那就開始正文嘍~

1、TCP主要特點

1.面向連接:

?TCP連接只能有兩個端點,TCP連接是一對一的。

?TCP提供可靠連接服務(wù)。

?TCP提供全雙工通信

2.面向字節(jié)流:

?TCP和應(yīng)用程序交互是一次一個數(shù)據(jù)塊進行交互。但是TCP會把應(yīng)用程序交下來的數(shù)據(jù)塊看成一串無結(jié)構(gòu)的字節(jié)流。

?TCP報文收發(fā)之間的數(shù)據(jù)塊不一定相同(因為我不一定一次接受多少受網(wǎng)絡(luò)情況,擁塞情況控制)但是字節(jié)流一定相同。

?TCP根據(jù)對方的接收能力和網(wǎng)絡(luò)擁塞情況將字節(jié)流分成大小不同的段發(fā)送給接收緩存。

圖片

3.TCP的連接套接字連接兩端的插口包含IP和端口號。全雙工抽象連接。

2、TCP的報文格式

圖片

1.源端口,目的端口各占兩個字節(jié)是運輸層與應(yīng)用層交互的接口。

2.序號(4B):seq,字節(jié)序號本報文段所攜帶數(shù)據(jù)的第一個字節(jié)的序號。

3.確認號(4B):ack,期望對方下次發(fā)來數(shù)據(jù)的第一個字節(jié)的序號。

4.數(shù)據(jù)偏移(4bit):標(biāo)志著報文段數(shù)據(jù)部分起始位置距離報文段起始位置的距離即首部長度。

5.URG(1B),緊急位置1,立刻將TCP發(fā)送緩存中的字節(jié)流打包成報文發(fā)送出去。

6.ACK(1B),ACK = 1代表確認號有效。

7.PSH(1B),PSH = 1,接收方立刻將接收緩存數(shù)據(jù)上交給應(yīng)用進程。

8.RST(1B),RST = 1,TCP連接中出現(xiàn)嚴(yán)重差錯必須釋放連接然后在重新建立運輸連接。

9.SYN(1B),SYN = 1,表示這是一個連接請求或連接接受的報文。

10.FIN(1B),F(xiàn)IN = 1,用來釋放一個連接。FIN為1表明報文段發(fā)送端已發(fā)送完成,并要求釋放連接。

11.窗口(2B),告訴對方從確認號開始接收方目前允許對方發(fā)送的數(shù)據(jù)量。

12.檢驗和(2B),類似于UDP首部和數(shù)據(jù)這兩部分計算時要在TCP報文段之前加上偽首部。

13.緊急指針,16位,當(dāng)URG = 1時,這部分記錄了緊急數(shù)據(jù)的大小把它放在數(shù)據(jù)部分的最前面發(fā)出去。

14.選項字段:長度可變最大報文段數(shù)據(jù)部分長度MSS,MSS告訴對方TCP我緩存最大能接受的長度為MSS。

MSS太大IP層分片只要有一片出錯就得重傳。

MSS太小效率低下。

15.其它選項:

窗口擴大選項:占3字節(jié),其中一個字節(jié)S為窗口擴大的位數(shù),比如(16+S)但是最大值不能超過30位

時間戳選項:

1.計算往返時延。

發(fā)送時打一個時間戳放在timestamp中,收到確認報文后再打一個時間戳此時將之前的timestamp中的時間放在timestamp echo中然后將收到確認報文的時間戳放在timestamp中二者相減可以得到RTT。

2.防止序號回繞。

由于序號編碼空間是32位的所以一共是2的32次方。對于高帶寬的網(wǎng)絡(luò)很容易消耗完,也就是說接收方可能會收到兩次相同序號的報文,如果不加標(biāo)記,接收方會認為這兩個報文是相同的然后就會丟棄。時間戳選項會將兩個報文標(biāo)記好時間戳這樣接收方就不會丟棄了。

圖片

16.填充。

為了保證TCP首部是4字節(jié)的整數(shù)倍。

3、TCP的可靠傳輸

3.1、TCP連接的兩個端點都有兩個窗口:

發(fā)送窗口:準(zhǔn)備發(fā)送的數(shù)據(jù)和已發(fā)送但未收到確認的數(shù)據(jù)。

接收窗口:按序接收但沒有上交的數(shù)據(jù),不按序接收的數(shù)據(jù)。

圖片

?P3 - P1 = A的發(fā)送窗口(又稱為通知窗口)

?P2 - P1 = 已發(fā)送但尚未收到確認的字節(jié)數(shù)

?P3 - P2 = 允許發(fā)送但尚未發(fā)送的字節(jié)數(shù)(又稱為可用窗口)

如圖所示發(fā)送窗口按序發(fā)送窗口中的字節(jié)流,如果發(fā)送且收到確認則滑出窗口如果已發(fā)送但未收到確認則留在發(fā)送窗口中用來準(zhǔn)備重傳。

接收窗口將按序接收字節(jié)流如果收到的字節(jié)流無序則仍然會留在接收窗口中。比如我先收到了37則37不會被確認交付主機因為前面的34-36還沒有被接收當(dāng)前面的34-36被接收后34-37才會一起被交付主機。

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

    關(guān)注

    0

    文章

    33

    瀏覽量

    9089
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1347

    瀏覽量

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

    關(guān)注

    0

    文章

    322

    瀏覽量

    33849
收藏 人收藏

    評論

    相關(guān)推薦

    詳細的射頻基礎(chǔ)知識

    詳細的射頻基礎(chǔ)知識
    發(fā)表于 11-04 09:09 ?2142次閱讀

    基礎(chǔ)知識匯總!?。?/a>

    基礎(chǔ)知識匯總!
    發(fā)表于 11-07 18:14

    第16章 UDP用戶數(shù)據(jù)報協(xié)議基礎(chǔ)知識

    ) 16.1 初學(xué)者重要提示 16.2 UDP基礎(chǔ)知識參考資料 16.3 UDP基礎(chǔ)知識點 16.4 TCP
    發(fā)表于 11-02 17:27

    TCP協(xié)議基礎(chǔ)知識

    TCP 是互聯(lián)網(wǎng)核心協(xié)議之一,本文介紹它的基礎(chǔ)知識
    的頭像 發(fā)表于 10-16 10:29 ?3585次閱讀
    <b class='flag-5'>TCP</b>協(xié)議<b class='flag-5'>基礎(chǔ)知識</b>

    tcpudp協(xié)議的異同

    UDP 校驗和則是包含 UDP 首部和數(shù)據(jù)在內(nèi)的校驗結(jié)果。 TCP協(xié)議 TCP協(xié)議基于網(wǎng)絡(luò)層的 IP 協(xié)議提供的是有連接、可靠服務(wù),是基于字節(jié)流的。
    的頭像 發(fā)表于 11-12 14:45 ?3986次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>協(xié)議的異同

    分散控制系統(tǒng)DCS基礎(chǔ)知識匯總文件下載

    分散控制系統(tǒng)DCS基礎(chǔ)知識匯總文件下載
    發(fā)表于 04-14 17:10 ?32次下載
    分散控制系統(tǒng)DCS<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>匯總</b>文件下載

    華為EMC基礎(chǔ)知識匯總資源下載

    華為EMC基礎(chǔ)知識匯總資源下載
    發(fā)表于 06-04 11:10 ?127次下載

    傳感器基礎(chǔ)知識及特性資源匯總下載

    傳感器基礎(chǔ)知識及特性資源匯總下載
    發(fā)表于 07-18 09:36 ?25次下載

    硬核TCPUDP基礎(chǔ)知識匯總2

    TCP主要特點** 1.面向連接: ?TCP連接只能有兩個端點,TCP連接是一對一的。 ?TCP提供可靠連接服務(wù)。
    的頭像 發(fā)表于 02-15 09:57 ?756次閱讀
    <b class='flag-5'>超</b><b class='flag-5'>硬核</b><b class='flag-5'>TCP</b>、<b class='flag-5'>UDP</b><b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>匯總</b>2

    硬核TCP、UDP基礎(chǔ)知識匯總3

    TCP主要特點** 1.面向連接: ?TCP連接只能有兩個端點,TCP連接是一對一的。 ?TCP提供可靠連接服務(wù)。
    的頭像 發(fā)表于 02-15 09:57 ?538次閱讀
    <b class='flag-5'>超</b><b class='flag-5'>硬核</b><b class='flag-5'>TCP</b>、<b class='flag-5'>UDP</b><b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>匯總</b>3

    硬核TCP、UDP基礎(chǔ)知識匯總4

    TCP主要特點** 1.面向連接: ?TCP連接只能有兩個端點,TCP連接是一對一的。 ?TCP提供可靠連接服務(wù)。
    的頭像 發(fā)表于 02-15 09:57 ?576次閱讀
    <b class='flag-5'>超</b><b class='flag-5'>硬核</b><b class='flag-5'>TCP</b>、<b class='flag-5'>UDP</b><b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>匯總</b>4

    TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識合集1

    本文主要記錄TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識,采用TCP/UDP實現(xiàn)宿主機和目標(biāo)機之間的網(wǎng)絡(luò)通信。
    的頭像 發(fā)表于 05-18 17:31 ?671次閱讀

    TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識合集2

    本文主要記錄TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識,采用TCP/UDP實現(xiàn)宿主機和目標(biāo)機之間的網(wǎng)絡(luò)通信。
    的頭像 發(fā)表于 05-18 17:31 ?614次閱讀

    TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識合集3

    本文主要記錄TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識,采用TCP/UDP實現(xiàn)宿主機和目標(biāo)機之間的網(wǎng)絡(luò)通信。
    的頭像 發(fā)表于 05-18 17:31 ?751次閱讀
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>網(wǎng)絡(luò)編程的<b class='flag-5'>基礎(chǔ)知識</b>合集3

    TCPUDP的基本區(qū)別

    TCPUDP基本區(qū)別 基于連接與無連接 TCP要求系統(tǒng)資源較多,UDP較少; UDP程序結(jié)構(gòu)較簡單 流模式(
    的頭像 發(fā)表于 11-13 15:27 ?4520次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本區(qū)別