有没有任何协议规范允许使用TCP或UDP?

4
有没有一些网络协议不严格限定于TCP或UDP,但可以使用其中之一?
例如,HTTP、FTP、STMP和RTMP始终使用TCP。
DNS、SNMP、DHCP和RIP始终使用UDP。
还有什么协议可以使用TCP或UDP?或者我在以上说法中错了吗?
我知道一个奇怪的协议叫做RTSP,它同时使用TCP控制端口和UDP音视频/质量端口,但它对发送的内容有严格要求。
我想询问的是标准、公开或至少常用的协议,而不是自定义协议。

你的前提是错误的。DNS并不总是使用UDP协议。DNS RFC指出,DNS在TCP和UDP上同样有效。另一个可以在TCP或UDP上工作的协议是NFS。 - Robᵩ
@Rob,那正是我所问的.. - Samuel Neff
5个回答

4

DNS可以使用UDP或TCP协议进行通信;当响应数据超过512字节时,必须使用TCP协议。


2
如果您查看Windows的服务文件,您会发现许多协议已注册为TCP和UDP。路径:C:\Windows\System32\drivers\etc 实际上,服务文件中的大部分列表都使用TCP和UDP协议。
至于使用两者的众所周知的应用程序,我认为大多数聊天应用程序都使用两者。sms-chat绝对使用,但可能大多数其他应用程序也是如此。 编辑: 从该文件中,以下是可以通过TCP或UDP发送的一些协议(该文件中有100个列出的协议同时使用两者,其中许多是内部MS协议):
  • echo
  • discard
  • daytime
  • qotd(每日引语)
  • chargen(字符生成器)
  • time

另一方面,这并不意味着协议实际上可以同时使用TCP和UDP,只是该端口为TCP和UDP两种协议分配的。 - Anomie
@Anomie:没错。最终它只是一个端口/协议注册文件。但它可能是一个有用的参考,以确定哪些应用程序实际上可能同时使用两者。 - Paul Sasik
@EJP:那ssh、http、bootps、bootpc、pop3、imap2等呢? - Anomie
@Anomie,底线是,这个文件是一个很棒的列表,我从中找到了几个协议,这些协议按规范支持TCP和UDP,这正是我所需要的。这是该组的最佳答案,特别是在我的编辑之后。 - Samuel Neff
@SamuelNef:好的。我在发布答案后也开始做同样的事情,但是我决定放弃了。 - Anomie
显示剩余2条评论

2

SIP可以使用UDP、TCP或SCTP协议。如果您的消息变得很大(即明显大于用户代理之间最小MTU),则在SIP中使用可靠的传输方式变得很重要。共享线路外观是一个很好的例子,它使用带有XML正文的形式呈现。共享线路组中SIP客户端数量越多,数据包就越大,使得分段和重传成为一个问题。


1

SIP 可以是 UDP 或 TCP。然而,现实情况是 UDP 在这个协议中被大多数使用。


1

SNMP几乎总是运行在UDP上,但它也可以运行在TCP上。理论上说,在纠错传输上进行SNMP是一个不好的想法,因为一些SNMP意图检测到的错误被掩盖了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接