| 低字节 |
|
高字节 | |||||||||||||||||||||||||||||||||||||||||||||
| IP协议 |
|
20字节 | |||||||||||||||||||||||||||||||||||||||||||||
| TCP协议 |
|
20字节 | |||||||||||||||||||||||||||||||||||||||||||||
| FGCP协议 |
| 8个字节 | |||||||||||||||||||||||||||||||||||||||||||||
从上面图表中我们可以清楚地看到处于IP层上的各层协议结构,从协议占的字节数来看,基于FGCP协议的数据包最少是 20 + 20 + 8 = 48个字节. FGCP协议设计遵从的四个基本点: 一、占用最少字节数,减少网络传送; 二、提供灵活扩展性,满足使用者需求; 三、依据游戏交互特点设计; 四、依据Flash特点设计; 略过已知的IP和TCP协议层,我们来看下FGCP各字段的作用:
| 16位总长度 | 表达整个数据包的长度,利用总长度和首部长度字段就可以计算出数据包中内容的起始地址和长度,最高数据包字节数为2 ^ 16 - 1 = 65535个字节 |
| 16位标志位 | 定制数据包扩展的内容, |
| 8位首部长度 | 表示数据包首部的长度,最高首部字节数为2 ^ 8 - 1 = 256个字节 |
| 8位预留字段 | 预留字段 |
| 4位事件规则 | 发送事件的规则(如普通,私有,紧急) |
| 12位事件类型 | 发送事件的类型(最多表示2 ^ 12 = 4096条命令) |