To achieve reliability without incurring large latencies, our protocol is connection-oriented. Much like in the TCP protocol, a reliable stream is set up between each of the nodes. The cost of connection establishment and release is paid only once in the startup (MPID_Init()) and tear-down (MPID_End()) phase.