一、計算機網絡體系結構
1.OSI參考模型
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CMwQDO4QWY3MDO0UWN5gTNzYzX0ITNwATM2IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
2.TCP/IP體系結構
二、TCP三向交握
TCP(Transmission Control Protocol): 傳輸控制協定。
TCP是主機對主機層的傳輸控制協定,提供可靠的連接配接服務,采用三次握手來建立一個連接配接。
TCP有6種标志位:
1.SYN(建立連接配接)
表示同步序号,用來建立連接配接。
标志位和
SYN
标志位搭配使用,當連接配接請求的時候,
ACK
=1,
SYN
=0;連接配接被響應的時候,
ACK
=1,
SYN
ACK
=1;這個标志的資料包經常被用來進行端口掃描。
2.ACK(确認)
此标志表示應答域有效,就是說前面所說的TCP應答号将會包含在TCP資料包中;有兩個取值:0和1,為1的時候表示應答域有效,反之為0。
3.PSH(傳送)
這個标志位表示Push操作。所謂Push操作就是指在資料包到達接收端以後,立即傳送給應用程式,而不是在緩沖區中排隊;
4.FIN(結束)
表示發送端已經達到資料末尾,也就是說雙方的資料傳送完成,沒有資料可以傳送了,發送
FIN
标志位的TCP資料包後,連接配接将被斷開。
5.RST(重置)
這個标志表示連接配接複位請求。用來複位那些産生錯誤的連接配接,也被用來拒絕錯誤和非法的資料包。
6.URG(緊急)
此标志表示TCP包的緊急指針域(後面馬上就要說到)有效,用來保證TCP連接配接不被中斷,并且督促中間層裝置要盡快處理這些資料。
TCP是面向連接配接的,無論哪一方向另一方發送資料之前,都必須先在雙方之間建立一條連接配接。在TCP/IP協定中,TCP協定提供可靠的連接配接服務,連接配接是通過三次握手進行初始化的。三次握手的目的是同步連接配接雙方的序列号和确認号并交換 TCP視窗大小資訊。
1.第一次握手:建立連接配接。
發送連接配接請求封包,将SYN=1,随機産生seq=x,用戶端進入SYN_SEND狀态,等待伺服器的确認。
2.第二次握手:伺服器收到SYN封包段。
對這個SYN封包段進行确認,設定ACK=x+1,同時自己還發送SYN請求SYN=1,序列号seq=y;伺服器端将上述所有資訊放到一個封包段(即SYN+ACK)中,一并發給用戶端,此時伺服器進入SYN_RECV狀态。
3.第三次握手:用戶端收到伺服器的SYN+ACK封包段。
seq=y+1,向伺服器發送ACK封包段,這個封包段發送完畢後,用戶端與伺服器端都進入ESTABLISHED狀态,完成TCP三向交握。
三、TCP四次揮手
1.第一次分手
seq和ACK,向主機2發送FIN封包段,此時主機1進入FIN_WAIT_1狀态,表示主機1沒有資料要發送給主機2了。
2.第二次分手
-
封包段,
ACK
ACK=seq+
1;主機1進入FIN_WAIT_2狀态;主機2告訴主機1,我“同意”你的關閉請求。
3.第三次分手
FIN封包段,請求關閉連接配接,同時主機2進入
CLOSE_WAIT
狀态;
4.第四次分手
-
封包段,向主機2發送
FIN
封包段,然後主機1進入
ACK
狀态;主機2收到主機1的
TIME_WAIT
封包段以後,就關閉連接配接;此時,主機1等待2MSL後依然沒有收到回複,則證明Server端已正常關閉,那好,主機1也可以關閉連接配接了。
ACK
1.OSI參考模型
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CMwQDO4QWY3MDO0UWN5gTNzYzX0ITNwATM2IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
2.TCP/IP體系結構
二、TCP三向交握
TCP(Transmission Control Protocol): 傳輸控制協定。
TCP是主機對主機層的傳輸控制協定,提供可靠的連接配接服務,采用三次握手來建立一個連接配接。
TCP有6種标志位:
1.SYN(建立連接配接)
表示同步序号,用來建立連接配接。
标志位和
SYN
标志位搭配使用,當連接配接請求的時候,
ACK
=1,
SYN
=0;連接配接被響應的時候,
ACK
=1,
SYN
ACK
=1;這個标志的資料包經常被用來進行端口掃描。
2.ACK(确認)
此标志表示應答域有效,就是說前面所說的TCP應答号将會包含在TCP資料包中;有兩個取值:0和1,為1的時候表示應答域有效,反之為0。
3.PSH(傳送)
這個标志位表示Push操作。所謂Push操作就是指在資料包到達接收端以後,立即傳送給應用程式,而不是在緩沖區中排隊;
4.FIN(結束)
表示發送端已經達到資料末尾,也就是說雙方的資料傳送完成,沒有資料可以傳送了,發送
FIN
标志位的TCP資料包後,連接配接将被斷開。
5.RST(重置)
這個标志表示連接配接複位請求。用來複位那些産生錯誤的連接配接,也被用來拒絕錯誤和非法的資料包。
6.URG(緊急)
此标志表示TCP包的緊急指針域(後面馬上就要說到)有效,用來保證TCP連接配接不被中斷,并且督促中間層裝置要盡快處理這些資料。
TCP是面向連接配接的,無論哪一方向另一方發送資料之前,都必須先在雙方之間建立一條連接配接。在TCP/IP協定中,TCP協定提供可靠的連接配接服務,連接配接是通過三次握手進行初始化的。三次握手的目的是同步連接配接雙方的序列号和确認号并交換 TCP視窗大小資訊。
1.第一次握手:建立連接配接。
發送連接配接請求封包,将SYN=1,随機産生seq=x,用戶端進入SYN_SEND狀态,等待伺服器的确認。
2.第二次握手:伺服器收到SYN封包段。
對這個SYN封包段進行确認,設定ACK=x+1,同時自己還發送SYN請求SYN=1,序列号seq=y;伺服器端将上述所有資訊放到一個封包段(即SYN+ACK)中,一并發給用戶端,此時伺服器進入SYN_RECV狀态。
3.第三次握手:用戶端收到伺服器的SYN+ACK封包段。
seq=y+1,向伺服器發送ACK封包段,這個封包段發送完畢後,用戶端與伺服器端都進入ESTABLISHED狀态,完成TCP三向交握。
三、TCP四次揮手
-
封包段,
ACK
ACK=seq+
1;主機1進入FIN_WAIT_2狀态;主機2告訴主機1,我“同意”你的關閉請求。
3.第三次分手
FIN封包段,請求關閉連接配接,同時主機2進入
CLOSE_WAIT
狀态;
4.第四次分手
-
封包段,向主機2發送
FIN
封包段,然後主機1進入
ACK
狀态;主機2收到主機1的
TIME_WAIT
封包段以後,就關閉連接配接;此時,主機1等待2MSL後依然沒有收到回複,則證明Server端已正常關閉,那好,主機1也可以關閉連接配接了。
ACK