computer networking {week 1 }
DESCRIPTION
Rensselaer Polytechnic Institute CSCI-4220 – Network Programming David Goldschmidt, Ph.D. Computer Networking {week 1 }. Networks. Early computers were highly centralized Bottleneck Single point of failure Users must physically go to the computer - PowerPoint PPT PresentationTRANSCRIPT
Computer Networking{week 1}
Rensselaer Polytechnic InstituteCSCI-4220 – Network ProgrammingDavid Goldschmidt, Ph.D.
Networks
Early computers were highly centralized Bottleneck Single point of failure Users must physically go
to the computer
Proliferation of low-cost computers connected via a network helpedget past the above disadvantageswhat advantages do
computer networks
provide us?
Computer networks
A computer network is an interconnected collection of autonomous computers and devices Processes communicate
with one another acrossthe network
Such communication isoften transparent toend-users
P
Q
Types of networks
Hierarchical networks: Nodes are not equal Nodes interconnect in
a strict pattern Single points of failure exist!
Heterarchical networks: Nodes are equal(ish) Nodes connected to produce multiple paths
Are you connected?
The Internet (1969) is a network that’s Global Decentralized Redundant Made up of many different types of
machines Both hierarchical and heterarchical Constantly changing Humungous
how many machines
are on the Internet?
Interprocess communication
P
Q
Network models
We use a formal network model to organize and abstract various aspects of computer (and other) networks Effectively hides the (messy)
implementation details Defines how communication occurs
across the network Often uses a layered approach
Layered models
A layered model divides tasks/responsibilities into pieces that are organized into layers Each piece is “solved” independently Well-defined (and well-documented)
interfaces between each layer are critically important
Each layer often logically “connects” to the same layer of another instance
why?
what advantages
do layered models
provide us?
Layering
Use a layered model to design an operating system by dividing it into N levels or layers Layer 0 is the hardware Layer 1 is the kernel Layer N is the top-level
user interface (GUI) Each layer uses functions
and services of the layer(or layers) beneath it
Open Systems Interconnection (OSI) Reference Model
What’s the OSI Reference Model? The International Standards
Organization (ISO) proposalfor the standardization ofthe various protocols usedin computer networks
A seven-layer protocol stack
Open Systems Interconnection (OSI) Reference Model
In reality, notall layers arealways used....
The Internet uses only four layers: Application Transport Network Physical
Internet traffic (jam)
Each layer on the client side logically communicates with the same layer onthe server side
intermediate router
PQ clientserver
interfaces exist
between layers
Internet messages
Each layer prepends or appends its information in a header or trailer
P
Ethernet Hdr | IP Hdr | TCP Hdr | HTTP Request | Cksum
IP Hdr | TCP Hdr | HTTP Request
TCP Hdr | HTTP Request
HTTP Request
Protocols
A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints All endpoints must “understand” and
correctly implement the protocol Protocols must be formally defined,
unambiguous, and well-documented Protocols should address error conditions
and unexpected scenarios
Layered model protocols
In a layered model, two types of protocols: Interface protocols describe
communication between layers (on the same endpoint)
Peer-to-peer protocols describe communication between two endpoints at the same layer
PQ
Clients and servers
A server is a process that provides accessto a centralized resource or service The term “server” might also refer to the
machine on which the server is running
Client/server communication: Server waits for incoming requests from
clients A client is a process that sends
request(s) to a server and (usually) waits for a response
what are some examples of
client/server comunication?
Servers
Servers typically run 24/7 and are more complex (more interesting) than clients
Types of servers: An iterative server handles one request
at a time A concurrent server can handle multiple
client requests (almost) simultaneously
how are concurrent
servers implemented?