Anda di halaman 1dari 72

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

Anda mungkin juga menyukai