Ethernet is such a commonly used term these days, but few of us know the complete picture of this technology. I’m no expert on Ethernet, but having read multiple documents and links recently, I thought it would be good to write down the details of this technology.
Ethernet is a technological standard which originated out of PARC labs at Xerox. Robert Metcalfe is credited with the invention of this technology. But it is also a standard which is quite confusing since the IEEE specification is not generally used. To top it all, there are around four types of frame structures. Confused? Let’s get started from the basics.
What is a Network Topology?
A network topology is a connection layout of the elements in a network. Common topologies are Point-to-point, Bus, Star and Ring.(http://en.wikipedia.org/wiki/Network_topology)
Data terminal equipment (DTE) represents any node at which a frame terminates. It is usually the end user node. Data communication equipment (DCE) represents any node which forwards/switches frames towards its destination node. These are usually switch/bridge in an L2 network.
Types of Delay
Propagation delay/time is the time taken for a frame to travel on the wire between two nodes. Transmission delay/time is the time taken for a node to transmit the frame (including the headers) from its buffer onto the wire. Queuing delay is the time any frame waits in the queue of a node. A node may drop frames is its queue gets full. Processing delay is the time taken by a node to process the frame it receives.
The primary protocol which (was) used in Ethernet was Carrier Sense Multiple Access with Collision Detection (CSMA/CD). In this protocol, multiple nodes can access the medium of transmission at the same time. Hence, the name Multiple Access. Carrier Sense implies that the node first senses the medium (detects electrical signals) before transmitting. The node will transmit only if it finds that the medium is free, else it backs off its transmission for a random time and retries again. But well, things could go wrong. If two or more nodes do transmit at the same time (electric signals do take time to travel you see!) then a collision occurs, meaning the signals from the nodes overlap each other and the original signal is lost. This garbled signal will reach either of the transmitting nodes, and this node sends a signal on the medium. This is called the jamming signal. Hence other nodes wanting to transmit back off due to this and hence further collisions are saved. Hence the term Collision Detection. Now this phenomenon can occur if there is a contention for the medium. If the topology is Bus, then there is a scope for a collision. If two nodes are connected to a central node in a point-to-point method, then there can be no collision between the central node and any node.
When the same band is used for transmitting and receiving, once two nodes sends out a signal each, the signals overlap midway and reach each node. So the maximum time required for a node to detect a collision is approximately twice the signal propagation time. Also as the transmission rate increases at a node, the time taken to send out a frame decreases. But the signal propagation time is still the same irrespective of the transmission rate. Hence the way forward for better efficiency was to reduce collisions and decrease propagation time. Decreasing propagation time meant decreasing the distance between two node, which is not practical always.
Alternate to CSMA/CD ?
The method developed to overcome the above shortcomings was to use Full Duplex transmission. CSMA/CD is needed when Half Duplex transmission is used, i.e. the same channel/wire is used to send and receive frames. In Full Duplex mechanism, there is a separate channel/wire for sending and receiving frames. But this would give raise to a new problem. The transmission wire of the sender and the receive wire of the receiver have to be connected. Else Full duplex communication would not work right? Yes, this would be true when you are connecting two DTE’s point-to-point. There links are called Cross-over links or Cross cable. In usual cases, when there is DCE(s) present between two nodes (DTE), the cross over mechanism is implemented in the DEC i.e. the switch or bridge performs the swapping. Hence when connecting user nodes to a switch or bridge, a straight cable is used.
The Open Systems Interconnect model is a reference protocol stack model proposed by ISO. Layer two of this model is the Data Link layer. The function of the data link layer is to propagate frames between two adjacent nodes, perform flow control between two adjacent nodes, provide error detection/correction and interact with the physical layer.
MAC & LLC
Media Access Control (MAC) sub-layer is the lower part of Layer 2. The Logical Link Control (LLC) sub-layer is the upper part of Layer 2. The purpose of the MAC layer is to perform medium access, implement CSMA/CD if required, and interact with the physical layer. The LLC sub-layer performs multiplexing/demultiplexing to the network layer, provides flow control and automatic repeat request (ARQ) if needed.
This standard was developed by Novell specifically to carry IPX packets in a local area network. It is no longer in use today.
Ethernet is a layer 2 protocol and standard initially developed by Xerox. Later, Digital Equipment Corporation (DEC), Intel and Xerox together refined the specification and Ethernet-II (also called DIX Ethernet) was born. Ethernet used half duplex links along with CSMA/CD protocol in a bus topology to connect the nodes. Ethernet-II uses full duplex links in a star topology to connect nodes. Ethernet-II is now popularly called just Ethernet.
The Ethernet frame encapsulates the packet received from the network layer and transmits it to the next hop. Each host implementing the Ethernet standard is connected using connectors and wires to the next hop which may be a DCE or DTE (more on wires and connectors below). Each host is thus represented by a 48 bit address called MAC address. When a host is transmitting a frame, it should know the MAC address of the destination node, else transmission would not be possible.
The first field of the frame is the preamble which denotes to the receiving node that a frame is about to arrive. Next is the start of frame byte which denotes end of preamble and beginning of the frame. The next two fields are the destination and source MAC address, which are 6 bytes each. The next field is EtherType which is used for demultiplexing. The value in EtherType identifies the network layer protocol at layer 3. Next, the payload forms the majority of the frame. The frame ends with a frame check sequence for error detection. Consecutive frames are transmitted separated by and Inter-frame gap. So far, so good. But where does the LLC sub-layer fit in this standard. The answer is DIX Ethernet doesn’t use any LLC sublayer. The EtherType field is used to demultiplexing and flow control is left to the upper layers. The popular values for EtherType are available here:http://standards.ieee.org/develop/regauth/ethertype/eth.txt
IEEE Ethernet (802.2 and 802.3)
DIX Ethernet was in use widely but was not a standard blessed by anybody! Hence, IEEE comes into the picture. Since DIX Ethernet didn’t have an LLC sub-layer, it didn’t strictly conform to the OSI model. Hence IEEE replaced the EtherType field with the Length field. Hence additional mechanism was needed to identify the network protocol, which was the job of LLC header. IEEE 802.2 standard defined the LLC sub-layer and its frame format. This LLC frame was inserted in the Ethernet Type to make the model consistent with OSI model and the result was the 802.3 standard. There are many variations of the 802.3 depending on the media used for the links.
The LLC header consisted of three fields, S-SAP, D-SAP and Control field. It defined each host (here, the network layer) as a Service Access Point (SAP). S-SAP represents the source and D-SAP represents the destination. If the first bit of DSAP is 0, it represents an address of a single host. If it is 1, it means the DSAP is a group of hosts (i.e. multicast group). The different DSAP values can be found here:
The control field represents whether LLC is Type 1, 2 or 3. Type 1 is unacknowledged connection-less session, meaning there is no flow control. Type 2 means it is an acknowledged connection-oriented session, which means flow control is implemented in layer 2. Type 3 is Acknowledged connection-less session, which means flow control is present, but no concept of session between two nodes.
Now since the DSAP field is used to identify the network layer protocol, and 7 bits are useful in that field, 128 possible protocols can be identified. Also it is a requirement that these values are standards, thus providing no room for proprietary or experimental protocols. And what I call as glaring oversight, ARP is not a standard DSAP, which means IPv4 protocol will not work on IEEE 802.2 Ethernet frame!
After the above problem was identified, it was necessary for another fix. Sub-network Access Protocol (SNAP)! Though it is called a protocol, it is really a 5 byte header extension to the LLC header. The first three octets is an IEEE OUI (See References). The next two bytes represents the Protocol ID which specifies the network layer protocol. This means, IEEE-SNAP Ethernet can support 64k network protocols. But this is exactly the support provided by DIX Ethernet without all these complications right? Precisely!
As a result, the processing required for IEEE-SNAP and IEEE-802.2 frame is more that that of DIX frame, not to mention the reduction in IP payload as well. Hence DIX Ethernet is the most commonly used Ethernet standard. However, IEEE-SNAP frame has been standardized in RFC 1042.
Where does VLAN’s fit in?
Virtual LAN (VLAN) provides a mechanism to separate the collision domain. This is achieved by tagging each frame and treating them as part of a different LAN. Hence when data has to travel between VLAN, it has to pass through a Layer 3 device much like the case between two LAN’s.
The IEEE 802.1q (also called dot1q) represents a VLAN tagging mechanism to achieve the separation of the collision domains. This is achieved by adding 32 bits in the Ethernet header between the EtherType or length (depending on the frame). In its simplest form, the two fields in 802.1q tag is the Tag Protocol Id (TPI) and Tag Control Information (TCI). TPI is set to 0x8100 for dot1q tagging. The TCI consists of the VLAN id and priority information for the frame. Do check this:http://en.wikipedia.org/wiki/IEEE_802.1Q
Well, since there are four types of Ethernet frames, a receiving node would be confused as to which type of frame it is receiving. Obviously!
Right after the Source MAC, if a TPI is seen, it means that the frame is VLAN tagged, else it should either be EtherType or Length field.
The maximum length of the payload for IEEE 802.3 frame is 1500 bytes. Hence if the field after Source MAC (and VLAN tag if present), is less than or equal to 1500, it is a IEEE-802.2 frame. Once the 802.2 frame is read, if the DSAP and SSAP are set to 0xAA, then SNAP header exists. Else it it just LLC header.
If the field after Source MAC (and VLAN tag is present) is greater than of equal to 1536, it is a DIX/Ethernet-II frame. Hence all EtherType have values greater than 1536. Example it is 0x0800 for IPv4.
Well since we talked about the Ethernet implementations at the nodes, how about moving to the actual wire. The transmission medium can be copper or optical fibers. The transmission mechanism is base-band. It means the entire bandwidth offered by the medium is utilized. Also it uses digital signals.
In broadband transmission, it is possible to have multiple transmissions simultaneously using frequency division multiplexing. It uses Analog signals and needs separate channels for transmission and reception. Broadband transmission is commonly used for cable television.
We do know that flow of electrons generates a magnetic field perpendicular to it. Hence when two such wires are twisted together, the interference caused by their respective magnetic fields cancel out each other. This medium is called Twisted pair. It maybe provided with a shielding resulting in Shielded Twisted pair (STP) or no shielding giving Unshielded Twisted Pair (UTP). These cables categorized in different categories like Cat 5, Cat 6, etc depending on their quality and length supported between two stations. Another medium used is the coaxial cable which has a single wire for transmission and a protection layer around it. It is also possible to convert the electrical signals to light and transmit light using optic fibers. These different medium are connected to the nodes using connectors. RJ-45 connector is the most common connector we come across. BNC is another type of connector, typically used with coaxial cables.
The IEEE 802.3 specifies various standards stating the required conditions for connecting various nodes. Let’s expand 10BaseT also called IEEE 802.3i standard. 10 represents 10Mbps transmission speed at the node. Base represents base-band transmission on the wire. T represents the wire is twisted pair type. 10BaseF represents 10Mbps transmission speed with base-band transmission over optic fiber cable.
I do hope at the end of this long article, you are still with me and haven’t closed your browser! I hope I have been able to provide some insight into the world of Ethernet which is as you know now is very complex. I’m not an expert, I’m constantly learning as you do, and will update this article as and when needed. So do remember, when you say that you are connecting an Ethernet cable next time, it probable you are connecting a Cat5 or above cable using 10BaseT or 100BaseT IEEE 802.3 standard with an RJ45 connector at each end to equipment/node which has support to transmit and receive IEEE802.2, IEEE802-SNAP and DIX Ethernet at the Data Link layer, apart from all the other things that happen magically!