cs 360 – spring 2007 pacific university project notes due tuesday, 1pm –color printout –submit...
Post on 21-Dec-2015
213 views
TRANSCRIPT
CS 360 – Spring 2007Pacific University
Project Notes• DUE TUESDAY, 1pm
– color printout
– submit electronically
• check your handout to see EXACTLY what to submit– filename, file contents, make targets, etc
• I’d submit early just in case there are any problems– save your receipt!
– read the message boards
– be prepared to demo you code from zeus and circe in class!• test against other student’s client/server
• Do not implement the Error: invalid packet size PackType– I will test if your client and server react to the other errors correctly
• Test your client/server on zeus and circe– your client must work with my server (or -10 points)
• by work I mean at least one function (add/sub/mult/div) must work
– your client must output exactly what the handout says (or -5 points)
• Comment your code / follow the coding standards
• Quality code here makes project 3 & 4 MUCH easier
CS 360 – Spring 2007Pacific University
Application Layer
Chapter 7
6 Feb 2007
http://zeus.cs.pacificu.edu/chadd/cs360s07/
CS 360 – Spring 2007Pacific University
Network Models
Computer Networks, 4th edition, Tanenbaum, page 43.
CS 360 – Spring 2007Pacific University
What happens when we send a MathPacket?
• Let’s build the Protocol Stack!– what does the data on the wire look like?
CS 360 – Spring 2007Pacific University
Layers + Protocols• Use the power grid, from power station to light bulb, to explain
layering and protocols.
http://www.animationartgallery.com/images/SIM/SIMP1193.jpg*
http://www.osha.gov/SLTC/etools/electric_power/images/riser.jpg**
* **
http://www.powerstream.com/z/acac-UL.jpg***
***
CS 360 – Spring 2007Pacific University
The Application Layer• Chapter 7, page 579• Read: all of 7.1, 7.2, 7.3.3, 7.4 (later)
– Client/Server model– Request for Comments (RFC)– Domain Name Server (DNS, TLD)– Mail (SMTP, POP3, IMAP)– Dynamic web content (multi-tiered web services, PHP, ASP, JSP, CGI)– Peer-to-Peer (P2P)– SSH (we will talk about this later)– That's how we talk on the Internet. We don't have a moment to spare!
(with apologies to Homer Simpson)
• Side note:– wikipedia is a good source of networking protocol knowledge
• at the very least it points you to the correct RFChttp://www.individual.utoronto.ca/william_s/images/homer_computer.gif
CS 360 – Spring 2007Pacific University
Client/Server Model• A server at a well-known IP address listens on a well-
known port• A client connects, requests data, etc.• Fundamentally, everything works this way
– conceptually, sometimes it does not
CS 360 – Spring 2007Pacific University
Request for Comments• RFC
– published by the Internet Society• international society to promote Internet use and access
• generally academics and (commercial) engineers (but open to anyone)
– propose new ideas, new standards, etc– Internet Engineering Task Force may adopt an RFC as a standard
• "rough consensus and running code"
• http://www.ietf.org/
– http://rfc-editor.org– not all RFCs are standards– See 1.6 in your book for more information
CS 360 – Spring 2007Pacific University
Telnet• Very basic, TCP application• Connect to an address and port and type away!
– just echos to the screen the data it receives
• Insecure– sends data and passwords in clear text
• Not installed on zeus (see above)– is installed on circe
CS 360 – Spring 2007Pacific University
E-Mail• RFC 822 – ASCII Email messages
– ftp://ftp.rfc-editor.org/in-notes/rfc822.txt– RFC 2822
• Protocols– SMTP: Simple Mail Transport Protocol (RFC 821, RFC 1123)– POP3: Post Office Protocol (RFC 1939)– IMAP: Internet Mail/Message Access Protocol (RFC 1064)– why so many?
• User Agent (mail reader)• Transfer Agent
CS 360 – Spring 2007Pacific University
SMTP/POP3/IMAP• How does it all work together?• Mail server• User agent / mail reader• What transport protocol should mail use?
• where does hotmail fit? yahoo mail? gmail? • why is HTML-ified email the devil?
CS 360 – Spring 2007Pacific University
SMTP• Creating a new message
• Why does this promote spam?– what is spam? what is an open relay?
zeus$ telnet smtp.mailexample.net 25220 smtp.mailexample.net ESMTP qpsmtpd 0.33-dev ready; send us your mail, but not your spam.HELO cs360.com250 mailexample.net says hello to cs360.comMAIL FROM: <[email protected]>250 sender okRCPT TO: [email protected] recipient okDATA354 Send mail; end with “.” on a line by itselfFrom: [email protected]: [email protected]: Cheap Stuff!Hello! Would you like to buy something?.250 Message acceptedQUIT221 mailexample.net closing connection
CS 360 – Spring 2007Pacific University
POP3• Retrieving messages
• POP3 may use plaintext passwords• TLS or SSL could be used to encrypt the session
zeus$ telnet pop3.mailexample.net 110+OK POP3 server readyUSER chadd+OKPASS iwantmail+OK login successfulLIST1 25052 14302.RETR 1(send message 1) DELE 1 QUIT+OK POP3 server disconnecting
CS 360 – Spring 2007Pacific University
RFC 822 Email Message Syntax
Notation:
1*mWORD
WORD must appear in repetition between 1 and m times
1*WORD *WORD
WORD must appear WORD may be repeatedin at least once, and may be repeated
CS 360 – Spring 2007Pacific University
MIME• Email is ASCII
– uuencode/uudecode (in the old days)
• Multipurpose Internet Mail Extensions (RFC 2045)– allows us to send non ASCII data via email– examples?
– No such thing as a free lunch, what does this cost us?
– where else is this used?• where else do we send all data as ASCII?
MIME-Version: 1.0Content-type: image/jpegContent-Transfer-Encoding: base64
CS 360 – Spring 2007Pacific University
Received: from M.mailexample.net (M.mailexample.net [127.0.127.04]) by circular.mailexample.net (8.12.11.20060308/8.12.5) with ESMTP id l0UIKMEa011117; Tue, 30 Jan 2007 13:20:22 -0500Received: from dispatch.mailexample.net (dispatch.mailexample.net [127.0.128.60]) by M.mailexample.net (8.12.10/8.12.5) with ESMTP id l0UIKEAQ022812 for <[email protected]>; Tue, 30 Jan 2007 13:20:14 -0500 (EST)Received: from [127.0.130.105] (wedge.pc.mailexample.net [127.0.130.105]) by dispatch.mailexample.net (8.13.1/8.12.5) with ESMTP id l0UIKClP006424 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 30 Jan 2007 13:20:12 -0500Message-ID: <[email protected]>Date: Tue, 30 Jan 2007 13:20:12 -0500From: Da Boss <[email protected]>User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.11) Gecko/20050728MIME-Version: 1.0To: [email protected]: Comments on talk titlesContent-Type: text/plain; charset=us-ascii; format=flowedContent-Transfer-Encoding: 7bitX-CSD-MailScanner-Information: Please email [email protected] for more informationX-CSD-MailScanner: Found to be cleanX-CSD-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.44,required 5)X-CSD-MailScanner-From: [email protected]
Hello! How are you? Do you like the titles of these talks?
CS 360 – Spring 2007Pacific University
DNS• Domain Name System (RFC 1034, 1035)
– What is DNS?– When do we use it?– What is a domain?
– what does this address mean: zeus.cs.pacificu.edu
CS 360 – Spring 2007Pacific University
DNS• How does it work?
– originally, just ONE file, hosts.txt, that was copied around to all the machines on the Internet (ARPANET) every night
• /etc/hosts file still exists in UNIX
• look here first, then queries the DNS server
• on zeus: cat /etc/hosts | more• hmmmm. what havoc could we wreak by writing to this file?
• Zones:– non-overlapping areas in the DNS– each zone as its own Name Server (plus a back up or two)
• the Name Server contains the authoritative records for all hosts in the zone
• not cached, always correct
CS 360 – Spring 2007Pacific University
DNS Root Servers• 13 root servers spread across the globe
– http://d.root-servers.org/
– University of Maryland, College Park
– In the basement of the Computer Science Department
– each “root server” is really a cluster of servers
http://www.icann.org/correspondence/root-map.gif
CS 360 – Spring 2007Pacific University
Need an Address?• Need to find an address?
– Use the resolver to look it up via a name• resolver – a network application distributed as part of an OS
– UDP packet is sent to the local DNS nameserver– UDP packet is sent back with the Resource Record
• why UDP?
• Resource Record– Domain Name: pacificu.edu (string)– TimeToLive: How stable is this record (int, seconds)– Class: In – Internet (string)– Type: A – Address, SOA – Authority Info, NS – Name Server, etc (string)– Value: Data (IP address)
CS 360 – Spring 2007Pacific University
Let’s find an address• resolve(zeus.cs.pacificu.edu);• query local Name Server for the record
– if that address is found, return it and stop.
• query (root server) Name Server for .edu TLD Servers• query (edu server) Name Server for pacificu.edu• query (pacificu.edu) Name Server for cs.pacificu.edu• query (cs.pacificu.edu) Name Server for zeus.cs.pacificu.edu
– cache the Resource Records retrieved since you might need them again soon
– what problems are there with caching?
CS 360 – Spring 2007Pacific University
DNS in action
• What is going on here?• Why do we have so many
answers?• What is non-authoritative?
• Why is this in the Application Layer?
circe$ nslookup > cnn.comServer: 64.59.226.228Address: 64.59.226.228#53
Non-authoritative answer:Name: cnn.comAddress: 64.236.24.12Name: cnn.comAddress: 64.236.24.20Name: cnn.comAddress: 64.236.24.28> set type=ns> cnn.comServer: 64.59.226.228Address: 64.59.226.228#53
Non-authoritative answer:cnn.com nameserver = twdns-03.ns.aol.com.cnn.com nameserver = twdns-02.ns.aol.com.
CS 360 – Spring 2007Pacific University
How do I register a domain name?
• Use a company called a registrar– for a fee, they maintain lists of available domain names– you provide an IP address– previously, one company did this: Network Solutions– now a huge number of companies do this
• many of them provide other services (web/mail hosting, etc)
• The registrar puts the IP address of the nameserver for your domain in the correct TLD server
• What about those companies that let you register a domain name for your dialup/DSL connection?– www.dyndns.com, www.tzo.com– why is a dialup/DSL connection a problem?
CS 360 – Spring 2007Pacific University
DNS: What can go wrong?
• http://news.zdnet.com/2100-1009_22-6156944.html?tag=nl.e589• Root DNS servers were flooded with traffic (servers: F, I, M, G, L)
– early morning Tuesday (West coast time)
• How can this affect the Internet?
• What mechanisms are in place in DNS to mitigate this type of attack?
• Did you notice a problem?– In 2002 a similar attack shutdown 9 of the 13 root servers
CS 360 – Spring 2007Pacific University
Peer-to-Peer• Computer Networking: A Top-Down Approach Featuring the Internet, 3rd
edition. Kurose, Ross. In my office if you want to read it.• Hot area of CS research!• Ethical/Legal issues:
– http://iptps03.cs.berkeley.edu/final-papers/copyright.pdf– http://freenetproject.org/papers/freenet-ieee.pdf– Legit uses?
• What P2P clients do you use?• All P2P applications work on the same basic principle
– what is it?– what is a peer?– what is bootstrapping?– many of these use HTTP to transfer data
• why might HTTP be a bad choice?
• how is this different/same from/as Client/Server• how is this similar to DNS?
CS 360 – Spring 2007Pacific University
Centralized Directory• Napster used this method• Client
– each client connects to one directory (cluster of computers)– tells directory what files the client will share– asks the directory for IP addresses of peers with a particular file
• What transport protocol should we use?
• Why is this good?
• Why is this bad?
CS 360 – Spring 2007Pacific University
Query Flooding• Gnutella used this method• No central directory• Creates an overlay network• Query flooding: send a query to all your peer
– each peer forwards on the query if they don’t have the data
– how is this good?
– how is this bad?• how can we fix it?
• What is the difficult part of this decentralized scheme?
http://www.nutellausa.com/