Two approaches to global networking have evolved separately: Internet: Connect multiple heterogeneous data networks to form a global data network. Then try to make it dependable, scalable to many users, and able to support voice & video. ATM: The telephone network is already global, highly dependable, and supports vast numbers of users, but works only for voice. Modify it to support video & data. Existing telephone network: The voice telephone network is connection-oriented and uses synchronous transfer mode: every connection is 64 kbps, and sends one byte every 125 microseconds. Several connections can share a link using time division multiplexing: a frame is sent every 125 microseconds, containing one byte of each connection. A telephone switch contains a table mapping input i byte m to output j byte n. The switch runs like clockwork, with no queues. Before voice data can be sent, the connection must be set up, that is, the table entries must be installed in every switch along the path, and later deleted when the connection is terminated. (Semi-permanent table entries might be set up along heavily used paths, and left in place for the next connection.) TDM versus packet switching: In order to support multiple bit rates and variable-bit-rate connections, time division multiplexing doesn't work. Packet switching is more appropriate--a source can send packets more or less often to achieve different data rates. Asynchronous Transfer Mode (ATM) is connection-oriented and packet-switched: Packets are fixed-size to keep the switches simple (so they can be fast and large--tens of thousands of ports). ATM packets are called cells, and ATM connections are called virtual circuits. Cells do not contain the address of the destination, but a virtual circuit identifier that distinguishes among many virtual circuits sharing a link. Like a regular telephone switch, an ATM switch contains a table mapping input i VCI m to output j VCI n. Before data can be sent, a connection must be set up (the table entries must be intalled in all the switches along the path), just like in a regular telephone call. connections versus datagrams: Because ATM is connection-oriented, all data follows the same path and is delivered in order, whereas IP datagrams can be delivered out of order. On the other hand, a failure along the path will break a connection, requiring a new connection to be set up, but datagrams can simply be routed along a different path without bothering the end hosts. quality of service: ATM is designed from the start to provide guaranteed quality of service: minimum data rate, maximum loss ratio, maximum delay, maximum average delay, maximum delay variation (jitter). This is done via admission control: the network will not allocate a connection that would cause it to become unable to fulfill its obligations to existing connections. The new connection must be routed along a less busy path or be refused. The Internet is strictly best-effort, though there is ongoing research on quality-of-service for the Internet (DiffServ), but it's much harder without connections. cell format: ATM cell is 53 bytes: 5 header, 48 payload. 48 was a compromise between European countries (who wanted 32 bytes for low delay) and the U.S. and Japan (who wanted 64 bytes for more efficiency). GFC: generic flow control (4 bits) (only between user/network) VPI: virtual path identifier (8 bits) (12 bits within network) VCI: virtual circuit identifier (16 bits) PT: payload type (3 bits) CLP: cell loss priority (1 bit) HEC: header error check (8 bits) payload (384 bits = 48 bytes) layers: ATM adaptation layer (AAL): convergence sublayer (CS): error detection segmentation and reassembly (SAR): splits data units into cells ATM layer: cell forwarding, flow control physical layer: bits, clock, cell boundaries (using HEC) AAL1: AAL1 is for constant bit rate service: SAR receives from CS 47 data bytes, a CS indication bit, and a 3-bit sequence number, and constructs the 48-byte cell payload: CSI: convergence sublayer indication (1 bit) SN: sequence number (3 bits) SNP: sequence number protection (4 bits) data (47 bytes) The CS at the source breaks the bit stream into 47-byte chunks (maybe only partially filled to reduce delay), and at the receiver recovers timing and detects some losses (using the sequence number). AAL2-4 were too complicated and are therefore not used. AAL5: AAL5 is for non-constant-bit-rate service: SAR receives a multiple of 48 bytes from the CS, and breaks it into 48-byte cell payloads. The user indication bit in the PT field of the cell header of the last cell is set to indicate the message boundaries. The CS at the source receives a data unit from above, affixes a header and trailer, and pads it to a multiple of 48 bytes; the CS at the receiver recovers the data unit. header: unspecified (4 bytes) data: (n bytes) PAD: (0-47 bytes) AL: alignment (2 bytes) LEN: length = n (2 bytes) CRC: cyclic redundancy check (4 bytes) role of ATM in Internet: ATM can be used as a network layer. This was the original vision, before the Internet took over the world. ATM can be also used as a data link layer underneath IP, to support existing IP applications. An IP router can pass a datagram to the AAL5 layer, which turns it into a sequence of cells, which get sent to another router, and turned back into an IP datagram by AAL5. Of course, a connection must exist between the two routers. ATM can even be used to emulate a LAN, for even more compatibility with existing applications. For example, an Ethernet frame could be passed to the LANE (LAN emulator), which maps the (fake) Ethernet address to an ATM virtual circuit (which might need to be set up), then uses AAL5 as above. Since ATM is a wide area network, the virtual LAN need not be local.