Transcript Sockets

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
C
B
D
The Problem With Leased
Lines
A
C
B
D
If A and D use the line, then C
and B can't
A
C
B
D
But if everyone just sends a small
packet of data, they can both use the
line at the same.
A
C
B
D
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
Internet communication
uses a stack of protocols.
Application
Transport
Each protocol uses the
protocol below it to sent
data.
Network
Link/Hardware
Using the Stack to Send Data
Data
HH
T(Data)
T(Da)
HN(HT(Da)
Computer 2
Computer 1
Application
Application
Transport
Transport
HT(Data)
Network
Network
HN(HT(Da)
HN(HT(ta))
Link/Hardware
Link/Hardware
HLHN(HT(ta))
HLHN(HT(Da) ), HLHLost
N(HT(ta))
Data
HLHN(HT(Da), HLHN(HT(ta))
The Stack, Most of the Time:
Stuff that you write
Application
TCP or UDP
Transport
IP
Network
Link/Hardware
Ethernet or 802.11
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
Application
Java 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?