三次握手四次揮手簡(jiǎn)述 TCP為什么是三次握手,而不是兩次或四次?
TCP為什么是三次握手,而不是兩次或四次?你聽(tīng)到了嗎?我聽(tīng)到了。你呢?我也聽(tīng)說(shuō)過(guò)三次之后,確保雙方都能通信,哪句話無(wú)效TCP/IP由四層組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。三次握手和四個(gè)波發(fā)生在
TCP為什么是三次握手,而不是兩次或四次?
你聽(tīng)到了嗎?
我聽(tīng)到了。你呢?
我也聽(tīng)說(shuō)過(guò)
三次之后,確保雙方都能通信,哪句話無(wú)效
TCP/IP由四層組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。
三次握手和四個(gè)波發(fā)生在第三層:傳輸層。原因:三次握手和四次握手是TCP協(xié)議保證可靠全連接的手段,TCP協(xié)議屬于傳輸層協(xié)議。當(dāng)然,三次握手和四次握手發(fā)生在第三層——傳輸層
首先,讓我們看看三次握手的作用
!在第一次握手中,客戶端向服務(wù)器發(fā)送請(qǐng)求:“我想與您建立鏈接”
在第二次握手中,服務(wù)器回復(fù)客戶端:“收到,您真的想與我建立鏈接嗎”
在第三次握手中,客戶端回復(fù)服務(wù)器:“是,我真的很想和你建立聯(lián)系。
成功
!我想您最大的疑問(wèn)是:當(dāng)服務(wù)器第二次回復(fù)客戶端時(shí),為什么不直接成功呢
!第三次握手的主要目的是防止向服務(wù)器發(fā)送無(wú)效的鏈接請(qǐng)求
!當(dāng)然,正常情況下沒(méi)問(wèn)題
!但是,在異常情況下!客戶端發(fā)送了一個(gè)請(qǐng)求,在一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上時(shí)間長(zhǎng)了,發(fā)送到服務(wù)器已經(jīng)無(wú)效了
!但是,如果服務(wù)器不發(fā)送確認(rèn)消息(第三次握手),它會(huì)認(rèn)為這是一個(gè)新的請(qǐng)求。
服務(wù)器會(huì)一直等待,但是對(duì)于客戶端來(lái)說(shuō),鏈接失敗了,不會(huì)發(fā)送數(shù)據(jù),造成服務(wù)器資源的極大浪費(fèi)
!通過(guò)第三次握手,它將防止無(wú)效鏈接傳輸?shù)椒?wù)器,從而浪費(fèi)服務(wù)器資源
!此外,不要忘記,即使有第三次握手,也經(jīng)常受到黑客的攻擊!即使它沒(méi)有受到攻擊,如果有太多的鏈接請(qǐng)求,服務(wù)器通常會(huì)出現(xiàn)503
!所以,必須有第三次握手
三次握手及四次揮手在TCP/ip模型的哪一層進(jìn)行的?最好有理由~?
TCP是面向連接的
就像打電話一樣。你需要撥號(hào)、打電話和連接。發(fā)表演講
過(guò)程:
a:我想和你建立聯(lián)系
B:好的,我知道。我也想和你建立連接
a:我知道你收到了我的連接請(qǐng)求,我也收到了你的連接請(qǐng)求
滑動(dòng)窗口:
主要是為了避免一次發(fā)送太多數(shù)據(jù),導(dǎo)致對(duì)方的緩存溢出。
滑動(dòng)窗口是一種動(dòng)態(tài)協(xié)商,即當(dāng)建立連接時(shí),它將進(jìn)行協(xié)商
同時(shí),當(dāng)緩沖區(qū)發(fā)生變化時(shí),它將進(jìn)行協(xié)商。
主要目的是避免在一方斷開連接而另一方不知道時(shí)浪費(fèi)資源來(lái)維護(hù)斷開的連接
過(guò)程:
假設(shè)已經(jīng)建立了三個(gè)連接
A:我要與您斷開連接
B:好的,我知道你要斷開連接
B:我也要和你斷開連接
A:好的,那就斷開連接
因?yàn)門CP還有一段路要走如果A.B想釋放連接,那么A會(huì)向B發(fā)送釋放連接消息。B收到消息后會(huì)發(fā)送確認(rèn)消息。此時(shí),a不發(fā)送數(shù)據(jù),但如果B發(fā)送數(shù)據(jù),a仍必須接受它。這叫做半封閉。然后B將發(fā)送一個(gè)連接釋放消息,a將發(fā)送一個(gè)確認(rèn)消息,所以是四次。