如何从代码中理解协议及其实现?

时间:2014-08-09 09:21:04

标签: protocols network-protocols

美好的一天。

我想了解计算机协议的基本工作方式,http,p2p,tcp / ip等协议。

我发现许多代码实现了这些协议和API,但每个代码都有自己的“唯一性” - 说实话,许多只是令人生畏。

起初我假设大多数协议可以表示为(相对)简单的伪代码或流程图设计,其中(据我所知,谷歌进行一段时间后)并非如此。

如果你们中的任何一个人能指出我正确的道路,并且/或者给我一些有用的提示,我将非常感激。

  1. 哪个代码更好学习?
  2. 关注的关键要素是什么?
  3. 如何判断代码的哪一部分是协议本身的重要部分?
  4. 对于你们中的一些人来说,这些问题似乎过于微不足道,但这正是我选择在这里发布的原因。谢谢!

1 个答案:

答案 0 :(得分:3)

在阅读代码之前,您应该阅读协议规范。相反,在实施您自己的新协议时,您始终应该记录该协议(至少在长篇评论中)。

HTTP这样的协议有一个冗长而复杂的规范。例如RFC2616或更好RFC7230及以下。有几本书解释了HTTP。

binary vs textual protocol是一个常见问题。文本协议更容易调试。例如。 JSON或其上方的内容,例如JSONRPC

实际上,您可能应该使用实现该协议的现有库。对于C中的HTTP(在Linux和Posix系统上),您可以在客户端使用libcurl,在服务器端使用libonion,但它们有很多选择。

相关问题