簡(jiǎn)述三次握手四次揮手 三次握手及四次揮手在TCP/ip模型的哪一層進(jìn)行的?最好有理由~?
三次握手及四次揮手在TCP/ip模型的哪一層進(jìn)行的?最好有理由~?TCP/IP由四層組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。三次握手和四個(gè)波發(fā)生在第三層:傳輸層。理由:三次握手和四次波是TCP協(xié)議保
三次握手及四次揮手在TCP/ip模型的哪一層進(jìn)行的?最好有理由~?
TCP/IP由四層組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。
三次握手和四個(gè)波發(fā)生在第三層:傳輸層。理由:三次握手和四次波是TCP協(xié)議保證可靠全連接的手段,TCP協(xié)議屬于傳輸層協(xié)議。當(dāng)然,三次握手和四個(gè)波發(fā)生在第三層——傳輸層
面向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é)商。
主要目的是避免在一方斷開(kāi)連接而另一方不知道時(shí)浪費(fèi)資源來(lái)維護(hù)斷開(kāi)的連接
過(guò)程:
假設(shè)已經(jīng)建立了三個(gè)連接
A:我要與您斷開(kāi)連接
B:好的,我知道你要斷開(kāi)連接
B:我也要斷開(kāi)連接
A:好的,那就斷開(kāi)連接
這個(gè)問(wèn)題先看看三次握手都做了什么
!在第一次握手中,客戶端向服務(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三次握手,四次揮手?
三次握手:第一次握手:客戶端向服務(wù)器發(fā)送syn包(syn=x),進(jìn)入syn發(fā)送狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到syn包時(shí),必須確認(rèn)客戶端的syn(ACK=x 1),同時(shí)還發(fā)送syn包(syn=y),即syn ACK小包裹。此時(shí),服務(wù)器進(jìn)入synRecv狀態(tài);第三次握手:客戶機(jī)接收服務(wù)器的syn+ACK數(shù)據(jù)包并向服務(wù)器發(fā)送ACK(ACK=y1)。數(shù)據(jù)包發(fā)送后,客戶機(jī)和服務(wù)器進(jìn)入建立狀態(tài)并完成三次握手。在握手過(guò)程中,數(shù)據(jù)包不包含數(shù)據(jù)。在三次握手之后,客戶機(jī)和服務(wù)器正式開(kāi)始傳輸數(shù)據(jù)。理想情況下,一旦建立了TCP連接,TCP連接將一直保持到雙方中的任何一方關(guān)閉連接為止。四次握手類似于建立連接的“三次握手”,斷開(kāi)TCP連接需要“四次握手”。第一波:主動(dòng)關(guān)閉方發(fā)送fin關(guān)閉主動(dòng)關(guān)閉方到被動(dòng)關(guān)閉方的數(shù)據(jù)傳輸,即主動(dòng)關(guān)閉方告訴被動(dòng)關(guān)閉方:我不再向您發(fā)送數(shù)據(jù)(當(dāng)然,如果fin包之前發(fā)送的數(shù)據(jù)沒(méi)有收到相應(yīng)的ack確認(rèn)消息,主動(dòng)關(guān)閉方仍然會(huì)重新發(fā)送該數(shù)據(jù)),但此時(shí)主動(dòng)關(guān)閉方也可以接受該數(shù)據(jù)。第二波:被動(dòng)關(guān)閉方收到fin報(bào)文后,向?qū)Ψ桨l(fā)送ACK,確認(rèn)序號(hào)為收到序號(hào)1(與syn相同,一個(gè)fin占用一個(gè)序號(hào))。第三波:被動(dòng)關(guān)閉方發(fā)送fin,用于關(guān)閉被動(dòng)關(guān)閉方到主動(dòng)關(guān)閉方的數(shù)據(jù)傳輸。換言之,它告訴主動(dòng)成交方我的數(shù)據(jù)已經(jīng)發(fā)送出去了,不會(huì)再向您發(fā)送任何數(shù)據(jù)。第四波:主動(dòng)關(guān)閉方收到fin后,向被動(dòng)關(guān)閉方發(fā)送ACK,確認(rèn)收到序列號(hào)1。到目前為止,已經(jīng)完成了四次浪潮。