三次握手
1.定義 三次握手(three times handshake;three-way handshake)所謂的「三次握手」即對每次傳送的資料量是怎樣跟蹤進行協商使資料段的傳送和接收同步,根據所接收到的資料量而確定的資料確認數及資料傳送、接收完畢後何時撤消聯絡,並建立虛連線。
2.為什麼要三次握手:為了提供可靠的傳送,tcp在傳送新的資料之前,以特定的順序將資料報的序號,並需要這些包傳送給目標機之後的確認訊息。tcp總是用來傳送大批量的資料。當應用程式在收到資料後要做出確認時也要用到tcp。
3.握手的過程:第一次握手,建立連線時,客戶端傳送syn包,syn是同步序列編號(synchronize sequence numbers,syn=j),發到伺服器,等待伺服器確認。第二次握手:伺服器收到了syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(seq=k),即syn+ack包,伺服器進入syn_recv狀態。第三次握手:客戶端收到伺服器的syn+ack包,再次向伺服器傳送,確認寶ack(ack=k+1),傳送完畢後,客戶端和伺服器進入established狀態,完成三次握手。
四次揮手(連線終止協議)
由於tcp連線是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向的連線。收到乙個 fin只意味著這一方向上沒有資料流動,乙個tcp連線在收到乙個fin後仍能傳送資料。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。
1.tcp客戶端傳送乙個fin,用來關閉客戶到伺服器的資料傳送。
2.伺服器收到這個fin,他發回乙個ack,確認序號為收到的序號加1,和syn一樣,乙個fin占用乙個序號
3.服務端關閉客戶端的連線,傳送乙個fin,給客戶端。
4.客戶端發回ack報文確認,並將確認序號設定為收到的序號+1
三次握手與四次揮手
1 三次握手是怎麼個意思?三次握手的是為了是建立可靠的通訊通道,簡單來說就是資料的傳送與接收,而三次握手最主要的目的就是雙方確認自己與對方的傳送與接收機能正常。這個三次握手只能是客戶端去發起,伺服器端接收確認的。正常來說伺服器是一直在監聽的,客戶端上線後去請求伺服器端,然後通過tcp協議進行連線。沒...
三次握手與四次揮手
三次握手與四次揮手分別對應tcp連線建立過程與斷開過程,先上tcp報文格式 三次握手過程 問題1 為什麼要三次握手?答 三次握手的目的是建立可靠的通訊通道,說到通訊,簡單來說就是資料的傳送與接收,而三次握手最主要的目的就是雙方確認自己與對方的傳送與接收機能正常。第一次握手 client什麼都不能確認...
三次握手與四次揮手
syn 建立連線 synchronous ack確認 acknowledgement psh傳送 push fin結束 finish rst重置 reset urg緊急 urgent 我連你,你同意,我再連你 為什麼要建立三次握手?注 在建立連線中,任意一端掉線,tcp都會重發syn資料報,一般會重...