VIA(Virtual Interface Architecture): 這個只是一個標準,基本上不要了解太多。
樓主的問題可以細分成2個層次考慮。一個是網絡環境,二是具體的協議和實現。
一、網絡環境
IB(InfiniBand): 是一種網絡環境,做對比的是以太網, IB往往用于高性能集群環境中。以前IB還是有優勢,但是隨著100Gb/400Gb以太網的快速發展,IB的優勢越來越弱。此外以太網在數據中心占據了統治地位,因此IB的市場份額只會越來越少。
二、協議和實現
RDMA這種技術以前只能運行在IB網絡下,為了將這種技術用在以太網環境下,就逐步發展出了RoCE/iWarp兩種協議。
RoCE目前主要是由Mellonax主導,和TCP協議無關,性能更好。iWarp主要由Chelsio主導,下層會依賴TCP協議,性能和可擴性行都差一些,優點是考慮了對廣域網的支持。
目前來看RoCE比iWarp前景更好,實際使用也更廣泛。
DPDK是Intel主導,提供了基于用戶態的數據鏈路層的功能,可以在上面構建出基于用戶態的網絡棧。實際使用中一個顯然的缺點是只有poll功能,沒有陷入中斷來減少對CPU的消耗。
發展出這么多協議和實現,根本原因在于網絡硬件發展很快,而占據主導的TCP協議當初是為了低速網絡環境設計的。