Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Airborne Networking wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Parallel port wikipedia , lookup
Network tap wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Distributed firewall wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Wireless USB wikipedia , lookup
Low Pin Count wikipedia , lookup
CS 336/621 Computer Networks and Network Programming Spring 2009 Professor Allan B. Cruse University of San Francisco Course synopsis • Combines a survey of network principles with hands-on exercises and experiments • Utilizes our classroom and CS laboratory networking hardware infrastructures • Employs C/C++ programming language and the standard ‘sockets’ API libraries Course prerequisites • • • • • Open to USF Computer Science students Upper-division or graduate-level standing Familiarity with Linux (or UNIX) systems Programming experience: C/C++/Python Prior coursework: CS 110/112 and CS 245 (or the equivalent preparation elsewhere) methodology • • • • • • • Lectures Readings Discussions Demonstrations Exercises Projects Quizzes Course website • You will find current course-information at this website: <http://cs.usfca.edu/~cruse/cs336> • Reading-assignments, exam-dates, class announcements, course-related software, links to other resources and to the ‘signup’ page for our class’s online discussion-list Textbook • • • • James F. Kurose and Keith W. Ross Computer Networking: A Top-Down Approach 4th Edition Pearson/Addison-Wesley (2008) This up-to-date textbook is very widely used in networking courses at colleges and universities in the United States and elsewhere. Lots of material – maybe too much for one semester – the authors recommend we cover at least the first five chapters in sequence, then maybe one of the concluding chapters if time allows for that. Reference Model The textbook authors have utilized the standard reference model for network-software’s layered architecture as a principle which guides their “Top-Down Approach” to organizing the Chapters introduction Chapter 1 application layer Chapter 2 transport layer Chapter 3 network layer Chapter 4 link layer Chapter 5 Network hardware elements • • • • • • • NIC (Network Interface Controller) Cable (e.g., coaxial, fiber optic, twisted pair) Repeater (boosts signal-strength on long cables) Hub (promiscuously connects nearby NICs) Switch (selectively connects nearby NICs) Bridge (connects multiple network segments) Router (intelligently forwards network packets) Network Interface Card (NIC) Before the internet there was… … sneaker-net! host host Users often would transfer their data from one computer to another by simply copying it onto a floppy diskette, and then carrying that diskette over to their other computer – located, hopefully, not too far away (e.g., just down the hall) ‘crossover’ cable NIC host NIC cable host An improvement over the ‘sneaker net’ approach to data sharing between two host computers that are a short distance apart is to utilize a special direct cable connection – inexpensive to purchase, easy to connect if NICs are installed, less physical effort is required, no floppy disks are needed, and no risk of any unwanted ‘virus’ software infecting the host machines A ‘Point-to-Point’ connection repeater host host Over a long-distance cable-connection the electrical signals can degrade, but ‘repeaters’ can be inserted to receive and amplify a weakened signal before sending it along (i.e., “repeating it”) to the next connection-point ‘Local’ networks host host host host host HUB host host ‘ring’ topology host host ‘star’ topology Why do you think the star-topology is more widely deployed nowadays? ‘Hub’ versus ‘Switch’ host host host host host host host Why are ‘switches’ preferred over ‘hubs’ nowadays? host The ‘Bridge’ device bridge switch switch host host host host host host The ‘Router’ device switch router host host switch host switch host host host host host host Network software elements operating system kernel ‘socket’ data-structure function library network application program File and I/O subsystems (‘protocol stack’) device driver NIC cable User-space Kernel-space Demo: iplookup.py • This application reports the IP- address for a particular network host (if it’s known) • For example: $ python iplookup.py stargate The IP-address for ‘stargate’ is 138.202.171.14 $ python iplookup.py pyramid The IP-address for ‘pyramid’ is 138.202.171.19 $ python iplookup.py neptune The IP-address for ‘neptune’ is unknown Source-code (in Python) #!/usr/bin/python import sys try: hostname = sys.argv[1] except: hostname = “localhost” import socket try: hostip = socket.gethostbyname( hostname ) except: hostip = “unknown” print “The IP-address for \’” + hostname + “\’ is “ + hostip Demo: getquote.py • This internet application reports the latest price for a share of Intel Corporation stock • For example: $ python getquote.py Intel Stock: $13.53 at “12:05pm” on “1/26/2009” Internet programming import socket try: host = “download.finance.yahoo.com” port = 80 sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) sock.settimeout( 2 ) sock.connect( ( host, port) ) sock.send( “GET /d/quotes.csv?s=INTC&f=sl1d1t1c1ohgv&e=.csv \r\n” ) sock.send( “\r\n” ); response_string, server = sock.recvfrom( 4096 ) quote = str.split( response_string, ‘,’ ) except socket.error, msg: print “An error occurred:”, msg else: print print “Intel Stock: “, ‘$’+quote[1], “at”, quote[3], “on”, quote[2] print In-class exercise #1 • Can you modify the ‘getquote.py’ program so that it will report the latest stock-price for some other famous technology firms? – Microsoft Corporation – Red Hat Corporation – Oracle Corporation – Siemens Corporation – Sony Corporation