《LINUX教程:解讀TCP三次握手》要點:
本文介紹了LINUX教程:解讀TCP三次握手,希望對您有用。如果有疑問,可以聯(lián)系我們。
三次握手所謂的“三次握手”即對每次發(fā)送的數(shù)據(jù)量是怎樣跟蹤進行協(xié)商使的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確定的數(shù)據(jù)確認數(shù)及數(shù)據(jù)發(fā)送、接收完畢后何時取消聯(lián)系,并建立虛連接.
主機建立連接為什么需要三次握手?為了防止已經(jīng)是失效連接突然又重新回到了服務(wù)端而產(chǎn)生的錯誤.“比如一個客戶端發(fā)出一個連接哀求報文雖然沒有丟失,但是由于一些原因在在某個網(wǎng)絡(luò)節(jié)點中長時間滯留,以至于在斷開連接后才到達服務(wù)端.這本身就是一個已經(jīng)失效的報文.但是服務(wù)器誤以為是客戶端的又一個新的哀求.假設(shè)沒有三次握手那么只要服務(wù)端發(fā)出確認鏈接就建立了.由于客戶端也沒有給服務(wù)端發(fā)哀求,因此也不回復服務(wù)端的確認.但是服務(wù)端確認為新的連接開始了,等待客戶端發(fā)數(shù)據(jù).這樣就容易造成服務(wù)端的資源的浪費.采用三次握手可以防止這種情況發(fā)生.
三次握手
因為要保證信道的可靠,就需要雙方溝通并且達成一致.而要辦理這個文件3次是最小值.所以三次握手并不是真對TCP來說的,而是為了保證信道的可靠.
個人理解:三次握手并不準確,準確的說是雙方各一次握手,各確認一次.中間第二次是握手與確認合并在一起
為什么揮手比握手多一次
因為tcp連接是全雙工的,因此每個方向都必需單獨的斷開連接客戶端申請斷開連接,只是不再發(fā)送數(shù)據(jù),還能接收數(shù)據(jù).需要等待服務(wù)端將數(shù)據(jù)發(fā)送完畢后,等待服務(wù)端申請斷開連接.
本文永遠更新鏈接地址:
學習更多LINUX教程,請查看站內(nèi)專欄,如果有LINUX疑問,可以加QQ交流《LINUX教程:解讀TCP三次握手》。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7019.html