小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

TCP報(bào)文結(jié)構(gòu)

 SheldonDemo 2017-04-12

img

源端口、目標(biāo)端口:計(jì)算機(jī)上的進(jìn)程要和其他進(jìn)程通信是要通過(guò)計(jì)算機(jī)端口的,而一個(gè)計(jì)算機(jī)端口某個(gè)時(shí)刻只能被一個(gè)進(jìn)程占用,所以通過(guò)指定源端口和目標(biāo)端口,就可以知道是哪兩個(gè)進(jìn)程需要通信。源端口、目標(biāo)端口是用16位表示的,可推算計(jì)算機(jī)的端口個(gè)數(shù)為2^16個(gè)。

序列號(hào):表示本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的編號(hào)。在TCP連接中所傳送的字節(jié)流的每一個(gè)字節(jié)都會(huì)按順序編號(hào)。由于序列號(hào)由32位表示,所以每2^32個(gè)字節(jié),就會(huì)出現(xiàn)序列號(hào)回繞,再次從 0 開(kāi)始。那如何區(qū)分兩個(gè)相同序列號(hào)的不同TCP報(bào)文段就是一個(gè)問(wèn)題了,后面會(huì)有答案,暫時(shí)可以不管。

確認(rèn)號(hào):表示接收方期望收到發(fā)送方下一個(gè)報(bào)文段的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)。也就是告訴發(fā)送發(fā):我希望你(指發(fā)送方)下次發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)是這個(gè)確認(rèn)號(hào)。也就是告訴發(fā)送方:我希望你(指發(fā)送方)下次發(fā)送給我的TCP報(bào)文段的序列號(hào)字段的值是這個(gè)確認(rèn)號(hào)。

TCP首部長(zhǎng)度:由于TCP首部包含一個(gè)長(zhǎng)度可變的選項(xiàng)部分,所以需要這么一個(gè)值來(lái)指定這個(gè)TCP報(bào)文段到底有多長(zhǎng)?;蛘呖梢赃@么理解:就是表示TCP報(bào)文段中數(shù)據(jù)部分在整個(gè)TCP報(bào)文段中的位置。該字段的單位是32位字,即:4個(gè)字節(jié)。

URG:表示本報(bào)文段中發(fā)送的數(shù)據(jù)是否包含緊急數(shù)據(jù)。URG=1,表示有緊急數(shù)據(jù)。后面的緊急指針字段只有當(dāng)URG=1時(shí)才有效。

ACK:表示是否前面的確認(rèn)號(hào)字段是否有效。ACK=1,表示有效。只有當(dāng)ACK=1時(shí),前面的確認(rèn)號(hào)字段才有效。TCP規(guī)定,連接建立后,ACK必須為1。

PSH:告訴對(duì)方收到該報(bào)文段后是否應(yīng)該立即把數(shù)據(jù)推送給上層。如果為1,則表示對(duì)方應(yīng)當(dāng)立即把數(shù)據(jù)提交給上層,而不是緩存起來(lái)。

