关于 python Jabber、Twisted、XMLRPC 和 SCP 的简单问题 [关闭]

Posted

技术标签:

【中文标题】关于 python Jabber、Twisted、XMLRPC 和 SCP 的简单问题 [关闭]【英文标题】:Simple questions about python Jabber, Twisted, XMLRPC, and SCP [closed] 【发布时间】:2011-09-12 08:37:33 【问题描述】:

我有一些关于这些协议的问题,仅在网上搜索我就很难回答。所以这里。请提前原谅我的无知,我知道这些问题中至少有一个会让你畏缩。

SCP:SSH 文件传输协议是否保证服务器正在运行时正确的数据会到达那里?本质上,如果我用 scp 编写脚本,在收到文件后检查文件的哈希是否是多余的。

Twisted:我正在与潜在经纪人一起使用 Twisted。同样的问题,检查哈希是否多余,如果我进行远程调用并返回一个好的值,我可以假设服务器不仅获得了数据,而且还获得了正确的数据?这是 errbacks 的功能,还是其他错误的功能?我可能会自己使用 netstat 或其他东西进行测试,但是使用 PB 时会发送很多额外的数据吗?每次调用远程函数时,是否都要通过网络重新发送 Avatar?

Jabber:同样的保证,如果我发送并返回一个好的值,我可以假设服务器不仅得到了数据,而且得到了正确的数据吗?我已经看到 jabber 被称为“近实时”。这是什么意思,在一个数量级上,假设所有客户端/服务器都处于良好的连接状态,人们会期望什么样的延迟。我一直在运行一个使用 jabber 的程序,它对我来说相当糟糕(必须不时重新启动,并不总是在数据传输后的几个小时内得到数据),这些协议是否存在问题,或者是不是代码写得不好?

XMLRPC:同样具有纠错保证。我在 python 中编写了一个 SimpleXMLRPCServer/client 程序,它每秒发出 10 个请求,这是标准,还是我做得不好?

任何这些问题的答案都会很好,谢谢大家。

编辑:我正在编写一种分析算法,该算法将使用其中一种方法或这些方法的某种组合来移动数据文件。我每秒会收到大量请求,速度是个问题。

但是,为此目的获取不正确的数据是不可接受的。我不知道 TCP 确实保证了您的数据,但是在端点中获取数据是否意味着在磁盘上正确获取数据,我不知道。

【问题讨论】:

您有 4 个完全不相关的问题,所以最好将它们分成 4 个单独的问题... 【参考方案1】:

SCP:SSH 文件传输协议是否保证服务器正在运行时正确的数据会到达那里?本质上,如果我用 scp 编写脚本,在收到文件后检查文件的哈希是否是多余的。

一般来说,保证是一个强词。

TCP 单独努力提供可靠的传递、校验和、确认、序列号、重试一起意味着不应该有任何未检测到的错误。但是,它无法承受恶意干扰。

在 TCP 之上,SSH/SCP努力提供安全的(主机认证、加密、完整性检查)端到端数据传输,以便始终检测到恶意干扰。但是,这假设您正确使用它,例如主机密钥检查。

这对于大多数用例来说已经足够了。

但是,如果您想三重确定并可能涵盖极其罕见的未检测到的磁盘错误,请阅读文件并生成安全摘要,例如sha256sum。


您发布了很多关于类似主题的问题,您担心什么?网络级错误?恶意干扰?


我在 python 中编写了一个 SimpleXMLRPCServer/客户端程序,它每秒发出 10 个请求,这是标准,还是我做得不好?

每秒 10 次有点低。这些是流水线的(一个 TCP 连接)吗?如果没有,您可能在某个地方遇到了 SYN 速率限制。将流水线性能与每个请求的单独连接进行比较。

【讨论】:

我正在编写一种分析算法,它将使用其中一种方法或这些方法的某种组合来移动数据文件。我将每秒收到大量请求,速度是一个问题。但是,为此目的获取不正确的数据是不可接受的。我不知道 TCP 确实保证了你的数据,但是我不知道在端点中获取数据是否意味着在磁盘上得到正确的数据。

以上是关于关于 python Jabber、Twisted、XMLRPC 和 SCP 的简单问题 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 google talk 中使用 wokkel:(error twisted.words.protocols.jabber.sasl.SASLNoAcceptableMechanism)

Twisted 框架 初印象

关于Python3.6中Twisted模块安装的问题

Twisted on Python3的真实现状是什么?

python编程(基于twisted的client编程)

异步编程初探与reactor模式 | Twisted 教程