Can anybody explain what is InfiniBand? What is the key differences in comparison with Ethernet, how these differences allow for it to be faster than Ethernet?
In the official description from mellanox it is written that
Introduce InfiniBand, a switch-based serial I/O interconnect architecture operating at...
What does it mean that Infiniband is a switch-based interconnect? I found this description, but it does not explain what happens if several inputs want to write to a single output, how is the collision resolved?
It is also said that Infiniband has end-to-end flow control. Does it mean that there is no (need) for any other (in-between) flow control? Why?
Key difference between Ethernet and Infiniband, which makes Infiniband faster, is RDMA (Remote Direct Memory Access). DMA (in networking) is an operation which access the memory directly from the NIC (Network Interface Controller), without involving the CPU. RDMA is the same idea, but the direct memory access is done by a remote machine.
More differences:
A basic RDMA flow between a requestor and a responder would consist of:
Main benefits:
For more information please refer to the Infiniband spec (sorry it is very long).
Related traffic protocols:
RoCE (RDMA over Converged Ethernet), which implements RDMA over Ethernet fabric by wrapping Infiniband packets with L2/L3/L4 Ethernet headers.
IPoIB (IP over Infiniband), which implements regular networking (thru the kernel stack) over Infiniband fabric by wrapping L3/L4 packets with Infiniband headers.
Hope this helps.