Download csci4220-week01 - Computer Science at RPI

yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Piggybacking (Internet access) wikipedia, lookup

Cracking of wireless networks wikipedia, lookup

Distributed firewall wikipedia, lookup

Wireless security wikipedia, lookup

List of wireless community networks by region wikipedia, lookup

Network tap wikipedia, lookup

Airborne Networking wikipedia, lookup

Recursive InterNetwork Architecture (RINA) wikipedia, lookup

Zero-configuration networking wikipedia, lookup

Computer network wikipedia, lookup

Deep packet inspection wikipedia, lookup

Wake-on-LAN wikipedia, lookup

UniPro protocol stack wikipedia, lookup

Internet protocol suite wikipedia, lookup

Remote Desktop Services wikipedia, lookup

Lag wikipedia, lookup

AppleTalk wikipedia, lookup

CAN bus wikipedia, lookup

Dynamic Host Configuration Protocol wikipedia, lookup

Peer-to-peer wikipedia, lookup

Hypertext Transfer Protocol wikipedia, lookup

Rensselaer Polytechnic Institute
CSCI-4220 – Network Programming
David Goldschmidt, Ph.D.
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 helped
get past the above disadvantages
A computer network is an interconnected
collection of autonomous computers and
 Processes communicate
with one another across
the network
 Such communication is
often transparent to
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
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
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
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
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
What’s the OSI Reference Model?
 The International Standards
Organization (ISO) proposal
for the standardization of
the various protocols used
in computer networks
 A seven-layer protocol stack
In reality, not
all layers are
always used....
The Internet
uses only
four layers:
 Application
 Transport
 Network
 Physical
Each layer on the client side logically
communicates with the same layer on
the server side
intermediate router
Each layer prepends or appends its
information in a header or trailer
HTTP Request
TCP Hdr | HTTP Request
IP Hdr | TCP Hdr | HTTP Request
Ethernet Hdr | IP Hdr | TCP Hdr | HTTP Request | Cksum
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
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
A server is a process that provides access
to 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
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