亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

TCP協(xié)議小結(jié)

Freelander / 898人閱讀

摘要:協(xié)議的定義屬于傳輸層協(xié)議,提供了一種端到端的連接。如果兩次校驗(yàn)和一致說(shuō)明數(shù)據(jù)是正確的,否則將認(rèn)為數(shù)據(jù)被破壞,接收端將丟棄該數(shù)據(jù)緊急指針盡在緊急控制位為時(shí)有效。結(jié)尾是一個(gè)非常復(fù)雜的協(xié)議,這里稍微總結(jié)了一下,隨著學(xué)習(xí)時(shí)間增加,繼續(xù)補(bǔ)充。

TCP協(xié)議的定義

TCP屬于傳輸層協(xié)議,提供了一種端到端的連接。

是面向連接的、可靠的的進(jìn)程到進(jìn)程通信的協(xié)議

TCP提供全雙工服務(wù),即數(shù)據(jù)可在同一時(shí)間雙向傳播

TCP將若干個(gè)字節(jié)構(gòu)成一個(gè)分組,此分組稱為報(bào)文段(Segment)

TCP的功能

將數(shù)據(jù)進(jìn)行分段打包傳輸

對(duì)每個(gè)數(shù)據(jù)包編號(hào)控制順序

運(yùn)輸中丟失、重發(fā)和丟棄處理

流量控制避免擁塞

TCP數(shù)據(jù)包封裝?

源端口號(hào)和目標(biāo)端口號(hào),計(jì)算機(jī)通過(guò)端口號(hào)識(shí)別訪問(wèn)哪個(gè)服務(wù),比如http服務(wù)或ftp服務(wù),發(fā)送方端口號(hào)是進(jìn)行隨機(jī)端口,目標(biāo)端口號(hào)決定了接收方哪個(gè)程序來(lái)接收

32位序列號(hào) TCP用序列號(hào)對(duì)數(shù)據(jù)包進(jìn)行標(biāo)記,以便在到達(dá)目的地后重新重裝,假設(shè)當(dāng)前的序列號(hào)為 s,發(fā)送數(shù)據(jù)長(zhǎng)度為 l,則下次發(fā)送數(shù)據(jù)時(shí)的序列號(hào)為 s + l。在建立連接時(shí)通常由計(jì)算機(jī)生成一個(gè)

確認(rèn)應(yīng)答號(hào) 它等于下一次應(yīng)該接收到的數(shù)據(jù)的序列號(hào)。假設(shè)發(fā)送端的序列號(hào)為 s,發(fā)送數(shù)據(jù)的長(zhǎng)度為 l,那么接收端返回的確認(rèn)應(yīng)答號(hào)也是 s + l。發(fā)送端接收到這個(gè)確認(rèn)應(yīng)答后,可以認(rèn)為這個(gè)位置以前所有的數(shù)據(jù)都已被正常接收。

首部長(zhǎng)度:TCP 首部的長(zhǎng)度,單位為 4 字節(jié)。如果沒(méi)有可選字段,那么這里的值就是 5。表示 TCP 首部的長(zhǎng)度為 20 字節(jié)。

控制位 TCP的連接、傳輸和斷開(kāi)都受這六個(gè)控制位的指揮

URG 緊急指針:控制位為 1 時(shí)有效。表示緊急數(shù)據(jù)的末尾在 TCP 數(shù)據(jù)部分中的位置。通常在暫時(shí)中斷通信時(shí)使用(比如輸入 Ctrl + C)。

ACK(acknowledgement 確認(rèn))為1表示確認(rèn)號(hào)

PSH(push急迫位) 緩存區(qū)將滿,立刻傳輸速度

RST(reset重置位) 連接斷了重新連接

SYN(synchronous建立聯(lián)機(jī)) 同步序號(hào)位 TCP建立連接時(shí)要將這個(gè)值設(shè)為1

FIN發(fā)送端完成位,提出斷開(kāi)連接的一方把FIN置為1表示要斷開(kāi)連接

窗口大小:用于表示從應(yīng)答號(hào)開(kāi)始能夠接受多少個(gè) 8 位字節(jié)。如果窗口大小為 0,可以發(fā)送窗口探測(cè)。 窗口值 說(shuō)明本地可接收數(shù)據(jù)段的數(shù)目,這個(gè)值的大小是可變的。當(dāng)網(wǎng)絡(luò)通暢時(shí)將這個(gè)窗口值變大加快傳輸速度,當(dāng)網(wǎng)絡(luò)不穩(wěn)定時(shí)減少這個(gè)值可以保證網(wǎng)絡(luò)數(shù)據(jù)的可靠傳輸。它是來(lái)在TCP傳輸中進(jìn)行流量控制的

