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).
Motivation
- Sharing of resources is more efficient
- Price/Performance
- Use equipment for what is is best at
- Centralize administration
- Computers as communication tools
Computer Networks are now everywhere !
- PCs <-> Mainframes
- Automated Tellers
- Embedded Systems
- Communications Systems
- The Internet
Networked Computers - Traditional Uses
- Communications (email)
- File exchange, disk sharing
- Sharing peripherals (printers, tape drives)
- Remote execution
New Uses for Networked Computers
- Information Sharing
- Entertainment, distributed games
- Commerce
- Automation of business processes
- Collaborative computing
Wide variety of type of networks
- circuit switched - telephone system
- packet switched - TCP/IP (many other computer networks).
- we will focus on just a single (important) protocol suite.
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
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.
- Back out via airplane to local FedX office
- Delivered to right office
- Delivered to right person
FedX Layers
Layered Software Systems
- Network software
- Operating systems
- Windowing systems
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.
OSI Reference 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).
OSI and 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 later in the
course.
OSI 7 Layer Model:
- 7 Application
- 6 Presentation
- 5 Session
- 4 Transport
- 3 Network
- 2 Data-Link
- 1 Physical
Programs & Processes
- A program is an executable file.
- A process or task is an instance of a program that is being
executed.
Simplified Network Model
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.
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.
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.
Excercise
- Come up with an example of a layered system.
- Describe the interface and/or peer-to-peer protocols for your
example.