可靠性 (計算機網絡)
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
此條目不符合維基百科的品質標準,需要完全重寫。 (2015年12月14日) |
在計算機網絡中,可靠的協議是一種通信協議。這種協議由接受方通知發送方數據是否成功接收。可靠性是保證的代名詞,是國際電聯和ATM論壇使用的術語。
可靠的協議通常會比不可靠的協議產生更多的開銷,因此,運行速度較慢且可伸縮性較低。對於單播協議,這通常不是問題,但對於可靠的多播協議,則可能成為問題。
傳輸控制協議(TCP)是Internet上使用的主要協議,是一種可靠的單播協議。 UDP是一種不可靠的協議,通常用於計算機遊戲,流媒體或其他由於速度問題而可能會容忍某些數據丟失的場景。
通常,可靠的單播協議也是面向連接的。例如,TCP是面向連接的,虛電路ID由源IP地址和目標IP地址以及端口號組成。但是,某些不可靠的協議是面向連接的,例如異步傳輸模式和幀中繼。此外,某些無連接協議(例如IEEE 802.11)是可靠的。
歷史
[編輯]在Donald Davies提出的包交換概念的基礎上,ARPANET上的第一個通信協議是一種經由1822接口連接主機的可靠的數據包傳送機制。[1][2]源主機簡單地以正確的包格式排列數據,插入目的主機的地址,然後通過接口將消息發送到其連接的接口消息處理器(IMP)。將消息傳遞到目的主機後,將確認數據傳回源主機。如果網絡無法傳遞消息,則IMP會將錯誤消息發送回源主機。
同時,CYCLADES和ALOHAnet的開發人員證明,有可能在不提供可靠的數據包傳輸的情況下構建有效的計算機網絡。後來,這個研究被以太網的設計者採納。
如果網絡不能保證數據包的傳遞,則主機有責任通過檢測和重新傳輸丟失的數據包來提供可靠性。隨後在ARPANET上的經驗表明,網絡本身無法可靠地檢測到所有數據包傳遞失敗,這在任何情況下都將錯誤檢測的責任推到了發送主機上。這導致了端到端原則的發展,端到端是Internet的基本設計原則之一。
屬性
[編輯]可靠消息傳遞是在不可靠的基礎結構上傳遞消息的概念,同時能夠對消息的成功傳輸做出某些保證。[3]例如,如果消息已成功傳遞,則它最多只能傳遞一次,或者所有成功傳遞的消息都以特定順序到達。
實現
[編輯]可靠的傳輸協議能夠建立在不可靠的協議之上。一個非常常見的例子是傳輸控制協議(TCP)。
WS-ReliableMessaging是實現可靠消息傳遞的一種協議,它處理SOAP消息的可靠傳遞。[4]
IEEE 802.11嘗試為所有流量提供可靠的服務。如果發送方在預定時間段內未收到ACK幀,則發送方將重新發送幀。
參考文獻
[編輯]- ^ Gillies, J.; Cailliau, R. How the Web was Born: The Story of the World Wide Web. Oxford University Press. 2000: 23–25 [2021-03-14]. ISBN 0192862073. (原始內容存檔於2021-04-14).
- ^ Roberts, Dr. Lawrence G. The Evolution of Packet Switching (PDF). IEEE Invited Paper. November 1978 [September 10, 2017]. (原始內容存檔 (PDF)於2018-12-31).
In nearly all respects, Davies』 original proposal, developed in late 1965, was similar to the actual networks being built today.
- ^ W3C paper on reliable messaging. [2021-03-14]. (原始內容存檔於2021-05-10).
- ^ WS-ReliableMessaging specification (PDF) (PDF). [2021-03-14]. (原始內容存檔 (PDF)於2009-05-21).