330 likes | 470 Views
COP 5611 Operating Systems Spring 2010. Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM. Lecture 12. Reading Assignment: Chapters 8 from the online textbook Homework 3 due on March 3 Midterm: Wednesday March 17, the first week after Spring Break Last time:
E N D
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM
Lecture 12 Reading Assignment: Chapters 8 from the online textbook Homework 3 due on March 3 Midterm: Wednesday March 17, the first week after Spring Break Last time: More about layering and broadcast channels Network layer Today: End-to-end-layer Resource Management - Congestion Next time Faults, Failures and Fault-Tolerant Design Measures of Reliability and Failure Tolerance Tolerating active Faults 2 2 2 2 2
Requirements for routing algorithms • Routing algorithms should be dynamic and deal with: • Topological changes: links go down and new links are added • Congestion • Run asynchronously • Converge rapidly • Avoid oscillatory behavior • Ensure that no packet bounces around forever: add a hop count in the network header
Flat versus hierarchical addressing schemes • The scheme we discussed so far based on flat addresses have disadvantages: • Each attachment point must have a unique address and the number of attachment points is equal to the number of systems connected to the network • The number of path vectors increases linearly with the size of the network. • Hierarchical addressing: e.g., two levels • Region • Address of the station/node within the region
Advantages and disadvantages of hierarchical addressing • Reduces the number of path vectors; a router for one region needs only to advertize a single path vector. • Assignation of network addresses is manageable: • a central authority assigns region addresses • Station addresses are assigned by a regional authority. • The table lookup more complicated: (1) extract the region (2) forward to another region or forward within own region. • The path may no longer the shortest, the information provided by the path vector is less accurate. • The network addresses are location dependent. A mobile device must get a new address when it is connected in a different location.
Physical and logical addresses • All devices have a physical address of the interface • Must obtain a logical address • ARP – address resolution protocol is a protocol used by the Internet Protocol (IP), specifically IPv4, to map IP addresses to the hardware addresses used by a data link protocol. • ARP operates only across the local link that a host is connected to. • Types of ARP messages • ARP request • ARP response • RARP request • RARP response
From Wide Area Networks (WAN) to Local Area Networks (LAN) – the Ethernet
Internet addresses • Internet provides a layered naming environment. • Internet address= Network number + host numbers • Most network numbers are global names. • Network 10 reserved for private networks
Network address translation • Private networks • NAT (Network Address Translators) map host’s private address to/from a temporarily assigned public address. • Problems • Communications may involve multiple parties with the addresses buried into application protocols • The router running NAT is a bottleneck • What if two private organizations merge?
Network layer errors • Messages originate at the network level and are delivered to the end-to-end layer. • Router error codes • Packets are discarded – the router has depleted its buffer space • The buffers of a router are depleted rapidly – stop sending • The region identifier is invalid • The station identifier is invalid • The end type identifier is not valid • The packet is larger than the MTU • The packet hop has been exceeded • The network layer implements a best-effort policy. It would be too complicated to provide guarantees of service. There is no message regarding packets dropped. It would only increase congestion!!
End-to-end layer • Applications are too diverse to have a unique end-to-end protocol • End-to end multiplexing is more complicate: • You can have multiple instances of the same application running • Ports – logical end points for an end-to end protocol • We need to identify individual segments by sequence numbers • Transport protocols operate between two attachment points • TCP • UDP • Request-response protocol • RTP – Real-Time Transport protocol.
At once delivery protocols • Persistent sender • It requires the sender to maintain state in the form of a table including the sequence numbers of segments sent but not acknowledged yet • Provide the assurance that • if possible to get through messages will be delivered • If not possible to confirm delivery the application will know • Does not provide any assurance about duplicates • Round Trip Time • Timers could trigger retransmission • Static timers RTT • Adaptive timers • Exponentially weighted moving average using a decay factor
At most once delivery protocols Requires both the sender and the receiver to maintain state. The receiver must maintain a table of previously seen nonces , segments that have been received and passed to the application layer The list of nonces may grow; it may never be possible to delete the last nonce Long messages need to be reassembled from out of order segments
Reliable transport protocols • Data integrity assurance that the received message contains precisely the same information as the one sent. • Sender adds trailer containing a checksum; • Receiver computes the checksum and verifies that it is the same as the value in the trailer • Should send a NAK if they do not correspond? What if the address of the sender was damaged? • There is a check sum at the link layer but is this suffient? • Reliable transport protocols protocol with a persistent sender and with support for data integrity.
Flow control • Ensure that the sender, the communication channel, and the receiver could work at the same pace. • The bottleneck could be any of them • Stop and wait protocols (lock step) • Overlapped transmission • Window based – send a range of frame. The protocol: • Sender – tell me how many frames I could send • Receiver – send 100 frames • Window based protocols • Fixed window size • Variable window size
Lock-step-transmission (send segment and wait for acknowledgment)
Sliding window and self-pacing Once a segment buffer is freed the receiver should send the permission to advance the window. Regardless of the bottleneck the solution is: Window size > = RTT x bottleneck data rate
Managing shared resources • Congestion - • a complex phenomena • leads to wasting of resources congestion collapse • Managing resources in a network rather complex • More than one resource • Congestion collapse occurs more easily • Limited options to reduce capacity • The means to reduce congestion are difficult to implement • Feedback path is long • Source of the traffic must be • able to reduce the load • willing to cooperate
Cross-layer cooperation • Feedback • Source quench • Congested routers add a bit in the packet header indicating that congestion • Discard a packet • Control • Automatic rate adaptation requires an estimation of the RTT
Congestion control in TCP • Slow start • Duplicate acknowledgments • Equilibrium • Additive increase • Multiplicative decrease