TCP + IP 數據包格式:
應用層->TCP層->IP層->網絡接口層
TCP層數據包結構:TCP頭部+實際數據 (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)
1.TCP包頭內存佔用24byte:
源主機端口號 (2bytes)
目標主機端口號 (2bytes)
序號 (4bytes)
確認序號 (4bytes)
數據偏移 (4bits)
保留 (6bits)
URG/ACK/PSH/
RST/SYN/FIN (6bits)
窗口 (2bytes)
校驗和 (2bytes)
緊急指針 (2bytes)
選項 (3bytes)
IP層數據包結構 :IP頭部+TCP數據信息(IP頭包括源和目標主機IP地址、類型、生存期等)
2.IP包頭內存佔用(20-24bytes):
版本號 (4bits) IPv4-0100
IPv6-0110
IP包頭長度 (4bits) 以4字節爲單位 總長度=包頭長度*4
服務類型 (1byte)
IP包總長 (2bytes)
標識符 (2bytes)
標記 (3bits)
分段序號 (13bits)
生存時間 (1byte)
協議 (1byte)
頭部校驗 (2bytes)
源主機IP地址 (4bytes)
目標IP地址 (4bytes)
可選項
網絡接口層 :幀頭+IP數據包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
3.內存佔用:
源主機MAC地址 (6bytes)
目標主機MAC地址 (6bytes)
類型 (2bytes)
協議名
|
協議號
|
基 本 描 述
|
IP
|
0
|
互連網協議
|
ICMP
|
1
|
互連網消息協議
|
GGP
|
3
|
網關——網關協議
|
TCP
|
6
|
傳輸控制協議
|
EGP
|
8
|
外部網關協議
|
UDP
|
17
|
用戶數據報協議
|
Xns_IDP
|
22
|
Xerox NS IDP
|
rdp
|
27
|
可靠數據流協議
|
rvd
|
66
|
MIT遠程虛擬磁盤
|
表1:常見的TCP/IP協議號
端口號
|
關鍵字
|
基 本 描 述
|
7
|
Echo
|
回波
|
9
|
Discard
|
丟棄
|
11
|
Users
|
活動的用戶
|
13
|
Daytime
|
日期
|
15
|
Netstat
|
網絡狀態
|
20
|
ftp
|
Port方式
|
21
|
ftp
|
文件傳輸協議
|
23
|
Telnet
|
遠程登錄
|
25
|
SMTP
|
電子郵件
|
37
|
Time
|
時間
|
43
|
Nicname
|
別名查詢
|
69
|
TFTP
|
普通文件傳送協議
|
79
|
Finger
|
用戶信息查詢
|
80
|
HTTP
|
超文本傳輸協議
|
101
|
Hostname
|
NIC主機名服務
|
110
|
POP3
|
郵局協議離線協議標準
|
表2:專用程序端口號
例一:訪問192.168.1.51截下的一下握手包
0000 00
24 81 0d f3 30 4a 42 08 00 00 00 08 00 45 00
0010 00
3c 1c 60 40 00 40 06 99 fc c0 a8 01 dc c0 a8
0020 01
33 0a c5 00 50 07 2d af f0 00 00 00 00 a0 02
0030 16
d0 37 13 00 00 02 04 05 b4 04 02 08 0a ff ff
0040 b3
90 00 00 00 00 01 03 03 01
幀頭:
目標主機 Mac: 00
24 81 0d f3 30
源主機Mac: 4a
42 08 00 00 00
處理類型: IP協議(ETHERNET
V2)
IP包(20字節):
版本號 4 IPV爲4
IP包頭長度 5 IP包頭爲20字節
IP包總長 60 IP包(包頭)+TCP包爲60字節
標識符 0x1c60
標記 4000>>13
分段序號 4000&0x1fff
生存時間 0x40
協議 6 上層TCP
頭部校驗 0x99fc
源主機IP地址 c0
a8 01 dc - 192.168.1.220
目標IP地址 c0
a8 01 33 - 192.168.1.51
TCP包(24):
源主機端口號 0x0ac5
目標主機端口號 0x0050
序號 0x072daff0 發送的第一字節的序號
確認序號 0x00000000
數據偏移 0xa002>>12
= 0xa 數據區偏移40字節同時得到選項長度留 0xa002>>6&0x3f
= 0x0
URG/ACK/PSH/
RST/SYN/FIN 0xa002&0x3f
= 0x2
窗口 0x16d0
校驗和 0x3713
緊急指針 0x0000
選項 可變長度 IP總長度-IP包頭-20爲當前選項和數據的長度
例二:訪問192.168.1.51截獲的一次HTTP請求包
0000 00
24 81 0d f3 30 4a 42 08 00 00 00 08 00 45 00
0010 01
1e 26 df 40 00 40 06 8e 9b c0 a8 01 dc c0 a8
0020 01
33 0a c7 00 50 06 54 95 42 2b 42 d2 b1 80 18
0030 0b
68 2b 5e 00 00 01 01 08 0a ff ff b3 9a 00 00
0040 00
00 47 45 54 20 2f 69 6e 64 65 78 2e 67 69 66
0050 20
48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a
0060 20
31 39 32 2e 31 36 38 2e 31 2e 35 31 0d 0a 41
0070 63
63 65 70 74 3a 20 2a 2f 2a 0d 0a 52 65 66 65
0080 72
65 72 3a 20 68 74 74 70 3a 2f 2f 31 39 32 2e
0090 31
36 38 2e 31 2e 35 31 0d 0a 55 73 65 72 2d 41
00a0 67
65 6e 74 3a 20 4d 6f 7a 69 6c 6c 61 2f 34 2e
00b0 30
20 28 63 6f 6d 70 61 74 69 62 6c 65 3b 20 4d
00c0 53
49 45 20 36 2e 30 3b 20 45 49 53 20 69 50 61
00d0 6e
65 6c 20 32 2e 30 20 3b 20 41 52 4d 39 32 36
00e0 29
0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f 64 69
00f0 6e
67 3a 20 69 64 65 6e 74 69 74 79 0d 0a 43 6f
0100 6e
6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73 65 0d
0110 0a
50 72 6f 78 79 2d 43 6f 6e 6e 65 63 74 69 6f
0120 6e
3a 20 63 6c 6f 73 65 0d 0a 0d 0a
幀頭:
目標主機 Mac: 00
24 81 0d f3 30
源主機Mac: 4a
42 08 00 00 00
處理類型: IP協議(ETHERNET
V2)
IP包(20字節):
版本號 0x45>>4
IP包頭長度 0x45&0xf 5*4=20字節
服務類型 0x00
IP包總長 0x011e (IP頭+數據)
標識符 0x26df
標記 4000>>13
分段序號 4000&0x1fff
生存時間 0x40
協議 6 上層TCP
頭部校驗 0x8e9b
源主機IP地址 c0
a8 01 dc - 192.168.1.220
目標IP地址 c0
a8 01 33 - 192.168.1.51
TCP包(24):
源主機端口號 0x0ac7
目標主機端口號 0x0050
序號 0x06549542
確認序號 0x95422b42
數據偏移 0x8018>>12
= 0x8(數據區偏移爲32字節)
保留 0x8018>>6&0x3f
= 0x0
URG/ACK/PSH/
RST/SYN/FIN 0x8018&0x3f
= 0x18
窗口 0x0b68
校驗和 0x2b5e
緊急指針 0x0000
選向 01
01 08 0a ff ff b3 9a 00 00 00 00(32-20)字節
數據區
47 45 54 20 2f 69 6e 64 65 78 2e 67 69 66
0050 20
48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a
0060 20
31 39 32 2e 31 36 38 2e 31 2e 35 31 0d 0a 41
0070 63
63 65 70 74 3a 20 2a 2f 2a 0d 0a 52 65 66 65
0080 72
65 72 3a 20 68 74 74 70 3a 2f 2f 31 39 32 2e
0090 31
36 38 2e 31 2e 35 31 0d 0a 55 73 65 72 2d 41
00a0 67
65 6e 74 3a 20 4d 6f 7a 69 6c 6c 61 2f 34 2e
00b0 30
20 28 63 6f 6d 70 61 74 69 62 6c 65 3b 20 4d
00c0 53
49 45 20 36 2e 30 3b 20 45 49 53 20 69 50 61
00d0 6e
65 6c 20 32 2e 30 20 3b 20 41 52 4d 39 32 36
00e0 29
0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f 64 69
00f0 6e
67 3a 20 69 64 65 6e 74 69 74 79 0d 0a 43 6f
0100 6e
6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73 65 0d
0110 0a
50 72 6f 78 79 2d 43 6f 6e 6e 65 63 74 69 6f
0120 6e
3a 20 63 6c 6f 73 65 0d 0a 0d 0a
原出處:http://blog.sina.com.cn/ybstudio