1. 程式人生 > 其它 >確保可靠性的TCP協議【雜談】

確保可靠性的TCP協議【雜談】

回首這幾年,凡是做的好的東西背後都有【習慣】在支撐,凡是做的不好的東西背後都缺乏穩定【習慣】。習慣就是【系統】。

今天給大家簡單聊一聊【確保可靠性的TCP協議】。

按層次分,TCP位於傳輸層,提供可靠的位元組流服務。

所謂的位元組流服務(Byte Stream Service)是指,為了方便傳輸,將大塊資料分割成以報文段(segment)為單位的資料包進行管理。而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。一言以蔽之,TCP協議為了更容易傳送大資料才把資料分割,而且TCP協議能夠確認資料最終是否送達到對方。

為了準確無誤地將資料送達目標處,TCP協議採用了三次握手three-way handshaking

)建立連線。用TCP協議把資料包送出去後,TCP不會對傳送後的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌(flag)--SYN(synchronizeACK(acknowledgement.

傳送端首先發送一個帶 SYN 標誌的資料包給對方。接收端收到後,回傳一個帶有 SYN / ACK 標誌的資料包以示傳達確認資訊。最後,傳送端再回傳一個帶 ACK 標誌的資料包,代表 “握手” 結束。

若在握手過程中某個階段莫名終斷,TCP協議會再次以相同的順序傳送相同的資料包。

除了上次三次握手,TCP協議還有其他各種手段來保證通訊的可靠性。

協議對比:

1、TCP

  1. TCP 是面向連線的傳輸控制協議。
  2. TCP 具有高可靠性,確保傳輸資料的正確性,不出現丟失或亂序。
  1. TCP 協議可以保證接收端毫無差錯地接收到傳送端發出的位元組流,為應用程式提供可靠的通訊服務。(對可靠性要求高的通訊系統往往使用 TCP 傳輸資料。比如 HTTP 運用 TCP 進行資料的傳輸。

2、UDP

  1. UDP 提供了無連線的資料報服務。
  2. UDP 在傳輸資料前不建立連線,不對資料報進行檢查與修改,無須等待對方的應答,所以會出現分組丟失、重複、亂序,應用程式需要負責傳輸可靠性方面的所有工作。
  1. UDP 具有較好的實時性,工作效率較 TCP 協議高。
  2. UDP 段結構比 TCP 的段結構簡單,因此網路開銷也小。

以下為歷史文章連結:

【軟體測試基礎】

第一篇:軟體測試的目的【雜談】

第二篇:軟體測試七大原則【乾貨】

第三篇:軟體測試新七大原則【乾貨】

第四篇:軟體測試的分類【筆記】

第五篇:軟體測試的方法【筆記】

第六篇:軟體測試的工具【筆記】

第七篇:如何做好業務測試【雜談】

第八篇:如何做好介面測試【雜談】

【網際網路協議】

第一篇:HTTP協議常見狀態碼【乾貨】

第二篇:HTTP協議常見面試題一【乾貨】

第三篇:HTTP協議常見面試題二【乾貨】

第四篇:HTTP協議常見面試題三【乾貨】

第五篇:物聯網協議之DDS【雜談】

以上原文來自我的公眾號【不只是測試】,掃描加關注哦O(∩_∩)O~