成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TCP協(xié)議小結

Freelander / 855人閱讀

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

TCP協(xié)議的定義

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

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

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

TCP將若干個字節(jié)構成一個分組,此分組稱為報文段(Segment)

TCP的功能

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

對每個數(shù)據(jù)包編號控制順序

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

流量控制避免擁塞

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

源端口號和目標端口號,計算機通過端口號識別訪問哪個服務,比如http服務或ftp服務,發(fā)送方端口號是進行隨機端口,目標端口號決定了接收方哪個程序來接收

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

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

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

控制位 TCP的連接、傳輸和斷開都受這六個控制位的指揮

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

ACK(acknowledgement 確認)為1表示確認號

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

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

SYN(synchronous建立聯(lián)機) 同步序號位 TCP建立連接時要將這個值設為1

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

窗口大?。河糜诒硎緩膽鹛栭_始能夠接受多少個 8 位字節(jié)。如果窗口大小為 0,可以發(fā)送窗口探測。 窗口值 說明本地可接收數(shù)據(jù)段的數(shù)目,這個值的大小是可變的。當網(wǎng)絡通暢時將這個窗口值變大加快傳輸速度,當網(wǎng)絡不穩(wěn)定時減少這個值可以保證網(wǎng)絡數(shù)據(jù)的可靠傳輸。它是來在TCP傳輸中進行流量控制的

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

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

TCP的握手與斷開

 建立連接時的三次握手

第一次握手主機A通過一個標識為SYN標識位的數(shù)據(jù)段發(fā)送給主機B請求連接,通過該數(shù)據(jù)段告訴主機B希望建立連接,需要B應答,并告訴主機B傳輸?shù)钠鹗夹蛄刑?/p>

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

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

斷開連接時的四次請求

主機A發(fā)送FIN控制位發(fā)出斷開連接的請求

主機B進行響應,確認收到斷開連接請求

主機B提出反方向的關閉要求

主機A確認收到的主機B的關閉連接請求

為什么要四次分手?

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

結尾

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107598.html

相關文章

  • Java NIO 的前生今世 之二 NIO Channel 小結

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

    JasonZhang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<