The Internet and Java Sockets ICW Lecture 5

  • Slides: 36
Download presentation
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

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 Key. Store

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

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

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

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

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

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

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

The Internet Protocol Packet

IP Addresses • Every computer has an IP address. e. g. 147. 188. 193.

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.

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 @ •

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

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

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

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

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

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 HHT(Data) T(Da) HN(HT(Da) HLHN(HT(ta)) Computer 2 Computer 1

Using the Stack to Send Data HHT(Data) T(Da) HN(HT(Da) HLHN(HT(ta)) Computer 2 Computer 1 Application Transport HT(Data) Network HN(HT(Da) HN(HT(ta)) Link/Hardware HLHN(HT(Da) ), HLHLost N(HT(ta)) Data HLHN(HT(Da), HLHN(HT(ta))

The Stack, Most of the Time: Stuff that you write TCP or UDP IP

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

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 Program Application Sockets

Our View of the Stack in Java Program Application Sockets

Sockets in Java • Use java. io. Socket to make a socket that connects

Sockets in Java • Use java. io. Socket to make a socket that connects to a remote computer. • Use java. io. Server. Socket to make a socket that listens for an incoming connection. • Sockets just give bytes, so then need a wrapper.

Code Demo • Simple socket connections

Code Demo • Simple socket connections

Multi-Threaded Servers • To receive multiple connections you can use threads. • See demo.

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

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 Object. Stream wrapper to send Objects.

Conclusion • • The Internet uses a packet based routing system IP. Sockets are

Conclusion • • The Internet uses a packet based routing system IP. Sockets are an easy way to connect between machines. Use the Socket and Server. Socket 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

Next Time: All the data send was total insecure. Next lecture I will show you 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?