什么归类为协议?

Posted

技术标签:

【中文标题】什么归类为协议?【英文标题】:What classifies as a Protocol? 【发布时间】:2018-08-04 19:34:25 【问题描述】:

我试图在一个小型网络视频的 URI 中解释 schemesprotocol 之间的区别。

通过查看 RFC here 中的 File: 方案,我可以澄清“并非所有方案都与协议分组。

在 RFC 文档中,它向我们介绍了可以使用文件方案完成的操作的讨论。然后说:

参见 POSIX 文件和目录操作 [POSIX] 的示例 可以对文件执行的标准化操作。

如果协议是“规则系统或商定程序”,那么“标准化操作”是什么意思?他们不是也同意如何处理某事的程序吗?

我不能再进一步了,因为 POSIX 部分没有链接,但我真正想知道的是,我是否可以在我的视频中这样说,而没有任何人对我大喊大叫:

“并不是所有的方案都被赋予了协议! 因此发生了几个不是协议的不同操作。” (但它们是什么?这个陈述是正确还是错误?)

因为在我看来,发生的那些 其他 操作(例如在 file: 方案上)也可能是协议,因为它们是某些东西的标准。

或者有一个协议是否意味着只有一个商定的方式来做某事,并且它不应该对允许发生的其他多个操作开放?

问题:

当没有与方案耦合的协议时,后备是其他协议还是只是具有我们同意的标准的其他操作? (就像一个协议?如果是的话,这两者有什么区别?)

更新:

最后,我对协议与其他方案操作的研究得出的结论是,协议是不同的,因为它们是一套规则或商定程序的系统 通信或两个或多个实体、计算机系统或工具之间的信息传输。

虽然只是笼统地说,其他可能的操作可能会发生在诸如文件方案之类的方案中。 (我仍然不知道其中一些操作是否符合多个可能的协议,或者它们是否真的是完全不同的东西而不是协议)

作为一个想更加确定协议与标准操作的定义的人,我希望我能得到另一个专家的意见,说明我的上述结论是正确还是错误。

(协议 = 通信) (+ 希望是文件方案的标准操作示例,使其不同于协议 - 或者如果它是协议和其他不被视为协议的功能的混合)

【问题讨论】:

Scheme is a concrete syntax definition 虽然协议是 A protocol is a set of rules and guidelines for communicating data. Rules are defined for each step and process during communication between two or more computers. Networks have to follow these rules to successfully transmit data.,但不确定您还想要什么答案? 感谢您的评论,我想我可能对计算机领域中创建的协议过度思考,并且想知道它是否是专为计算机通信而设计的特殊术语或如果他们通常使用常规协议的英文含义,并且碰巧已经通过协议解决了许多通信问题。 (这就是为什么在研究时发现它用于交流很常见) 【参考方案1】:

Scheme 是一个具体的语法定义。 Scheme 在编程世界的不同地方和上下文中使用。但是根据您所指的上下文Scheme 可以有不同的用法

URI 方案 (https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml#uri-schemes-1) 身份验证方案 (https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/understanding-http-authentication#http-authentication-schemes)

从上面可以看出,在定义编写 URL 的标准方式时使用了两个 Scheme,它也用于定义您可以使用的活动/方法/机制的类型。另一个有趣的部分是在 Wikipedia URI 文章 (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax)

                    hierarchical part
        ┌───────────────────┴─────────────────────┐
                    authority               path
        ┌───────────────┴───────────────┐┌───┴────┐
  abc://username:password@example.com:123/path/data?key=value#fragid1
  └┬┘   └───────┬───────┘ └────┬────┘ └┬┘           └───┬───┘ └──┬──┘
scheme  user information     host     port            query   fragment

  urn:example:mammal:monotreme:echidna
  └┬┘ └──────────────┬───────────────┘
scheme              path

在这里你甚至可以看到我们所说的协议,HTTP 协议,HTTPS 协议在 URI 中被称为scheme。当我们通常谈论 HTTP 协议时,我们只是谈论服务器的http:// url。但协议本身远不止于此

协议是一组用于传输数据的规则和指南。在两台或多台计算机之间的通信过程中,为每个步骤和过程定义了规则。网络必须遵循这些规则才能成功传输数据。

您应该浏览以下推荐的 WIKI

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

https://en.wikipedia.org/wiki/Application_layer

关于您提到的file URI 方案

https://www.rfc-editor.org/rfc/rfc8089#ref-POSIX

scheme 定义了如何编写 url。这不过是

file://host/path

现在可能在此上的操作集与您在 file 上的操作不同,您可以在 local 文件上使用 moverenamechange permission,但您不能使用file uri。现在这不是一个协议,因此可以使用文件 uri 的实例进行操作

很遗憾,我觉得这个问题和这个答案都有点笼统或模糊

【讨论】:

【参考方案2】:

基本上 protocol 是一组规则,用于管理网络 reference 上的机器之间的通信,其中 scheme 提供信息(资源)是否被访问/传输网络与否。 例如。

file://tmp/test

news://news.server.example/example.group.this

【讨论】:

以上是关于什么归类为协议?的主要内容,如果未能解决你的问题,请参考以下文章

1.2分布式-网络通讯协议

filebeat 收集 syslog 并自动归类

分布式通许协议

socket小解

计算机网络 归类 JAVA笔记

httptcp/ipsocket