A data transmission method, comprising: receiving, by a first forwarding device, a plurality of fragments of an Ethernet frame, wherein the plurality of fragments comprise an initial fragment and a first fragment, and the initial fragment comprises a destination media access control, MAC, address field; determining, by the first forwarding device, a frame check sequence, FCS, value of the Ethernet frame based on the plurality of fragments; determining, by the first forwarding device based on the FCS value, that an error occurs in the Ethernet frame; changing, by the first forwarding device, the first fragment to a second fragment in response to the determining that an error occurs in the Ethernet frame, wherein the first fragment comprises first type indication information and first to-be-transmitted data, the second fragment comprises second type indication information and second to-be-transmitted data, the first type indication information is used to indicate a type of the first to-be-transmitted data, the second type indication information is used to indicate that a type of the second to-be-transmitted data is a control character, a value of the first to-be-transmitted data is not equal to a value of the second to-be-transmitted data, and the second to-be-transmitted data is used to indicate that an error occurs in the Ethernet frame; and sending, by the first forwarding device, the second fragment to a destination device, wherein a value of the destination MAC address field is equal to a MAC address of the destination device, and the MAC address of the destination device is not equal to a MAC address of the first forwarding device, characterized in that the second fragment comprises a synchronization header field, a block type field, and a plurality of pieces of to-be-transmitted data, the plurality of pieces of to-be-transmitted data comprise the second to-be-transmitted data, the second type indication information comprises the synchronization header field and the block type field, and the second type indication information is further used to indicate a location of the second to-be-transmitted data in the plurality of pieces of to-be-transmitted data. receiving, by a first forwarding device, a plurality of fragments of an Ethernet frame, wherein the plurality of fragments comprise an initial fragment and a first fragment, and the initial fragment comprises a destination media access control, MAC, address field; determining, by the first forwarding device, a frame check sequence, FCS, value of the Ethernet frame based on the plurality of fragments; determining, by the first forwarding device based on the FCS value, that an error occurs in the Ethernet frame; changing, by the first forwarding device, the first fragment to a second fragment in response to the determining that an error occurs in the Ethernet frame, wherein the first fragment comprises first type indication information and first to-be-transmitted data, the second fragment comprises second type indication information and second to-be-transmitted data, the first type indication information is used to indicate a type of the first to-be-transmitted data, the second type indication information is used to indicate that a type of the second to-be-transmitted data is a control character, a value of the first to-be-transmitted data is not equal to a value of the second to-be-transmitted data, and the second to-be-transmitted data is used to indicate that an error occurs in the Ethernet frame; and sending, by the first forwarding device, the second fragment to a destination device, wherein a value of the destination MAC address field is equal to a MAC address of the destination device, and the MAC address of the destination device is not equal to a MAC address of the first forwarding device, characterized in that the second fragment comprises a synchronization header field, a block type field, and a plurality of pieces of to-be-transmitted data, the plurality of pieces of to-be-transmitted data comprise the second to-be-transmitted data, the second type indication information comprises the synchronization header field and the block type field, and the second type indication information is further used to indicate a location of the second to-be-transmitted data in the plurality of pieces of to-be-transmitted data.