tcp二次、三次、四次握揮手
為什麼tcp建立連線是三次握手而不是兩次或四次,釋放連線的時候是四次揮手 由於TCP連線是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的資料傳送任務後就能傳送一個FIN來終止這個方向的連線。收到一個 FIN只意味著這一方向上沒有資料流動,一個TCP連線在收到一個FIN後仍能傳送資料。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。客戶端是主動傳送連線的,服務端是被動接受連線的。 1. TCP的三次握手最主要是防止已過期的連線再次傳到被連線的主機。 如果採用兩次的話,會出現下面這種情況。 比如是A機要連到B機,結果傳送的連線資訊由於某種原因沒有到達B機; 於是,A機又發了一次,結果這次B收到了,於是就發信息回來,兩機就連線。 傳完東西后,斷開。 結果這時候,原先沒有到達的連線資訊突然又傳到了B機,於是B機發資訊給A,然後B機就以為和A連上了,這個時候B機就在等待A傳東西過去。 2. 三次握手改成僅需要兩次握手,死鎖是可能發生