TCP為什么需要進(jìn)行三次握手深入解析
發(fā)布時(shí)間:2012-11-19 08:54:02 作者:佚名
我要評(píng)論
本文將詳細(xì)介紹TCP為什么需要進(jìn)行三次握手,需要深入了解的朋友可以參考下
首先簡(jiǎn)單介紹一下TCP三次握手
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。
第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器 進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入 ESTABLISHED狀態(tài),完成三次握手。
通過(guò)這樣的三次握手,客戶端與服務(wù)端建立起可靠的雙工的連接,開(kāi)始傳送數(shù)據(jù)。
三次握手的最主要目的是保證連接是雙工的,可靠更多的是通過(guò)重傳機(jī)制來(lái)保證的。
但是為什么一定要進(jìn)行三次握手來(lái)保證連接是雙工的呢,一次不行么??jī)纱尾恍忻??我們舉一個(gè)現(xiàn)實(shí)生活中兩個(gè)人進(jìn)行語(yǔ)言溝通的例子來(lái)模擬三次握手。
第一次對(duì)話:
老婆讓甲出去打醬油,半路碰到一個(gè)朋友乙,甲問(wèn)了一句:哥們你吃飯了么?
結(jié)果乙?guī)е鷻C(jī)聽(tīng)歌呢,根本沒(méi)聽(tīng)到,沒(méi)反應(yīng)。甲心里想:跟你說(shuō)話也沒(méi)個(gè)音,不跟你說(shuō)了,溝通失敗。說(shuō)明乙接受不到甲傳過(guò)來(lái)的信息的情況下溝通肯定是失敗的。
如果乙聽(tīng)到了甲說(shuō)的話,那么第一次對(duì)話成功,接下來(lái)進(jìn)行第二次對(duì)話。
第二次對(duì)話:
乙聽(tīng)到了甲說(shuō)的話,但是他是老外,中文不好,不知道甲說(shuō)的啥意思也不知道怎樣回答,于是隨便回答了一句學(xué)過(guò)的中文 :我去廁所了。甲一聽(tīng)立刻笑噴了,“去廁所吃飯”?道不同不相為謀,離你遠(yuǎn)點(diǎn)吧,溝通失敗。說(shuō)明乙無(wú)法做出正確應(yīng)答的情況下溝通失敗。
如果乙聽(tīng)到了甲的話,做出了正確的應(yīng)答,并且還進(jìn)行了反問(wèn):我吃飯了,你呢?那么第二次握手成功。
通過(guò)前兩次對(duì)話證明了乙能夠聽(tīng)懂甲說(shuō)的話,并且能做出正確的應(yīng)答。接下來(lái)進(jìn)行第三次對(duì)話。
第三次對(duì)話:
甲剛和乙打了個(gè)招呼,突然老婆喊他,“你個(gè)死鬼,打個(gè)醬油咋這么半天,看我回家咋收拾你”,甲是個(gè)妻管嚴(yán),聽(tīng)完嚇得二話不說(shuō)就跑回家了,把乙自己晾那了。乙心想:這什么人啊,得,我也回家吧,溝通失敗。說(shuō)明甲無(wú)法做出應(yīng)答的情況下溝通失敗。
如果甲也做出了正確的應(yīng)答:我也吃了。那么第三次對(duì)話成功,兩人已經(jīng)建立起了順暢的溝通渠道,接下來(lái)開(kāi)始持續(xù)的聊天。
通過(guò)第二次和第三次的對(duì)話證明了甲能夠聽(tīng)懂乙說(shuō)的話,并且能做出正確的應(yīng)答。
可見(jiàn),兩個(gè)人進(jìn)行有效的語(yǔ)言溝通,這三次對(duì)話的過(guò)程是必須的。
同理對(duì)于TCP為什么需要進(jìn)行三次握手我們可以一樣的理解:
為了保證服務(wù)端能收接受到客戶端的信息并能做出正確的應(yīng)答而進(jìn)行前兩次(第一次和第二次)握手,為了保證客戶端能夠接收到服務(wù)端的信息并能做出正確的應(yīng)答而進(jìn)行后兩次(第二次和第三次)握手。
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。
第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器 進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入 ESTABLISHED狀態(tài),完成三次握手。
通過(guò)這樣的三次握手,客戶端與服務(wù)端建立起可靠的雙工的連接,開(kāi)始傳送數(shù)據(jù)。
三次握手的最主要目的是保證連接是雙工的,可靠更多的是通過(guò)重傳機(jī)制來(lái)保證的。
但是為什么一定要進(jìn)行三次握手來(lái)保證連接是雙工的呢,一次不行么??jī)纱尾恍忻??我們舉一個(gè)現(xiàn)實(shí)生活中兩個(gè)人進(jìn)行語(yǔ)言溝通的例子來(lái)模擬三次握手。
第一次對(duì)話:
老婆讓甲出去打醬油,半路碰到一個(gè)朋友乙,甲問(wèn)了一句:哥們你吃飯了么?
結(jié)果乙?guī)е鷻C(jī)聽(tīng)歌呢,根本沒(méi)聽(tīng)到,沒(méi)反應(yīng)。甲心里想:跟你說(shuō)話也沒(méi)個(gè)音,不跟你說(shuō)了,溝通失敗。說(shuō)明乙接受不到甲傳過(guò)來(lái)的信息的情況下溝通肯定是失敗的。
如果乙聽(tīng)到了甲說(shuō)的話,那么第一次對(duì)話成功,接下來(lái)進(jìn)行第二次對(duì)話。
第二次對(duì)話:
乙聽(tīng)到了甲說(shuō)的話,但是他是老外,中文不好,不知道甲說(shuō)的啥意思也不知道怎樣回答,于是隨便回答了一句學(xué)過(guò)的中文 :我去廁所了。甲一聽(tīng)立刻笑噴了,“去廁所吃飯”?道不同不相為謀,離你遠(yuǎn)點(diǎn)吧,溝通失敗。說(shuō)明乙無(wú)法做出正確應(yīng)答的情況下溝通失敗。
如果乙聽(tīng)到了甲的話,做出了正確的應(yīng)答,并且還進(jìn)行了反問(wèn):我吃飯了,你呢?那么第二次握手成功。
通過(guò)前兩次對(duì)話證明了乙能夠聽(tīng)懂甲說(shuō)的話,并且能做出正確的應(yīng)答。接下來(lái)進(jìn)行第三次對(duì)話。
第三次對(duì)話:
甲剛和乙打了個(gè)招呼,突然老婆喊他,“你個(gè)死鬼,打個(gè)醬油咋這么半天,看我回家咋收拾你”,甲是個(gè)妻管嚴(yán),聽(tīng)完嚇得二話不說(shuō)就跑回家了,把乙自己晾那了。乙心想:這什么人啊,得,我也回家吧,溝通失敗。說(shuō)明甲無(wú)法做出應(yīng)答的情況下溝通失敗。
如果甲也做出了正確的應(yīng)答:我也吃了。那么第三次對(duì)話成功,兩人已經(jīng)建立起了順暢的溝通渠道,接下來(lái)開(kāi)始持續(xù)的聊天。
通過(guò)第二次和第三次的對(duì)話證明了甲能夠聽(tīng)懂乙說(shuō)的話,并且能做出正確的應(yīng)答。
可見(jiàn),兩個(gè)人進(jìn)行有效的語(yǔ)言溝通,這三次對(duì)話的過(guò)程是必須的。
同理對(duì)于TCP為什么需要進(jìn)行三次握手我們可以一樣的理解:
為了保證服務(wù)端能收接受到客戶端的信息并能做出正確的應(yīng)答而進(jìn)行前兩次(第一次和第二次)握手,為了保證客戶端能夠接收到服務(wù)端的信息并能做出正確的應(yīng)答而進(jìn)行后兩次(第二次和第三次)握手。
相關(guān)文章
- 有internet協(xié)議版本(TCP/IPv4)及internet協(xié)議版本(TCP/IPv6),這些稱之為傳輸控制協(xié)議/網(wǎng)間協(xié)議,是一個(gè)工業(yè)標(biāo)準(zhǔn)的協(xié)議集,它是為廣域網(wǎng)(WAN)設(shè)計(jì)的2013-06-04
- 這篇文章主要為大家介紹了什么是tcp?tcp協(xié)議的基礎(chǔ)知識(shí)有哪些?與udp的區(qū)別在哪里?以下將詳細(xì)介紹tcp的基礎(chǔ)知識(shí),需要的朋友可以參考下2014-09-16
TCP協(xié)議的一些認(rèn)識(shí)及實(shí)踐知識(shí)簡(jiǎn)介
本文來(lái)探討一下TCP協(xié)議方面的一些認(rèn)識(shí)及實(shí)踐2012-10-25- 本文詳細(xì)來(lái)探討TCP建立拆除連接的知識(shí)2012-10-25
- 這篇文章主要為大家介紹了如何解決TCP窗口大小的調(diào)節(jié)與擁塞控制的辦法,有圖有步驟,很詳細(xì),需要的朋友可以參考下2014-09-17
- 這篇文章主要介紹了圖解TCP通信三次握手和四次分手,對(duì)正在學(xué)習(xí)TPC通信的同學(xué)會(huì)有些幫助,需要的朋友可以參考下2014-09-24
- 最常見(jiàn)的是TCP和UDP端口,這是用來(lái)在互聯(lián)網(wǎng)上的計(jì)算機(jī)之間的數(shù)據(jù)交換,3688/udp端口使用服務(wù)類型簡(jiǎn)單的推- S- S簡(jiǎn)單的推協(xié)議,基礎(chǔ)概念不是很了解的朋友可以參考下本文2013-11-20
網(wǎng)絡(luò)協(xié)議 TCP三次握手與四次斷開(kāi)的詳細(xì)觀察
這篇文章主要為大家介紹了網(wǎng)絡(luò)協(xié)議之tcp協(xié)議,TCP三次握手與四次斷開(kāi)是怎么的一種情況呢,下面我們來(lái)看看觀察TCP三次握手與四次斷開(kāi),需要的朋友可以參考下2015-04-29- 這篇文章主要介紹了圖解TCP/IP協(xié)議,幫助大家輕松學(xué)會(huì)TCP/IP協(xié)議,需要的朋友可以參考下2015-12-16
TCP/IP協(xié)議棧與數(shù)據(jù)包封裝圖文教程
TCP/IP網(wǎng)絡(luò)協(xié)議即網(wǎng)絡(luò)中(包括互聯(lián)網(wǎng))傳遞、管理信息的一些規(guī)范,TCP/IP協(xié)議是網(wǎng)絡(luò)的基礎(chǔ),是Internet的語(yǔ)言,可以說(shuō)互聯(lián)網(wǎng)的發(fā)展全靠TCP/IP2016-07-04

