哪种点对点协议具有最短的规范?

What peer-to-peer protocol has the shortest specification?

出于个人教育目的,我想在 C 中实现 P2P 协议。 至今仍在使用的规格最短的协议是什么?

我已经实现了 Web 和 IRC 客户端和服务器。

连续剧。答案是连续的。您不会比简单的 RX/TX 通信更精简,但您会缺少很多方便的方法。如果您想探索的不仅仅是简单的双向通信,I2C 或 modbus 提供了很多选择。

我同意 Mark 的观点,点到连载 link 将是一个很好的练习。

特别是,我会推荐以下程序...

  1. 通过“串行端口”实现基本传输(在 linux/mac 上使用 RS-232 if you have some Arduinos/embedded processors lying around, or using a null modem emulator if you don't (see com0com on Windows, or this)。

    • 即从 A->B 发送小写字母,并从 B->A
    • 将它们回显为大写字母
  2. 实施SLIP作为一种可靠的框架消息

    • 即您可以发送任何字符串(例如“hello”),它以大写形式返回并附加“WORLD”(“HELLOWORLD”)。
  3. 实现 Modbus 协议的“读取多个保持寄存器”和“写入多个保持寄存器”部分,使用 SLIP 构建消息。

    • 即您有一个跟随者(从属)设备和一个领导者(主)设备。跟随者有 10 个字节的内存,通过 modbus 公开,初始值为“helloworld”。
    • 现在只需对跟随者/领导者设备 ID 进行硬编码。
    • 领导读取值,然后将其设置为“worldhello”。

最后您将开始了解网络层的作用,即:

  • 物理层 - Serial/RS-232
  • 各种“link层”- SLIP
  • “应用”层 - Modbus