Industrial Ethernet Guide - Client/Server Vs. Master/Slave
The following is part of A Comprehensible Guide to Industrial Ethernet by Wilfried Voss.
The distinct differences between a Client/Server and a Master/Slave network model have a significant impact on the design of Industrial Ethernet applications not only in terms of device/process interaction but also the data traffic pattern, which may require increased use of network segmentation devices such as hubs or Ethernet switches.
Unfortunately, there is a lingering misconception that the terms Client/Server (originated in the IT world) and Master/Slave (originated in industrial automation) describe the same data exchange procedure. The “master” device issues a command and the “slave” responds, which is no different from a “client” requesting information from a “server.”
While this last sentence is not entirely incorrect, it represents a very superficial view that assumes that Master = Client and Slave = Server. This assumption not only ignores the distinct differences in functionality between a “master” and a “client” and those between a “slave” and a “server.” It also neglects the impact on the data traffic pattern.
Note: Industrial Ethernet protocols such as EtherCAT® and Ethernet Powerlink work under a Master/Slave configuration, while Ethernet/IP and Modbus/TCP are based on a Client/Server architecture. All protocols support direct node-to-node communication.
In general, as the following image demonstrates, a Server serves multiple Clients, while multiple Slaves serve only one Master, which describes only one aspect of the differences between the two communication models.
In Computer Networking, Client/Server describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request (e.g., database access per SQL). Although the client/server idea can be applied to programs within a single computer, the most popular perception is that of nodes in a network.
A Client/Server configuration is used for accessing but not modifying data in the Server since there could be unpredictable results if multiple Clients modified the data in an unsynchronized way.
In contrast, Master/Slave is a model of communication where one device or process has unidirectional control over one or more devices. In some systems, a Master is assigned from a group of devices, with the other devices acting as Slave devices (e.g. CAN – Controller Area Network – uses the Multi-Master-Access method, where the node that succeeds during the bus arbitration process is the Master device, however, limited to the time it takes to send a message frame).
A Master device is in charge of all other devices and can significantly influence a Slave’s data and even its behavior. Once the master/slave relationship is established, the direction of control is always from the master to the slave(s).
Also, experience has shown that in Master/Slave configurations, the majority of the network traffic is local, i.e., between Slave devices. In most Client/Server installations, the majority of the network traffic is between the individual Clients and the Server.
Note: There is an ongoing discussion regarding the political correctness of the term "Master/Slave", specifically in the United States, due to its history. While the author would welcome a revised, standardized term, the industry and the various standardization organizations have been slow to address the issue.
netSHIELD"NSHIELD 52-RE" - Industrial Ethernet Development Platform
It enables the user to connect a Microcontroller based application to all market relevant Real-Time-Ethernet industrial networks with best-in-class real-time capabilities, like PROFINET, Ethernet/IP, EtherCAT, and others.
The extension board features a netX 52 system-on-chip. The netX SoC architecture is designed from the ground up for the highest demands on flexibility, determinism, and performance in terms of multi-protocol capability and low latency for short cycle times. The heterogeneous multi-core architecture features an ARM processor core, coupled with a flexible communication subsystem (xC) for varieties of industrial applications support.