TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際協議)是指可以在多個不一樣網絡間實現信息傳輸的協議簇。TCP/IP協議不單單指的是 TCP 和 IP兩個協議,而是指一個由 FTP、 SMTP、TCP、 UDP、IP等協議構成的協議簇, 只是由於在TCP/IP協議中TCP協議和IP協議最具表明性,因此被稱爲TCP/IP協議。
TCP/IP協議定義了一個在因特網上傳輸的包,稱爲IP數據報,IP數據報由首部和數據兩部分組成,IP報頭中包含大量的信息,如源IP地址,目的IP地址,數據報長度,IP版本號等,數據部分呢保存傳輸層的數據,如保存TCP、UDP、ICMP等數據。服務器
在瞭解三次握手以前,咱們須要先看TCP首部兩個關鍵的屬性——序號和確認號。序號字段表明報文端要發送的數據的第一個字節的序號;通訊的任何一方收到消息都要發送一個確認報文,確認報文就須要一個確認號,它的值表示指望收到下一個報文段的序號值,也就是說在確認報文中確認號纔會生效。網絡
如何標識是否爲確認報文呢?這裏要關注六個標誌位,分別是URG、ACK、PSH、PST、SYN、FIN。在這六個標誌位中,又要重點關注三個,分別是spa
第一次握手時,Client向Server發送一個鏈接請求,須要設置SYN=1,同時發送本身的序列號Seq到服務器。第二次握手,爲服務器收到請求後,發送一個確認報文,ACK=1,同時發送一個確認號,是指望收到對方的下一個報文段的數據的第一個字節的序號,ACKnum=X+1,+1所示收到 SYN標識。第三次握手爲客戶端收到服務器的響應報文,他也要回復確認報文,確認報文ACK=1,ACKnum=Y+1rem
第一次揮手爲客戶端發送FIN=1,表示本身沒有數據能夠發送了,其次攜帶本身的序列號。第二次揮手爲服務器端確認收到客戶端的FIN包,發送一個確認包,代表本身接收到了客戶端的關閉請求,可是這時並未準備好關閉鏈接。第三次揮手爲服務器確認準備好關閉鏈接,這時發送FIN=1。第四次揮手爲客戶端收到服務端的關閉請求,發送一個確認包,服務器端收到這個請求後就關閉鏈接,再也不迴應客戶端,客戶端會等待一個固定時間後,自動關閉。get