1) Two office computers connected via Ethernet layer 2 switch, sharing a single DSL router and internet connections.
A. Ethernet was originally designed to fill the middle ground between long-distance, low-speed networks and smaller, specialized computer-room networks carrying data at high speeds for very limited distances. Ethernet is well suited for smaller or medium sized networks that carry sporadic heavy and light transmission of data.
Some of the issues that could affect data integrity are excessive noise in the Ethernet interfaces, excessive collisions (two or more computers transmitting at the same time), excessive runt frames (an Ethernet frame must be at least 64 bytes long (excluding PreAmble, Frame Delimiter, and Inter-Frame Gap), therefore a runt frame is a frame that does not meet this requirement), late collisions (this should never occur in a properly designed Ethernet network), No link integrity on either twisted pair cable, coaxial cable or optical fiber.
The first recommendation is to ensure that all the physical aspects that could cause errors are resolved. Inspect all cables to make sure they are not damaged, un-terminated, or cross-connected. Make sure that the correct cabling is used, such as Category 5 versus Category 3 and that there is not a mismatched connection. Use a protocol analyzer to determine the cause of any runt frames (possible result of under-runs or bad software on a network interface card). Use a protocol analyzer to check for late collisions, late collisions usually occur when Ethernet cables are too long or when there are too many repeaters in the network.
I would recommend Cyclic Redundancy Checks (CRCs), which are single-burst-error-detecting code and non-secure hash function designed to detect errors to digital data transmitted in computer networks. CRCs are highly reliable and have a high rate of error detection. They are easily applied to hardware and frequently used in computer networks and storage devices. The CRC is applied to the Ethernet frame immediately after the data field. It is a 4-byte frame check sequence (FCS) field containing a cyclic redundancy check (CRC) value. It is created by the sending device and is recalculated by the receiving device to check for damage that might have occurred to the frame in transit.