第一次上机作业说明 业务系统说明 Socket编程技术 如何分析应用层协议 应用程序结构
1. 业务系统说明 什么是短信网关 短信网关主要是为了解决各网络、各运营商之间的短信互通和短信增值服务提供商(SP)的接入问题。它为收发短信提供了一个动态数据交换平台系统。通过该系统的接口软件,可以将短信平台与各种系统和软件进行无缝高效相连,将系统和软件随时产生的动态信息转变成手机短信,通过运营商的短信中心进行实时的发送和接受,为各种系统(或软件)建立一个快速的短信双向(或单向)通道,以便手机用户采用短信方式与SP双向通信,接收SP提供的信息服务。
1. 业务系统说明 信息服务实例 股市信息,如定制或点播实时行情、到价提醒、个股走势、大盘走势、专家评股等各种信息; 新闻定制,可定制或点播国际、国内、财经、科技、体育、娱乐等各种新闻; 彩票信息,可定制或点播各城市各种彩票开奖信息; 外汇行情,可定制或点播外汇牌价; 天气预报,可定制或点播全国各省会城市、国内旅游景点、世界大城市的天气预报,乃至专业天气预报; 在线翻译,可点播进行英汉、汉英的单词查询。
1. 业务系统说明 短信增值服务系统拓扑
1. 业务系统说明 短信信息服务参与实体 服务提供商(Service Provider缩写SP):短信信息服务的信息提供者; 短信网关(Internet Short Message Gateway缩写ISMG):提供SP与短信中心之间数据交换的通道,采用CMPP(China Mobile Peer to Peer)协议与SP进行连接,采用SMPP3.3协议与短信中心连接; 短信中心(Short Message Service Center缩写SMSC):利用信令网将短消息发送给手机用户; 汇接网关(Gateway Name Server缩写GNS):提供短信网关的路由查询。
1. 业务系统说明 短信信息服务业务过程 用户发短信业务—即MO业务,如信息点播等。 用户归属地的短信中心会将短信转发给负责连接该短信中心的短信网关,由短信网关根据服务代码和业务代码判别将请求转发给相应的SP;若该SP为该短信网关负责连接的SP,则短信网关直接转发;若该SP非其负责连接的SP,需向汇接网关查询路由,查询到路由后再将请求转发给负责的短信网关,由该负责的短信网关转发给该SP。
1. 业务系统说明 短信信息服务业务过程 用户收短信业务—即MT业务,如短信传情、铃音下载等。 短信网关根据接收用户手机号码判断其归属地短信中心,若该短信中心由本短信网关负责连接,则直接将业务数据发送给短信中心;否则向汇接网关查询路由,根据路由查询结果将业务数据发送给负责连接的短信网关,再由该短信网关发给归属地短信中心,继而发送给用户。
1. 业务系统说明 短信网关功能说明 SMPP代理系统与短消息中心连接,实现高效、可靠的数据传输。该系统支持流量控制功能,能够根据SMSC的业务量进行发送流量控制。 通信代理系统实现与SP等内容供应商的连接和协议互通。它基于TCP/IP协议基础之上,利用CMPP协议与SP之间建立一条安全、高效的传输通道。该系统支持流量控制功能,能够根据本身的业务量进行接收流量控制。 防火墙作为短信网关的重要功能组成部分,其功能是对短信网关内部其它相关模块进行保护,实现针对内外访问的包过滤和代理。 短消息网关处理系统完成网关的业务处理,包括:向汇接网关进行路由查询,在本地建立短信网关ID、用户手机号码、SP ID及其IP地址对应表的缓存,建立用户手机号码段与SMSC(短信中心)地址的对应表,完成对数据分发功能的支持、计费原始话单的提供及处理等。 短信网关计费系统提供短信网关的原始话单记录(CDR)。 业务管理系统包括业务管理和网管监控功能。
1. 业务系统说明 应用举例 《称骨算命》短信增值服务: 手机发送 cgsm YYYYMMDD 到 9513186,即可在本手机上接收到对应的命运分析,本月运势等信息。 短信中心将该短信内容与发送手机号码及其它相关信息(诸如时间等)发送至短信网关。 短信网关接收到该信息后分析信息内容:9513186为SP代码;cgsm为功能说明(业务类型);YYYYMMDD为短消息内容;…短信网关根据SP代码及业务类型找到特定SP服务程序并将短消息内容发送给该服务程序。SP服务程序接收到该信息后返回接收信息。 SP服务程序对接收到的信息进行处理,并将处理结果及其它信息(付费信息等)列集发送给短信网关。
2. Socket编程技术 Socket运行流程 建立连接 发送数据 断开连接 Socket成员定义 地址 端口
3. 如何分析应用层协议 协议内容 系统框架结构 系统功能组成 系统各部分关联关系 系统运行机制
3. 如何分析应用层协议 通信流程
3. 如何分析应用层协议 数据包结构(以SGIP为例) 数据包结构在程序中采用Struct即可实现 表1. 数据包完整数据结构 项目 说明 表1. 数据包完整数据结构 项目 说明 消息头 消息头部分 消息体 消息体部分 表2. 消息头数据结构 字段 长度(字节) 类型 说明 Message Length 4 Integer 消息的总长度(字节) Command ID 命令ID Sequence Number 12 序列号
3. 如何分析应用层协议 数据包结构(以SGIP为例) 表3. Bind消息体结构 字段 长度(字节) 类型 说明 Login Type 1 Integer 登录类型。 1:SP向SMG建立的连接,用于发送命令 2:SMG向SP建立的连接,用于发送命令 3:SMG之间建立的连接,用于转发命令 4:SMG向GNS建立的连接,用于路由表的检索和维护 5:GNS向SMG建立的连接,用于路由表的更新 6:主备GNS之间建立的连接,用于主备路由表的一致性 11:SP与SMG以及SMG之间建立的测试连接,用于跟踪测试 其它:保留 Login Name 16 Text 服务器端给客户端分配的登录名 Login Passowrd 服务器端和Login Name对应的密码 Reserve 8 保留,扩展用
3. 如何分析应用层协议 各参量定义 依据参量定义中特定业务上下文定义,对数据包中特定分量进行赋值。 表4. 计费类别定义 用户计费类别 表4. 计费类别定义 用户计费类别 描述 “短消息类型”为“发送”,对“计费用户号码”不计信息费,此类话单仅用于核减SP对称的信道费 1 对“计费用户号码”免费 2 对“计费用户号码”按条计信息费 3 对“计费用户号码”按包月收取信息费 4 对“计费用户号码”的收费是由SP实现
4. 应用程序结构 上机内容 实现短信网关及短信服务应用的仿真程序。 实现短信网关与短信服务应用的业务通信过程(主要包含手机发送点播命令至收到服务内容过程中短信网关与短信服务应用之间的通信过程及短信服务应用通过短信网关向手机发送广告信息的通信过程)。 测试不同平台的短信网关与短信服务应用的互联情况并分析原因。 思考客户端(服务器端)编程时需了解的服务器端(客户端)详情有哪些(诸如:程序框架、开发环境、运行环境、变量和函数名称等等)?思考应用层协议的作用。 思考若系统需要实现不同协议间程序的互联,系统应做哪些修改或补充。
4. 应用程序结构 短信服务应用程序界面 显示短信网关与短信服务程序之间通信的过程及内容,需要对通信内容进行散集说明。 显示程序的业务参数配置(诸如:SPID、计费等)及程序功能说明。 短信服务应用程序界面 为实现仿真内容所定义的命令下发及通信相关请求的控制界面。
4. 应用程序结构 程序运行功能设计 业务源仿真设计。 通信过程仿真设计。 手机发送点播短信仿真: 短信网关仿真程序中以一交互事件(按钮点击)处理,数据内容可采用操作员录入方式定义。 SP的MT业务仿真: SP服务仿真程序中以一交互事件(按钮点击)处理,数据内容可采用操作员录入方式定义。 通信过程仿真设计。 通信连接建立仿真 业务通信过程仿真 在业务源仿真事件处理中构造业务数据包并发送Socket消息,根据协议定义完成业务流程。接收方,在消息接收事件中对数据包进行处理,根据协议中定义完成业务流程。 在业务通信过程仿真中,将通信过程及内容输出至程序界面,实现通信监控功能。