Wednesday, December 1, 1993 Distributed systems (continued; chapter 12) ------------------------------------------------------------------------------- Issues in designing a communication network - Routing strategies: how are messages sent through network - Connection strategies: how do two processes sen da sequence of messages - Contention: what if there are conflicting demand for use of the shared resource (network) - Design strategies: overall architecture (e.g., ISO's 7 layers mentioned earlier in the course) ------------------------------------------------------------------------------- Routing strategies - fixed routing path between A and B specified in advance. Hard wired for shortest path, for example what if load changes? - virtual circuit path between A and B fixed for duration of one session what happens if path dies during session? - dynamic routing path chosen when message is sent. different messages can follow different paths but messages can arrive out of order (sequence numbers). ------------------------------------------------------------------------------- Conection strategies - Circuit switching permanent physical link established for the duration of the communication no other process can use link during communication example: telephone company requires global setup to find link but once established is low overhead - Message switching temporary link established for duration of one message physical links allocated dynamically as needed analogue is the post office (many letters, i.e., messages, share same channel). Another example, trunked radio systems - Packet switching logical message divided into packets of fixed size each packet sent to destination separately at destination, packets are reassembled. ------------------------------------------------------------------------------- Contention - CSMA/CD (Ethernet): Carrier sense wth multiple access/collision detection check first to see if link free if multiple nodes start transmitting simultaneously on free link, detect collision and back off for random time interval Ethernet is example of this. Ethernet problems: reliability (one station can jam network; can't do anything about it. Fairness: no guarantee against starvation (e.g., real time applications) - Token passing token circulates in ring. Node must wait for token before transmitting. Each node just passes token along if it doesn't have anything to transmit When want to transmit, capture token, send message, regenerate token. Sender swallows packet when it comes by again (permit broadcast) Lost token requires regeneration. But only want one token in system. Solution: election scheme to elect unique site to generate new token Problem: if any node dies the token cannot circulate Good point: extremely deterministic, highly predictable, message delay behavior Time to recover from various errors is also highly predictable. Example: FDDI (Fiber distributed data interface). Very high speed (100 million bits per second or faster) technology using token ring - Message slots number of fixed-length message slots continously circulate in system (ring). When node wants to generate message has to wait for empty slot to go by ------------------------------------------------------------------------------- Note: names versus addresses versus routes Name: symbolic identifier for something (e.g., "neuron") Address: where the thing is. Perhaps a hierarchical network number (e.g., "128.194.133.1") Route: directions on how to get from point A to point B, e.g., how to get to neuron from "here". A sequence of hosts and link to pass through to reach the destination Sometimes user has to provide route (e.g., uucp), but this is generally clumsy. More flexible if hosts can figure out routing for themselves. e.g., Internet hosts exchange information about neighbors, etc. Note: if gateway local host only has to figure out how to get to gateway. gateway then has to figure out how to get to further point along path. Protocol has to figure out what to do if packets arrive out of order, get duplicated, show up after long periods of time, etc. -------------------------------------------------------------------------------