For layer 1 don't forget the interpacket gap (12 bytes of 0's for clock recovery and any preparation the receiver may want to do before receiving a new packet) and the extra 1 byte of 0's signaling the end of the preamble before sending data (since you can't be sure how many bits happened while you were trying to get in sync with the premable). All of these used to help with collision detection for older revisions of Ethernet with collisions.