更新時(shí)間:2023年04月18日10時(shí)54分 來(lái)源:傳智教育 瀏覽次數(shù):
TCP采用三次握手的方式建立連接,主要是為了確保連接的可靠性和防止因網(wǎng)絡(luò)延遲或其他原因引起的錯(cuò)誤連接。
具體來(lái)說(shuō),三次握手的過(guò)程如下:
客戶(hù)端向服務(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)求。
客戶(hù)端再次回復(fù)一個(gè)確認(rèn)報(bào)文(ACK),表示已經(jīng)收到服務(wù)器的確認(rèn)。
通過(guò)這個(gè)過(guò)程,客戶(hù)端和服務(wù)器能夠確保雙方都能正常收發(fā)數(shù)據(jù)。如果只進(jìn)行兩次握手,那么就存在以下問(wèn)題:
1.如果只進(jìn)行兩次握手,那么服務(wù)器只能確認(rèn)客戶(hù)端的請(qǐng)求,但是客戶(hù)端無(wú)法確認(rèn)服務(wù)器是否已經(jīng)收到自己的請(qǐng)求,從而無(wú)法保證連接的可靠性。
2.可能存在歷史連接的延續(xù)。假設(shè)客戶(hù)端發(fā)送一個(gè)連接請(qǐng)求,但是由于某種原因?qū)е路?wù)器沒(méi)有收到請(qǐng)求,客戶(hù)端可能會(huì)認(rèn)為連接已經(jīng)建立,但是服務(wù)器并不知道。如果后來(lái)有其他客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求,而請(qǐng)求中恰好包含了與之前客戶(hù)端相同的源地址和端口號(hào),那么服務(wù)器就會(huì)誤認(rèn)為這是之前客戶(hù)端發(fā)送的請(qǐng)求,從而建立連接,這就導(dǎo)致了歷史連接的延續(xù),可能會(huì)給網(wǎng)絡(luò)帶來(lái)安全隱患。
因此,為了保證連接的可靠性和安全性,TCP采用了三次握手的方式建立連接。
北京校區(qū)