單純的總結TCP

2021-07-12 05:06:08 字數 1658 閱讀 6506

一:tcp基本概念

二:tcp特點

三:tcp連線

一:tcp基本概念:

從計算機網路體系結構(五層協議如下)上講,運輸層向他上面的應用層提供通訊服務,即程序間的邏輯通訊。

應用層--                       http協議

運輸層--                       tcp協議

網路層--                       ip協議

資料鏈路層--

物理層--   

傳輸控制協議tcp是位於傳輸層的三種協議之一,其他兩種udp和流控制傳輸協議sctp和udp,tcp是可靠的,面向連線的協議--->可靠的通道,(udp不可靠,無連線)。sctp具有其它兩者共同優點

下圖為tcp/ip體系中的運輸層協議

二:tcp特點:

1)面向連線:即應用程式使用tcp協議前必須建立tcp連線。資料傳送完後必須釋放建立的連線。

2)連線只有兩個端點,每條連線只能是點對點一對一的。

3)可靠交付:無差錯,不丟失,不重複且按序到達。確認,重傳,檢錯,序號四種機制實現可靠通訊。

4)全雙工通訊:連線雙方均有傳送和接收快取,任何時候都可傳送。

5)面向位元組流:

三:tcp連線:

前面講過tcp連線兩個端點,連線的既不是主機,不是主機ip位址,不是應用程式,也不是運輸層協議埠,而是socket或插口,rfc793定義:埠號連線到ip位址即構成套接字。

tcp傳輸連線分三個階段:建立連線,資料傳送和釋放連線。

1)建立連線:採用c/s方式,主動發起連線的程序叫客戶,被動等待連線的叫伺服器。

建立過程如下,即我們熟知的三次握手:

2)資料傳送:tcp傳送單元為報文段。報文分首部,資料兩部分,收到後去掉首部。

若確認號為n,表明到虛耗n-1為止到所有資料都已正確收到。

3)釋放連線,即四次握手,此處不做多餘解釋。

注意很多時候我們在說的socket,也許有多種意思,比如:

我們平時說的最多的

socket實際上是對tcp/ip協議的封裝,socket本身並不是協議,而是乙個呼叫介面(api),通過socket,我們才能使用tcp/ip協議。 實際上,socket跟tcp/ip協議沒有必然的聯絡。socket

程式設計介面在設計的時候,就希望也能適應其他的網路協議。所以說,socket的出現 只是使得程式設計師更方便地使用tcp/ip協議棧而已,是對tcp/ip協議的抽象,從而形成了我們知道的一些最基本的函式介面,比如create、 listen、connect、accept、send、read和write等等。網路有一段關於socket和tcp/ip協議關係的說法比較容易理解:

「tcp/ip只是乙個協議棧,就像作業系統的執行機制一樣,必須要具體實現,同時還要提供對外的操作介面。這個就像作業系統會提供標準的程式設計介面,比如win32程式設計介面一樣,tcp/ip也要提供可供程式設計師做網路開發所用的介面,這就是socket程式設計介面。」 

實際上,傳輸層的tcp是基於網路層的ip協議的,而應用層的http協議又是基於傳輸層的tcp協議的,而socket本身不算是協議,就像上面所說,它只是提供了乙個針對tcp或者udp程式設計的介面。socket是對埠通訊開發的工具,它要更底層一些.

TCP的簡單總結

1.tcp是面向連線的,兩台主機想要通過tcp則必須先建立連線 2.tcp提供了可靠性 reliability 當tcp想另一端傳送資料時,它要求對端返回乙個確認,如果沒有收到確認,tcp就會自動重傳資料並等待更長時間。注 tcp並不保證資料一定會被對方端點接收。如果不能成功傳送資料就會通知使用者,...

人工智慧不是單純的經驗和總結

人工智慧始於經驗,超於經驗 直到現在,還有很多人認為現在的人工智慧只意味著對現有知識的經驗和總結。其實近年基於深度神經網路的人工智慧,在解決問題的能力上早已超出簡單的經驗和總結,人工智慧始於經驗,超於經驗。人類智慧型也是始於經驗超於經驗 以前的人工智慧 在人工智慧發展史上,對現有可能性的經驗和總結,...

TCP協議總結

mss maximum segment size 只能出現在syn包中,通訊雙方在syn包和syn ack包中互相通告各自能接收的mss syn包不能攜帶data,占用seq ack包能攜帶data,攜帶data時占用seq,不攜帶data時不占用seq fin包能攜帶data,不論是否攜帶data...