什么是描述SMPP或CIMD2等电信协议的良好的机器可读形式方式?

时间:2010-06-04 13:40:41

标签: parsing serialization protocols notation smpp

在我的职业生涯中,我用各种语言的人类可读规范实现了几种电信协议,坦率地说,我不再享受它了。

相反,我想将人类可读的协议规范翻译成机器可读的协议规范,并自动生成各种语言的协议处理程序。

我特别感兴趣的是对SMPP / CIMD2 / EMI协议,自动生成协议数据单元串行器/解串器,以及状态机,测试用例和其他基础设施。

有人已经这样做了吗?

如果没有,您会为这样的任务推荐哪种语言,图书馆和符号?

2 个答案:

答案 0 :(得分:1)

ABNF,尽管没有广泛使用。例如,这是CIMD PDU

 cimd-frame     = start-of-text op-code COLON packet-number parameter-list end-of-text
 parameter-list = *(TAB parameter)
 parameter      = code COLON value
 start-of-text  = %x02
 end-of-text    = %x03
 TAB            = %x09
 COLON          = %x3A
 …

那里有解析器生成器,可以读取ABNF语法并生成解析器。

答案 1 :(得分:0)

你的意思是协议分析器的功能吗?它们获取数据流并将其解析为正确的字段,并将每个字段显示给用户。听起来你想要对解析后的数据做一些不同的事情。您仍然必须编写协议解码,但之后您可以使用数据执行任何操作。

Wireshark是开源的,免费的,已经有很多协议解码,包括SMPP。还有商业选择。