Dissecting an Ethernet Frame
Data Packet - an all-encompassing term that represents any single set of binary data being sent across a network link
- represents the concept of one set of data being sent from point A to point B
- Data packets at the Ethernet level are known as Ethernet Frames…
Ethernet Frames - highly structured collection of info presented in a specific order
- this way, network interfaces at the physical layer can convert a stream of bits traveling across a link into meaningful data, or vice versa
- almost all sections are mandatory, and most of them have a fixed size
Preamble - first part of an Ethernet Frame; 8 bytes (64 digits) long and can itself be split into 2 sections
- the first set of bytes are a series of alternating 1s and 0s, acting as a buffer between frames and can also be used by network interfaces to synchronize internal clocks to regulate speed at which data is sent
- last byte in the Preamble is the Start Frame Delimiter (SFD)…
Start Frame Delimiter (SFD) - signals to a receiving device that the preamble is over and that the actual frame contents will now follow
Destination MAC Address - hardware address of the intended recipient
Source MAC Address - where the frame originated from
Ether-type Field - 16 bits long and used to describe the protocol of the contents of the frame
VLAN Header - indicates that the frame itself is what’s called a VLAN frame
- if a VLAN header is present, the EtherType field follows it Virtual VLAN - a technique that lets you have multiple logical LANs operating on the same physical equipment
Payload - in networking terms, is the actual data being transported, which is everything that isn’t a header
Frame Check Sequence - a 4-byte (or 32-bit) number that represents a checksum value for the entire frame
- Checksum Value is calculated by performing what’s known as a cyclical redundancy check against the frame Cyclical Redundancy Check (CRC) - important concept for data integrity, and is used all over computing, not just network transmissions
- basically a mathematical transformation that uses polynomial division to create a number that represents a larger set of data
- anytime you perform a CRC against a set of data, you should end up with the same checksum number