校驗(yàn)和: 用來(lái)做差錯(cuò)控制,TCP校驗(yàn)和的計(jì)算包括TCP首部、數(shù)據(jù)和其它填充字節(jié)。在發(fā)送TCP數(shù)據(jù)段時(shí),由發(fā)送端計(jì)算校驗(yàn)和,當(dāng)?shù)竭_(dá)目的地時(shí)又進(jìn)行一次檢驗(yàn)和計(jì)算。如果兩次校驗(yàn) 和一致說(shuō)明數(shù)據(jù)是正確的,否則 將認(rèn)為數(shù)據(jù)被破壞,接收端將丟棄該數(shù)據(jù)

緊急指針:盡在 URG(urgent緊急) 控制位為 1 時(shí)有效。表示緊急數(shù)據(jù)的末尾在 TCP 數(shù)據(jù)部分中的位置。通常在暫時(shí)中斷通信時(shí)使用(比如輸入 Ctrl + C)

TCP的握手與斷開(kāi)

 建立連接時(shí)的三次握手

第一次握手主機(jī)A通過(guò)一個(gè)標(biāo)識(shí)為SYN標(biāo)識(shí)位的數(shù)據(jù)段發(fā)送給主機(jī)B請(qǐng)求連接,通過(guò)該數(shù)據(jù)段告訴主機(jī)B希望建立連接,需要B應(yīng)答,并告訴主機(jī)B傳輸?shù)钠鹗夹蛄刑?hào)

第二次握手是主機(jī)B用一個(gè)確認(rèn)應(yīng)答ACK和同步序列號(hào)SYNC標(biāo)志位的數(shù)據(jù)段來(lái)響應(yīng)主機(jī)A,一是發(fā)送ACK告訴主機(jī)A收到了數(shù)據(jù)段,二是通知主機(jī)A從哪個(gè)序列號(hào)做標(biāo)記。

第三次握手是主機(jī)A確認(rèn)收到了主機(jī)B的數(shù)據(jù)段并可以開(kāi)始傳輸實(shí)際數(shù)據(jù)。

斷開(kāi)連接時(shí)的四次請(qǐng)求

主機(jī)A發(fā)送FIN控制位發(fā)出斷開(kāi)連接的請(qǐng)求

主機(jī)B進(jìn)行響應(yīng),確認(rèn)收到斷開(kāi)連接請(qǐng)求

主機(jī)B提出反方向的關(guān)閉要求

主機(jī)A確認(rèn)收到的主機(jī)B的關(guān)閉連接請(qǐng)求

為什么要四次分手?

TCP協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議。TCP是全雙工 模式,這就意味著,當(dāng)主機(jī)1發(fā)出FIN報(bào)文段時(shí),只是表示主機(jī)1已經(jīng)沒(méi)有數(shù)據(jù)要發(fā)送了,主機(jī)1告訴主機(jī)2, 它的數(shù)據(jù)已經(jīng)全部發(fā)送完畢了;但是,這個(gè)時(shí)候主機(jī)1還是可以接受來(lái)自主機(jī)2的數(shù)據(jù);當(dāng)主機(jī)2返回ACK報(bào)文 段時(shí),表示它已經(jīng)知道主機(jī)1沒(méi)有數(shù)據(jù)發(fā)送了,但是主機(jī)2還是可以發(fā)送數(shù)據(jù)到主機(jī)1的;當(dāng)主機(jī)2也發(fā)送了FIN 報(bào)文段時(shí),這個(gè)時(shí)候就表示主機(jī)2也沒(méi)有數(shù)據(jù)要發(fā)送了,就會(huì)告訴主機(jī)1,我也沒(méi)有數(shù)據(jù)要發(fā)送了,之后彼此 就會(huì)愉快的中斷這次TCP連接。

結(jié)尾

TCP是一個(gè)非常復(fù)雜的協(xié)議,這里稍微總結(jié)了一下,隨著學(xué)習(xí)時(shí)間增加,繼續(xù)補(bǔ)充。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/107598.html

相關(guān)文章

  • Java NIO 的前生今世 之二 NIO Channel 小結(jié)

    摘要:通常來(lái)說(shuō)所有的的操作都是從開(kāi)始的一個(gè)類似于一個(gè)和對(duì)比我們可以在同一個(gè)中執(zhí)行讀和寫操作然而同一個(gè)僅僅支持讀或?qū)懣梢援惒降刈x寫而是阻塞的同步讀寫總是從中讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入到中類型有文件操作操作操作操作使用在服務(wù)器端這些通道涵蓋了和網(wǎng)絡(luò)以及文件 Java NIO Channel 通常來(lái)說(shuō), 所有的 NIO 的 I/O 操作都是從 Channel 開(kāi)始的. 一個(gè) channel 類似于一個(gè) ...

    JasonZhang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<