先放一張圖瞭解tcp 和http的關係安全
http屬於應用層,而tcp屬於傳輸層 http是基於tcp的tcp
有幾個字段須要重點介紹下:
(1)序號:Seq序號,佔32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。(順序碼)
(2)確認序號:Ack序號,佔32位,只有ACK標誌位爲1時,確認序號字段纔有效,Ack=Seq+1。(確認碼)
(3)標誌位:共6個,即URG、ACK、PSH、RST、SYN、FIN等,具體含義以下:
(A)URG:緊急指針(urgent pointer)有效。
(B)ACK:確認序號有效。
(C)PSH:接收方應該儘快將這個報文交給應用層。
(D)RST:重置鏈接。
(E)SYN:發起一個新鏈接。
(F)FIN:釋放一個鏈接。
須要注意的是:
(A)不要將確認序號Ack與標誌位中的ACK搞混了。
(B)確認方Ack=發起方Req+1,兩端配對。 指針
第一次握手:主機A發送 位碼syn=1 和seq number=xxxx 的一個隨機數 到主機B 表明要請求創建鏈接blog
第二次握手:主機B 接受到請求 向主機A發送數據包 ack=number+1(接收到的seq+1 表明確認收到主機A所發送的請求)而且本身也發送一個位碼syn=1 和seq number=xxxx隨機數
第三次握手:主機A 接收到 確認序號 驗證確認序號是否有效 ,並向主機B 發送 確認序號 ack=number+1 發送完後 創建鏈接請求
TCP的特色 靈活性 安全性 可操做性 可靠性 適用性im
爲何說TPC協議安全可靠 不會出點丟失數據的狀況?數據
正是由於三次握手的特性協議