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