实施网络协议

时间:2010-09-17 09:04:08

标签: c# design-patterns oop implementation network-protocols

我将实施一个网络协议(特别是SFTP),我想知道是否有任何一般的经验法则可以遵循?

目前这似乎是一项艰巨的任务,我不知道该从哪里开始。

我正在寻找:

  • 提示
  • 最佳做法
  • 可能的设计模式
  • 体验

尽量使其适用于网络协议。

谢谢!

2 个答案:

答案 0 :(得分:1)

我建议查看SharpSSH库,其中包括对SFTP的支持,并且已经在BSD样式许可下发布,因此您可以重新使用源代码或至少来自该项目的想法。 / p>

其他一些关于SO的答案(我在几个月前看到)提到了SFTP支持的一些问题,但不确定这些问题是否仍然相关,无论哪种方式,它至少可能是一个好的起点。

答案 1 :(得分:1)

如果可能,我肯定会建议使用经过良好测试的库。特别是对于SFTP的SSH方面 - 因为实施中的错误可能导致安全漏洞。

那就是说,你看起来像一个有经验的人,你可能会发现那里没有任何一个库(SharpSSH等)是合适的,你应该考虑将你的网络实现分离到自己的库中并打开采购它有两个原因:

  1. 如果它对您有用,它可能对其他人有用。
  2. 可能会获得一些有用的代码审核
  3. 考虑到所有这些,其他指南将与其他发展类似,但可能在安全性和测试方面更加严谨。确保运行静态分析并对故障情况进行单元测试。

    另外:使用,但不信任为您提供的OSI model的较低层。如果存在破坏代码的情况,您可以打赌网络最终会找到它。

    希望这有帮助。