-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
TCP連接(tcp連接三次握手)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于TCP連接的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、如何使用 TCP 連接進行通信
首先是建立可靠的數(shù)據(jù)管道
TCP 為 HTTP 提供了一條可靠的比特傳輸管道,從 TCP 連接一端填入的字節(jié)會從另一端以原有的順序、正確地傳輸。
然后在管道中傳輸 TCP 流
TCP 的數(shù)據(jù)是通過名為 IP 分組的小數(shù)據(jù)塊來發(fā)送的。
HTTP 在傳輸一條報文時,會以流的形式將報文數(shù)據(jù)的內(nèi)容通過一條打開的 TCP 連接按序傳輸,TCP 收到數(shù)據(jù)后,會將數(shù)據(jù)流砍成被稱為段的小數(shù)據(jù)塊,并將段封裝在 IP 分組中,通過網(wǎng)絡進行傳輸。
最后關(guān)閉 TCP 連接
在客戶端和服務器端之間完成傳輸交互后,請求發(fā)起方,比如瀏覽器會關(guān)閉該 TCP 連接。
二、tcp長連接保持多久
tcp長連接保持兩個小時。根據(jù)查詢相關(guān)公開信息顯示,tcp長連接在接通之后,會在一定的時間內(nèi)保持連接,默認時間為兩個小時。兩個小時之后,如果服務器沒有收到一個響應,它就會判定客戶主機已經(jīng)關(guān)閉,tcp會終止連接。
三、TCP的連接建立——三報文握手
三報文握手(three way handshake)以前都稱為三次握手,其實這是一次握手過程中交換中交換了三個報文,而并不是進行了三次握手。handshake使用的是單數(shù)并不是復數(shù),表明只是一次握手。
1.SYN_SENT
SYN_SENT表示請求連接,當你要訪問其它的計算機的服務時首先要發(fā)個 同步信號 給該端口,此時狀態(tài)為SYN_SENT,如果連接成功了就變?yōu)?ESTABLISHED ,此時SYN_SENT狀態(tài)非常短暫。
2.ACK
ACK (Acknowledgement)即是確認字符,在數(shù)據(jù)通信中,接收站發(fā)給發(fā)送站的一種傳輸類 控制字符 。表示發(fā)來的數(shù)據(jù)已確認接收無誤。
3.SYN_RCVD(同步收到)
4.ESTAB_LISHED(已建立連接)
5.傳輸控制模塊TCB
傳輸控制模塊TCB(Transmission Control Block)存儲了每一個連接中的一些重要信息。
一開始,B的PCP服務器進程先創(chuàng)建 傳輸控制模塊TCB ,準備接受客戶進程的連接請求。然后服務器進程就處于 LISTEN (收聽)狀態(tài),等待客戶的連接請求。
1.SYN=1,seq=x
A的TCP客戶進程也是首先創(chuàng)建 傳輸控制模塊TCB ,然后,在打算建立TCP連接時,向B發(fā)出請求報文段,這時首部中的同步位 SYN=1 ,同時選擇一個初始序號 seq=x 。即 SYN=1,seq=x 。TCP規(guī)定,SYN報文段(即SYN=1的報文段)不能攜帶數(shù)據(jù),但要 消耗一個序號 。這時,TCP客戶進程進入 SYN_SENT (同步已發(fā)送)狀態(tài)。
2.SYN=1,ACK=1,seq=y,ack=x+1
B收到連接請求報文段后,如同意建立連接,則向A發(fā)送確認。在確認報文段中應把SYN位和ACK位都置1,確認號是 ack=x+1 ,同時也為自己選擇一個初始號 seq=y 。即 SYN=1,ACK=1,seq=y,ack=x+1
請注意:這個報文段也不能攜帶數(shù)據(jù),但同時 要消耗一個序號 。這時TCP服務器進程進入 SYN_RCVD (同步收到)狀態(tài)。
3.ACK=1,seq=x+1,ack=y+1
TCP客戶進程收到B的確認后,還要向B給出確認。確認報文段的ACK置1,確認號 ack=y+1 ,而自己的序號 seq=x+1 。即 ACK=1,seq=x+1,ack=y+1 TCP的標準規(guī)定,ACK報文段可以攜帶數(shù)據(jù)。但 如果不攜帶數(shù)據(jù)則不消耗序號 ,在這中情況下,下一個數(shù)據(jù)報文段仍然是 seq=x+1 。這時。TCP連接已經(jīng)建立,A進入 ESTAB_LISHED (已建立連接)狀態(tài)。
4 .當B收到A的確認后,也進入 ESTAB_LISHED 狀態(tài)。
四、理解tcp鏈接
一般都說TCP 是長連接 ,但這個連接是 真實存在的嗎。不是的。
這個連接只是操作系統(tǒng)維護的一個狀態(tài)機。通過兩臺計算機直接通過報文交互來改變這個狀態(tài)值。并不是正真的有真實的鏈路存在。
每次兩臺機器直接的通信 中間通過的節(jié)點可能都是不一樣的,是動態(tài)選擇的。
所以 ,
服務器端 TCP 連接的數(shù)量 受到內(nèi)存大小的影響,每建立一個連接都要分配一塊內(nèi)存區(qū)域來維護這個‘連接’。
以上就是關(guān)于TCP連接相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
廣東溫泉小鎮(zhèn)民宿景觀設計(廣東溫泉小鎮(zhèn)民宿景觀設計理念)