Because ethernet switches prevent collisions from occurring, they can work in full-duplex mode. The ethernet NIC negotiates with the switch to allow two pairs of wires to be used, allowing data to be sent and received simultaneously. In essence, switched ethernet can be a pure point-to-point interconnection technology. This is not possible when using traditional ethernet, where the communication medium is a bus that is shared by many stations.
Another feature of ethernet switches is that they can be used to connect stations using different transfer rates. For example, a host with a 10baseT adapter (10 Mb/s) and a host with a 100baseT adapter (100 Mb/s) may both be connected to the same switch. This would not be possible with a hub, which simply duplicates input signals on the other ports. Because the switch is a store-and-forward device, it can read a frame from a 10 Mb/s link and transmit it on a 100 Mb/s link, or vice versa.
Some network links are point-to-point: they directly connect one network node to another. In some respects designing a link-layer protocol for point-to-point links seems like a trivial task. However, a number of important issues arise:
A link-layer protocol supporting all of these features should have broad applicability, supporting many kinds of physical links and network protocols.
PPP (Point to Point Protocol) is a link-layer protocol supporting these features.
+----------+-------------------+-------+------+-----+----------+ | 01111110 | 11111111 00000011 | proto | data | CRC | 01111110 | +----------+-------------------+-------+------+-----+----------+ flag fixed values flag
An obvious issue with PPP is that the flag value delimiting the frame may occur within the payload (data), and could also occur by chance in the CRC. If this occurs, the occurrences are prefixed with the special escape byte, 01111101. The escape byte must also be escaped if it occurs in the frame (anywhere other than at the beginning/end of the frame). This is known as byte stuffing.
The link layer protocols we have seen so far have been designed to operate over a physical link. However, it is also possible to use the network layer of some network as a link layer. We saw an example of this in the discussion of the transition to IPv6 in Lecture 14: when an IPv6 datagram is encapsulated in an IPv4 datagram and sent over an IPv4 network, the IPv4 network is essentially acting like a link layer.
Peer-to-peer networks using overlay networks may also be considered to be using the network layer as a link layer for p2p messages. This is especially true in the case of application-layer multicasting (Lecture 18), in which the overlay network is intended as a platform for arbitrary applications.
ATM (Asynchronous Transfer Mode) is a complete network protocol stack. It is designed for mixed voice/data networks: i.e., telecommunications networks, and is a virtual circuit network. In particular it offers QoS guarantees not offered by best-effort packet-switched networks like the public internet.
ATM works by packet-switching fixed-sized cells. An ATM Adaptation Layer (AAL) is a transport layer protocol for a particular type of traffic. An AAL sends data in chunks referred to as Protocol Data Units (PDUs). These are equivalent to transport-layer segments (as in TCP or UDP).
Various link layer technologies are supported by ATM.
Even though ATM is a full protocol stack, in the context of TCP/IP it is used as a link layer for sending IP datagrams:
The diagram shows an ATM network being used to convey IP datagrams between several IP networks. The routers at the edge of the ATM network support both IP and ATM. When an IP datagram reaches an edge router, it is encapsulated in a PDU and send over a virtual circuit to another edge router (which is connected to an IP network through which the destination may be reached). The ATM network thus serves as a link layer for the IP datagrams travelling through it.
One interesting observation about this scenario arises from considering a Voice Over IP (VOIP) telephone call. The VOIP application's messages are sent over an unreliable best-effort IP network whose datagrams are then sent over a virtual circuit network that was designed specifically to accomodate voice traffic! In some ways this seems like an odd state of affairs. However, virtual circuit networks like ATM are difficult to scale to the enormous number of connections that are routinely handled by the public internet (a packet switched network). The fact that the public internet can handle voice applications without explicit support from the network layer is evidence of the usefulness of the end-to-end principle.