當兩臺主機採用 TCP 協議進行通訊時,在交換數據前將創建鏈接。通訊完成後,將關閉會話並終止鏈接。鏈接和會話機制保障了 TCP 的可靠×××。服務器
主機將跟蹤會話過程當中的每一個數據段,並使用 TCP 報頭中的信息瞭解每臺主機所接收到的數據。
每一個鏈接都表明兩股單向通訊數據流或者會話。若要創建鏈接,主機應執行三次握手。TCP 報頭中的控制位指出了鏈接的進度和狀態。三次握手:
- 確認目的設備存在於網絡上;
- 確認目的設備有活動的服務,而且正在源客戶端要使用的目的端口號上接受請求;
- 通知目的設備源客戶端想要在該端口號上創建通訊會話。
在 TCP 鏈接中,充當客戶端的主機將向服務器發起該會話。TCP 鏈接建立的過程分爲三個步驟:
1. 客戶端向服務器發送包含初始序列值的數據段,開啓通訊會話;
2. 服務器發送包含確認值的數據段,其值等於收到的序列值加 1,並加上其自身的同步序列值。該值比序列號大 1,由於 ACK 老是下一個預期字節或二進制八位數。經過此確認值,客戶端能夠將響應和上一次發送到服務器的數據段聯接起來;
3. 發送帶確認值的客戶端響應,其值等於接受的序列值加 1。這便完成了整個創建鏈接的過程。
爲了理解三次握手的過程,必須考察兩臺主機間交換的不一樣值。在 TCP 數據段報頭中,有六個包含控制信息的 1 比特字段,用於管理 TCP 進程。這些字段分別是:
URG — 緊急指針
ACK — 確認字段
PSH — 推送功能
RST — 重置鏈接
SYN — 同步序列號
FIN — 發送方已傳輸完全部數據
這些字段用做標誌,因爲它們都只有 1 比特大小,因此它們都只有兩個值:1 或者 0。當值設爲 1 時,表示數據段中包含控制信息。
經過 4 步流程法,能夠交換標誌,以終止 TCP 鏈接。