Introduction
Network Layer
Services
provided to the transport layer
Connection oriented
approach
Connectionless Approach
Network layer organisation
Virtual Circuits
Datagrams
Routing Decisions
Routing algorithm
properties
Classes of Algorithms
The Optimality Principle
Static Routing
Conclusion
Further Reading
This lecture will cover the following points:
To recap upon the functions of the data-link layer, its job is to take frames or messages from one end of a piece of wire to the other. The network later exists to perform the more complex task of carrying packets from the source to the destination, a task which can involve multiple hops across routers on the journey.
Thus, the network layer is the lowest layer of our protocol stack that deals with end-to-end transmission.
In order that it might accomplish this task, the network layer must be aware of the topology of the communication subnetwork ( this is the set of all routers) and then choose the most appropriate route through it.
Services provided to the transport layer
The network layer provides services to the transport layer at the network layer/ transport layer. This interface is a Service Access Point SAP. This is often an important interface in many computer systems because it is often the interface between the customer and the carrier. This is at the boundary of the customer's subnet.
Thus, the carrier operates its own versions of physical, datalink and network protocols. The responsibility of the carrier is to deliver packets that have been passed to it by the customer (transport layer).
The network layer services have been designed so that:
The services are independent of the subnet technology (FO, satellite, cable etc.)
The transport layer is shielded from the number, type and complexity of the subnets present.
The network addresses that are made available to the transport layer must use a uniform numbering plan.
Two separate designs are possible here and are supported by two factions. The telecoms community prefers a connection oriented service whilst the datacomms community prefers the connectionless approach.
This involves a network layer process on the sending side setting up a connection to its peer entity on the receiving side. This connection is given a specific numerical identifier and is used until all data have been transferred. The connection is then released.
When the connection is set up, both end entities negotiate parameters between themselves e.g. quality and cost of the service.
Communication is in both directions and all packets are delivered in the sequence that they were sent.
Flow control is automatically provided to prevent a fast sender from overwhelming a slower receiver
The majority of the complexity required for data delivery resides within the network layer, i.e. is the responsibility of the carrier.
Given that computer networks are inherently unreliable, hosts (end points) should recognise this fact and implement flow and error control themselves. This leads to the idea that the network service should be connectionless. This means no packet ordering or flow control as the hosts will do that anyway. Each packet then needs to carry its full destination address.
The complexity here is in the end points (hosts) of the communication process. Computing power has become cheap and so this is easily implemented
We now have two contrasting approaches to packet delivery:
Connection oriented and reliable
Connectionless and unreliable.
Two real examples are the ATM networks which are the former and the Internet which is the latter.
TCP/ IP can be run over ATM networks (RFC 1577). The end points of the ATM network set up a connection and then the TCP/ IP packets are segmented and sent over the ATM link. This is wasteful of bandwidth because the IP packets contain the entire mechanism for re-ordering out-of-order packets, yet the ATM network guarantees in-order delivery.
The two approaches to the network layer described above are implemented using virtual circuits (these are numbered) and datagrams respectively.
Once a source-destination route has been chosen, this is used for all data transfer and terminated at the end of the data transfer. Because the VC has already been established, this means that the routers must maintain a table of all virtual circuits and the numbering of the circuits, so that an arriving packet on a particular port may be identified by its VC/ port pair and then forwarded to the appropriate outgoing port. The numbers chosen for VCs have local significance only and change at each router. The routers have a pool of numbers available and at call set-up, routers allocate the lowest free number to the VC which will remain significant from that router to the next router only.
In addition to this, all processes are required to inform the network when the use of the VC has ceased so that the VC may be removed from all router tables and free system resources.
No routes are worked out in advance (even over connection oriented networks). Each packet is routed independently of all other packets and there is no requirement that any packet follows the same path as its predecessor or successor. This does involve the network nodes having to process each packet individually, but this also leads to networks that are more resilient to failure and congestion than VC networks.
Routers here have a table to help the router determine the outgoing line that is in the direction of the destination. The datagrams must contain the complete address of the destination, 12 bytes or more. When a packet arrives, the router looks up the outgoing line to use and then sends the packet on that line.
If a router crashes, all those packets that were in the router that had been acknowledged will be lost. The unacknowledged packets will be retained by the previous router.
When congestion occurs, the route for the datagrams may
be altered dynamically.
| Issue | Datagram Subnet | VC Subnet |
| Circuit set-up | Not needed | Required |
| Addressing | Packets contain full destination and source address | Packets contain a short VC number |
| State Information | Subnet does not hold state information | Each VC requires subnet table space |
| Routing | Packets routed independently | Route worked out at set-up; packets follow this route |
| Effect of router failures | None, but for packets lost in crash | All VCs passing through the router are lost |
| Congestion control | Difficult | Easy if buffers can be allocated in advance for each VC |
Table 7.1 Summary of
Datagram versus Virtual Circuit
Depending on the type of data to be transferred will depend the type of service that is most efficient. If the data is brief e.g. credit card verification, the task of setting up a VC will dwarf the data to be sent.
Two types of VC exist, PVC permanent virtual circuit -
set up by hand and SVC switched virtual circuit, set up on demand.
| Upper Layer |
|
|
| Delivery Method | Datagram | Virtual Circuit |
| Connectionless | UDP over IP | UDP over IP over ATM |
| Connection Oriented | TCP over IP | AAL1 over ATM |
Table 7.2
Regardless of whether we discuss a connectionless or a VC network, routing has to be done either for each datagram or at the set-up of each VC. This work is accomplished by a routing algorithm. In a VC network this is sometimes known as session routing.
Desirable properties of routing algorithms.
There are two main classes of routing algorithms available. The static routing (non-adaptive algorithm) type require that all routes are worked out in advance and then sent to all routers. This is good for small networks.
Dynamic or Adaptive algorithms change their routing information depending on the state of the network and optimisation parameters such as congestion, cost of links, number of hops, estimated transit time etc. The routers may gather their information from their neighbouring routers or from all routers.
If the optimum path between two routers A and B exists and a router C lies on this path, then the optimal path from B to C also falls upon the same path. Consequently, the set of optimal routes from all sources to a given destination forms a tree rooted at the destination. Such a tree is known as a sink tree.
The goal of all routing algorithms is to discover and use the sink trees for all routers. Because a sink tree contains no loops, three will be a finite route between any two end points with a finite number of hops. However, links and routers can go down and come up again at any time so the network topology will change and therefore different routers will have differing ideas about the current state and therefore topology of the network.
Shortest path routing uses a graph of the network with each node of the graph representing a router and each arc of the graph representing a communication line. The metric that is used here can be number of hops, distance between routers and time to traverse a path. Generally, the labels on arcs are calculated as functions of distance, bandwidth, average traffic, communication cost, mean queue length and measured delay.
Several algorithms exist to compute the shortest path between two nodes of a graph.
Dijkstra's algorithm Best viewed with IE
The Network layer is the lowest layer of our communications model to deal with end-to-end communications.
The network layer and datalink and physical layer are implemented by the WAN carrier. The customer is provided with a NSAP to allow the connection of the company LAN to the WAN.
There are two distinct approaches to Network routing, Datagram and Virtual Circuit.
For a network to calculate the best route between two points it is necessary to implement a routing algorithm.
Two classes of algorithm exist to perform the task of discovering network topology, static and dynamic.
If the method of topology discovery involves flooding
a network, great care must be taken not to allow the messages to fill the
network and bring it to a halt.
Tannenbaum, Computer Networks, Third Edition:
Design issues, services provided to Transport layer Tannenbaum 340
Internal organisation of Network layer 342
Comparison of Virtual circuit and Datagram Subnets
Routing Algorithms 345
Static; Shortest path routing; Flooding
Flow-based routing 353
Dynamic; Distance-vector routing; Count to infinity problem; Split Horizon hack 358
Link state routing 359
Learning about adjacent nodes; Building link state packets; Distributing link state packets; Computing new routes
Hierarchical Routing 365
Broadcast routing, flooding, multidestination routing
Multicast Routing 372
Congestion control algorithms
Principles of congestion control 376
Traffic shaping; Leaky bucket algorithm; Token bucket algorithm; Congestion control in VC subnets
Load Shedding 390
Internetworking in the Internet 412
Datagram within Internet; IP protocol and addressing; IP addresses, ARP, RARP Interior Gateway Routing Protocol OSPF(open shortest path first )424
Exterior Gateway Routing Protocol BGP 429
Network Layer in ATM 449
Cell formats; Connection set-up
Routing and switching 455
Service Categories 458
Traffic shaping and congestion control 467
(c) MMClements 2001
Back to Top
of Page