Transcript PPT

Motivation, Terminology,
Layered systems
(and other random stuff)
Netprog 2002 Network Terminology
1
History and Motivation
First stored-program computer: 1949
 ARPANet 56Kbps: 1970
 TCP/IP: 1972
 IBM Personal Computer: 1981
 Local Area Networks: 1982
 World-Wide Web: 1989
 Java: 1995

Netprog 2002 Network Terminology
2
History and Motivation

Early computers were highly
centralized.
– Single point of failure
– User has to “go to” the computer.

Proliferation of low cost computers
made it possible to get past these 2
primary disadvantages (with a
network).
Netprog 2002 Network Terminology
3
Motivation
Sharing of resources is more efficient
 Price/Performance
 Use each piece of equipment for what it
is best at
 Centralize administration
 Computers as communication tools

Netprog 2002 Network Terminology
4
Rates of Growth

Moore’s Law
– “Number of transistors in chips doubles every 18
months”.
–  Every 10 years, processors are 100 times more
powerful.

Gilder’s Law
– “Bandwidth grows at least three times faster than
computer power”.
–  Assuming bandwidth doubles every 12 months;
every 10 years, it is 1000 times better.
Netprog 2002 Network Terminology
5
Computer Networks are now
everywhere

PCs <-> Mainframes

Automated Tellers

Embedded Systems

Communications Systems

The Internet
Netprog 2002 Network Terminology
6
Networked Computers Traditional Uses
Communication (email)
 File exchange, disk sharing
 Sharing peripherals (printers, tape
drives)
 Remote execution

Netprog 2002 Network Terminology
7
New(er) Uses for Networked
Computers

Entertainment, distributed games
– MP3s!

Commerce
– Automation of business processes

Collaborative computing
– Homework Submission

Worldwide Computing
Netprog 2002 Network Terminology
8
Wide variety of types of
networks

circuit switched
– telephone system

packet switched:
– The Internet (TCP/IP)
Netprog 2002 Network Terminology
9
Network Models
Using a formal model allows us to deal
with various aspects of Networks
abstractly.
 We will look at a popular model (OSI
reference model).
 The OSI reference model is a layered
model.

Netprog 2002 Network Terminology
10
Layering
Divide a task into pieces and then solve
each piece independently (or nearly so).
 Establishing a well defined interface
between layers makes porting easier.
 Major Advantages:

Code Reuse
Extensibility
Netprog 2002 Network Terminology
11
Layering Example: Federal
Express
Letter in envelope, address on outside
 FedX guy adds addressing information,
barcode.
 Local office drives to airport and
delivers to hub.
 Sent via airplane to nearest city.
 Delivered to right office
 Delivered to right person

Netprog 2002 Network Terminology
12
FedX Layers
Letter
Addressed
Envelope
Letter
Addressed
Envelope
Netprog 2002 Network Terminology
13
Layered Software Systems

Network software

Operating systems

Windowing systems
Netprog 2002 Network Terminology
14
Unix is a Layered System
Applications
Libraries
System Calls
Kernel
Netprog 2002 Network Terminology
15
OSI Reference Model
The International Standards Organization
(ISO) proposal for the standardization of
the various protocols used in computer
networks (specifically those networks
used to connect open systems) is called
the Open Systems Interconnection
Reference Model (1984), or simply the
OSI model.
Netprog 2002 Network Terminology
16
OSI Model
Although the OSI model is a just a model
(not a specification), it is generally
regarded as the most complete model (as
well it should be - nearly all of the popular
network protocol suites in use today were
developed before the OSI model was
defined).
Netprog 2002 Network Terminology
17
OSI <-> Network Software
Although this course is about network
programming (and not about networking
in general), an understanding of a
complete network model is essential.
We will look at the OSI Reference Model
in detail.
Netprog 2002 Network Terminology
18
OSI 7 Layer Model:
7
6
5
4
3
2
1
Application
Presentation
Session
Transport
Network
Data-Link
Physical
High level protocols
Low level protocols
Netprog 2002 Network Terminology
19
Simplified Network Model
Process
Process
Interface Protocols
Transport
Transport
Peer-to-peer
Protocols
Network
Network
Data Link
Data Link
Netprog 2002 Network Terminology
20
What’s a Protocol?

An agreed upon convention for
communication.
– both endpoints need to understand the
protocol.
Protocols must be formally defined and
unambiguous!
 We will study lots of existing protocols
and perhaps develop a few of our own.

Netprog 2002 Network Terminology
21
Process
Process
Interface Protocols
Transport
Transport
Peer-to-peer
Protocols
Network
Network
Data Link
Data Link
Interface and
Peer-to-peer
Protocols
Interface protocols describe the
communication between layers on the
same endpoint.
 Peer-to-peer protocols describe
communication between peers at the
same layer.

Netprog 2002 Network Terminology
22
Thought Exercise

Come up with an example
of a layered system.

Describe the interface and
peer-to-peer protocols for
your example.
Netprog 2002 Network Terminology
23
Programs & Processes
A program is an executable file.
 A process or task is an instance of a
program that is being executed.
 A thread is a light-weight process.
 A single program can generate multiple
processes or contain multiple threads.

Netprog 2002 Network Terminology
24
Client - Server

A server is a process - not a machine !

A server waits for a request from a
client.

A client is a process that sends a
request to an existing server and
(usually) waits for a reply.
Netprog 2002 Network Terminology
25
Client - Server Examples

Server returns the time-of-day.

Server returns a document.

Server prints a file for client.

Server does a disk read or write.

Server records a transaction.
Netprog 2002 Network Terminology
26
Servers
Servers are generally more complex
(more interesting).
 2 Basic types of servers:

Iterative - server handles one client at a
time.
Concurrent - server handles many clients
at a time.

We will study the differences later.
Netprog 2002 Network Terminology
27
Peer-to-peer Computing

Clients are also servers, a.k.a. servents.

Decentralized control.

E.g., Gnutella, Freenet.
Netprog 2002 Network Terminology
28
Java and Multithreading
In Java, it is possible to create
multithreaded programs.
 The java.lang package contains a
Thread class.
 The java.lang.Object class
contains internal locks for thread
synchronization.

Netprog 2002 Network Terminology
29