Outline
- More Ports
- Fabrics
- What is an Internetwork?
- Service Model
- IP Packet Format
- Fragmentation and Reassembly
- Global Addresses
Ports and Performance
- On Monday, we had said a basic switch consists of a control processor, i/o ports, and a fabric.
- We said we wanted to minimize the calculations the fabric does to make it as fast as possible.
- So input ports maintain things like bridge tables and given an input packet can calculate which output
port it should go to.
- The correct output port might be either added to the packet (self-routing) or provided as auxiliary info
to the fabric. It is the fabrics job to get it to the correct output port.
- The input port is thus a source of potential bottlenecks. Depending on the switch, the input port
may only have to do a table look up or it might have to do complicated pattern matching and calculations
on the header of the packet.
- As an example of how fast a switch might need to operate consider a OC-48 link (2.48Gbps) into a switch port.
- Such a port needs to process 64 byte packets at a rate of 2.48 × 109 ÷ (64 × 8) = 4.83 × 106pps.
- So it has 200ns to figure out which output port a given packet goes to.
Buffering Bottlenecks
- Ports (either input or output) also maintain buffers and these can be sources of bottlenecks.
- For instance, suppose the buffers are on input ports and are essentially FIFO queues. If several input
ports want to send over the fabric packets to the same output port, then only one can send at a time.
- This causes packets arriving on the other input ports to queue, even if the output port they are destined to is free.
- This phenomena is called head-of-line blocking.
- Under a uniform traffic models, head-of-line blocking limits input-buffered switches to 59% of the theoretical maximum throughput.
- For this reason, the majority of switches use either pure output port buffering, or a mixture of input and output port buffering.
- Buffering is also related to QoS as buffers have a finite length, and packets can get dropped due to lack of space on them.
Fabrics
- A considerable amount of research has been done in trying to make fabrics as fast as possible.
- A typical high-performance fabric with n ports can often move one packet from each of its ports to any
one of the output ports at the same time.
- The following are some common types of fabrics:
- Shared Bus - This is the workstation switch, that we described last day. If used in a high-performance
switch then typically a specially designed bus is needed, as bus I/O determines throughput.
- Shared Memory - packets are written into a memory by an input port, then read from this memory by an output post. Memory bandwidth determines the throughput in this case.
- Crossbar - each input port has a line with drop lines to each output port. the particular drop-line that will be used is determined by circuits at each line/drop line connection, and makes use of the destination port number.
- Self-routing - a self routing header is appended to the packet by the input port after the output port has been determined. Then a network of 2 x 2 switching elements is used to guide the packet to the correct output port. An example of a fabric network build from 2x2 elements are so-called batcher-banyan networks.
What is an Internetwork?
- Recall from Chapter 1, an internetwork is an arbitrary collection of networks interconnected by some
kind of host-to-host packet delivery service.
- The network technologies which are joined to the internetwork may be different: for example, FDDI, point-to-point links, and Ethernet.
- There also may involve more hosts than could be successfully dealt with by an extended LAN.
- The devices that are used to connect different networks are called routers.
- The Internet Protocol developed by Kahn-Cerf is the main protocol used in today's internetworks.
- There are other internetwork protocol that have been used to a greater or lesser extent. For example, Novell's IPX, Xerox- XNS, but IP is the dominant protocol.
Service Model
- A service model is the set of services we would like a given layer to provide.
- For IP, this consists of an addressing scheme that can be used to identify all hosts in the internetwork, and a datagram model (connectionless model) of data delivery.
- The service model is best-effort because it makes no guarantees of packet delivery.
IP Packet Format
- Version - is used to specify the version of IP. Currently, 4 is the most common (IPv4). There is also IPv6.
- HLen - specifies the length of the header in 32-bit words. When there are no options, there the header is 5 words longs.
- Length - is the length of the datagram in bytes. So the maximum is 65535.
- TTL - Time-to-Live is the number of seconds the packet still has to live. Nowadays, it pretty much counts the number of hops. The default start value is 64.
- Protocol - identifies the higher level protocol that is being used with IP. 6 = TCP, 17 = UDP
- Checksum - adds the header as a sequence of 16 bit words using 1's complement, and takes the 1's complement of the result
- Source and Destination address - say where the packet came from and where it is going.
Fragmentation and Reassembly
- Ethernet can accept packets up to 1500 bytes long. FDDI can accept packets up to 4500 bytes long.
- As IP packets can be much longer, we need some way to split packets so they can fit for a given network type.
- To do this a maximum transmission unit (MTU) is defined for each kind of network. This is the largest IP datagram that it can carry in a frame.
- Fragmentation of IP frames is then done in a router when it sees IP datagrams which exceed the MTU for the network the datagram is to be sent on.
- The resulting fragment will still be in the format of a legal IP datagram.
- A receiving router needs to reassemble fragmented datagrams into a complete IP packet.
- The Ident field is used to identify all the fragments of a given packet.
- The M Flag is used to indicate whether there are more fragments for a given datagram to follow.
- Fragmentation always occurs on 8 byte boundaries. The Offset is used to say which such boundary does the data in a given MTU begin with.
Global Addresses
- Ethernet address are flat -- that is they don't say anything about the network structure.
- IP addresses are hierarchical -- they are made of several parts which do say something about the structure
of the internetwork.
- For routers each interface might have its own IP address.
- Originally, IP networks were divided into three classes: A, B, and C.
- If the higher-order bit of the address was 0 it was a class A network, 7 bits would be used for the network identifier and such a network could have up to 224-2 (about 16 million) hosts.
- If the high-order two bits were 10, the network was a class B Network, 14 bits would be used for the network identifier and such a
network could have up to 65,535 hosts.
- Lastly, if the high-order three bits were 110, 21 bits were used to specify the network and the remaining 8 bits could
be used to say the host.
- This original approach turned out to be somewhat inflexible and something called classless inter-domain routing (CIDR) took its place.
- We will describe this next week.
- IP addresses are typically written as four 8-bit decimal numbers with periods in between them.