Professional Documents
Culture Documents
Communication
Customers can
Browse the inventory
Search for items
Order items
Router
Internet
Ethernet LAN
Router
Subscriber line
Advantages
Smaller units of development
Reuse
Maintainability
Portability
Layering
Each subsystem represents a different level of
abstraction
Layers are built on top of each other
Partitioning
Each subsystem deals with one aspect of the
functionality of the system
Each layer
Has a well defined interface
Provides services for the upper
Layer n layer using the lower layers
Layer n-1 Hides parts of the lower layers
Layer 2
Layer 1
Operating systems
Hardware abstraction layer, kernel layer, applications
Application
Kernel
HAL
Kernel interface:
int read( char* buffer, int len )
Advantages
Increasing levels of abstraction during design
Eases enhancements
Isolates code changes
Possible specification of interface standards
Problems
Identification of a clean layer
Overhead
Sending:
Each layer passes data to the one below
The lowest layer physically transmits it
Receiving:
The lowest layer receives data
Each layer passes it up till the top layer is reached
1. Physical layer
Physical transmission of bits and bytes as (electric)
signals
E.g. modem, wireless, smoke signs,
3. Network layer
End-to-end data transmission between computers in
all connected networks
Accepting and forwarding packets, routing
4. Transport layer
End-to-end data transmission between processes on
computers
E.g. ports, flow control, ordering
5. Session layer
Provides a (virtual) connection between processes
Build up and tear down connections
6. Presentation layer
Defines how the data being transmitted should be
represented
7. Application layer
Application-specific protocols
1. Host-to-network layer
Physical data transmission between directly connected
stations
2. Internet layer
End-to-end data transmission between computers in all
connected networks
3. Transport layer
End-to-end data transmission between processes on
computers
4. Application layer
Application-specific protocols
Application layer
Session layer
ISO/OSI
Standard legislated by officially recognized body
First model, then protocols
Universality
Complex implementations
Bad timing
Internet
Standard adopted due to widespread use
Protocols built the model
Simplicity
Simple, robust (and available) implementations
Universitt Duisburg-Essen Torben Weis 25
Verteilte Systeme
NETWORK LAYER
Advantages
Fixed bandwidth (guaranteed capacity)
Low variance in latency (almost constant)
E.g. video and audio transmission
Disadvantages
Extra overhead and delay because of setup and
teardown
Waste of resources when low utilization
Low scalability
Advantages
Efficient resource usage
No setup required
Flexible
Disadvantages
No guarantee in delay and bandwidth
(quality of service)
Connection-oriented communication
Error-free transmission (mostly)
Correct ordering
No data drop or duplicates
Flow control
E.g. TCP (Transmission Control Protocol)
Connectionless communication
Best effort delivery of datagrams
E.g. UDP (User Datagram Protocol)
Sender Receiver
Sender Receiver
Data
Connection-oriented
Much overhead
Convenient to use
Connectionless
Less overhead
Datagram ordering, dealing with datagram loss is left
to application
E.g. for audio and video streaming
Structure:
Request line with
HTTP method (GET, HEAD, POST, PUT,)
Requested resource
Header with optional header fields
E.g. Content-Length
Body with content (e.g. POST)
Structure
First line with status code
E.g. 200 OK, 404 Not Found
Header with optional header fields
Body with content of requested resource
Query=how+does+http+work
HTTP/1.1 200 OK
Connection: close
Date: Mon, 12 Jul 2004 17:19:58 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 39455
Content-Type: text/html
Expires: Mon, 12 Jul 2004 17:19:58 GMT
Cache-control: private
<HTML>
<HEAD>
Content-Length: 999999999?
Many implementations wait until response is complete
Transfer-Encoding: chunked
Send data in chunks (announce length of each chunk)
Good HTTP implementations support pushing data
chunks to application for continuous processing