the internet and java sockets icw lecture 5 tom chothia

36
The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Upload: damon-davis

Post on 17-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Internet and Java Sockets

ICW Lecture 5

Tom Chothia

Page 2: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Reminder of Last Time:

• Encryption can be public key or symmetric.

• Use a Cipher Object in Java to encrypt and decrypt.

• Keep your keys in a KeyStore

Page 3: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

This Time:

• How the Internet works.– Some History– TCP/IP– DNS

• How to make socket connections between computers using Java.

• How to send Strings and Objects.

Page 4: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Before the Internet

• Life was solitary, poor, nasty, brutish and short.

• Computer Networks:– local networks,– telephone line connections,– leased line.

Page 5: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Start 1969

• The US Defense Advanced Research Projects Agency (then ARPA now DARPA) gives research grants to universities to buy computers.

• The decide to link their computers.

• But how?

Page 6: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Problem With Leased Lines

A

B D

C

Page 7: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Problem With Leased Lines

A

B D

C

Page 8: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

If A and D use the line, then C and B can't

A

B D

C

Page 9: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

But if everyone just sends a small packet of data, they can both use the

line at the same.

A

B D

C

Page 10: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 11: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Internet Protocol Packet

Page 12: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

IP Addresses

• Every computer has an IP address.

e.g. 147.188.193.15

• Every router on the Internet keeps a list of which connection it should use for which addresses.

Page 13: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 14: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 15: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Transmission Control Protocol

• 1974: daily traffic more than 3 million packets a day. Many are getting lost.

• TCP is a protocol than runs on top on IP, if an IP packet gets lost. It requests that it is resent.

• TCP/IP becomes allows Inter network connections. So in 1977:

Page 16: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 17: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The ARPAnet

• 1969 the birth of the ARPAnet.

• 1971 E-mail @

• 1977 the ARPAnet becomes a Inter-network.

• 1978 first Spam message send.Admin assures users this will never happen

again

Page 18: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Internet

• 1982 :-)

• 1983 TCP/IP becomes standard.

• By 1990 most of Europe, India and South Africa have joined.

Page 19: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 20: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Domain Name Servers (DNS)

• Remembering IP address is to hard.

• So people associate names with addresses.

e.g. news.bbc.com → 212.58.226.141

• A hierarchy of servers list handle requests

• The route for most of Europe is RIPE based in Amsterdam.

Page 21: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Internet

• 1988 The Morris Worm, CERT formed.

• 1989 The Web: HTTP and HTML.

• 1992 The first ISPs and Mosaic the first web browser.

• 1994 Yahoo

Page 22: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 23: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 24: The Internet and Java Sockets ICW Lecture 5 Tom Chothia
Page 25: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Today

• All computers on the Internet have an IP address.

• Key Internet Protocols: TCP/IP

• DNS to turn names into numbers.

Page 26: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Internet Protocol Stack

Application

Transport

Network

Link/Hardware

Internet communication uses a stack of protocols.

Each protocol uses the protocol below it to sent data.

Page 27: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Using the Stack to Send Data

Application

Transport

Network

Link/Hardware

Application

Transport

Network

Link/Hardware

Data

HT(Data)

HN(HT(Da)HN(HT(ta))

HLHN(HT(Da), HLHN(HT(ta))

Computer 2 Computer 1

HN(HT(Da)

Data

HT(Data)

HLHN(HT(Da) ), HLHN(HT(ta))

HLHN(HT(ta))

HT(Da)

Lost

Page 28: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

The Stack, Most of the Time:

Stuff that you write

TCP or UDP

IP

Ethernet or 802.11

Application

Transport

Network

Link/Hardware

Page 29: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Sockets

• A computer is Identified by an IP address.

• To allow multiple connections each computer has a port number.

• WWW runs on port 80, ssh on port 22, dns on 53, (free wifi).

• A simple connection between two computers is called a socket.

• Sockets are uniquely identified by

(IP sender, port sender,IP receiver,port receiver).

Page 30: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Our View of the Stack in Java

ApplicationJava Program

Sockets

Page 31: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Sockets in Java

• Use java.io.Socket to make a socket that connects to a remote computer.

• Use java.io.ServerSocket to make a socket that listens for an incoming connection.

• Sockets just give bytes, so then need a wrapper.

Page 32: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Code Demo

• Simple socket connections

Page 33: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Multi-Threaded Servers

• To receive multiple connections you can use threads.

• See demo.

• More on Threads in Lecture 11.

Page 34: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Sending an Object

• Java lets you send an object over a socket.

• The Object must be Serializable and have a UID (see demo).

• Use the ObjectStream wrapper to send Objects.

Page 35: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Conclusion

• The Internet uses a packet based routing system IP.

• Sockets are an easy way to connect between machines.

• Use the Socket and ServerSocket Class.

• Use a wrapper for the socket for different data types.

Page 36: The Internet and Java Sockets ICW Lecture 5 Tom Chothia

Next Time:

All the data send was total insecure.

Next lecture I will show you how how to make encrypted sockets, how to know who your talking to.

i.e. what exactly does the little padlock main in my web browser?