成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TCP的三次握手與四次揮手

網絡 網絡管理
客戶端收到服務器的FIN包后,發送一個ACK包給服務器,確認服務器的請求。客戶端進入TIME_WAIT狀態,等待足夠長的時間以確保服務器收到了自己的確認。

TCP(Transmission Control Protocol,傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。TCP的主要目標是提供一種可靠的、有序的和錯誤校驗的數據傳輸方式,以確保數據在網絡中的可靠傳輸。

主要特點:

  1. 面向連接:在傳輸數據之前,必須先建立TCP連接。連接是可靠的服務,具有固定的連接端點。
  2. 可靠傳輸:TCP提供了數據傳輸的確認和重傳機制,以確保數據的順序和完整性。如果數據在傳輸過程中丟失或損壞,TCP會重新發送數據,以確保接收端能夠正確地接收到數據。
  3. 流量控制:TCP提供了一種機制,用于控制發送方發送數據的速度,以防止接收方來不及接收數據而造成數據丟失。
  4. 擁塞控制:當網絡擁塞時,TCP會降低發送數據的速度,以減少網絡擁塞。TCP使用一系列算法來檢測和防止網絡擁塞。
  5. 字節流:TCP將應用程序中的數據作為字節流發送,沒有消息邊界的概念。這意味著發送端可以連續發送數據,而接收端必須按順序接收字節流并重新組合成有意義的數據。

TCP廣泛應用于互聯網協議(IP)網絡中,是互聯網協議(IP)的重要組成部分。許多應用程序和協議都使用TCP作為其傳輸層協議,例如HTTP、FTP、SMTP和許多其他協議。

在發送數據前,通信雙方必須在彼此間建立一條連接。所謂的“連接”,其實是客戶端和服務端保存的一份關于對方的信息,如ip地址、端口號等。TCP可以看成是一種字節流,它會處理IP層或以下的層的丟包、重復以及錯誤問題。在連接的建立過程中,雙方需要交換一些連接的參數。這些參數可以放在TCP頭部。一個TCP連接由一個4元組構成,分別是兩個IP地址和兩個端口號。一個TCP連接通常分為三個階段:連接、數據傳輸、退出(關閉)。通過三次握手建立一個鏈接,通過四次揮手來關閉一個連接。當一個連接被建立或被終止時,交換的報文段只包含TCP頭部,而沒有數據。

TCP報文頭部結構

圖片圖片

  1. 源端口和目的端口:用于標識發送和接收數據的進程。
  2. 序號:seq序號,占32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記,以便在接收端重新排序并組裝數據。
  3. 確認號:ack序號,占32位,只有ACK標志位為1時,確認序號字段才有效,ack=seq+1,用于確認接收到的數據,并告訴發送端下一個期望接收的字節號。
  4. 頭部長度:指示TCP頭部的大小(以32位字為單位)。
  5. 標志位:URG、ACK、PSH、RST、SYN和FIN等標志,用于指示TCP的狀態和操作。標志位具體含義如下:
  • ACK:確認序號有效。
  • FIN:釋放一個連接。
  • PSH:接收方應該盡快將這個報文交給應用層。
  • RST:重置連接。SYN:發起一個新連接。
  • URG:緊急指針(urgent pointer)有效。
  1. 窗口大小:用于流量控制,指示接收端可接收的最大數據量。
  2. 校驗和:用于檢測數據在傳輸過程中的錯誤。
  3. 緊急指針:用于標識緊急數據的字節號。
  4. TCP選項:可變長的可選信息,例如最大段大小、時間戳等。

三次握手

TCP的三次握手過程是建立TCP連接的過程,目的是為了初始化通信雙方sequence number的初始值。

圖片圖片

  • 第一次握手:客戶端發送SYN包(SYN=1)到服務器,并進入SYN_SEND狀態,等待服務器確認。
    客戶端要向服務端發起連接請求,首先客戶端隨機生成一個起始序列號ISN(比如是100),那客戶端向服務端發送的報文段包含SYN標志位(也就是SYN=1),序列號seq=100。
  • 第二次握手:服務器收到SYN包,必須確認客戶端的SYN(ACK=1,ack=x+1),同時自己也發送一個SYN包(SYN=1,seq=y)給客戶端,即SYN+ACK包,此時服務器進入SYN_RECV狀態。
    服務端收到客戶端發過來的報文后,發現SYN=1,知道這是一個連接請求,于是將客戶端的起始序列號100存起來,并且隨機生成一個服務端的起始序列號(比如是300)。然后給客戶端回復一段報文,回復報文包含SYN和ACK標志(也就是SYN=1,ACK=1)、序列號seq=300、確認號ack=101(客戶端發過來的序列號+1)。
  • 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ACK=1,ack=y+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
    客戶端收到服務端的回復后發現ACK=1并且ack=101,于是知道服務端已經收到了序列號為100的那段報文;同時發現SYN=1,知道了服務端同意了這次連接,于是就將服務端的序列號300給存下來。然后客戶端再回復一段報文給服務端,報文包含ACK標志位(ACK=1)、ack=301(服務端序列號+1)、seq=101(第一次握手時發送報文是占據一個序列號的,所以這次seq就從101開始,需要注意的是不攜帶數據的ACK報文是不占據序列號的,所以后面第一次正式發送數據時seq還是101)。當服務端收到報文后發現ACK=1并且ack=301,就知道客戶端收到序列號為300的報文了,就這樣客戶端和服務端通過TCP建立了連接。

四次揮手

四次揮手過程是用于正常關閉TCP連接的過程。

圖片圖片

比如客戶端初始化的序列號ISA=100,服務端初始化的序列號ISA=300。TCP連接成功后客戶端總共發送了1000個字節的數據,服務端在客戶端發FIN報文前總共回復了2000個字節的數據。

  • 第一次揮手:客戶端發送一個FIN包,表示想要關閉TCP連接。客戶端進入FIN_WAIT_1狀態,等待服務器確認。
    當客戶端的數據都傳輸完成后,客戶端向服務端發出連接釋放報文(當然數據沒發完時也可以發送連接釋放報文并停止發送數據),釋放連接報文包含FIN標志位(FIN=1)、序列號seq=1101(100+1+1000,其中的1是建立連接時占的一個序列號)。需要注意的是客戶端發出FIN報文段后只是不能發數據了,但是還可以正常收數據;另外FIN報文段即使不攜帶數據也要占據一個序列號。
  • 第二次揮手:服務器收到FIN包后,發送一個ACK包給客戶端,確認客戶端的請求,服務器進入CLOSE_WAIT狀態。
    服務端收到客戶端發的FIN報文后給客戶端回復確認報文,確認報文包含ACK標志位(ACK=1)、確認號ack=1102(客戶端FIN報文序列號1101+1)、序列號seq=2300(300+2000)。此時服務端處于關閉等待狀態,而不是立馬給客戶端發FIN報文,這個狀態還要持續一段時間,因為服務端可能還有數據沒發完。
  • 第三次揮手:服務器發送一個FIN包給客戶端,表示自己想要關閉連接。服務器進入LAST_ACK狀態,等待客戶端的確認。
    服務端將最后數據(比如50個字節)發送完畢后就向客戶端發出連接釋放報文,報文包含FIN和ACK標志位(FIN=1,ACK=1)、確認號和第二次揮手一樣ack=1102、序列號seq=2350(2300+50)。
  • 第四次揮手:客戶端收到服務器的FIN包后,發送一個ACK包給服務器,確認服務器的請求。客戶端進入TIME_WAIT狀態,等待足夠長的時間以確保服務器收到了自己的確認。然后客戶端進入CLOSED狀態,關閉連接。服務器收到ACK包后,進入CLOSED狀態,關閉連接。
    客戶端收到服務端發的FIN報文后,向服務端發出確認報文,確認報文包含ACK標志位(ACK=1)、確認號ack=2351、序列號seq=1102。注意客戶端發出確認報文后不是立馬釋放TCP連接,而是要經過2MSL(最長報文段壽命的2倍時長)后才釋放TCP連接。而服務端一旦收到客戶端發出的確認報文就會立馬釋放TCP連接,所以服務端結束TCP連接的時間要比客戶端早一些。


責任編輯:武曉燕 來源: 沐雨花飛蝶
相關推薦

2015-10-13 09:42:52

TCP網絡協議

2019-06-12 11:26:37

TCP三次握手四次揮手

2020-02-17 10:10:43

TCP三次握手四次揮手

2023-10-24 15:22:09

TCPUDP

2021-01-29 06:11:08

TCP通信三次握手

2021-05-18 12:27:40

TCP控制協議

2021-07-03 17:47:25

TCP控制協議

2019-02-01 09:38:16

2017-09-25 21:27:07

TCP協議數據鏈

2015-11-09 09:58:56

2014-09-19 09:46:46

TCPIP

2021-05-28 09:08:20

TCP連接序列號

2020-06-29 14:50:47

TCP狀態ACK

2025-05-20 08:38:03

2023-10-28 09:07:57

TCP面試三次握手

2022-11-17 10:20:49

TCP三次握手四次揮手

2021-08-04 08:01:28

Linux 三次握手Linux 系統

2023-10-17 15:44:19

TCP四次揮手

2023-11-01 08:04:08

WiresharkTCP協議

2023-03-07 08:38:23

三次握手四次揮手服務端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美寡妇偷汉性猛交 | 国产在线精品一区二区三区 | 黄色成人在线 | 久久出精品 | 日韩一区二区免费视频 | 欧美精品乱码99久久影院 | 日韩视频在线一区二区 | 精品国产乱码久久久久久闺蜜 | 欧美日韩视频 | 精品国产伦一区二区三区观看说明 | 欧美色影院| 亚洲精品一区二区三区在线观看 | 一区二区三区亚洲 | 91福利网| 日韩一区二区在线播放 | 久久亚洲欧美日韩精品专区 | 久久精品 | 久久精品 | 精品久久久久久久久久久久久 | 在线视频a | 欧美日韩国产精品激情在线播放 | 天堂成人国产精品一区 | h在线| 欧美一级片在线观看 | 欧美一区二区三区在线观看 | av网址在线 | 国产精品久久久久久久午夜片 | 国产精品毛片一区二区三区 | 精品在线一区 | 欧洲精品码一区二区三区免费看 | 丁香婷婷在线视频 | 亚洲欧美日韩系列 | 亚洲一区二区三区在线播放 | 99视频免费 | 成人性生交大片 | 中文字幕视频在线观看 | 久久99成人 | 国产91久久久久久久免费 | 国产精品日韩欧美一区二区三区 | 日韩精彩视频 | 成人免费淫片aa视频免费 |