为什么TCP连接至少3次握手
A 要發(fā)起一個(gè)連接,當(dāng)發(fā)了第一個(gè)請(qǐng)求杳無(wú)音信的時(shí)候,會(huì)有很多的可能性,比如第一個(gè)請(qǐng)求包丟了,再如沒(méi)有丟,但是繞了彎路,超時(shí)了,還有 B 沒(méi)有響應(yīng),不想 和我連接。 A 不能確認(rèn)結(jié)果,于是再發(fā),再發(fā)。終于,有一個(gè)請(qǐng)求包到了 B,但是請(qǐng)求包到了 B 的這個(gè)事情,目前 A 還是不知道的,A 還有可能再發(fā)。 B 收到了請(qǐng)求包,就知道了 A 的存在,并且知道 A 要和它建立連接。如果 B 不樂(lè)意建立連接,則 A 會(huì) 重試一陣后放棄,連接建立失敗,沒(méi)有問(wèn)題;如果 B 是樂(lè)意建立連接的,則會(huì)發(fā)送應(yīng)答包給 A。 當(dāng)然對(duì)于 B 來(lái)說(shuō),這個(gè)應(yīng)答包也是一入網(wǎng)絡(luò)深似海,不知道能不能到達(dá) A。這個(gè)時(shí)候 B 自然不能認(rèn)為連 接是建立好了,因?yàn)閼?yīng)答包仍然會(huì)丟,會(huì)繞彎路,或者 A 已經(jīng)掛了都有可能。 而且這個(gè)時(shí)候 B 還能碰到一個(gè)詭異的現(xiàn)象就是,A 和 B 原來(lái)建立了連接,做了簡(jiǎn)單通信后,結(jié)束了連接。還記得嗎?A 建立連接的時(shí)候,請(qǐng)求包重復(fù)發(fā)了幾次,有的請(qǐng)求包繞了一大圈又回來(lái)了,B 會(huì)認(rèn)為 這也是一個(gè)正常的的請(qǐng)求的話(huà),因此建立了連接,可以想象,這個(gè)連接不會(huì)進(jìn)行下去,也沒(méi)有個(gè)終結(jié)的 時(shí)候,純屬單相思了。因而兩次握手肯定不行。
總結(jié)
以上是生活随笔為你收集整理的为什么TCP连接至少3次握手的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。