1.幾個重要縮寫的解釋
ACK:acknowledgement,表示響應(yīng)
SYN:synchnorous,表示請求簡歷連接
FIN:Finished,表示結(jié)束連接
PSH:Push,表示有數(shù)據(jù)傳輸
RST:Rest,表示連接重置
URG:urgent,表示緊急
順序號:sequence number
確認(rèn)號:acknowledgement number?
2.三次握手過程

第一次握手:客戶端的TCP首先向服務(wù)器端的TCP發(fā)送一個特殊的TCP報文段。該報文段中不包含應(yīng)用層數(shù)據(jù)。但是在報文段首部中的一個標(biāo)志位SYN=1,該報文被稱為SYN報文段。另外,客戶會隨機(jī)地選擇一個初始序列號(client_isn),并將此編號置于SYN報文段中。該報文段被封裝成一個IP數(shù)據(jù)報中發(fā)送給服務(wù)器。SYN報文段:SYN=1,seq=client_isn
第二次握手:一旦SYN報文段的IP數(shù)據(jù)報到達(dá)服務(wù)器主機(jī),服務(wù)器會提取SYN報文段,為該TCP連接分配TCP緩存和變量,并向該客戶TCP發(fā)送允許連接的報文段。該報文段也不包含應(yīng)用層數(shù)據(jù)。包含三個重要的信息。首先SYN比特被置位1,其次,該TCP報文段首部的確認(rèn)信息被置位client_isn+1,最后,服務(wù)器選擇自己的初始序號(server_isn)。SYNACK報文段:SYN=1,ack=client_isn+1,seq=server_isn
第三次握手:在收到SYNACK報文段后,客戶也要給該連接分配緩存和變量。同時發(fā)送報文段。該報文段格式:SYN=0,seq=client_isn+1,ack=server_isn+1.
3.四次揮手過程(斷開連接)

client和server都可以斷開連接。下面以客戶斷開連接為例。
第一次:客戶端發(fā)送TCP報文段:FIN=1
第二次:服務(wù)端返回一個確認(rèn)報文段:ACK
第三次:服務(wù)端發(fā)送自己的終止報文段,F(xiàn)IN=1
第四次:客戶對服務(wù)器報文段進(jìn)行確認(rèn),ACK
4.客戶TCP經(jīng)歷的典型的TCP狀態(tài)序列

客戶TCP開始時處于CLOSED(關(guān)閉狀態(tài))??蛻舻膽?yīng)用程序發(fā)起一個新的TCP連接,發(fā)送一個SYN報文段。發(fā)送完報文段后,客戶進(jìn)入了SYN_SENT狀態(tài)(等待來自服務(wù)器TCP的對客戶所發(fā)報文段進(jìn)行確認(rèn)且SYN比特被置位1的一個報文段)。收到這樣一個報文段后,客戶進(jìn)入ESTABLISHED(已建立)狀態(tài)(TCP客戶就能發(fā)送和接受包含有效載荷數(shù)據(jù))。如果客戶端需要斷開連接??蛻舳税l(fā)送FIN=1報文段,并進(jìn)入FIN_WAIT_1狀態(tài)(等待一個來自服務(wù)端確認(rèn)的ACK=1)。當(dāng)他收到確認(rèn)后,客戶進(jìn)入FIN_WAIT_2狀態(tài)(等待來自服務(wù)器端的FIN=1報文),當(dāng)收到服務(wù)器端報文后,客戶進(jìn)入TIME_WAIT狀態(tài)。假定ACK丟失時,TIME_WAIT狀態(tài)使TCP客戶重新上傳最后確認(rèn)的報文。
5.服務(wù)端狀態(tài)序列
