1. 程式人生 > >TCP協議的學習 (一)TCP服務特點

TCP協議的學習 (一)TCP服務特點

TCP協議靠近應用層
TCP的服務特點
1.面向連線
雙方必須先建立連線才能進行資料的讀寫,雙方都必須為該連結分配必要的核心資源,以管理連線的狀態和連線上的傳輸
TCP連線是全雙工的,雙方資料傳輸可以通過一個連線進行,完成資料交換後,雙方必須斷開連線,以釋放系統資源,這種連線是一對一的,不適用於廣播和多播的應用程式,基於多播和廣播的應用程式適合使用UDP協議。
2.基於位元組流
這裡寫圖片描述
TCP位元組流服務
(1)位元組流:
傳送端執行多次寫操作時,TCP模組必須先把這些資料放入TCP傳送緩衝區中,當TCP模組真正傳送資料時,才把TCP傳送緩衝區等待發送的資料封裝成一個或多個TCP報文段發出
—TCP模組發出的報文的個數與應用程式的寫操作的次數沒有固定的數量關係
接收端收到報文段後,TCP模組必須把它們攜帶的應用數量按照TCP報文段的序號依次放入TCP接收緩衝區中,同時通知應用程式讀取資料,接收端應用程式可以一次或多次讀取資料(取決於使用者指定的應用程式讀緩衝區大小)
—應用程式執行讀操作的次數和TCP模組接收到的TCP報文的個數沒有固定的數量關係
*傳送端執行的寫操作次數與接收端執行的讀操作次數沒有數量關係
*應用程式對資料的傳送和接收沒有邊界限定的,這也是位元組流的概念
(2)資料報:
這裡寫圖片描述


UDP資料報服務
UDP傳送應用端程式執行一次寫操作,UDP模組把它封裝成一個UDP資料報併發送
接收端針對每一個數據報執行讀操作,否則就會發生丟包,並且使用者沒有指定足夠的應用程式緩衝區來讀取資料報,則UDP資料報就會被截斷
**通過以上可以理解:
位元組流和資料報區別:通訊雙方是否執行相同次數的讀寫操作
3.可靠傳輸
支撐TCP傳輸的可靠機制:
TCP採用傳送應答機制。TCP傳送的每個報文段都必須得到接收方的應答才認為這個TCP報文段傳輸成功
超時重傳。傳送端發出一個報文段之後就啟動定時器,如果在定時時間內沒有收到應答就重新發送這個報文段
TCP報文段最終是以IP資料報傳送的。IP資料報到達接收端可能亂序重複,TCP協議對接收到的TCP報文段重排整理後再交給應用程式
**UDP資料報提供的是不可靠的服務,它們都需要上層協議處理資料的確認和超時重傳