tcp(transmission control protocol 傳輸控制協議)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議.
tcp是傳輸層協議,使用三次握手建立連線,當主動方發出 syn 連線請求時,接收方接受請求後,發出 syn+ack 作為響應,接收到響應後,對響應的 syn 執行 ack 確認。這種連線建立方式可以避免錯誤連線,tcp使用的流量控制協議是可變大小的滑動視窗協議。
tcp三次握手過程如下:
三次握手」的目的:為了防止已失效的連線請求報文段突然又傳送到了服務端,因而產生錯誤。例如:client發出的第乙個連線請求報文段並沒有丟失,而是在某個網路結點長時間的滯留了,以致延誤到連線釋放以後的某個時間才到達server。本來這是乙個早已失效的報文段。但server收到此失效的連線請求報文段後,就誤認為是client再次發出的乙個新的連線請求。於是就向client發出確認報文段,同意建立連線。假設不採用「三次握手」,那麼只要server發出確認,新的連線就建立了。由於現在client並沒有發出建立連線的請求,因此不會理睬server的確認,也不會向server傳送資料。但server卻以為新的運輸連線已經建立,並一直等待client發來資料。這樣,server的很多資源就白白浪費掉了。採用「三次握手」的辦法可以防止上述現象發生。
由於tcp是全雙工的,每個方向都必須單獨關閉。當一方完成資料傳送任務就能傳送乙個fin終止這個方向的連線。收到乙個fin只是意味著這一方向上沒有資料流動,tcp收到fin後任然能傳送資料。建立乙個連線需要三次握手,而關閉乙個連線需要四次握手,這是由於連線半關閉(half-close)造成的。
具體過程如下:
每個方向都需要乙個fin和乙個ack,因此通常需要揮手四次。
TCP連線的建立與關閉
五層網路模型分為 物理層 資料鏈路層 網路層 傳輸層 應用層。其中,傳輸層有兩種主要協議 面向連線的tcp transmission control protocol 傳輸控制協議 無連線的udp user datagram protocol 使用者資料報協議 tcp是面向連線的傳輸層協議,提供點對...
TCP建立和關閉連線
一 建立連線 1 請求端 通常稱為客戶 傳送乙個 s y n段指明客戶打算連線的伺服器的埠,以及初 始序號 i s n,在這個例子中為1 4 1 5 5 3 1 5 2 1 這個s y n段為報文段1。2 伺服器發回包含伺服器的初始序號的s y n報文段 報文段2 作為應答。同時,將確認 序號設定為...
TCP 連線與關閉
一.tcp 協議 傳輸控制協議 transmission control protocol,tcp 是種面向連線 確保資料在端到端間可靠傳輸的協議。面向連線是插在傳送資料前,需要先建立一條虛擬的鏈路,然後讓資料在這條鏈路上 流動 完成傳輸。1 tcp 協議的報文頭 2 協議六個狀態位 連線協議相關的...