四、傳輸層TCP數據報結構詳解

圖4
如圖4所示,TCP數據報中依次包括以下信息:
1、Source Port=1038,表示發起連接的源端口為1038。該部分占16個BIT。通過此值,可以看出發起連接的計算機源端口號。
2、Destination Port=21(FTP-CTRL),表示要連接的目的端口為21。該部分占16個BIT。通過此值,可以看出要登錄的目的端口號。21端口表示是FTP服務端口。
3、Initial Sequence Number=1791872318,表示初始連接的請求號,即SEQ值。該部分占32個BIT,值從1到2的32次方減1。
4、Next Expected SEQ Number=1791872319,表示對方的應答號應為1791872319,即對方返回的ACK值。該部分占32個BIT,值從1到2的32次方減1。
5、Data Offset=28 Bytes,表示數據偏移的大小。該部分占4個BIT。
6、Reserved Bites:保留位,此處不用。該部分占6個BIT。
7、Flags=02。該值用兩個十六進制數來表示。該部分長度為6個BIT,6個標志位的含義分別是:
0URG,緊急數據標志,為1表示有緊急數據,應立即進行傳遞。
0ACK,確認標志位,為1表示此數據包為應答數據包
0PSH,PUSH標志位,為1表示此數據包應立即進行傳遞。
0RST:復位標志位。如果收到不屬于本機的數據包,則返回一個RST
0SYN:連接請求標志位。為1表示為發起連接的請求數據包。
0FIN:結束連接請求標志位。為1表示是結束連接的請求數據包。
8、Window=64240,表示窗口是64240。該部分占16個BIT。
9、CheckSum=92D7(Correct),表示校驗和是92D7。該部分占16個BIT,用十六進制表示。
10、Urgent Pointer=0,表示緊急指針為0。該部分占16個BIT。
11、Maximum Segment Size=1460,表示最大段大小為1460個字節。
通過上述分析,可以得出TCP數據報結構為:

五、小結
通過上述分析,可以發現:在以太網中,最大傳輸單元MTU為1500個字節,在一個IP包中,去除IP包頭的20個字節,可以傳輸的最大數據長度為1480個字節。在TCP包中,去除20個TCP包頭,可以傳輸的最大數據段為1460個字節。因此,當數據超過最大數據長度時,將對該數據進行分片處理,在IP包頭中會看到有多個片在傳輸,但標識號是相同的,表示是同一個數據包。