天天看點

2.7.0 以太網 TCP協定(三次握手、四次揮手)

作者:HadesLing

傳輸控制協定(TCP,Transmission Control Protocol)是一種面向連接配接的、可靠的傳輸層通信協定。

面向連接配接:指使用TCP協定的程式在使用的時候,需要預先進行建立一個資料通信連接配接。

可靠:TCP協定在建立的時候需要先進行三次握手,保證對方的可連接配接性。

環境介紹:

 1、用戶端通路FTP伺服器進行下載下傳檔案,由于FTP是基于TCP協定進行工作的,是以用戶端在通路FTP伺服器時必然會進行建立TCP連接配接。

 2、通過在交換機上對任意端口進行抓包,來分析TCP的三次握手建立連接配接過程,以及TCP連接配接斷開時的四次揮手過程。

2.7.0 以太網 TCP協定(三次握手、四次揮手)

一、三次握手過程

簡單描述:

  • 1、用戶端主動向伺服器》發起FTP通路,激活TCP建立。主動發送SYN置位的TCP封包,意為請求建立TCP連接配接。
  • 2、伺服器收到用戶端》SYN置位的TCP封包。回複SYN、ACK置位的TCP封包,意為同意建立TCP連接配接。
  • 3、用戶端收到伺服器》回複的SYN、ACK置位的TCP封包,知道伺服器同意建立。将回複ACK置位的TCP封包,意為同意建立TCP連接配接。 伺服器收到用戶端》ACK置位的TCP封包後,TCP連接配接建立成功,直接進行發送FTP資料。

封包互動描述:

注釋:因為主機剛開機,且是第剛進行封包互動,是以Seq封包序号從0開始。
  • 1、用戶端主動向伺服器》發送Flags-SYN置位1、Seq封包序号0、ack确認序号0、視窗大小8192、源端口2051、目的端口21的TCP封包
  • 2、伺服器收到用戶端的SYN置位TCP封包》回複Flags-SYN、ACK置位1、Seq序号0、ack确認序号1、視窗大小8192、源端口21、目的端口2051的TCP封包
  • 3、用戶端收到伺服器的SYN、ACK置位TCP封包》回複Flags-ACK置位1、Seq序号1、ack确認序号1、視窗大小8192、源端口2051、目的端口21的TCP封包 此刻用戶端與伺服器之間的TCP鍊路成功建立,立即進行FTP認證互動。
2.7.0 以太網 TCP協定(三次握手、四次揮手)

華為官網教材截圖(HCIA-02 網絡參考模型):

2.7.0 以太網 TCP協定(三次握手、四次揮手)

二、四次揮手過程

TCP用戶端主動向TCP伺服器發送’QUIT’指令,通知FTP伺服器需要斷開連接配接。

  • 1、伺服器向用戶端發送》Goodbye資訊,表示請求與用戶端進行斷開TCP連接配接。
  • 2、用戶端收到伺服器Goodbye資訊》回複Flags-ACK置位1的TCP封包,表示收到斷開資訊,且FTP用戶端也開始清除FTP程序。 收到ACK後的時伺服器,TCP連接配接将單向斷開。
  • 3、當FTP用戶端清除FTP程序之後,向伺服器發送Flags-FIN、ACK置位1的TCP封包通知伺服器,自己準備好斷開連接配接了,就差你的ACK回複了!
  • 4、伺服器收到用戶端FIN、ACK置位的TCP封包》回複Flags-ACK置位1的TCP封包,表示收到斷開資訊。 用戶端收到伺服器回複的ACK置位封包》此刻雙方才真正斷開TCP連接配接。
2.7.0 以太網 TCP協定(三次握手、四次揮手)

華為官網教材截圖(HCIA-02 網絡參考模型):

2.7.0 以太網 TCP協定(三次握手、四次揮手)