2011-05-16 104 views
4

是否有任何网络协议不是严格的TCP或UDP,但可以与任何一个一起使用?是否有任何协议规范允许使用TCP或UDP?

例如,HTTP,FTP,STMP,RTMP始终是TCP。

DNS,SNMP,DHCP,RIP始终是UDP。

有什么可以是TCP或UDP?或者我在上述断言中错了吗?

RTSP是一个奇怪的,我知道它同时使用TCP,控制端口为TCP,但音频/视频/质量为UDP,但它对每个端口发送的内容有严格的要求。

我在问关于标准,已发布或至少常用的协议,而不是自定义协议。

+0

您的前提是有缺陷的。 DNS不*总是UDP。 DNS RFC表示,DNS在TCP和UDP上运行得很好。适用于TCP或UDP的另一种协议是NFS。 – 2011-05-16 19:39:08

+0

@Rob,这正是我所要求的。 – 2011-05-16 20:53:54

回答

2

如果您检查一个Windows的服务文件,您将看到许多为TCP和UDP注册的协议。路径:C:\Windows\System32\drivers\etc实际上,services文件中的大部分列表都使用TCP和UDP协议。

至于众所周知的使用两者的应用程序,我会认为大多数聊天应用程序都使用两者。短信聊天确实可以,但可能是其他人。

编辑:

从该文件中,这里有几个是可以通过TCP或UDP发送的协议(有该文件中同时使用完全相同的100个上市协议,许多内部MS协议) :

  • 回声
  • 丢弃
  • 白天
  • QOTD(一天行情)
  • 的chargen(字符发生器)
  • 时间
+0

OTOH,这并不一定意味着该协议实际上可以同时使用TCP和UDP,只是端口被分配给TCP和UDP的协议。 – Anomie 2011-05-16 15:56:46

+0

@Anomie:那是真的。最后它只是一个端口/协议注册文件。虽然它可能是一个有用的参考指出什么样的应用程序可以实际使用两者。 – 2011-05-16 16:12:10

+0

@Anomie它的确如此。您可以通过TCP或UDP端口获得ECHO响应。协议是一样的,运输是不同的。同样适用于白天,qotd,时间等。 – EJP 2011-05-17 00:20:55

4

DNS可以使用UDP或TCP;响应数据超过512字节时需要TCP。

1

SIP可以是UDP或TCP。但实际情况是,UDP主要用于此协议。

2

SIP可以使用UDP,TCP或SCTP。如果你的消息变得非常大(即,比用户代理之间的最小MTU大得多),那么在SIP中使用可靠的传输就变得很重要。一个很好的例子是共享或桥接外观,它们使用XML主体的存在形式。共享线路组中的SIP客户端数量越大,数据包可能越大,导致分段和重新传输成为问题。

1

SNMP 差不多总是运行在UDP上,但它可以运行在TCP上。理论上说,在纠错传输中使用SNMP是一个坏主意,因为一些SNMP想要检测的错误被掩盖了。