RST:只有當(dāng)RST=1時(shí)才有用。如果你收到一個(gè)RST=1的報(bào)文,說(shuō)明你與主機(jī)的連接出現(xiàn)了嚴(yán)重錯(cuò)誤(如主機(jī)崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f(shuō)明你上次發(fā)送給主機(jī)的數(shù)據(jù)有問(wèn)題,主機(jī)拒絕響應(yīng)。

SYN:在建立連接時(shí)使用,用來(lái)同步序號(hào)。當(dāng)SYN=1,ACK=0時(shí),表示這是一個(gè)請(qǐng)求建立連接的報(bào)文段;當(dāng)SYN=1,ACK=1時(shí),表示對(duì)方同意建立連接。SYN=1,說(shuō)明這是一個(gè)請(qǐng)求建立連接或同意建立連接的報(bào)文。只有在前兩次握手中SYN才置為1。

FIN:標(biāo)記數(shù)據(jù)是否發(fā)送完畢。如果FIN=1,就相當(dāng)于告訴對(duì)方:“我的數(shù)據(jù)已經(jīng)發(fā)送完畢,你可以釋放連接了”

窗口大小:表示現(xiàn)在運(yùn)行對(duì)方發(fā)送的數(shù)據(jù)量。也就是告訴對(duì)方,從本報(bào)文段的確認(rèn)號(hào)開(kāi)始允許對(duì)方發(fā)送的數(shù)據(jù)量。

校驗(yàn)和:提供額外的可靠性。具體如何校驗(yàn),參考其他資料。

緊急指針:標(biāo)記緊急數(shù)據(jù)在數(shù)據(jù)字段中的位置。

選項(xiàng)部分:其最大長(zhǎng)度可根據(jù)TCP首部長(zhǎng)度進(jìn)行推算。TCP首部長(zhǎng)度用4位表示,那么選項(xiàng)部分最長(zhǎng)為:(2^4-1)*4-20=40字節(jié)。

選項(xiàng)部分的應(yīng)用

  1. MSS最大報(bào)文段長(zhǎng)度(Maxium Segment Size):指明數(shù)據(jù)字段的最大長(zhǎng)度,數(shù)據(jù)字段的長(zhǎng)度加上TCP首部的長(zhǎng)度才等于整個(gè)TCP報(bào)文段的長(zhǎng)度。MSS值指示自己期望對(duì)方發(fā)送TCP報(bào)文段時(shí)那個(gè)數(shù)據(jù)字段的長(zhǎng)度。通信雙方可以有不同的MSS值。如果未填寫(xiě),默認(rèn)采用536字節(jié)。MSS只出現(xiàn)在SYN報(bào)文中。即:MSS出現(xiàn)在SYN=1的報(bào)文段中。
  2. 窗口擴(kuò)大選項(xiàng)(Windows Scaling):由于TCP首部的窗口大小字段長(zhǎng)度是16位,所以其表示的最大數(shù)是65535。但是隨著時(shí)延和帶寬比較大的通信產(chǎn)生(如衛(wèi)星通信),需要更大的窗口來(lái)滿足性能和吞吐率,所以產(chǎn)生了這個(gè)窗口擴(kuò)大選項(xiàng)。
  3. SACK選擇確認(rèn)項(xiàng)(Selective Acknowledgements):用來(lái)確保只重傳缺少的報(bào)文段,而不是重傳所有報(bào)文段。比如主機(jī)A發(fā)送報(bào)文段1、2、3,而主機(jī)B僅收到報(bào)文段1、3。那么此時(shí)就需要使用SACK選項(xiàng)來(lái)告訴發(fā)送方只發(fā)送丟失的數(shù)據(jù)。那么又如何指明丟失了哪些報(bào)文段呢?使用SACK需要兩個(gè)功能字節(jié)。一個(gè)表示要使用SACK選項(xiàng),另一個(gè)指明這個(gè)選項(xiàng)占用多少字節(jié)。描述丟失的報(bào)文段2,是通過(guò)描述它的左右邊界報(bào)文段1、3來(lái)完成的。而這個(gè)1、3實(shí)際上是表示序列號(hào),所以描述一個(gè)丟失的報(bào)文段需要64位即8個(gè)字節(jié)的空間。那么可以推算整個(gè)選項(xiàng)字段最多描述(40-2)/8=4個(gè)丟失的報(bào)文段。
  4. 時(shí)間戳選項(xiàng)(Timestamps):可以用來(lái)計(jì)算RTT(往返時(shí)間),發(fā)送方發(fā)送TCP報(bào)文時(shí),把當(dāng)前的時(shí)間值放入時(shí)間戳字段,接收方收到后發(fā)送確認(rèn)報(bào)文時(shí),把這個(gè)時(shí)間戳字段的值復(fù)制到確認(rèn)報(bào)文中,當(dāng)發(fā)送方收到確認(rèn)報(bào)文后即可計(jì)算出RTT。也可以用來(lái)防止回繞序號(hào)PAWS,也可以說(shuō)可以用來(lái)區(qū)分相同序列號(hào)的不同報(bào)文。因?yàn)樾蛄刑?hào)用32為表示,每2^32個(gè)序列號(hào)就會(huì)產(chǎn)生回繞,那么使用時(shí)間戳字段就很容易區(qū)分相同序列號(hào)的不同報(bào)文。
  5. NOP(NO-Operation):它要求選項(xiàng)部分中的每種選項(xiàng)長(zhǎng)度必須是4字節(jié)的倍數(shù),不足的則用NOP填充。同時(shí)也可以用來(lái)分割不同的選項(xiàng)字段。如窗口擴(kuò)大選項(xiàng)和SACK之間用NOP隔開(kāi)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多