日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP为何采用三次握手来建立连接,若采用二次握手可以吗

發布時間:2023/12/9 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP为何采用三次握手来建立连接,若采用二次握手可以吗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. TCP簡介

?TCP(Transmission Control Protocol?傳輸控制協議)是一種面向連接(連接導向)的、可靠的、基于IP的傳輸層協議,采用三次握手確認建立一個連接。

TCP為了保證報文傳輸的可靠[1],就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據(假設丟失了)將會被重傳。

2. TCP協議三次握手過程分析

TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:

位碼即tcp標志位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)

Sequence number(順序號碼) Acknowledge number(確認號碼)

第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求建立聯機;

第二次握手:主機B收到請求后要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包

第三次握手:主機A收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。

完成三次握手,主機A與主機B開始傳送數據。

3. TCP連接建立

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。?
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;?
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 完成三次握手,客戶端與服務器開始傳送數據.

4. 通俗理解

通俗理解

第一次對話:
前方敵軍火力很猛,團長叫通訊員小張打電話請求總部支援。
小張拿起電話,說:“呼叫總部,這里是獨立團”。不巧電話線被炸斷了,總部接收不到小張傳來的信息的情況下,溝通失敗。
如果總部聽到小張的呼叫,那么第一次對話成功,接下來進行第二次對話。
第二次對話:
總部聽到了小張的話,但是不巧,總部接電話的只有一個外國友軍,來了句"Hello, balabal"。小張農民出身,一句聽不懂,多次嘗試,溝通失敗。說明總部無法做出正確的應答情況下溝通失敗。
如果總部聽到小張的話,并做出正確應答,并且進行反問,:”小張同志,詳細說一下具體情況。 那么第二次握手成功。
通過前兩次對話,說明總部聽懂了小張的話,并且做出正確應答,接下來進行第3次對話。
第三次對話:
小張剛說完話,來了一個子彈,小張同志犧牲了??偛康攘嗽S久,沒聽到小張回話,通話結束。說明小張在無法應答的情況下溝通失敗。
如果小張剛好穿了防彈衣,做出應答:"敵人的火力很猛,請求支援。兩人第3次對話成功,兩人建立起順暢的溝通渠道,接下來開始持續通話。
聽過第二次和第三次對話,證明了總部能聽懂小張的話,并且做出正確應答。

可見,小張要和總部溝通,3次通話過程是必須的。TCP采用三次握手來建立連接,也可以理解了。

5. 為什么要建立3次握手,一次連接

為了保證服務端能收接受到客戶端的信息并能做出正確的應答而進行前兩次(第一次和第二次)握手。

為了保證客戶端能夠接收到服務端的信息并能做出正確的應答而進行后兩次(第二次和第三次)握手。

如果只是兩次,就不能客戶端是否收到服務器端的應答。

6. 引用

http://baike.baidu.com/subview/32754/8048820.htm?from_id=8988699&type=syn&fromtitle=TCP%E5%8D%8F%E8%AE%AE&fr=aladdin?

http://www.cnblogs.com/CBDoctor/archive/2012/10/17/2727073.html

轉載于:https://www.cnblogs.com/qianwen/p/3936054.html

總結

以上是生活随笔為你收集整理的TCP为何采用三次握手来建立连接,若采用二次握手可以吗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。