教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

tcp為什么要三次握手,兩次不行嗎?為什么?

更新時(shí)間:2023年04月18日10時(shí)54分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  TCP采用三次握手的方式建立連接,主要是為了確保連接的可靠性和防止因網(wǎng)絡(luò)延遲或其他原因引起的錯(cuò)誤連接。

  具體來(lái)說(shuō),三次握手的過(guò)程如下:

  客戶端向服務(wù)器發(fā)送一個(gè)連接請(qǐng)求報(bào)文(SYN)。

  服務(wù)器收到請(qǐng)求報(bào)文后,回復(fù)一個(gè)確認(rèn)報(bào)文(SYN+ACK)表示已經(jīng)收到請(qǐng)求。

TCP為什么要進(jìn)行三次握手??jī)纱尾恍袉幔? src=

  客戶端再次回復(fù)一個(gè)確認(rèn)報(bào)文(ACK),表示已經(jīng)收到服務(wù)器的確認(rèn)。

  通過(guò)這個(gè)過(guò)程,客戶端和服務(wù)器能夠確保雙方都能正常收發(fā)數(shù)據(jù)。如果只進(jìn)行兩次握手,那么就存在以下問(wèn)題:

  1.如果只進(jìn)行兩次握手,那么服務(wù)器只能確認(rèn)客戶端的請(qǐng)求,但是客戶端無(wú)法確認(rèn)服務(wù)器是否已經(jīng)收到自己的請(qǐng)求,從而無(wú)法保證連接的可靠性。

  2.可能存在歷史連接的延續(xù)。假設(shè)客戶端發(fā)送一個(gè)連接請(qǐng)求,但是由于某種原因?qū)е路?wù)器沒(méi)有收到請(qǐng)求,客戶端可能會(huì)認(rèn)為連接已經(jīng)建立,但是服務(wù)器并不知道。如果后來(lái)有其他客戶端向服務(wù)器發(fā)送請(qǐng)求,而請(qǐng)求中恰好包含了與之前客戶端相同的源地址和端口號(hào),那么服務(wù)器就會(huì)誤認(rèn)為這是之前客戶端發(fā)送的請(qǐng)求,從而建立連接,這就導(dǎo)致了歷史連接的延續(xù),可能會(huì)給網(wǎng)絡(luò)帶來(lái)安全隱患。

  因此,為了保證連接的可靠性和安全性,TCP采用了三次握手的方式建立連接。

0 分享到:
和我們?cè)诰€交談!