The minimum and maximum data sizes for Ethernet are derived from the historic implementations of Ethernet. The 46 byte minimum limit was required to ensure that collision detection worked correctly in the original implementations where multiple transceivers operated on a single coaxial cable. If a collision was going to be detectable anywhere on the cable (when two transceivers start transmitting at almost the same time), then the total packet size had to be a certain minimum size. If two transceivers at the opposite ends of a cable started transmitting together and were using packets shorter than the minimum allowed, the transmitters would not detect a collision as their transmission would have been completed before the packet from the other end of the cable arrived due to the propagation delays. However, a receiver in the middle would detect both packets arriving together and the contents of the packets would be totally corrupt. If there are less than 46 bytes of data to be transferred, then the rest of the 46 bytes would be filled with dummy characters.
This collision detection requirement also defines the maximum propagation delay along the cable, and hence the maximum cable segment length.
At the other end of the range - 1500 bytes, there were two factors that lead to the introduction of this limit. First, if the packets are too long, they introduce extra delays to other traffic using the Ethernet cable. The other factor was a safety device built into the early shared cable transceivers. This safety device was an anti-babble system. If the device connected to a transceiver developed a fault and started transmitting continuously, then it would effectively block any other traffic from using that Ethernet cable segment. To protect from this happening, the early transceivers were designed to shut off automatically if the transmission exceeded about 1.25 milliseconds. This equates to a data content of just over 1500 bytes. However, as the transceiver used a simple analogue timer to shut off the transmission if babbling was detected, then the 1500 limit was selected as a safe approximation to the maximum data size that would not trigger the safety device.
If the higher levels wish to transfer packets larger than 1500 bytes, then the level 4 protocols (TCP) will have to fragment the packets to the maximum length allowed by the lower levels at the transmitter, and the receiving TCP handler will reverse this process.
Modern switches and UTP cabling (cat5 etc) have largely eliminated these restrictions, however, it is still possible to interface modern networks to the original implementations with a coaxial cable, and the restrictions still apply for backward compatibility.