TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:
位碼即tcp標志位,有6種標示:
SYN(synchronous建立聯機)
ACK(acknowledgement 確認)
PSH(push傳送)
FIN(finish結束)
RST(reset重置)
URG(urgent緊急)
Sequence number(順序號碼)
Acknowledge number(確認號碼)
在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狀態,完成三次握手。 完成三次握手,客戶端與服務器開始傳送數據.
四次揮手:
第一次揮手:客戶端A發送一個FIN.用來關閉客戶A到服務器B的數據傳送
第二次揮手:服務器B收到這個FIN. 它發回一個ACK,確認序號為收到的序號+1。和SYN一樣,一個FIN將占用一個序號
第三次揮手:服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A
第四次揮手:客戶端A發回ACK報文確認,並將確認序號設置為序號加1
網絡協議層次圖:
TCP/IP數據包的封裝: