cs 360 – spring 2007 pacific university project notes due tuesday, 1pm –color printout –submit...

30
CS 360 – Spring 2007 Pacific 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

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

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

Math Packet• What is the protocol for our assignment?

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/

CS 360 – Spring 2007Pacific University

Bit Torrent• How is this fundamentally different?

CS 360 – Spring 2007Pacific University

Dynamic Web Content• Static web pages are so very

1999…• We want dynamic content

– like the CS message boards!

– what do we need for this to work?

– where do we want to do the computation?

– what is the architecture of the system going to look like?