The Internet and Java Sockets ICW Lecture 5 Tom Chothia.

Post on 17-Dec-2015

214 views 1 download

Transcript of The Internet and Java Sockets ICW Lecture 5 Tom Chothia.

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

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.

Before the Internet

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

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

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?

The Problem With Leased Lines

A

B D

C

The Problem With Leased Lines

A

B D

C

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

A

B D

C

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

line at the same.

A

B D

C

The Internet Protocol Packet

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.

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:

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

The Internet

• 1982 :-)

• 1983 TCP/IP becomes standard.

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

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.

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

Today

• All computers on the Internet have an IP address.

• Key Internet Protocols: TCP/IP

• DNS to turn names into numbers.

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.

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

The Stack, Most of the Time:

Stuff that you write

TCP or UDP

IP

Ethernet or 802.11

Application

Transport

Network

Link/Hardware

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).

Our View of the Stack in Java

ApplicationJava Program

Sockets

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.

Code Demo

• Simple socket connections

Multi-Threaded Servers

• To receive multiple connections you can use threads.

• See demo.

• More on Threads in Lecture 11.

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.

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.

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?