Networks Lecture 21

Other Properties of Switched Ethernet

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.

PPP

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:

framing
Determine where frames begin and end. Determine the size and contents of the network datagram that is encapsulated in the frame.
transparency
The link layer protocol must allow any arbitrary network datagram to be sent. (Cannot reserve special bit sequences for exclusive use of the link layer protocol, because any bit sequence might occur in the network datagram.)
support mulitple protocols
It should be possible to tranmit datagrams from multiple network protocols over the link.
Support many kinds of links
The link-layer protocol should not be tied to any particular physical link technology.
error detection
The link layer protocol should detect errors. Errors should not disrupt other features (such as framing).
connection liveness
Link layer protocol should be aware of whether or not the connection is live.
address negotation
The two sides should be able to negotiate network-layer addresses, without being tied to any particular address format.

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.

PPP Frame:

+----------+-------------------+-------+------+-----+----------+
| 01111110 | 11111111 00000011 | proto | data | CRC | 01111110 |
+----------+-------------------+-------+------+-----+----------+
  flag       fixed values                             flag
flag
The reserved byte 01111110 marks the beginning and end of a PPP frame.
Fixed values (Address and Control)
Defined for future extensibility: not used
Protocol
The protocol of the payload data (e.g., IP)
data
The payload. The length is determined implicitly (delimited by the CRC, flag sequence at the end of the frame).
CRC
2 or 4 byte CRC, for error detection

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.

Link Virtualization

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

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.