計算機(jī)網(wǎng)絡(luò)02 - 傳輸層

目錄

  1. TCP協(xié)議和UDP協(xié)議
  2. TCP首部
  3. TCP連接管理
  4. UDP首部

1. TCP協(xié)議和UDP協(xié)議

  • TCP協(xié)議:面向連接的、可靠的流協(xié)議,實行“順序控制”或“重發(fā)控制”機(jī)制,具備“流量控制”、“擁塞控制”、提高網(wǎng)絡(luò)利用率等功能
  • UDP協(xié)議:面向無連接的、不具有可靠性的數(shù)據(jù)報協(xié)議,不保證消息一定會到達(dá)
  • 端口號:用來識別同一主機(jī)中不同的應(yīng)用程序,也被稱為程序地址,通過源IP地址、目標(biāo)IP地址、協(xié)議號、源端口號、目標(biāo)端口號同時進(jìn)行通信識別

2. TCP首部

TCP首部
  • 源端口:16 bit,發(fā)送數(shù)據(jù)的源進(jìn)程端口
  • 目的端口:16 bit,接收數(shù)據(jù)的進(jìn)程端口
  • 序號:32 bit,代表當(dāng)前TCP數(shù)據(jù)段第一個字節(jié)占整個字節(jié)流的相對位置
  • 確認(rèn)號:32 bit,代表接收端希望接收的數(shù)據(jù)序號,為上次接收到數(shù)據(jù)報的序號+1,當(dāng)ACK標(biāo)志位為1時才生效
  • 數(shù)據(jù)偏移:4 bit,實際代表TCP首部長度,最大為60字節(jié)
  • SYN:同步標(biāo)志,用于數(shù)據(jù)同步
  • ACK:確認(rèn)標(biāo)志,ACK=1時確認(rèn)號才有效
  • FIN:結(jié)束標(biāo)志,用于發(fā)送端提出斷開連接
  • URG:緊急標(biāo)志,URG=1是緊急指針有效
  • PSH:指示接收方立即將數(shù)據(jù)提交給應(yīng)用層,而不是等待緩沖區(qū)滿
  • RST:重置連接
  • 窗口值:16 bit,標(biāo)識接收方可接受的數(shù)據(jù)字節(jié)數(shù)
  • 校驗和:16 bit,用于檢驗數(shù)據(jù)完整性
  • 緊急指針:16 bit,只有當(dāng)URG標(biāo)識位為1時,緊急指針才有效。緊急指針的值與序號的相加值為緊急數(shù)據(jù)的最后一個字節(jié)位置。用于發(fā)送緊急數(shù)據(jù)

3. TCP連接管理

  • 描述:數(shù)據(jù)通信之前,通過TCP首部發(fā)送SYN包作為建立連接的請求并等待確認(rèn)應(yīng)答,在通信結(jié)束時會發(fā)送FIN包進(jìn)行斷開連接處理,一個連接的建立與斷開正常至少需要來回發(fā)送7個包才能完成
  • TCP連接的建立:三次握手
    連接的建立
  • TCP連接的釋放:四次揮手
    連接的釋放
  • 超時重傳:在發(fā)送某一個數(shù)據(jù)以后就開啟一個計時器,在一定時間內(nèi)如果沒有得到發(fā)送的數(shù)據(jù)報的ACK報文,那么就重新發(fā)送數(shù)據(jù),直到發(fā)送成功為止。
  • 滑動窗口:發(fā)送窗口只有收到對端對于本段發(fā)送窗口內(nèi)字節(jié)的ACK確認(rèn),才會移動發(fā)送窗口的左邊界。接收端可以根據(jù)自己的狀況通告窗口大小,從而控制發(fā)送端的接收,進(jìn)行流量控制。
  • 擁塞控制:TCP擁塞控制4個核心算法包括慢開始、擁塞避免、快重傳、快恢復(fù)
慢開始:先探測一下網(wǎng)絡(luò)的擁塞程度,也就是說由小到大逐漸增加擁塞窗口的大小
擁塞避免:讓擁塞窗口緩慢增長,即每經(jīng)過一個往返時間RTT就把發(fā)送發(fā)的擁塞窗口cwnd加1,而不是加
         倍。無論是在慢開始階段還是在擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞,就把慢開始門
         限設(shè)置為出現(xiàn)擁塞時的發(fā)送窗口大小的一半。然后把擁塞窗口設(shè)置為1,執(zhí)行慢開始算法。
快重傳:發(fā)送方只要一連收到3個重復(fù)確認(rèn)就應(yīng)當(dāng)立即重傳對方尚未收到的報文段,而不必繼續(xù)等待設(shè)置
       的重傳計數(shù)器時間到期
快恢復(fù):把擁塞窗口大小設(shè)置為慢開始門限減半后的數(shù)值,然后開始執(zhí)行擁塞避免算法(“加法增大”),
       使擁塞窗口緩慢地線性增大

4. UDP首部

UDP首部
  • 端口號:用來表示發(fā)送和接受進(jìn)程。由于IP層已經(jīng)把I P數(shù)據(jù)報分配給TCP或UDP(根據(jù)IP首部中協(xié)議字段值),因此TCP端口號由TCP來查看,而UDP端口號由UDP來查看。TCP端口號與UDP端口號是相互獨立的
  • 長度:UDP長度字段指的是UDP首部和UDP數(shù)據(jù)的字節(jié)長度
  • 檢驗和:UDP檢驗和是一個端到端的檢驗和。它由發(fā)送端計算,然后由接收端驗證。其目的是為了發(fā)現(xiàn)UDP首部和數(shù)據(jù)在發(fā)送端到接收端之間發(fā)生的任何改動
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容