TCP 表示傳輸控制協(xié)議,它是 Web 和其他應(yīng)用程序(如電子郵件)的基礎(chǔ)。
TCP 在 1981 年的 RFC 793 中定義,是 Internet 最古老的支柱之一。
TCP 位于 Internet 協(xié)議(IP)之上,并構(gòu)建了一個基礎(chǔ)系統(tǒng),HTTP、FTP、IMAP 等應(yīng)用程序級協(xié)議都基于該系統(tǒng)。
與 IP 和 UDP 不同,TCP 是面向連接的。
在通過 TCP 進行傳輸之前,必須建立連接。以小數(shù)據(jù)包的形式發(fā)送數(shù)據(jù),當通信結(jié)束時,連接關(guān)閉。
當數(shù)據(jù)通過 TCP 傳輸時,必須發(fā)生一個相對復(fù)雜的稱為握手的工作流程。
這里不會詳細介紹,但這種握手允許端到端連接,這確保了 TCP 可以提供其特有的功能之一:可靠性。使用 TCP,我們總是可以知道發(fā)送方發(fā)送的數(shù)據(jù)包是否被接收方正確接收。
如果數(shù)據(jù)包丟失,協(xié)議能夠處理它并重新發(fā)送數(shù)據(jù)包。
在 IP 協(xié)議上,連接發(fā)生在計算機之間。在 TCP 中,使用端口的概念,連接發(fā)生在進程之間。
與 IP 地址關(guān)聯(lián)的端口允許唯一標識計算機上的進程。例如:localhost:8080 或 google.com:1234
每個應(yīng)用程序協(xié)議都有一個默認端口。例如 HTTP 為 80,HTTPS 為 443,F(xiàn)TP 為 21。這就是為什么您通常不必在瀏覽器中指定端口的原因。
程序不需要使用默認值,這就是為什么特別是在本地計算機上,啟動新應(yīng)用程序時可能會看到 3000 或 8080 之類的端口。
端口號范圍從 1 到 65535(端口號是 16 位無符號,對應(yīng) 2^16 個可能值)。
本文首發(fā) blog,如果喜歡或者有所啟發(fā),歡迎 Star,對作者也是一種鼓勵。