計算機網絡--傳輸層(四)


知識結構:

  1. 傳輸層服務
    1. 傳輸層功能
    2. 尋址與端口
    3. 無連接與面向連接
  2. UDP
    1. UDP數據報
    2. UDP校驗
  3. TCP
    1. TCP段
    2. 連接管理
    3. 可靠傳輸
    4. 流量控制與擁塞控制

傳輸層:提供進程間的通信,端到端;復用和分用;差錯檢測;兩種協議

端口的作用:傳輸層的端口,網絡層的IP,數據鏈路層的MAC,都是為了唯一標識某些對象

套接字 = IP + 端口號

TCP

 

 

 l  源端口:標識發送該TCP報文段的應用進程

 

l  目的端口:標識接收該TCP報文段的應用進程

 

n  端口號占16 bit,范圍0-65535

 

n  套接字 Socket:(IP地址: 端口號)

 

n  TCP連接::={socket1, socket2} = {(IP1: PORT1), (IP2, PORT2)}

 

l  序號

 

n  表示本報文段TCP數據的第一個字節的序號

 

n        4字節,序號范圍[0, -1],可表示4GB數據

 

n  一條TCP連接的初始序號(SYN),初始序號隨機產生

 

l  確認號

 

n  確認號是接收方對收到數據的確認

 

n  確認號=N,表示到序號N-1為止的所有數據都已正確收到,期望接收序號為N的數據

 

n  確認標志位ACK=1,確認號才有效

 

l  數據偏移

 

n  即指TCP首部長度

 

n  4 bit,並以4字節為單位

 

l  保留和控制位

 

n  SYN,連接建立

 

n  FIN,連接釋放

 

n  ACK,確認包,確認號有效

 

n  RST,復位連接

 

n  PSH,無需等待緩存填滿盡快交付給應用層,交互式通信,希望對方立即回復,telnet/rlogin

 

n  URG,緊急報文,緊急指針有效(Control+C)

 

l  窗口

 

n  指接收端的接收窗口大小,用來控制對方發送的數據量。也就是后面需要講的滑動窗口的窗口大小。

 

n  由於TCP的頭部窗口字段只有16bit,最多表示65535字節,為了表示更大的窗口,使用了可選的放大倍數。

 

n  Synoption帶上放大的windows scale

 

l  檢驗和

 

n  16 bit,檢查范圍包括TCP報文段首部和數據載荷部分

 

n  在計算校驗和時,要在TCP報文段的前面加上12字節的偽首部

 

l  緊急指針

 

n  緊急標志位URG=1時,緊急指針才有效

 

n  16 bit,以字節為單位,用來指明緊急數據的長度

 

l  選項

 

n  長度可變,最大40字節。TCP章節的最后會介紹幾種常見選項字段

 

n  填充

 

n  由於選項的長度可變,因此使用填充來確保報文段首部總長度能被4整除

 

小結:

l  一個TCP連接需要四個元組來表示是同一個連接(src_ip, src_port, dst_ip, dst_port准確說是五元組,還有一個是協議。但因為這里只是說TCP協議,所以,這里只說四元組。

l  TCP首部的四個重要部分:

n  Sequence Number是包的序號,用來解決網絡包亂序(reordering)問題。

n  Acknowledgement Number就是ACK,用於確認收到,用來解決不丟包的問題。

n  Window又叫Advertised-Window,也就是著名的滑動窗口(Sliding Window),用於解決流控的。

n  TCP Flag ,也就是包的類型,主要是用於操控TCP的狀態機的。

l  TCP連接建立的目的

n  通信雙方確認對方的存在 

n  雙方確定自己的初始序列號,並通知對方

n  允許雙方協商一些參數(最大報文段長度、窗口大小等) 

n  對傳輸實體資源進行分配

l  TCP連接建立的方式

 

n  采用客戶端服務器方式(C/S),主動發起連接建立的應用進程叫做客戶端,被動等待連接建立的叫服務器端。

 

 

l  粗實線----Client

l  粗虛線----Server

 

l  細線----異常

可靠傳輸:

  •       停止等待協議ARQ
  •       連續ARQ協議

 

 發送窗口根據接收方的接收窗口和網絡的擁塞情況設置

接收窗口取決於接收方的應用、系統、硬件的限制,和自身處理能力有關

擁塞控制

擁塞控制作用於點到點的網絡層

l  慢開始:指數增長

l  擁塞避免:線性增長

l  快重傳:收到3個同樣的確認就立刻重傳,不等到超時

 

l  快恢復:cwnd不是從1重新開始

 

 

 

 接收端窗口rwnd,又稱通知窗口(awnd),是接收端根據目前的接收緩存大小所許諾的最新窗口值,是來自接收端的流量控制。

擁塞窗口cwnd是發送端根據自己估計的網絡阻塞程度而設置的窗口值,是來自發送端的流量控制。

 

UDP:

 

 

 

 

 

 

UDP

TCP

無連接

面向連接

支持一對一/一對多/多對多的交互通信

支持一對一

面向報文(無分段,大小要合適)

面向字節流

盡最大努力交付,不可靠

可靠交付

無擁塞控制(恆定速率,允許丟失數據,不允許太大時延,IP電話/實時視頻會議)

有擁塞控制/流量控制

首部開銷小,僅8個字節

首部最小20字節,最大60字節

 

 

 

l  細線----異常Ø  源端口:標識發送該TCP報文段的應用進程

Ø  目的端口:標識接收該TCP報文段的應用進程

Ø  端口號占16 bit,范圍0-65535

Ø  套接字 Socket:(IP地址: 端口號)

Ø  TCP連接::={socket1, socket2} = {(IP1: PORT1), (IP2, PORT2)}

 

 

序號

Ø  表示本報文段TCP數據的第一個字節的序號

Ø      4字節,序號范圍[0, -1],可表示4GB數據

Ø  一條TCP連接的初始序號(SYN),初始序號隨機產生

 

確認號

Ø  確認號是接收方對收到數據的確認

Ø  確認號=N,表示到序號N-1為止的所有數據都已正確收到,期望接收序號為N的數據

確認標志位ACK=1,確認號才有效

 

Ø  數據偏移

ü  即指TCP首部長度

ü  4 bit,並以4字節為單位

 

Ø  保留和控制位

ü  SYN,連接建立

ü  FIN,連接釋放

ü  ACK,確認包,確認號有效

ü  RST,復位連接

ü  PSH,無需等待緩存填滿盡快交付給應用層,交互式通信,希望對方立即回復,telnet/rlogin

ü  URG,緊急報文,緊急指針有效(Control+C)

 

Ø  窗口

ü  指接收端的接收窗口大小,用來控制對方發送的數據量。也就是后面需要講的滑動窗口的窗口大小。

ü  由於TCP的頭部窗口字段只有16bit,最多表示65535字節,為了表示更大的窗口,使用了可選的放大倍數。

ü  Synoption帶上放大的windows scale

 

Ø  檢驗和

ü  16 bit,檢查范圍包括TCP報文段首部和數據載荷部分

ü  在計算校驗和時,要在TCP報文段的前面加上12字節的偽首部

 

Ø  緊急指針

ü  緊急標志位URG=1時,緊急指針才有效

ü  16 bit,以字節為單位,用來指明緊急數據的長度

Ø  選項

ü  長度可變,最大40字節。TCP章節的最后會介紹幾種常見選項字段

ü  填充

ü  由於選項的長度可變,因此使用填充來確保報文段首部總長度能被4整除

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM