移動(dòng)通信網(wǎng) 首頁 搜索 新聞 問答 論壇 人才 博客 通信圈


問題已開啟 (普通問題)
TCP三握手,是什么意思,為什么會(huì)有這個(gè)過程,如果沒這個(gè)過程會(huì)怎樣?
TCP三握手,是什么意思,為什么會(huì)有這個(gè)過程,如果沒這個(gè)過程會(huì)怎樣?新手謝謝!
提問者: byg_234  提問時(shí)間: 2011-10-26    
 
  我要回答:
 

  請(qǐng)先 登錄注冊(cè) 再回答問題

更多 握手 TCP 相關(guān)問題
問題答案 ( 3 )

第一、SYN是TCP/IP建立連接時(shí)使用的握手信號(hào)。在客戶機(jī)和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時(shí),客戶機(jī)首先發(fā)出一個(gè)SYN消息,服務(wù)器使用SYN-ACK應(yīng)答表示接收到了這個(gè)消息,最后客戶機(jī)再以ACK(Acknowledgement[漢譯:確認(rèn)字符 ,在數(shù)據(jù)通信傳輸中,接收站發(fā)給發(fā)送站的一種傳輸控制字符。它表示確認(rèn)發(fā)來的數(shù)據(jù)已經(jīng)接受無誤。 ])消息響應(yīng)。這樣在客戶機(jī)和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶機(jī)和服務(wù)器之間傳遞。ds不21fds3aK:JFD()$#_*本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
  TCP連接的第一個(gè)包,非常小的一種數(shù)據(jù)包。SYN 攻擊包括大量此類的包,由于這些包看上去來自實(shí)際不存在的站點(diǎn),因此無法有效進(jìn)行處理。每個(gè)機(jī)器的欺騙包都要花幾秒鐘進(jìn)行嘗試方可放棄提供正常響應(yīng)。
第二 、詳實(shí)的資料補(bǔ)充:%$#(*K:JFD本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
TCP三次握手/四次揮手詳解 我)$#@3221a3K:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
1、建立連接協(xié)議(三次握手)
(1)客戶端發(fā)送一個(gè)帶SYN標(biāo)志的TCP報(bào)文到服務(wù)器。這是三次握手過程中的報(bào)文1。fads不K:JFD(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
(2) 服務(wù)器端回應(yīng)客戶端的,這是三次握手中的第2個(gè)報(bào)文,這個(gè)報(bào)文同時(shí)帶ACK標(biāo)志和SYN標(biāo)志。因此它表示對(duì)剛才客戶端SYN報(bào)文的回應(yīng);同時(shí)又標(biāo)志SYN給客戶端,詢問客戶端是否準(zhǔn)備好進(jìn)行數(shù)據(jù)通訊。
(3) 客戶必須再次回應(yīng)服務(wù)段一個(gè)ACK報(bào)文,這是報(bào)文段3。0874*$#(*)#$K:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
2、連接終止協(xié)議(四次揮手)(*)#$@&%#*(蜬:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
   由于TCP連接是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個(gè)FIN來終止這個(gè)方向的連接。收到一個(gè) FIN只意味著這一方向上沒有數(shù)據(jù)流動(dòng),一個(gè)TCP連接在收到一個(gè)FIN后仍能發(fā)送數(shù)據(jù)。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉。
。1) TCP客戶端發(fā)送一個(gè)FIN,用來關(guān)閉客戶到服務(wù)器的數(shù)據(jù)傳送(報(bào)文段4)。erpoej道h$#$K:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
。2) 服務(wù)器收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1(報(bào)文段5)。和SYN一樣,一個(gè)FIN將占用一個(gè)序號(hào)。$#@3221a3K:JFD()$#本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
。3) 服務(wù)器關(guān)閉客戶端的連接,發(fā)送一個(gè)FIN給客戶端(報(bào)文段6)。21a3ds也f1K:JFD()$#_本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
。4) 客戶段發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1(報(bào)文段7)。_@s4faK:JFD(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
CLOSED: 這個(gè)沒什么好說的了,表示初始狀態(tài)。kjlurewioK:JFD()$#_本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
LISTEN: 這個(gè)也是非常容易理解的一個(gè)狀態(tài),表示服務(wù)器端的某個(gè)SOCKET處于監(jiān)聽狀態(tài),可以接受連接了。a4f8e34K:JFD()本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
SYN_RCVD: 這個(gè)狀態(tài)表示接受到了SYN報(bào)文,在正常情況下,這個(gè)狀態(tài)是服務(wù)器端的SOCKET在建立TCP連接時(shí)的三次握手會(huì)話過程中的一個(gè)中間狀態(tài),很短暫,基本上用netstat你是很難看到這種狀態(tài)的,除非你特意寫了一個(gè)客戶端測試程序,故意將三次TCP握手過程中最后一個(gè)ACK報(bào)文不予發(fā)送。因此這種狀態(tài)時(shí),當(dāng)收到客戶端的ACK報(bào)文后,它會(huì)進(jìn)入到ESTABLISHED狀態(tài)。西70874*$K:JFD()$#本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
SYN_SENT: 這個(gè)狀態(tài)與SYN_RCVD遙想呼應(yīng),當(dāng)客戶端SOCKET執(zhí)行CONNECT連接時(shí),它首先發(fā)送SYN報(bào)文,因此也隨即它會(huì)進(jìn)入到了SYN_SENT狀態(tài),并等待服務(wù)端的發(fā)送三次握手中的第2個(gè)報(bào)文。SYN_SENT狀態(tài)表示客戶端已發(fā)送SYN報(bào)文。21fds3a21fd3K:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
ESTABLISHED:這個(gè)容易理解了,表示連接已經(jīng)建立了。?*@#(_K:JFD()本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
FIN_WAIT_1: 這個(gè)狀態(tài)要好好解釋一下,其實(shí)FIN_WAIT_1和FIN_WAIT_2狀態(tài)的真正含義都是表示等待對(duì)方的FIN報(bào)文。而這兩種狀態(tài)的區(qū)別是:FIN_WAIT_1狀態(tài)實(shí)際上是當(dāng)SOCKET在ESTABLISHED狀態(tài)時(shí),它想主動(dòng)關(guān)閉連接,向?qū)Ψ桨l(fā)送了FIN報(bào)文,此時(shí)該SOCKET即進(jìn)入到FIN_WAIT_1狀態(tài)。而當(dāng)對(duì)方回應(yīng)ACK報(bào)文后,則進(jìn)入到FIN_WAIT_2狀態(tài),當(dāng)然在實(shí)際的正常情況下,無論對(duì)方何種情況下,都應(yīng)該馬上回應(yīng)ACK報(bào)文,所以FIN_WAIT_1狀態(tài)一般是比較難見到的,而FIN_WAIT_2狀態(tài)還有時(shí)常?梢杂胣etstat看到。cvmmvckjlurK:JFD()$#_*本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
FIN_WAIT_2:上面已經(jīng)詳細(xì)解釋了這種狀態(tài),實(shí)際上FIN_WAIT_2狀態(tài)下的SOCKET,表示半連接,也即有一方要求close連接,但另外還告訴對(duì)方,我暫時(shí)還有點(diǎn)數(shù)據(jù)需要傳送給你,稍后再關(guān)閉連接。vckjlurewK:JFD()$#本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
TIME_WAIT: 表示收到了對(duì)方的FIN報(bào)文,并發(fā)送出了ACK報(bào)文,就等2MSL后即可回到CLOSED可用狀態(tài)了。如果FIN_WAIT_1狀態(tài)下,收到了對(duì)方同時(shí)帶FIN標(biāo)志和ACK標(biāo)志的報(bào)文時(shí),可以直接進(jìn)入到TIME_WAIT狀態(tài),而無須經(jīng)過FIN_WAIT_2狀態(tài)。
CLOSING: 這種狀態(tài)比較特殊,實(shí)際情況中應(yīng)該是很少見,屬于一種比較罕見的例外狀態(tài)。正常情況下,當(dāng)你發(fā)送FIN報(bào)文后,按理來說是應(yīng)該先收到(或同時(shí)收到)對(duì)方的ACK報(bào)文,再收到對(duì)方的FIN報(bào)文。但是CLOSING狀態(tài)表示你發(fā)送FIN報(bào)文后,并沒有收到對(duì)方的ACK報(bào)文,反而卻也收到了對(duì)方的FIN報(bào)文。什么情況下會(huì)出現(xiàn)此種情況呢?其實(shí)細(xì)想一下,也不難得出結(jié)論:那就是如果雙方幾乎在同時(shí)close一個(gè)SOCKET的話,那么就出現(xiàn)了雙方同時(shí)發(fā)送FIN報(bào)文的情況,也即會(huì)出現(xiàn)CLOSING狀態(tài),表示雙方都正在關(guān)閉SOCKET連接。e43289西7K:JFD()$#本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
CLOSE_WAIT: 這種狀態(tài)的含義其實(shí)是表示在等待關(guān)閉。怎么理解呢?當(dāng)對(duì)方close一個(gè)SOCKET后發(fā)送FIN報(bào)文給自己,你系統(tǒng)毫無疑問地會(huì)回應(yīng)一個(gè)ACK報(bào)文給對(duì)方,此時(shí)則進(jìn)入到CLOSE_WAIT狀態(tài)。接下來呢,實(shí)際上你真正需要考慮的事情是察看你是否還有數(shù)據(jù)發(fā)送給對(duì)方,如果沒有的話,那么你也就可以close這個(gè)SOCKET,發(fā)送FIN報(bào)文給對(duì)方,也即關(guān)閉連接。所以你在CLOSE_WAIT狀態(tài)下,需要完成的事情是等待你去關(guān)閉連接。4f8e342是434K:JFD()$#_*(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
LAST_ACK: 這個(gè)狀態(tài)還是比較容易好理解的,它是被動(dòng)關(guān)閉一方在發(fā)送FIN報(bào)文后,最后等待對(duì)方的ACK報(bào)文。當(dāng)收到ACK報(bào)文后,也即可以進(jìn)入到CLOSED可用狀態(tài)了。s3a21fd3s1fK:JFD()$#_*本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
最后有2個(gè)問題的回答,我自己分析后的結(jié)論(不一定保證100%正確)什21f3dsaf1K:JFD()$#_*本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
1、 為什么建立連接協(xié)議是三次握手,而關(guān)閉連接卻是四次握手呢?*&#%kcK:JFD(本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
這是因?yàn)榉⻊?wù)端的LISTEN狀態(tài)下的SOCKET當(dāng)收到SYN報(bào)文的建連請(qǐng)求后,它可以把ACK和SYN(ACK起應(yīng)答作用,而SYN起同步作用)放在一個(gè)報(bào)文里來發(fā)送。但關(guān)閉連接時(shí),當(dāng)收到對(duì)方的FIN報(bào)文通知時(shí),它僅僅表示對(duì)方?jīng)]有數(shù)據(jù)發(fā)送給你了;但未必你所有的數(shù)據(jù)都全部發(fā)送給對(duì)方了,所以你可以未必會(huì)馬上會(huì)關(guān)閉SOCKET,也即你可能還需要發(fā)送一些數(shù)據(jù)給對(duì)方之后,再發(fā)送FIN報(bào)文給對(duì)方來表示你同意現(xiàn)在可以關(guān)閉連接了,所以它這里的ACK報(bào)文和FIN報(bào)文多數(shù)情況下都是分開發(fā)送的。
2、 為什么TIME_WAIT狀態(tài)還需要等2MSL后才能返回到CLOSED狀態(tài)?oej道K:JFD本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
這是因?yàn)椋弘m然雙方都同意關(guān)閉連接了,而且握手的4個(gè)報(bào)文也都協(xié)調(diào)和發(fā)送完畢,按理可以直接回到CLOSED狀態(tài)(就好比從SYN_SEND狀態(tài)到ESTABLISH狀態(tài)那樣);但是因?yàn)槲覀儽仨氁傧刖W(wǎng)絡(luò)是不可靠的,你無法保證你最后發(fā)送的ACK報(bào)文會(huì)一定被對(duì)方收到,因此對(duì)方處于LAST_ACK狀態(tài)下的SOCKET可能會(huì)因?yàn)槌瑫r(shí)未收到ACK報(bào)文,而重發(fā)FIN報(bào)文,所以這個(gè)TIME_WAIT狀態(tài)的作用就是用來重發(fā)可能丟失的ACK報(bào)34321K:JFD本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有


