Internet Programming
Internet Technology
Networking Basics
Internet Basics Internet Protocol TCP Applications
Circuit Switching
Internet design: Smarts at the edges & simple core
Packet Switching
Packet Switching
Key Ideas
Simple
Stateless Core
Unreliable
Packets may be dropped
(e.g., to handle congestion)
Flexible
Packets may take any route
Simple
Unreliable
Flexible
Robust
End to end principle
en.wikipedia.org/wiki/End-to-end_principle
End-to-End Arguments in System Design, Saltzer, J., Reed, D., and Clark, D.D.
Simple Core
all the core has to do is route packets
simple: using only local information each router has a routing table chooses the next hop by destination
like sending a letter...
Like sending a letter
Willem de Bruijn De Boelelaan 1081 1081 HV Amsterdam Netherlands
My mailbox
Vrije Universiteit Amsterdam Post Offic National Postal Cente
Smart Edges
server: provider of a service client: consumer of a service
a web client a.k.a. browser (e.g. IE, Firefox) retrieving pages from a web server (e.g. Apache) a mail client (e.g. Outlook) retrieving e-mail from a mail server (e.g. Exchange)
Internet Technology
Networking Basics
Internet Basics Internet Protocol TCP Applications
Idea
"For each of these three terminals, I had three different sets of user commands. So if I was talking online with someone at S.D.C. and I wanted to talk to someone I knew at Berkeley or M.I.T. about this, I had to get up from the S.D.C. terminal, go over and log into the other terminal and get in touch with them. [...] I said, it's obvious what to do (But I don't want to do it): If you have these three terminals, there ought to be one terminal that goes anywhere you want to go where you have interactive computing. That idea is the ARPAnet."
Robert W. Taylor, co-writer "The Computer as a Communications Device", in an interview with the New York Times, [2]
History
1969: ARPANet
Packet Switching: Robust
History
1984: NFSNet
National USA University network with dial-up (other TCP/IP networks within the military)
History
2005: an Internet snapshot
Network of Networks
Commercial Carriers Home router + 2 computers Community Networks Community Wifi (e.g., mesh networks)
Peering: Internetworking
Interconnection of 2+ Autonomous Systems (ASs) Exchange routing information with BGP Transit (for pay) Peer (tit for tat)
Incentive to peer directly with more networks: less transit
Public (AMS-IX) or Private
Explicit contracts
Multiple Levels
Tier 1 A network that can reach every other network on the Internet without purchasing IP transit or paying settlements." (only 8) Tier 3 ~= non-multihomed end-user
Example: SAVVIS: Tier 2 with private backbone
Wireless Community Networks
Border Gateway Protocol (BGP)
Periodic route table exchanges
A.1 B.1 B.2 C.1 C.2 D.1
B.1->A.1 : connect B, C(B), D(B,C) B.1 -> B.2 : connect A
ASN
Automatically updates local router's tables
Multihome automatic failover, etc.
Organization
Robust because decentralized?
DNS Root Servers IANA numbers ICANN Root level TLDs Standards: IETF (RFCs), W3C
Internet Technology
Networking Basics
Internet Basics Internet Protocol TCP Applications
Internet Protocol (v4)
Basic end-to-end Connectivity
Internet addresses
Internet Protocol (IP) Addresses
Every node has a unique numeric address Form: 32-bit binary number
New standard, IPv6, has 128 bits (1998)
Organizations are assigned groups of IP addresses for their computers
Clients and servers
130.37.192.19 (client)
nameserver
www.cs.vu.nl
www.cs.vu.nl = 130.37.20.20
130.37.20.20 (server)
Whats a protocol?
Hi Hi
Got the time?
2:00
TCP connection request TCP connection response
Get http://www.cs.vu.nl/~herbertb
<file>
time
Network Technology
Topic of another class!
Internetwork Technology: TCP/IP
SMTP, HTTP, DNS
UDP, TCP Internet Protocol (v4)
Will discuss only what we need for now
Packet Switching in Practice
Packet Switching and Protocols
An IP packet
DATA
Missing
Connections Reliability Packet Ordering Congestion Control
Internet Technology
Networking Basics
Internet Basics Internet Protocol TCP Applications
Transmission Control Protocol (TCP)
Reliability Packet Ordering Connections Congestion Control
Reliability
Resend packets that are lost underway
Reliability
ACK packets
Timeout Retransmit
Ordered Data
Packets may travel at different speed Reestablish order at arrival (buffer)
Connections
Ordered, reliable bytestream + Reliable open and close
Three way handshake
Internet Technology
Networking Basics
Internet Basics Internet Protocol TCP Applications
Domain Name System (DNS)
Lookup IP address 127.0.0.1 By human readable name www.google.com. (note the last dot!)
Domain Name System (DNS)
Hierarchical Distributed System
Hierarchical Names
Domain Name System (DNS)
Let us trace a connection
DNS: nslookup
contacts the (distributed) Internet name service
nslookup www.few.vu.nl
IP: traceroute allows us to find the path
tracert www.few.vu.nl
nslookup
% nslookup www.few.vu.nl
Server: 130.37.20.3
Address:
130.37.20.3#53
Non-authoritative answer: www.few.vu.nl Name: canonical name = soling.few.vu.nl. soling-public.few.vu.nl
Address: 130.37.20.20
Application Protocols
DNS! FTP: NTP: Telnet: SSH: XMPP: SMTP: HTTP:
File transfer Time Synchronization Terminal access Secure terminal access Messaging Email Web (Next lecture)
Email
Network
mail.receiver.org
smtp.few.vu.nl
SMTP Push
Pull IMAP, POP
HTTP
Push SMTP
IMAP, POP
Simple Mail Transfer Protocol
Store and Forward network Simple? Example ...
S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM:<bob@example.org> S: 250 Ok C: RCPT TO:<alice@example.com> S: 250 Ok C: RCPT TO:<theboss@example.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: From: "Bob Example" <bob@example.org> C: To: Alice Example <alice@example.com> C: Cc: theboss@example.com C: Date: Tue, 15 Jan 2008 16:02:43 -0500 C: Subject: Test message C: C: Hello Alice. C: This is a test message C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye {The server closes the connection}
Email (1/2)
Received: from mail.vu.nl (mail.vu.nl [130.37.129.161]) by tornado.few.vu.nl for <w.de.bruijn@few.vu.nl>; Wed, 3 Dec 2008 10:59 +0100 Received: from DIENSTEX1.dienst.ad.vu.nl (mail.dienst.vu.nl [130.37.136.125]) by mail.vu.nl (8.12.11.20060308/8.12.11) for <w.de.bruijn@few.vu.nl>; Wed, 3 Dec 2008 10:59:56 +0100
Email (2/2)
MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C9552D.E50A028F" Subject: Visum is binnen Date: Wed, 3 Dec 2008 10:59:56 +0100 From: "Eek, D" <D.Eek@dienst.vu.nl> To: "Willem de Bruijn" <w.de.bruijn@few.vu.nl> This is a multi-part message in MIME format. ------_=_NextPart_001_01C9552D.E50A028F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Goedemorgen Willem, =20 Wij hebben je paspoort met visum terug ontvangen van het visumbureau.
Reception
POP3: Post Office Protocol
Fetch data from a directory: store at home Stateless Aside from optional 'read items' hash
IMAP4: Internet Message Access Protocol
`remote folders': store on server Stateful Concurrent access
Webmail
Proprietary method on top of HTTP Frequently uses IMAP between webserver and mailserver
Multipurpose Internet Mail Extensions
Send more than 7bit ASCII text: Binary (images), Non-latin script Identify encoding, e.g., quoted-printable: =[HEX][HEX] for instance, =20 means space Break up messages html+img text/html
Also used elsewhere
(such as webservers)
Mime content encodings
=B7Hola, se=F1or! is interpreted as Hola, seor!.
Mime content-type=
text/plain text/html image/jpeg video/mpeg2 ... application/octet-stream
Mime special content-type=
message/rfc822 multipart/alternative multipart/form-data ...
many more. Official list at
www.iana.org/assignments/media-types/
SMTP Security
From: spoofing Man in the middle can sniff and change data
Open Relay
SPAM
SMTP Security
Counteraction difficult
Network Effect
Authentication PGP
ensure contents integrity (sig/enc)
DomainKeys Identified Mail (DKIM)
Guard against spoofing, indirectly Sender/Server RSA SIG Public Key through sender domain DNS Used by Yahoo! and Google. Does not guard the envelop
Fighting SPAM
Your post advocates a
( ) technical ( ) legislative ( ) market-based ( ) vigilante approach to fighting spam. Your idea will not work. Here is why it won't work. (One or more of the following may apply to your particular idea, and it may have other flaws which used to vary from state to state before a bad federal law was passed.)
( ) Spammers can easily use it to harvest email addresses ( ) Mailing lists and other legitimate email uses would be affected ( ) No one will be able to find the guy or collect the money ( ) It is defenseless against brute force attacks ( ) It will stop spam for two weeks and then we'll be stuck with it ( ) Users of email will not put up with it ( ) Microsoft will not put up with it ( ) The police will not put up with it ( ) Requires too much cooperation from spammers ( ) Requires immediate total cooperation from everybody at once ( ) Many email users cannot afford to lose business or alienate potential employers ( ) Spammers don't care about invalid addresses in their lists ( ) Anyone could anonymously destroy anyone else's career or business
Specifically, your plan fails to account for
( ) Laws expressly prohibiting it ( ) Lack of centrally controlling authority for email ( ) Open relays in foreign countries ( ) Ease of searching tiny alphanumeric address space of all email addresses
Internet Technology Exam Material
Networking Basics
circuit vs. packet switching end-to-end argument client/server programming
Internet Basics
network of networks peering
IP
protocol stack
TCP
reliability, ordering, conn.
DNS Email
push vs. pull, mime, authentication basic smtp
Internet Technology Practical
Trace a Route with tracert.exe Lookup a domain name with nslookup.exe
Send me an email manually using putty
Don't forget: come up with a website plan for tomorrow!
Flow Control
Buffering: sliding window
Congestion Control
Scale sliding window size Automatic, based on transport quality Additive Increase, Multiplicative Decrease
Bandwidth Delay Product
Maximal bandwidth of a TCP stream depends on physical bandwidth, but also: congestion control protocol roundtrip time