在我的职业生涯中,我用各种语言的人类可读规范实现了几种电信协议,坦率地说,我不再享受它了。
相反,我想将人类可读的协议规范翻译成机器可读的协议规范,并自动生成各种语言的协议处理程序。
我特别感兴趣的是对SMPP / CIMD2 / EMI协议,自动生成协议数据单元串行器/解串器,以及状态机,测试用例和其他基础设施。
有人已经这样做了吗?
如果没有,您会为这样的任务推荐哪种语言,图书馆和符号?
答案 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。还有商业选择。