TCP三次握手過程和四次斷開連線

2021-09-30 05:59:09 字數 2080 閱讀 3752

tcp 三次握手

tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程:

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

tcp client

flags

tcp server

1 send syn (seq=x)

----syn--->

syn received

2 syn/ack received

send syn (seq=y), ack (x+1)

3 send ack (y+1)

----ack--->

ack received,

connection

established

w: isn (initial sequence number) of

theclient

x: isn of the server

tcp報文主要有序號、確認序號、urg、ack、rsh、rst、syn、fin、檢驗和、緊急資料指標等構成。連線過程中,ack、rsh、rst、syn、fin這些標誌位起到決定作用。

syn:該標誌位用來建立連線,讓連線雙方同步序列號,如果syn=1,ack=0,表示該資料報為連線請求;若syn=1,ack=1,則表示接受連線。

fin:表示傳送端沒有資料傳輸了,要求釋放連線。

rst:復位乙個連線。

urg:緊急資料標誌,若為1,表示包中含有緊急資料,此時緊急資料指標有效。

ack:確認標誌位,若為1,表示包中的確認號是有效的,否則包中的確認號無效。

psh:如果置位,接收端應盡快把資料傳送給應用層。

連線撤銷過程中,有如下過程:                                          

1.host1上的應用程式關閉己方的連線導致tcp傳送乙個fin訊息給host2。

2.host2傳送乙個確認訊息給host1,並且host2把fin作為eof遞交給host2上的應用程式。

3.一段時間過後,host2上的應用程式關閉它那邊的連線,引發乙個fin訊息給host1。

4.host1給host2傳送乙個確認訊息,然後host2關閉連線並釋放資源,然而,host1卻沒有關閉連線,而是進入了time_wait狀態,並為兩個最大段生存時間(2msl)保留在此狀態.

為什麼需要time_wait?

1.因為在第四步的時候,host1傳送的ack可能丟失並導致host2重新傳送fin訊息,time_wait維護連線狀態.

如果執行主動關閉的一方host1 不進入到time_wait狀態就關閉連線那會發生什麼呢?當重傳的fin訊息到達時,因為tcp已經不再有連線的資訊了,所以就用rst(重新啟動)訊息應答,導致host2進入錯誤的狀態而不是有序終止狀態,如果傳送最後ack訊息的一方處於time_wait狀態並仍然記錄著連線的資訊,它就可以正確的響應對等方host2的fin訊息了.

2.time_wait為連線中」離群的段」提供從網路中消失的時間.

考慮一下,如果延遲或者重傳段在連線關閉後到達時會發生什麼呢?通常情況下,因為tcp僅僅丟棄該資料並響應rst訊息,所以這不會造成任何問題。當rst訊息到達發出延時段的主機時,因為該主機也沒有記錄連線的任何資訊,所以它也丟棄該段。然而,如果兩個相同主機之間又建立了乙個具有相同埠號的新連線,那麼離群的段就可能被看成是新連線的,如果離群的段中資料的任何序列號恰恰在新連線的當前接收視窗中,資料就會被重新接收,其結果就是破壞新連線。

tcp 三次握手連線,四次握手斷開

tcp握手協議 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線.第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 syn 同步序列編號 synchronize sequence numbers 第二次握手 伺服...

TCP連線 三次握手和四次斷開

1.面向連線 tcp是乙個面向連線的協議,面向連線是指任何一方向對方傳送資料前必須先建立通道,比如像打 一樣 必須要等到對方的手機響鈴,並且對方接聽 時,才能與對方通訊。而udp 則不是面向連線的協議,基於udp 協議的通訊雙方不需要事先與對方協商建立連線,也不管對方的ip 位址與埠號是否存在,就傳...

TCP的三次握手和四次斷開

tcp transmission control protocol 傳輸控制協議,是乙個面向連線的服務,每一次完整的資料傳輸都必須經過建立連線,資料傳輸和終止連線3個過程。tcp建立連線的過程稱為三次握手,端開連線的過程稱為四次斷開。三次握手 1.主機a通過向主機b 傳送乙個含有同步序列號 syn ...