TCP鏈接的三次握手、四次揮手

三次握手的過程

第一次握手

客戶機首先發出一個SYN消息。服務器

第二次握手

服務器使確認SYN + ACK應答表示接收到了這個消息。markdown

第三次握手

客戶機再以ACK確認響應。app

SYN是在 TCP 鏈接的第一次握手時發送的一種數據包。它能夠作爲黑客攻擊的一種手段,SYN攻擊屬於DDoS攻擊的一種,它利用 TCP的缺陷,發送大量的鏈接請求,耗費CPU和內存資源。ui

ACK是接收站發給發送站的確認字符, 表示本身已經接收到了。url

傳輸數據的過程

TCP 傳輸是經過字節流傳輸的, 傳輸前會把數據流分割成多段報文發送給接受端。 爲了保證傳輸的可靠性, TCP 會有一些傳輸機制:spa

超時重傳

當發送數據後,在必定時間內沒有收到 ACK 應答, 就會從新發送數據, 直到發送成功。3d

快速重傳

若是發送端收到 3 個以上的重複 ACK 應答, 就知道數據有可能丟失了, 發送端會當即從新傳遞一次 。code

四次揮手的過長

第一次揮手

主動關閉端會先發送一個FIN ,表示數據發送完畢。orm

第二次揮手

被動關閉收到 FIN, 發送一個 ACK對方確認,執行被動關閉。cdn

第三次揮手

一段時間後, 被動關閉端接發送一個 FIN, 告訴主動端已關閉數據傳輸。

第四次揮手

主動關閉端收到後確認 FIN 。

相關文章
相關標籤/搜索