2011-05-16 106 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想要檢測的錯誤被掩蓋了。