[01/26/2012] What advantages do computer networks provide us? -- communication -- backups -- redundancy / no single points of failure -- multiple users can access same services -- remote access / laziness -- parallel/distribution computation -- use each piece of hardware for what it's best at -- centralized administration What do we use computer networks for? -- communication -- data transfer -- multi-player games (WoW) -- data collection -- file sharing / anonymity -- sharing printers, network drives, resources -- remote administration -- remote execution -- e-commerce -- collaboration -- education (online courses, K-12) -- everything! Design protocol to get secret message to name on secret message -- message can only go to an adjacent neighbor -- ensure message is not read along the way -- ensure message is not altered -- ensure message is not lost -- ensure message gets to its destination -- staple the paper to ensure it doesn't get read / altered -- ask each adjacent person if s/he is the recipient ---- if so, hand it off to that person ---- if not: first locate the person by adjacent-question-asking once found, send the path back somehow if not found, send an NOT FOUND error back somehow somehow: everyone keeps track of who asked them keep track of who told them it was found (keep track by writing on the packet?) approach that sends the packet -- if we had a "seating chart," then each hop would know (single point of failure?) -- how does the sender know (guarantee) that the recipient has received the msg? examples of client/server communication? -- web server -- file server -- email server -- print server -- authentication server -- ssh -- X -- server performs/records a transaction -- database -- proxy -- date/time server -- etc.