HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專(zhuān)注品牌策劃15年

    tcp連接過(guò)程(tcp連接過(guò)程中參數(shù)傳遞情況)

    發(fā)布時(shí)間:2023-03-19 12:38:17     稿源: 創(chuàng)意嶺    閱讀: 60        問(wèn)大家

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于tcp連接過(guò)程的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。

    開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    tcp連接過(guò)程(tcp連接過(guò)程中參數(shù)傳遞情況)

    一、tcp建立三層連接的過(guò)程

    三層連接是不是叫"三次握手"??

    TCP協(xié)議通訊工作原理

    一、TCP三次握手

    傳輸控制協(xié)議(Transport Control Protocol)是一種面向連接的,可靠的傳輸層協(xié)議。面向連接是指一次正常的TCP傳輸需要通過(guò)在TCP客戶端和TCP服務(wù)端建立特定的虛電路連接來(lái)完成,該過(guò)程通常被稱(chēng)為“三次握手”??煽啃钥梢酝ㄟ^(guò)很多種方法來(lái)提供保證,在這里我們關(guān)心的是數(shù)據(jù)序列和確認(rèn)。TCP通過(guò)數(shù)據(jù)分段(Segment)中的序列號(hào)保證所有傳輸?shù)臄?shù)據(jù)可以在遠(yuǎn)端按照正常的次序進(jìn)行重組,而且通過(guò)確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾?。要通過(guò)TCP傳輸數(shù)據(jù),必須在兩端主機(jī)之間建立連接。舉例說(shuō)明,TCP客戶端需要和TCP服務(wù)端建立連接,過(guò)程如下所示:

    參考資料更全面

    二、【網(wǎng)絡(luò)】TCP的連接建立

    TCP是面向連接的協(xié)議。運(yùn)輸連接是用來(lái)傳送TCP報(bào)文的。TCP運(yùn)輸連接的建立和釋放是每一次連接通信過(guò)程中必不可少的。

    因此,運(yùn)輸連接就有三個(gè)階段: 連接建立 , 數(shù)據(jù)傳送 連接釋放

    需要解決以下3個(gè)問(wèn)題:

    連接建立 這個(gè)過(guò)程,需要在客戶端和服務(wù)器之間,交換3個(gè)TCP報(bào)文段,也就是 三次握手 🤝x3。

    📌請(qǐng)注意,在本例中, A主動(dòng)打開(kāi)連接,B被動(dòng)打開(kāi)連接

    一開(kāi)始,B就在準(zhǔn)備接受客戶進(jìn)程的連接請(qǐng)求,然后服務(wù)器進(jìn)程就處于 LISTEN (收聽(tīng))狀態(tài),等待客戶的連接請(qǐng)求。如有,即作出響應(yīng)。

    A的TCP客戶進(jìn)程像B發(fā)出連接請(qǐng)求報(bào)文段,這時(shí),首部中的同步位SYN = 1,同時(shí)選擇一個(gè)初始序號(hào) seq = x 。

    TCP規(guī)定📝,SYN報(bào)文段不能攜帶數(shù)據(jù), 但要消耗掉一個(gè)序號(hào) 。這時(shí),TCP客戶進(jìn)程進(jìn)入 SYN-SENT (同步已發(fā)送)狀態(tài)。

    B收到連接請(qǐng)求的報(bào)文段后,如同意建立連接,則向A發(fā)送確認(rèn)。在確認(rèn)報(bào)文段中,應(yīng)把SYN位和ASK位都置1,確認(rèn)號(hào)是 ack = x + 1 ,同時(shí)也為自己選擇一個(gè)初始序號(hào) seq = y 。

    請(qǐng)注意,這個(gè)報(bào)文段也不能攜帶數(shù)據(jù)。但同樣 要消耗掉一個(gè)序號(hào) 。這時(shí),TCP服務(wù)器進(jìn)程進(jìn)入 SYN-RCVD (同步收到)狀態(tài)。

    TCP客戶進(jìn)程收到B的確認(rèn)后,還要向B給出確認(rèn)。確認(rèn)報(bào)文段的ACK置1,確認(rèn)號(hào) ack = y + 1 ,而自己的序號(hào) seq = x + 1 。

    TCP的標(biāo)準(zhǔn)規(guī)定📝,ACK報(bào)文段可以攜帶數(shù)據(jù)。但如果不攜帶數(shù)據(jù)則不消耗序號(hào),在這種情況下,下一個(gè)數(shù)據(jù)報(bào)文段的序號(hào)仍是 seq = x +1 。

    這時(shí),TCP連接已經(jīng)建立🖇,A進(jìn)入 ESTABLISHED (已建立連接)狀態(tài)。當(dāng)B收到A的確認(rèn)后,也進(jìn)入 ESTABLISHED (已建立連接)

    🔍 Q: 為什么A最后還有發(fā)送一次確認(rèn)呢?

    📗 A: 主要是為了 防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到B,因而產(chǎn)生錯(cuò)誤。

    所謂 “已失效的連接請(qǐng)求報(bào)文段” 是這樣產(chǎn)生的。

    📝考慮一種正常情況,

    A 發(fā)出連接請(qǐng)求📲,但因連接請(qǐng)求報(bào)文丟失而未收到確認(rèn)。于是A再重傳一次連接請(qǐng)求。后來(lái)收到了確認(rèn),建立了連接。數(shù)據(jù)傳輸完畢后,就釋放了連接。

    A共發(fā)出了兩個(gè)連接請(qǐng)求的報(bào)文段,其中第一個(gè)丟失💔,第二個(gè)到達(dá)了B💚,沒(méi)有“已失效的連接請(qǐng)求報(bào)文段”。

    📝現(xiàn)假定出現(xiàn)一種異常情況,

    即A發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒(méi)有丟失,而是在某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)長(zhǎng)時(shí)間的滯留🛑,以至延誤到連接釋放以后的某個(gè)時(shí)間才到達(dá)B。

    本來(lái)這是一個(gè) 早已失效的報(bào)文段 ,但是B收到此時(shí)小的連接請(qǐng)求的報(bào)文段之后,誤以為是A又發(fā)出一次新的連接請(qǐng)求。

    于是向A發(fā)出確認(rèn)報(bào)文段,同意建立連接。假定不采用報(bào)文握手。那么只要B發(fā)出確認(rèn)之后,新的連接就建立了。

    由于現(xiàn)在A并沒(méi)有發(fā)出建立連接的請(qǐng)求,因此不會(huì)理睬B的確認(rèn)🙉,也不會(huì)向B發(fā)送數(shù)據(jù),但B確以為新的運(yùn)輸連接已經(jīng)建立,并一直等待A發(fā)來(lái)的數(shù)據(jù)。

    B的許多資源就這樣白白浪費(fèi)了。

    三、簡(jiǎn)述TCP的三次握手過(guò)程。

    TCP握手協(xié)議

    在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接.

    第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);

    SYN:同步序列編號(hào)(Synchronize

    Sequence

    Numbers)

    第二次握手:服務(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),完成三次握手.

    完成三次握手,客戶端與服務(wù)器開(kāi)始傳送數(shù)據(jù)

    四、TCP為何采用三次握手來(lái)建立連接,若采用二次握手可以嗎

    建立連接的過(guò)程是利用客戶服務(wù)器模式,假設(shè)主機(jī)A為客戶端,主機(jī)B為服務(wù)器端。

    (1)TCP的三次握手過(guò)程:主機(jī)A向B發(fā)送連接請(qǐng)求;主機(jī)B對(duì)收到的主機(jī)A的報(bào)文段進(jìn)行確認(rèn);主機(jī)A再次對(duì)主機(jī)B的確認(rèn)進(jìn)行確認(rèn)。

    (2)采用三次握手是為了防止失效的連接請(qǐng)求報(bào)文段突然又傳送到主機(jī)B,因而產(chǎn)生錯(cuò)誤。失效的連接請(qǐng)求報(bào)文段是指:主機(jī)A發(fā)出的連接請(qǐng)求沒(méi)有收到主機(jī)B的確認(rèn),于是經(jīng)過(guò)一段時(shí)間后,主機(jī)A又重新向主機(jī)B發(fā)送連接請(qǐng)求,且建立成功,順序完成數(shù)據(jù)傳輸??紤]這樣一種特殊情況,主機(jī)A第一次發(fā)送的連接請(qǐng)求并沒(méi)有丟失,而是因?yàn)榫W(wǎng)絡(luò)節(jié)點(diǎn)導(dǎo)致延遲達(dá)到主機(jī)B,主機(jī)B以為是主機(jī)A又發(fā)起的新連接,于是主機(jī)B同意連接,并向主機(jī)A發(fā)回確認(rèn),但是此時(shí)主機(jī)A根本不會(huì)理會(huì),主機(jī)B就一直在等待主機(jī)A發(fā)送數(shù)據(jù),導(dǎo)致主機(jī)B的資源浪費(fèi)。

    (3)采用兩次握手不行,原因就是上面說(shuō)的失效的連接請(qǐng)求的特殊情況。

    以上就是關(guān)于tcp連接過(guò)程相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢(xún),客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    ChatGPTAPP綠色版(chatcraft pro 綠色版)

    安卓tcp擁塞算法哪個(gè)好(tcp擁塞算法cubic reno)

    scratch優(yōu)秀作品下載(scratch作品集)

    天下第一視頻社區(qū)(天下第一視頻社區(qū)完整版)

    蘋(píng)果手機(jī)抖音來(lái)消息沒(méi)有聲音(蘋(píng)果手機(jī)抖音來(lái)消息沒(méi)有聲音怎么設(shè)置)