10/19/20151 The Network Layer
10/19/20152 Introduction Route packets through subnet So, it must know the topology of the subnet It should also be able to choose path from it It should do load balancing between routers and communication lines When source and destination are in different networks, it solves the differences
10/19/20153 Store-and-Forward Packet Switching The packet is stored at router until it has fully arrived so the checksum can be verified. Then it is forwarded to the next router
10/19/20154 Services Provided to the Transport Layer Connectionless Service packets are injected into the subnet individually and routed independently of each other Internet Connection-Oriented Service a path from the source router to the destination router must be established before any data packets can be sent. This connection is called a VC (virtual circuit) ATM networks
10/19/20155 Connectionless Service
10/19/20156 Connection-Oriented Service
10/19/20157 Comparison of datagram and virtual-circuit subnets
10/19/20158 Routing Algorithms deciding which output line an incoming packet should be transmitted on datagram : decision must be made anew for every arriving data packet virtual circuits : decisions are made only when a new virtual circuit is being set up Also called session routing Forwarding and Routing
10/19/20159 Conflict between fairness and optimality.
10/19/ Nonadaptive algorithms choice of the route to use to get from I to J is computed in advance, off-line, and downloaded to the routers when the network is booted. This procedure is sometimes called static routing. Adaptive algorithms choice of the route to use to get from I to J is computed during transmission. This procedure is sometimes called dynamic routing. Routing Algorithms
10/19/ The Optimality Principle If router J is on the optimal path from router I to router K, then the optimal path from router J to router K also falls along it The set of optimal routes from all sources to a given destination forms a tree This tree has destination as a root and is known as sink tree All routing algo tries to discover it
10/19/ A Subnet And A Sink Tree for Router B
10/19/ Shortest Path Routing Represent Subnet as a graph where routers are nodes and com lines are edges or links The metric or weight of an edge is imp No. of Hops, Physical distance, time to reach the destination are the examples It can be bandwidth, average traffic, com cost, mean delay, or any combination of it
10/19/ Shortest Path From A to D
10/19/ Dijkstra's Algorithm Each node is labeled from the source node Label can be temporary or permanent The starting node is permanent, nearest node is made permanent & is the next node All other neighbors are temp’ly labeled
10/19/ Flooding Every IC packet is sent to all OG lines Generates vast numbers of duplicate packets It is highly robust, useful in military apps Selective flooding for better throughput
10/19/ Distance Vector Routing It operates by maintaining best known distance to each destination and an OG line These tables are updated by exchanging info with its neighbors It is also known as distributed Bellman-Ford or Ford- Fulkerson algo It’s original Arpanet routing algo
10/19/ A Subnet
10/19/ Inputs from A I H K and New RT
10/19/ The Count-to-Infinity Problem Consider a linear subnet having A, B, C, D, E nodes, with metric is no of hops The figure shows two cases, When A is up when A is down
10/19/ Count to Infinity Problem
10/19/ Count to Infinity Problem
10/19/ Link State Routing DV used delay metric not considering line BW The algo take very long time to converge Each router using LSR must do Discover the neighbors and their NW addresses Measure the delay or cost to them Construct a packet Send to all neighbors Compute the shortest path to every other router
10/19/ ) Learning About The Neighbors Sending special HELLO packet to each PtoP lines when booted Names of routers must be globally unique
10/19/ Learning About The Neighbors (a) Nine routers and a LAN. (b) A graph model of (a).
10/19/ ) Measuring Line Cost Delay is used as a metric, so special ECHO packet is sent the RTT is calculated RTT (round-trip time) is divided by 2 to get the estimate Whether to consider load or not is crucial Load Considered : RTT to start when Echo packet is queued Load Not Considered : when it comes to the front of queue
10/19/ The Two Line Problem
10/19/ ) Building LS Packets The packet contains, ID of sender, seq, age, and list of neighbors with respective delay One possibility is to do it periodically Another is to do when some significant like router coming up or going down happens
10/19/ Link State Packets for a Subnet
10/19/ The Age field Age is included in every packets and is decremented once per second When age hits zero, info from that router is discarded It ensures that no packet gets lost and live forever
10/19/ ) Distributing Link State Packets Flooding is used for distributing,seq no is used for checking Routers keep track of all the source, seq pairs they see If seq is new it is forwarded
10/19/ The Packet Buffer for Router B --- Refinements
10/19/ ) Computing New Routes Once router receives all LSPs, it can construct the whole graph for the subnet Dijkstra's algorithm now can run locally to construct shortest paths to all possible dest
10/19/ Routing to Mobile Hosts Users who never move are known as stationary, they use copper or fiber to communicate Migratory users are stationary but moving from one fixed site to another Roaming users are connected to the internet wherever they are
10/19/ Routing for Mobile Hosts
10/19/ The Registration Process Periodically each agent broadcasts a packet Packet contains it’s address MH registers with FA, giving HA, current DLL address, + some security info FA contacts MH’s HA and convince him FA gets ack and inform MH about registration, and add info in routing table
10/19/ Packet Routing for Mobile Hosts
Routing in AdHoc Networks Hosts are mobile and also routers are mobile in Adhoc networks Also known as MANET(Mobile AdHoc Networks) No Fixed topologies, no fixed neighbors etc AODV(Ad hoc Distance Vector) Routing Algorithm
Route Discovery
Route Maintenance
10/19/ Congestion Control Algorithms Def n :- When too many packets are present in (a part of) the subnet, performance degrades. This situation is called congestion
10/19/ General Principles of CC Open Loop attempts to solve it by good design Once the system is up and running, midcourse corrections are not made. Closed Loop based on the concept of feedback Monitor the system to detect congestion Pass the information elsewhere to take action
10/19/ General Principles of CC In Open, act at source or at a destination In Closed, explicit vs. implicit feedback In explicit feedback case, the router sends the packets back In implicit feed back the source deduce it by making local observations Delay in receiving ack
10/19/ Open Loop Solution Minimize congestion in the first place, rather than letting it happen and reacting after the fact Goal is achieved by using appropriate policies at various layers
10/19/ Congestion Prevention Policies
10/19/ Closed loop Solutions Let Congestion occur first and than control it Congestion Control in Virtual-Circuit Subnets Congestion Control in Datagram Subnets Load Shedding Jitter Control
10/19/ Congestion Control in Virtual- Circuit Subnets Admission control (Don't allow new connection after congestion detection) once congestion has been signaled, no more virtual circuits are set up until the problem has gone away
10/19/ A Congested Subnet
10/19/ Congestion Control in Datagram Subnets The Warning Bit Choke Packets Hop-by-Hop Choke Packets
10/19/ The Warning Bit setting a special bit in the packet's header into the next acknowledgement sent back to the source. The source then cut back on traffic. As long as the warning bits continued to flow in, the source continued to decrease its transmission rate
10/19/ Choke Packets the router sends a choke packet back to the source host the host should ignore choke packets referring to that destination for a fixed time interval After that period has expired, the host listens for more choke packets for another interval. If one arrives, the line is still congested, so the host reduces the flow still more and begins ignoring choke packets again. If no choke packets arrive during the listening period, the host may increase the flow again
10/19/ Hop by Hop Chock Packets At long lines, chock packet will take little long to reach source Instead, at each hop the traffic is slowed down when choke packet passes thru Intermediate buffers are needed to be increased Immediate relief to the congested area
10/19/ A choke packet that affects each hop it passes through. A choke packet that affects only the source.
10/19/ Load Shedding when routers are being inundated by packets that they cannot handle, they just throw them away Router can do it randomly picking packets Dropping can be done better dependent on app In some app old packet is more important than new one and vice versa Still improvement : (intelligent discard policy) applications must mark their packets in priority classes to indicate how important they are (VERY IMPORTANT— NEVER, EVER DISCARD )
10/19/ Random Early Detection idea of discarding packets before all the buffer space is really exhausted When the average queue length on some line exceeds a threshold, the line is said to be congested and action is taken.
10/19/ Jitter Control The variation (i.e., standard deviation) in the packet arrival times is called jitter. High jitter, for example, having some packets taking 20 msec and others taking 30 msec to arrive
10/19/ Jitter Control