[前端 · 面試 ]TCP 總結(一)—— 概述

程式設計三昧發表於2021-08-19

最近我在做前端面試題總結系列,感興趣的朋友可以新增關注,歡迎指正、交流。

爭取每個知識點能夠多總結一些,至少要做到在面試時,針對每個知識點都可以侃起來,不至於啞火。

前言

我們常常會聽到“ TCP 三次握手、四次揮手” 這樣的話。並且通過前面對 HTTP 的總結,我們知道 HTTP 通常是執行在 TCP 之上的,那麼 TCP 到底是什麼呢?今天我們先來認識一下它。

概念

TCP 的全名是 Transmission Control Protocol,翻譯過來就是 “傳輸控制協議”,是用來控制傳輸的,它是為了在不可靠的網際網路絡上提供可靠的端到端位元組流而專門設計的一個傳輸協議。

我們把 HTTP 叫做 “超文字傳輸協議”, 從這兩個的名字上我們就可以看出,TCP 的作用範圍比 HTTP 大,許可權層次也更高,難怪要說 HTTP 試執行在 TCP 之上了,底層文明決定上層建築是有道理的。

TCP 是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。

產生背景

網際網路絡與單個網路有很大的不同,因為網際網路絡的不同部分可能有截然不同的拓撲結構、頻寬、延遲、資料包大小和其他引數。TCP 的設計目標是能夠動態地適應網際網路絡的這些特性,而且具備面對各種故障時的健壯性。

IP層並不保證資料包一定被正確地遞交到接收方,也不指示資料包的傳送速度有多快。正是 TCP 負責既要足夠快地傳送資料包,以便使用網路容量,但又不能引起網路擁塞:而且,TCP 超時後,要重傳沒有遞交的資料包。即使被正確遞交的資料包,也可能存在錯序的問題,這也是 TCP 的責任,它必須把接收到的資料包重新裝配成正確的順序。簡而言之,TCP 必須提供可靠性的良好效能,這正是大多數使用者所期望的而IP又沒有提供的功能。

特點

TCP 是一種面向廣域網的通訊協議,目的是在跨越多個網路通訊時,為兩個通訊端點之間提供一條具有下列特點的通訊方式:

(1)基於流的方式;

(2)面向連線;

(3)可靠通訊方式;

(4)在網路狀況不佳的時候儘量降低系統由於重傳帶來的頻寬開銷;

(5)通訊連線維護是面向通訊的兩個端點的,而不考慮中間網段和節點。

總結

以上就是關於 TCP 的一些概念性的內容。

~

~本文完,感謝閱讀!

~

學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

大家好,我是〖程式設計三昧〗的作者 隱逸王,我的公眾號是『程式設計三昧』,歡迎關注,希望大家多多指教!

你來,懷揣期望,我有墨香相迎! 你歸,無論得失,唯以餘韻相贈!

知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章