Thursday, August 4, 2011

Ethernet | Wireline Networking Technologies and Packetization


Nearly all wireline voice mobility networks in the enterprise start with Ethernet. Ethernet is a family of related networking technologies that establish how two machines that are physically connected can talk to each other. Ethernet was designed to be as simple to deploy as possible, so that it can be set up as an unmanaged network, where physically connecting two endpoints together, somehow, through the network is enough to allow them to find each other and communicate. (Note that this doesn't mean that higher-level protocols will work on this network without effort-just Ethernet itself.)
All of the Ethernet protocols belong to the IEEE 802.3 series and are based on the idea of encoding frames. A frame is a well-defined packet message, with a source, a destination, a length, and a type. The logical format of the Ethernet frame is shown in Table 1.
Table 1: Ethernet Frame Format 
Destination
Source
Ethertype
Frame Body
FCS
6 bytes
6 bytes
2 bytes
n bytes
4 bytes
In Ethernet, links are anonymous. Endpoints, however—the line cards that the Ethernet cables plug into—are given addresses. These addresses are assigned at the time the device is built, and are permanently associated with the device. The Ethernet address is a 48-bit (6-byte) address, as shown in Table 2. The first three bytes, or 24 bits, is called the Organizationally Unique Identifier (OUI). Each manufacturer of Ethernet equipment is assigned one or more of these OUIs by the Institute of Electrical and Electronics Engineers (IEEE) Registration Authority. The manufacturer chooses the second 24 bits from a unique pool, often in order starting from 00:00:01. Together, the scheme guarantees that this address will never be accidentally taken by another device.
Table 2: The Ethernet Address Format
 
OUI
Manufacturer-Defined
Bit:
0-23
24-47

 
L
G
Bit
6
7
Ethernet also defines two special flags in the address. The L bit specifies a local address, which is dynamic and invented by a device for temporary usage. This has an application in Wi-Fi, but is otherwise not common. The G bit is for group-addressed frames-either broadcast or multicast. A group-addressed frame is meant to go out to multiple devices at once, for all of them to receive. Multicast transmissions use this mechanism. The special group address FF:FF:FF:FF:FF:FF (all 1s) is the broadcast address, and specifically requests to go to every device, whether they are in a multicast group or not.
This is one way by which Ethernet guarantees that it does not require management to add or remove devices from the network. When a device wants to transmit over a wire to another device, it has no way of knowing if that second device is there. Ethernet was intentionally designed to be as simple as possible, so senders have to transmit and hope that the other device is there. When the sender creates a frame, it places the destination Ethernet address first in the frame, followed by its own address. Then comes the type of the frame, used to figure out what network protocol is running on top of Ethernet. An arbitrary frame body follows, subject to size restrictions: the body of the frame cannot be greater than 1500 bytes, usually, and cannot be less than 64 bytes. (Shorter frames must be padded.) Finally, Ethernet provides a way to determine whether noise on the Ethernet line causes any bit errors, by using a. frame check sequence (FCS), a mathematical checksum of the bits in the frame that will generally not match the contents of a frame if there are any errors. Ethernet uses a CRC-32 checksum.
Ethernet itself is a serial protocol, much like serial lines used to connect modems together, but operating with much more sophistication and at a faster rate. Most Ethernet types today fall into two categories: copper and fiber. The commercially available copper Ethernet technologies all use a modified version of a telephone cable, made out of copper wires. Each cable carries eight small, insulated copper wires, twisted into pairs as is done for analog telephone lines. The plastic connectors at each end also look like telephone connectors, but have eight pins, rather than the usual six. These connectors, often referred to as RJ45, a specification in which the connectors figure prominently, snap into thecorresponding sockets on all Ethernet devices. Differing numbers of the pairs within the four-pair cable may be used for different Ethernet technologies.
The first RJ45-based Ethernet is called 10BASE-T, or simply original Ethernet. Devices that support 10BASE-T run at 10Mbps, across just two of the pairs within the cable, one for reception, and one for transmission. (The other pairs are not used for data.) These Ethernet lines run a serial protocol, where the voltage on the line is flipped to signal a one or a zero in the bits used to encode the frame. However, these serial lines do not constantly transmit. Instead, the line is usually idle. But when a device wants to transmit on the line, it simply starts transmitting. The transmission itself is the frame, just described. Before the frame itself is sent, a few bits are prepended to it. These bits, known as thepreamble, are used to alert the device at the other end that the transmission is going to begin. The preamble is a 64-bit sequence of alternating ones and zeros, except for the last two bits, which are both ones. The receiving device detects that a transmission comes in, by looking for the sharp swings in voltage in the line from idle, representing the preamble's bits. By the time the preamble is done, the receiver will have figured out the timing of the bit patterns, in case the receiver's clock is slightly off from the sender's. The full bits of the frame proper come in, including the checksum. At the end of the transmission, the sender and receiver have to wait for a few microseconds, and then the line becomes idle and ready to be transmitted on again.
Given that 10BASE-T is a point-to-point physical system, as there can only be one transmitter on one twisted pair, and the other transmitter on the second, there needed to be some way to interconnect multiple lines and thus multiple devices together. The solution to that is the Ethernet hub. The hub works by connecting the twisted pair that is used by a device to transmit, to every link's twisted pair used to receive. This connection allows the transmission by one device to reach all of the others on the same segment, or other devices attached to the same hub. Hubs are purely electrical, and do not participate in the network itself. When a device transmits on an Ethernet hub, every device on that hub hears the signal. A receiver knows that the frame is for it by looking at the destination Ethernet address. If the address matches, then the frame is kept; otherwise, it is discarded unless the operating system on that device requests to receive all frames on the line. The use of hubs, and the definitions for 10BASE-T, require that the transmissions are all half-duplex, meaning that a reception and transmission cannot occur independently.
Adding multiple devices together on an Ethernet link introduces a problem. Two or more devices are capable of transmitting at the same time. If two devices do transmit at the same time, their signals will mix on the wire, and all of the receivers will receive the garbage created by the interference. Thankfully, there is a solution to avoid this. The overall concept is known by the unwieldy phrase Carrier Sense Multiple Access with Collision Detection (CSMA/CD). Let's break that phrase apart, starting from the end. The collision detection portion of Ethernet works rather simply. When the device starts transmitting, it watches the receive twisted pair for its own transmission to return to it. If it sees a signal that differs from its transmission, more than just by a delay, it knows that another device is also transmitting. To prevent wasting time by having both signals clobber each other, the transmitter stops transmitting the frame and sends out a jamming signal for a short burst to ensure that the line is dead. The senders then retry their frame, up to a certain number of times. If the signal does not get clobbered by the time the frame reaches the end, the sender knows that the frame must have made it down the wire safely. If that were all to it, however, two devices with data to send would never be able to avoid colliding. That is because they would both detect the collision at nearly the same time, stopping their transmissions and waiting the mandatory time for the line to come back to quiet, and then they would transmit their next frames immediately. The segment would be in constant collision. To avoid that, the CSMA portion of Ethernet is used. Carrier sense is the act of detecting that a transmission is already on the line. First, the devices check the receive line, to make sure that a signal is not coming in already, corresponding to a transmission already in progress. If there is a transmission in progress, the transmitter waits until it ends. Then it transmits. If a collision occurs, CSMA uses the notion of a random backoff. Instead of each device transmitting exactly after a fixed time from the previous frame after the collision, each device picks a random integer greater than or equal to zero and less than the maximum backoff for this transmission. They then wait that many of slots, each one measured in microseconds, before transmitting again. This step reduces the probability that the devices will collide a second time. If the collision occurs again, the maximum backoff doubles, starting from the first backoff of two slots. This process stops when the frame is successfully transmitted, or abandoned. The next frame will then go out with no backoff.
The problem with backoffs is that they lead to unstable behavior when the network is loaded. This congestion occurs because of excess collisions, and more and more of the time on the network becomes dedicated to retransmissions and less time to new data. The solution to the problem was with the introduction of the Ethernet switch. The Ethernet switch is similar in concept to the telephone switch. A telephone switch isolates the paths between two connections, allowing two devices to speak at a time as if they were directly connected, independent of the other traffic. An Ethernet switch doesn't directly connect circuits, being packet-based, but it does eliminate one device's dependance on the transmissions of the other devices.
The Ethernet switch works by terminating each Ethernet link. Whereas a hub ties the multiple links together into one interconnected collision domain, the switch acts as a separate receiver for each connected device. Two or more devices can transmit at once, on their individual ports, and the switch will independently receive and gather the frames. The frames are then analyzed, interpreted for their destination addresses, and the frame is then sent out on the link that has that address. Because the switch has to read and understand the Ethernet frames, its job becomes one of a traffic director. The concept of simultaneous reception resolves collisions between two endpoint devices, but the switch goes further, by performing the above-mentioned detection of which device is on each link. This function is a crucial part of bridging traffic, and works by the switch maintaining a learning table, built up dynamically, of the Ethernet addresses that have been seen as sources on each link. This table is essentially soft state, meaning that the entries are not permanently recorded, and are built up or refreshed as needed. The last remaining problem is for when the switch gets a frame whose destination address has not yet been learned. In this case, the switch just forwards the frame on every port on the switch, except for the one the frame came in on.
With a switch, the transmit side of each Ethernet link can become a bottleneck. Multiple frames can come in destined to one link, especially if this link holds a common server of some sort. When this happens, the switch is forced to build a backlog of pending transmissions, known as a queue. This queue is a list of packets, usually ordered first-come, first-serve, or first-in, first-out (FIFO). One of the switch's major benefits is that it has translated the resource contention that occurred with hubs into an orderly, predictable wait for packets to get to a popular resource.
The other benefit of a switch is that the collision concept can now be removed entirely. Because, on a switch, there are only ever two possible transmitters on a link, and because there are separate transmit and receive pairs, there is no reason for the receiver to echo back the transmitter's signal. Instead, each device can operate the transmit and receive lines independently. This is known as full duplex operation.
Full duplex operation was introduced with 100BASE-TX, or Fast Ethernet. Fast Ethernet runs at 100Mbps for each direction, greatly increasing the possible data rate on the line. Fast Ethernet uses the same cables and connectors as the original 10BASE-T Ethernet (though lesser-quality cables of the type cannot be used), and the standard defines Fast Ethernet to be backward-compatible with the original. The mechanics of the Fast Ethernet encoding are more advanced than that of the original Ethernet. I will not concern you with the details here, as Ethernet signals are rarely noisy and insight into the encoding is not necessary. The key is that the frame format remains the same, but the data rate is ten times that of Ethernet. Additionally, because Fast Ethernet can use a switch, the backoff procedure is no longer required when transmitting to a Fast Ethernet peer. However, Ethernet hubs are still allowed. Furthermore, 10BASE-T devices may still be connected to a Fast Ethernet port. To determine whether the device can use the 100BASE-TX standard, a protocol known as autonegotiation occurs. Autonegotiation starts as soon as two ports are plugged together. 100BASE-TX devices send out special signals on the line, establishing that it is using 100BASE-TX and communicating its duplex setting. If the other side is also 100BASE-TX, the link will use Fast Ethernet. On the other hand, if the other device does not respond with the other signal (and instead sends the usual 10BASE-T link detection pulses), the 100BASE-TX device will downgrade until the link is unplugged.
Gigabit Ethernet over copper is specified in the 1000BASE-T standard. Gigabit Ethernet, again, is backward-compatible, and uses similar cables, though with tighter quality requirements than either of the previous standards. One major difference for Gigabit Ethernet is that it uses all four twisted pairs in the cable. Combined with using a more advanced bit coding, this produces the extra speed-100 times faster than the original Ethernet.

No comments:

Post a Comment