1

在我的职业生涯中,我已经从人类可读的规范中以各种语言实现了几种电信协议,坦率地说,我不再喜欢它了。

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

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

有人已经这样做了吗?

如果不是,您会为这样的任务推荐哪些语言、库和符号?

4

2 回答 2

1

ABNF,虽然它没有被广泛使用。以 CIMD PDU 为例

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

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

于 2019-04-08T19:17:48.580 回答
0

你的意思是像协议分析器所做的那样吗?他们获取数据流并将其解析为正确的字段并将每个字段显示给用户。听起来您想对解析的数据做一些不同的事情。你仍然需要编写协议解码,但之后你可以对数据做任何你想做的事情。

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

于 2010-06-30T21:14:26.203 回答