Differences between revisions 2 and 3
Revision 2 as of 2004-08-10 22:32:16
Size: 1637
Editor: hd
Comment: 到报头部分。
Revision 3 as of 2004-08-10 23:16:30
Size: 2862
Editor: hd
Comment: 把业务流程确认之后再继续这部分工作。
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:
== 数据格式定义 ==
在报文中只会使用到两种数据格式:
|| 数据类型 || 数据长度(字节) || 数据说明 ||
|| uint || 4 || 无符号整型(unsigned int) ||
|| string || 1*n || 字符串(String) ||
Line 40: Line 46:
 1. Message || 字段名 || 数据类型 || 长度(字节) || 字段说明 ||
|| size || uint || 4 || 报文长度 ||
|| msgid || unit || 4 || 报文ID ||
size定义了报文全部的长度,msgid定义了报文的ID,msgid的内容必须已经在报文ID定义中说明的数值。

== 报文ID定义 ==
报文ID定义说明了OpenGNS所支持的请求和回复报文的名称、编码、说明:
|| 报文ID名称 || 编码 || 说明 ||
|| GNS_CONNECT || 0x00000001 || 连接请求 ||
|| GNS_CONNECT_RESP || 0xf0000001 || 连接请求回复 ||
|| GNS_DISCONNECT || 0x00000002 || 断开连接请求 ||
|| GNS_DISCONNECT_RESP || 0xf0000002 || 断开连接请求回复 ||
|| GNS_RESERVICE || 0x00000003 || 注册服务 ||
|| GNS_GETAPPLICATION || 0x00000004 || 得到应用的可用服务清单 ||



在定义中遵循了以下规则:
 * 请求报文以第一位均为0
 * 对应请求报文的回复报文高位均为一个f,其它与请求报文相同

== 报体定义 ==

含有章节索引的中文 文章模板

-- HD [DateTime(2004-08-10T22:23:57Z)] TableOfContents

OpenGNS协议规范

Version 1.0alpha

OpenGNS协议规范用以规定OpenGNS Client与OpenGNS Server、OpenGNS Server与OpenGNS Server之间沟通的信息内容、格式以及详细的说明。

连接方式

OpenGNS的通信是基于TCP连接进行会话,会话方式为短连接。一个TCP短连接的会话通常会有以下几个步骤:

  1. Client向Server发起TCP连接
  2. Client向Server发送认证请求报文
  3. Server向Client回头认证回复报文
  4. 如认证不通过Server断开连接
  5. 如认证通过Client向Server发送指定报文
  6. Server向Client发送报文回复
  7. Client向Server发送断开连接请求报文
  8. Server向Client发送断开连接回复报文
  9. Server断开该连接
  10. Client断开该连接

短连接有以下特点:

  1. 由Client发起连接和请求报文
  2. 按需连接
  3. 每次连接的请求报文是按顺序发送,得到回复报文后再发送下一条报文
  4. 报文发送完成后就会断开TCP连接

报文定义

报文格式定义

所有的报文包括两部分:

  1. 报头
  2. 报体

每条报文的报头长度和字段定义完全相同,而报体依据所发送的报文不同而自定义。所有报文的定义请见报头定义一节,报体的定义可见报体定义一节,具体的报文ID定义请见报文ID定义一节。

数据格式定义

在报文中只会使用到两种数据格式:

数据类型

数据长度(字节)

数据说明

uint

4

无符号整型(unsigned int)

string

1*n

字符串(String)

报头定义

由于系统的报文发送方式为短连接,所以报头只需要定义以下字段:

字段名

数据类型

长度(字节)

字段说明

size

uint

4

报文长度

msgid

unit

4

报文ID

size定义了报文全部的长度,msgid定义了报文的ID,msgid的内容必须已经在报文ID定义中说明的数值。

报文ID定义

报文ID定义说明了OpenGNS所支持的请求和回复报文的名称、编码、说明:

报文ID名称

编码

说明

GNS_CONNECT

0x00000001

连接请求

GNS_CONNECT_RESP

0xf0000001

连接请求回复

GNS_DISCONNECT

0x00000002

断开连接请求

GNS_DISCONNECT_RESP

0xf0000002

断开连接请求回复

GNS_RESERVICE

0x00000003

注册服务

GNS_GETAPPLICATION

0x00000004

得到应用的可用服务清单

在定义中遵循了以下规则:

  • 请求报文以第一位均为0
  • 对应请求报文的回复报文高位均为一个f,其它与请求报文相同

报体定义

PyUSS/OpenGNS/OpenGNS协议规范 (last edited 2009-12-25 07:15:41 by localhost)