An Ethernet-based data transmission method for communicating data according to communication macro cycles in a control system, wherein: each communication macro cycle has a same duration, and each communication macro cycle consists of a plurality of fixed duration time periods, and each time period is for one corresponding node to send data; wherein the data transmission method comprises for each time period, called the given time period, being a time period for a respective node of the control system, called the given node, to send data, the steps: the given node buffers data to be sent, and in the given time period, a first node sends the buffered data; wherein the communicating data is such for each given node: the given node does not send data in any communication macro cycle not including a time period for the first node to send data, and the given node does not send data in any of the time periods which is not a time period for the first node to send data; characterized in that the control system comprises a clock source and a first node which is not the clock source, and in that the method further comprises the steps of: the clock source sending first data in a time period for the clock source to send data; the first node receiving the first data; the clock source recording a time when the first data is sent; the first node recording a time when the first data arrives at the first node; the clock source sending second data in a next time period for the clock source to send data, wherein the second data includes the recorded time when the clock source sent the first data; the first node receiving the second data, and the first node correcting a local clock according to: the recorded time when the first data arrived at the first node, the time when the clock source sends the first data as included in the second data, and a circuit delay between the first node and the clock source. the given node buffers data to be sent, and in the given time period, a first node sends the buffered data; the given node does not send data in any communication macro cycle not including a time period for the first node to send data, and the given node does not send data in any of the time periods which is not a time period for the first node to send data; the clock source sending first data in a time period for the clock source to send data; the first node receiving the first data; the clock source recording a time when the first data is sent; the first node recording a time when the first data arrives at the first node; the clock source sending second data in a next time period for the clock source to send data, wherein the second data includes the recorded time when the clock source sent the first data; the first node receiving the second data, and the first node correcting a local clock according to: the recorded time when the first data arrived at the first node, the time when the clock source sends the first data as included in the second data, and a circuit delay between the first node and the clock source. the recorded time when the first data arrived at the first node, the time when the clock source sends the first data as included in the second data, and a circuit delay between the first node and the clock source.