A high availability, HA, industrial control system for communicating data over a high availability industrial control network via a concurrent connection for communication in the system, the HA industrial control system comprising: a first producer module (300A, 310A) operative to generate a first data packet for transmission, wherein the first data packet includes a unique identifier defining the concurrent connection; a second producer module (300B, 310B) operative to generate a second data packet for transmission, wherein the second data packet includes the unique identifier and the second data packet is transmitted concurrently with the first data packet; and a first consumer module (300A, 300B, 310A, 310B) operative to: receive one of the first data packet and the second data packet first, receive one of the first data packet and the second data packet second, extract data from one of the first and second data packet which was received first, transmit the data extracted from one of the first and second data packet to a control circuit within the first consumer module, identify one of the first and second data packet which was received second as redundant as a function of the unique identifier, and disregard data from one of the first and second data packet identified as redundant, wherein the concurrent connection is a transport layer mechanism comprising a plurality of connection paths connecting each of the first and second producer modules with the first consumer module, wherein the first and second producer modules are redundant end modules of the concurrent connection and are operative to, before the concurrent connection is opened, exchange connection information with each other, generate the unique identifier and store the unique identifier in memory of each of the first and second producer modules. a first producer module (300A, 310A) operative to generate a first data packet for transmission, wherein the first data packet includes a unique identifier defining the concurrent connection; a second producer module (300B, 310B) operative to generate a second data packet for transmission, wherein the second data packet includes the unique identifier and the second data packet is transmitted concurrently with the first data packet; and a first consumer module (300A, 300B, 310A, 310B) operative to: receive one of the first data packet and the second data packet first, receive one of the first data packet and the second data packet second, extract data from one of the first and second data packet which was received first, transmit the data extracted from one of the first and second data packet to a control circuit within the first consumer module, identify one of the first and second data packet which was received second as redundant as a function of the unique identifier, and disregard data from one of the first and second data packet identified as redundant, receive one of the first data packet and the second data packet first, receive one of the first data packet and the second data packet second, extract data from one of the first and second data packet which was received first, transmit the data extracted from one of the first and second data packet to a control circuit within the first consumer module, identify one of the first and second data packet which was received second as redundant as a function of the unique identifier, and disregard data from one of the first and second data packet identified as redundant, wherein the concurrent connection is a transport layer mechanism comprising a plurality of connection paths connecting each of the first and second producer modules with the first consumer module, wherein the first and second producer modules are redundant end modules of the concurrent connection and are operative to, before the concurrent connection is opened, exchange connection information with each other, generate the unique identifier and store the unique identifier in memory of each of the first and second producer modules.