摘要:三次握手的目的是同步連接雙方的序列號(hào)和確認(rèn)號(hào)并交換窗口大小信息。可是,在的應(yīng)答分組在傳輸中被丟失的情況下,將不知道是否已準(zhǔn)備好,不知道建議什么樣的序列號(hào),甚至懷疑是否收到自己的連接請求分組。
轉(zhuǎn)自:忘了地址了。
客戶端向服務(wù)器發(fā)送一個(gè)SYN置位的TCP報(bào)文,其中包含連接的初始序列號(hào)x和一個(gè)窗口大?。ū硎究蛻舳松嫌脕泶鎯?chǔ)從服務(wù)器發(fā)送來的傳入段的緩沖區(qū)的大小)。
服務(wù)器收到客戶端發(fā)送過來的SYN報(bào)文后,向客戶端發(fā)送一個(gè)SYN和ACK都置位的TCP報(bào)文,其中包含它選擇的初始序列號(hào)y、對客戶端的序列號(hào)的確認(rèn)x+1和一個(gè)窗口大小(表示服務(wù)器上用來存儲(chǔ)從客戶端發(fā)送來的傳入段的緩沖區(qū)的大小)。
客戶端接收到服務(wù)器端返回的SYN+ACK報(bào)文后,向服務(wù)器端返回一個(gè)確認(rèn)號(hào)y+1和序號(hào)x+1的ACK報(bào)文,一個(gè)標(biāo)準(zhǔn)的TCP連接完成。
TCP 使用類似的握手過程來結(jié)束連接。這可確保兩個(gè)主機(jī)均能完成傳輸并確保所有的數(shù)據(jù)均得以接收
TCP Client Flags TCP Server 1 Send SYN (seq=x) ----SYN---> SYN Received 2 SYN/ACK Received <---SYN/ACK---- Send SYN (seq=y), ACK (x+1) 3 Send ACK (y+1) ----ACK---> ACK Received, Connection Established w: ISN (Initial Sequence Number) of the Client x: ISN of the Server為什么要三次握手?
TCP的三次握手最主要是防止已過期的連接再次傳到被連接的主機(jī)。
如果采用兩次的話,會(huì)出現(xiàn)下面這種情況。
比如是A機(jī)要連到B機(jī),結(jié)果發(fā)送的連接信息由于某種原因沒有到達(dá)B機(jī);于是,A機(jī)又發(fā)了一次,結(jié)果這次B收到了,于是就發(fā)信息回來,兩機(jī)就連接。
傳完東西后,斷開。
結(jié)果這時(shí)候,原先沒有到達(dá)的連接信息突然又傳到了B機(jī),于是B機(jī)發(fā)信息給A,然后B機(jī)就以為和A連上了,這個(gè)時(shí)候B機(jī)就在等待A傳東西過去。
三次握手改成僅需要兩次握手,死鎖是可能發(fā)生
考慮計(jì)算機(jī)A和B之間的通信,假定B給A發(fā)送一個(gè)連接請求分組,A收到了這個(gè)分組,并發(fā)送了確認(rèn)應(yīng)答分組。按照兩次握手的協(xié)定,A認(rèn)為連接已經(jīng)成功地建立了,可以開始發(fā)送數(shù)據(jù)分組。可是,B在A的應(yīng)答分組在傳輸中被丟失的情況下,將不知道A是否已準(zhǔn)備好,不知道A建議什么樣的序列號(hào),B甚至懷疑A是否收到自己的連接請求分組。在這種情況下,B認(rèn)為連接還未建立成功,將忽略A發(fā)來的任何數(shù)據(jù)分組,只等待連接確認(rèn)應(yīng)答分組。而A在發(fā)出的分組超時(shí)后,重復(fù)發(fā)送同樣的分組。這樣就形成了死鎖
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/21752.html
摘要:在協(xié)議中,協(xié)議提供可靠的連接服務(wù),連接是通過三次握手進(jìn)行初始化的。三次握手的目的是同步連接雙方的序列號(hào)和確認(rèn)號(hào)并交換窗口大小信息。采用三次握手的辦法可以防止上述現(xiàn)象發(fā)生。 TCP是什么? 具體的關(guān)于TCP是什么,我不打算詳細(xì)的說了;當(dāng)你看到這篇文章時(shí),我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我們就繼續(xù)。它只是一個(gè)超級(jí)麻煩的協(xié)議,而它又是互聯(lián)網(wǎng)的基礎(chǔ),也是每個(gè)程序員必備...
摘要:協(xié)議族的構(gòu)成數(shù)據(jù)鏈路層網(wǎng)絡(luò)層傳輸層應(yīng)用層和是網(wǎng)絡(luò)層的協(xié)議,但是它所工作的內(nèi)容是鏈路層的。。。發(fā)送的時(shí)候,協(xié)議為每個(gè)包編號(hào),簡稱,以便接收的一方按照順序還原。并沒有提供任何機(jī)制,表示原始文件的大小,這由應(yīng)用層的協(xié)議來規(guī)定。 TCP/IP協(xié)議族的構(gòu)成 * 數(shù)據(jù)鏈路層:ARP,RARP * 網(wǎng)絡(luò)層: IP,ICMP,IGMP * 傳輸層:TCP ,UDP,UGP * 應(yīng)用層:Telnet,F...
摘要:原理套接字概念套接字是通信的基石,是支持協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。建立連接建立連接至少需要一對套接字,其中一個(gè)運(yùn)行于客戶端,稱為,另一個(gè)運(yùn)行于服務(wù)器端,稱為。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請求。 最近在惡補(bǔ)計(jì)算機(jī)網(wǎng)絡(luò)方面的知識(shí),之前對于TCP的三次握手和四次分手也是模模糊糊,對于其中的細(xì)節(jié)更是渾然不知,最近看了很多這方面的知識(shí),也在系統(tǒng)的學(xué)習(xí)計(jì)算機(jī)...
摘要:一為了確認(rèn)建立連接的雙方擁有收發(fā)能力。具體解釋如下圖所示兩個(gè)機(jī)器建立連接,發(fā)送建立信號(hào)這是第一次握手,收到后發(fā)送確認(rèn)信號(hào)這是第二次握手,收到確認(rèn)后再次發(fā)送確認(rèn)信號(hào)這是第三次握手。 一:為了確認(rèn)建立連接的雙方擁有收發(fā)能力。二:為了防止超時(shí)。具體解釋如下圖所示: showImg(https://segmentfault.com/img/bVbjL4r?w=710&h=599); A,B兩個(gè)...
閱讀 1774·2021-11-12 10:36
閱讀 1676·2021-11-12 10:36
閱讀 3511·2021-11-02 14:46
閱讀 3908·2019-08-30 15:56
閱讀 3730·2019-08-30 15:55
閱讀 1528·2019-08-30 15:44
閱讀 1112·2019-08-30 14:00
閱讀 2783·2019-08-29 18:41