1) TCP的封裝格式
TCP是面向連接的可靠協(xié)議,TCP為實(shí)現(xiàn)可靠的傳輸而提供了一系列的方法和手段。
首先,TCP的數(shù)據(jù)段采用編號(hào)的方式保證數(shù)據(jù)的正確順序。TCP數(shù)據(jù)段被封裝在IP數(shù)據(jù)報(bào)中來完成傳輸,而Ip數(shù)據(jù)包經(jīng)過的路徑有可能不同,那么IP數(shù)據(jù)包到達(dá)時(shí)可能會(huì)失去原有的順序,因而到達(dá)的TCP數(shù)據(jù)段也可能會(huì)失序。為了解決這個(gè)問題,TCP對(duì)數(shù)據(jù)進(jìn)行了編號(hào)。對(duì)接收到的數(shù)據(jù)進(jìn)行從新排序。
其次,由于到達(dá)的IP數(shù)據(jù)包有可能發(fā)生重復(fù),所以TCP的接收端必須有丟棄重復(fù)數(shù)據(jù)的功能。
再次,TCP提供流量控制。計(jì)算機(jī)
下面對(duì)TCP首部的數(shù)據(jù)格式進(jìn)行詳細(xì)的講解
650) this.width=650;” height=15 ?15?> 0-15這16位成為源端口號(hào):它是TCP數(shù)據(jù)段發(fā)送方進(jìn)程對(duì)應(yīng)的端口號(hào),這個(gè)端口號(hào)有發(fā)送方進(jìn)程產(chǎn)生的隨機(jī)數(shù),它唯一的標(biāo)識(shí)了發(fā)送段的一個(gè)進(jìn)程。
650) this.width=650;”” height=15 ?15?> 16-31這16個(gè)是目標(biāo)端口號(hào),它對(duì)應(yīng)的是接收端的進(jìn)程,接收端收到數(shù)據(jù)段后,根據(jù)這個(gè)端口來確定把數(shù)據(jù)送給那個(gè)應(yīng)用程序。這樣才能保證數(shù)據(jù)到達(dá)正確的地方。
650) this.width=650;”” height=15 ?15?> 第二行是32位是序列號(hào),它提供了0-232-1范圍內(nèi)的一個(gè)數(shù)據(jù)
650) this.width=650;”” height=15 ?15?> 第三行的32位的確認(rèn)號(hào),它提供了0-232-1范圍內(nèi)的一個(gè)數(shù)據(jù)
650) this.width=650;”” height=15 ?15?> 第四行分成四個(gè)部分
第一部分是4位首部長(zhǎng)度,用它可以確定首部數(shù)據(jù)結(jié)構(gòu)的字節(jié)長(zhǎng)度。
第二部分是6個(gè)保留位,這部分用著今后的擴(kuò)展使用。
第三部分是6個(gè)控制位。這6位有很重要的作用,TCP的連接、斷開和傳輸都受到這6個(gè)控制位的指揮。
1. URG:緊急指針有效位。它和第五行的緊急指針配合使用。當(dāng)URG=1時(shí),TCP根據(jù)16位緊急指針確定緊急數(shù)據(jù)的最后一個(gè)字節(jié)的位置。
2. ACK:確認(rèn)位。當(dāng)ACK=1時(shí),確認(rèn)序列號(hào)字段有效。
3. PSH:
4. RST:值位1時(shí)通知重新建立TCP的連接。電腦
5. SYN:同步序號(hào)位。TCP需要建立連接時(shí)將這個(gè)位置置1。
6. FIN:斷開位。當(dāng)TCP完成數(shù)據(jù)的傳輸需要斷開連接時(shí),提出斷開連接的一方將置1.
第四部分是16位的窗口大小。計(jì)算機(jī)基礎(chǔ)知識(shí)
650) this.width=650;”” height=15 ?15?> 第五行的16位校驗(yàn)和是用來做差錯(cuò)控制的。16位緊急指針位和URG配合使用。
650) this.width=650;”” height=15 ?15?> 第六行是可選項(xiàng)。
650) this.width=650;”” height=15 ?15?> 第七行是數(shù)據(jù)。
”