• Review of key networking techniques: – Reliable communication over unreliable channels – Error detection and correction – Medium access control – routing – Congestion control • Reliable communication over unreliable channels: – Positive acknowledgement with retransmission (PAR) • Sender progresses only after receiving positive ACK • Sender retransmits if timeout • Receiver only accepts the correct packet (a sequence number is required to do this). – Sliding window protocol • PAR + pipelined communication. • Senders allows multiple outstanding packets • Receivers buffer out of order packets • Error detection/correction – CRC checksum • Sender/receiver agrees on the generator • Sender makes sure that all messages sent can be divisible by the generator – Add n 0-bits to the message – Perform binary division – Add the remainder to the message • Receiver verifies a message is valid by dividing the message by the generator • CRC checksum used in Ethernet frame – Internet checksum • 1’s complement of the sums of 16 bit numbers • Used in UDP, TCP, etc. • Error detection/correction – Error correction. • Is typically more expensive than detecting errors and retransmission • Used only when retransmission is expensive or when retransmission is inefficient – Ad hoc mobile networks – Satellite link – Real time applications (Video streaming) • Medium access control: – Use when multiple stations can access a shared channel – There are three types of medium access control protocols. • Protocols that allow collisions: try out your luck and fix the problem if collision occurs. • Collision free protocols: make sure that no collision can possibly happen • Limited collision protocols: have the combined advantages of the previous two types of protocols. • Protocols that allow collisions – ALOHA, slotted ALOHA, CSMA, CSMA/CD • Collision free protocols – Bitmap method, binary countdown, token based. • Limited collision protocols – Adaptive tree walk • Routing – Flooding – Shortest path routing (Dijkstra algorithm) • Centralized algorithm – Distributed routing algorithms have two components: • Maintaining the topology information • Compute the routes – Distance vector algorithm • Each router distributes its routing table to its neighbors • Each router updates its routing table based on the tables received from its neighbors. • Routing – Link state algorithm • Each router obtain the link information for links directly connected to the router • Each router flood the network with the link state information (all routers in the system receive link state packets). • Shortest path algorithm is used to compute routes based on the link state database. • Congestion control: – Congestion is a global event. – Congestion happens when the network cannot handle the number of data injected into the network. – Congestion control techniques: • Open loop or close loop • Can be done either in the network layer or transport layer • Traffic shaping – Leaky bucket algorithm and token bucket algorithm • • • • Admission control Chock packet Hop-by hop chock packet Load sheding • Congestion control mechanism in the Internet: – Done in TCP – Slow start, AIMD – Early random drop.