創建TCP須要三次握手才能創建,而斷開鏈接則須要四次握手。整個過程以下圖所示:服務器
1、三次握手(創建鏈接)網絡
1.客戶端發出段1,SYN位表示鏈接請求。序號是1000,這個序號在網絡通信中用做臨時的地址,每發一個數據字節,這個序號要加1,這樣在接收端能夠根據序號排出數據包的正確順序,也能夠發現丟包的狀況,另外,規定SYN位和FIN位也要佔一個序號,此次雖然沒發數據,可是因爲發了SYN位,所以下次再發送應該用序號1001。mss表示最大段尺寸, 若是一個段太大,封裝成幀後超過了鏈路層的最大幀長度,就必須在IP 層分片,爲了避 免這種狀況,客戶端聲明本身的最大段尺寸,建議服務器端發來的段不要超過這個長度。 ide
2.服務器發出段2,也帶有SYN位,同時置ACK位表示確認,確認序號是1001,表示「我接收到序號1000及其之前全部的段,請你下次發送序號爲1001的段」,也就是應答了客戶端 的鏈接請求,同時也給客戶端發出一個鏈接請求,同時聲明最大尺寸爲1024。 spa
3.客戶端發出段3,對服務器的鏈接請求進行應答,確認序號是8001。server
假設不採用「三次握手」,那麼只要server發出確認,新的鏈接就創建了。因爲如今client並無發出創建鏈接的請求,所以不會理睬server的確認,也不會向server發送數據。但server卻覺得新的運輸鏈接已經創建,並一直等待client發來數據。這樣,server的不少資源就白白浪費掉了。主要目的防止server端一直等待,浪費資源。blog
2、四次揮手(斷開鏈接)資源
1.客戶端發出段7,FIN位表示關閉鏈接的請求。 get
2.服務器發出段8,應答客戶端的關閉鏈接請求。 it
3.服務器發出段9,其中也包含FIN位,向客戶端發送關閉鏈接請求。 io
4.客戶端發出段10,應答服務器的關閉鏈接請求。