回答者: xhy1331     回答時(shí)間:2011-10-26 16:04    

32        24        


還沒涉及過呢 學(xué)習(xí)了

回答者: jiangchenluo     回答時(shí)間:2011-10-26 16:54    

29        28        


 說白了就是三次握手就是對(duì)端先預(yù)留資源,四次握手就是本端先預(yù)留資源。cv545K:JFD本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有
cvmmvK:JFD本文來自移動(dòng)通信網(wǎng)m.gg1fic3.cn,版權(quán)所有

回答者: zago     回答時(shí)間:2011-10-30 20:16    

24        29        

中國通信人才網(wǎng) | 江蘇通信人才網(wǎng) | 山東通信人才網(wǎng) | 武漢通信人才網(wǎng) | 浙江通信人才網(wǎng) | 湖南通信人才網(wǎng)
安徽引途科技有限公司 聘:福建測試/1個(gè)月
需求人數(shù):2 人 地點(diǎn):福建省
南京欣網(wǎng)通信科技股份有限公司 聘:項(xiàng)目經(jīng)理(昆明)
需求人數(shù):1 人 地點(diǎn):昆明市
廣東南方通信建設(shè)有限公司 聘:海南華為精品網(wǎng)項(xiàng)目
需求人數(shù):10 人 地點(diǎn):海南省
南京華蘇科技有限公司 聘:高鐵高速地鐵優(yōu)化工程師
需求人數(shù):1 人 地點(diǎn):廈門市
錦華技術(shù)(蘭州)有限公司 聘:杭州5G中興中級(jí)/高級(jí)后臺(tái)
需求人數(shù):5 人 地點(diǎn):杭州市,寧波市,嘉興市,溫州市,紹興市
嘉環(huán)科技股份有限公司 聘:湖南電信原廠優(yōu)化招聘
需求人數(shù):10 人 地點(diǎn):長沙市,永州市,郴州市,衡陽市
陜西瑞達(dá)灃通信技術(shù)有限公司 聘:華為光網(wǎng)絡(luò)工程師
需求人數(shù):8 人 地點(diǎn):新疆
西安長河通訊有限責(zé)任公司 聘:網(wǎng)絡(luò)優(yōu)化工程師
需求人數(shù):4 人 地點(diǎn):渭南市,商洛市,漢中市,安康市
河北中創(chuàng)盈和通信科技有限公司 聘:中級(jí)前臺(tái)/寧夏中衛(wèi)
需求人數(shù):2 人 地點(diǎn):寧夏
深圳市訊方技術(shù)股份有限公司 聘:華為45G高級(jí)網(wǎng)優(yōu)工程師
需求人數(shù):5 人 地點(diǎn):山東省
熱點(diǎn)問題
更多精彩

聯(lián)系我們 - 問通信專家 Powered by MSCBSC 移動(dòng)通信網(wǎng)  © 2006 -