I have been designing iSCSI backbones lately, and it struck me that the one of the performance problems with iSCSI is that it uses the TCP protocol.
A primary purpose of the TCP protocol is so that OS can ensure that any dropped or lost packets are handled by the TCP/IP stack in the operating system. The application can simply hand off the data to the network driver which will guarantee the delivery of the packet.
However, the use of TCP is processing intensive because buffers, order counting and checksums are peformed. And given that data centre networks are highly reliable, it isn’t even necessary (If FCoE can be reliable over Ethernet, then iSCSI can be reliable over IP).
My question is, then, why hasn’t the storage industry developed a new protocol that just uses IP ?
Precedent – DLSW
For those who remember DLSW (Data Link Switching) for the IBM mainframe, there was a specific protocol developed that allowed for very fast transport of SNA data to the mainframe.
The FST (Fast Sequenced Transport) was an IP Protocol that was stateless and sequenced for carrying bridged or Layer 2 data over IP networks. Because it was smaller and tool less CPU and time to generate packets, it reduced overhead and improved response time.
The network was then configured to provide QoS for the FST/IP protocol and thus ensured high performance.
Block transport over IP ?
The most common criticism of iSCSI is that is requires:
- CPU resources from the Server and Storage Array to process the packets
- adds latency during the TCP Checksum calculation, thus reducing throughput
thus lowering the overall performance of the storage system when compared to FibreChannel or FCoE.
If a new version of iSCSI was to remove the TCP header, and use only the IP header with a small amount of session information in the payload, it could address these issues.
Does anyone know if work has been done in this area ? And I’m wondering why the storage industry hasn’t picked up on the idea because I’m still baffled by the choice to use Ethernet as protocol to transport data. That idea was over in the 1980’s when IBM mainframes lost control of their customers with closed systems.