1
Lecture #4: Network Architecture Lecture #4: Network Architecture
- Network Software - Network Software
prof. Boyanov prof. Boyanov
C o n t e n t s C o n t e n t s
Characteristics and Structure of the Network Characteristics and Structure of the Network Software
Software
Layered SW Design Layered SW Design
Connectivity ServicesConnectivity Services
Service PrimitivesService Primitives
2
18
12 8
2
Network Software:
Network Software:
Characteristics Characteristics
Based on structural programming Based on structural programming approach
approach
Network Layers: hierarchy of SW Network Layers: hierarchy of SW modules providing communication modules providing communication
services to the next upper layer services to the next upper layer
Transparency of the layered structure: Transparency of the layered structure:
independence of layer
independence of layer nn of the of the
implementation of the lower layers implementation of the lower layers
3
Network Software:
Network Software:
Structure Structure
Layered structure:Layered structure:
Protocol - rules and convention of data Protocol - rules and convention of data exchange between layer
exchange between layer nn of host1 and layer of host1 and layer nn of host2 of host2
Peers - entities that locally implement the Peers - entities that locally implement the functionality of a given layer
functionality of a given layer
Interface - the set of primitive operations and Interface - the set of primitive operations and services that lower layer provide to the upper services that lower layer provide to the upper oneone
Physical media - the signal carrier that is used Physical media - the signal carrier that is used by the 1
by the 1stst layer for transmission layer for transmission 1/9
4
Network Software Network Software
Considerations:Considerations:
Virtual exchange between the Virtual exchange between the equilevel layers of two hosts equilevel layers of two hosts
according the protocols according the protocols
Physical exchange between the Physical exchange between the
neighbor layers of one host according neighbor layers of one host according
to the interface to the interface
Portability of the layers: based on Portability of the layers: based on clear simple interfaces and well
clear simple interfaces and well
defined set of functions of each layer defined set of functions of each layer
5
Network Architecture Network Architecture
Network architecture - the set of layers Network architecture - the set of layers and protocols; ignores the interfaces as and protocols; ignores the interfaces as
the interfaces of the hosts in a network the interfaces of the hosts in a network
may differ may differ
Protocol stack - the list of protocol Protocol stack - the list of protocol
hierarchy in the network; matches the hierarchy in the network; matches the
layered structure layered structure
Analogies to the network protocol stackAnalogies to the network protocol stack 1/10
6
Network Architecture Network Architecture
Example network architecture:Example network architecture:
5-layer protocol stack5-layer protocol stack
Layer 5Layer 5: Application process generates message M : Application process generates message M and deposit it to Layer 4
and deposit it to Layer 4
Layer 4Layer 4: Extends M with the : Extends M with the headerheader H H44 containing containing control information (ordering, size, time, etc.) and control information (ordering, size, time, etc.) and
deposits H
deposits H44M to Layer 3M to Layer 3
Layer 3Layer 3: Brakes H: Brakes H44M into smaller fixed size packets M into smaller fixed size packets (e.g. H
(e.g. H44MM11 and M and M22); extends them with its header ); extends them with its header HH33; selects an outgoing line for transmission and ; selects an outgoing line for transmission and
passes the packets to Layer 2 passes the packets to Layer 2
Layer 2Layer 2: Adds its header and : Adds its header and trailertrailer to each to each
packet and deposit them to Layer 1 for physical packet and deposit them to Layer 1 for physical
transmission transmission
1/11
7
Network Architecture Network Architecture
Receiving of the message Receiving of the message MM at the at the destination machine consists in:
destination machine consists in:
• moving of its packets upward the layers, moving of its packets upward the layers,
• stripping of control header and trailers,stripping of control header and trailers,
• merging the packets in a message andmerging the packets in a message and
• interpreting the message by the applicationinterpreting the message by the application
Lower layers have Lower layers have hardwarehardware implementation
implementation
Medium layer[s] have Medium layer[s] have firmwarefirmware implementation
implementation
High layers have High layers have softwaresoftware implementation implementation
8
Layers Design Layers Design
Layer’s design issues:Layer’s design issues:
identification mechanism for senders/receivers - identification mechanism for senders/receivers - process ID, machine ID, net ID, etc.;
process ID, machine ID, net ID, etc.;
data transfer mode - data transfer mode - simplexsimplex, , half-duplexhalf-duplex and and full-duplex
full-duplex
support of multiple logical channels with priority support of multiple logical channels with priority scale
scale
Application of error-detecting and error-correcting Application of error-detecting and error-correcting codes and mechanisms for feed-back
codes and mechanisms for feed-back
ordering protocols for the packets in messagesordering protocols for the packets in messages
buffering between fast and slow processesbuffering between fast and slow processes
9
Interfaces and Services Interfaces and Services
TerminologyTerminology
Entities: the active elements of each layer - either Entities: the active elements of each layer - either software or hardware
software or hardware
Peer Entities: same layer entities of different Peer Entities: same layer entities of different machines
machines
Service Provider: Layer Service Provider: Layer nn entity that serves entity that serves requests of Layer
requests of Layer nn+1 entities+1 entities
Service User: Layer Service User: Layer nn entity that requests service entity that requests service from Layer
from Layer nn-1 entities-1 entities
Class of services: Functional set of services in a Class of services: Functional set of services in a layer that differs in quality (e.g. fast/slow,
layer that differs in quality (e.g. fast/slow, expensive/cheap, reliable/unreliable ...)
expensive/cheap, reliable/unreliable ...)
10
Interfaces and Services Interfaces and Services
Terminology (Abbreviations):Terminology (Abbreviations):
SAPSAP (Service Access Point) - the unique address (Service Access Point) - the unique address of for access to the services of Layer
of for access to the services of Layer nn from the from the Layer
Layer nn+1 (Analogs: phone #, street address...)+1 (Analogs: phone #, street address...)
IDUIDU (Interface Data Unit): fixed data format for (Interface Data Unit): fixed data format for exchange between two layers; it consists of
exchange between two layers; it consists of SDUSDU and and ICIICI
SDUSDU (Service Data Unit): information passed (Service Data Unit): information passed through the network to the peer entity
through the network to the peer entity
ICIICI (Interface Control Information): control (Interface Control Information): control information assisting the lower layer entity to information assisting the lower layer entity to
process the request (e.g. SDU’s length) ….
process the request (e.g. SDU’s length) ….
1/12
11
Interfaces and Services Interfaces and Services
PDUPDU (Protocol Data Unit): fragment of (Protocol Data Unit): fragment of
SDU (e.g. packet) that is processed by the SDU (e.g. packet) that is processed by the
lower Layer N. PDU contains also control lower Layer N. PDU contains also control
information in header. Header identifies information in header. Header identifies
sequence number of PDU, type of the data sequence number of PDU, type of the data
(control/information) etc.
(control/information) etc.
12
Connection-Oriented and Connection-Oriented and
Connectionless Services Connectionless Services
Connection-orientedConnection-oriented service: establishes the service: establishes the connection from point to point; caries the
connection from point to point; caries the
exchange, preserving the order of the bitstream exchange, preserving the order of the bitstream
and releases the connection. Analogy to and releases the connection. Analogy to
telephone system.
telephone system.
ConnectionlessConnectionless service: each message is service: each message is
provided with full destination address and it is provided with full destination address and it is
routed through the system independently to routed through the system independently to
rest of message stream.
rest of message stream.
QoSQoS (quality of service) - reliability to losing (quality of service) - reliability to losing data
data 13
13
Quality of Services (QoS) Quality of Services (QoS)
Implementation of reliability: based on Implementation of reliability: based on acknowledgment by the receiver -
acknowledgment by the receiver -
acknowledge receipt for each message acknowledge receipt for each message
Acknowledge receipts produceAcknowledge receipts produce
– communication overhead and communication overhead and – delaysdelays
Application: file transferApplication: file transfer
14
Reliable Connection- Reliable Connection-
Oriented Service Oriented Service
2 methods:2 methods:
Message StreamMessage Stream - preserves message - preserves message
boundaries. Example: stream of pages for boundaries. Example: stream of pages for
phototype printing phototype printing
Byte StreamByte Stream - brakes the message sequence - brakes the message sequence into stream of ordered bytes: Example
into stream of ordered bytes: Example
exchange between a terminal and a remote exchange between a terminal and a remote
system system
1/13
15
Unreliable Connection- Unreliable Connection-
Oriented Service Oriented Service
Application for systems where delays Application for systems where delays are unacceptable, e.g. real-time
are unacceptable, e.g. real-time systems for
systems for
voice communicationvoice communication
on-line image transmissionon-line image transmission
16
Unreliable Connectionless Unreliable Connectionless
Service Service
Application - all functions where:Application - all functions where:
– real-time, interactive or on-line features real-time, interactive or on-line features are not essential but
are not essential but
– the cost of communications has to be the cost of communications has to be minimized and also
minimized and also
– reliability is not of crucial importancereliability is not of crucial importance
Example: standard e-mail servicesExample: standard e-mail services
Implementation: datagrams - not Implementation: datagrams - not
acknowledged connectionless service acknowledged connectionless service
17
Reliable Connectionless Reliable Connectionless
Service Service
Application: non-interactive short messages Application: non-interactive short messages exchange with guaranteed reliability
exchange with guaranteed reliability
Example: banking, military, remote queries in Example: banking, military, remote queries in data bases
data bases
Implementation: acknowledged Implementation: acknowledged datagramsdatagrams
Variation: Request-Replay services for one-Variation: Request-Replay services for one- cycle interaction. Mostly in remote data-base cycle interaction. Mostly in remote data-base
access and another client-server applications access and another client-server applications
18
Service Primitives Service Primitives
Set of operations - Set of operations - primitivesprimitives - forms the - forms the access language to a service. Primitives:
access language to a service. Primitives:
request some elementary service action;request some elementary service action;
inform the service process for some event in the inform the service process for some event in the peer entity
peer entity
4 classes of service primitives 4 classes of service primitives
Parameters of the primitives are usuallyParameters of the primitives are usually
initiating and target entities (peers);initiating and target entities (peers);
type of the requested service;type of the requested service;
connection parameters (e.g. message size, type connection parameters (e.g. message size, type of coding etc.).
of coding etc.).
1/14
19
Confirmed and Confirmed and Unconfirmed Services Unconfirmed Services
Confirmed ServicesConfirmed Services: the exchange of primitives : the exchange of primitives between the peer entities follows the pattern:
between the peer entities follows the pattern:
requestrequest
indicationindication
responseresponse
confirmconfirm Unconfirmed ServicesUnconfirmed Services: the exchange of : the exchange of
primitives between the peer entities follows the primitives between the peer entities follows the
pattern:
pattern:
requestrequest
indicationindicationApplication: basically for
connection oriented services
reliable services
Application: basically for
connectionless services
unreliable services
20
Service Primitives Service Primitives Exchange (Example) Exchange (Example)
1)1) CONNECT.requestCONNECT.request (request for connection to be (request for connection to be established)
established)
2)2) CONNECT.indicationCONNECT.indication (signal the called party) (signal the called party)
3)3) CONNECT.responceCONNECT.responce (callee accepts/rejects the (callee accepts/rejects the connection)
connection)
4)4) CONNECT.confirmCONNECT.confirm (Caller notified for acceptance) (Caller notified for acceptance)
5)5) DATA.requestDATA.request (request data to be sent) (request data to be sent)
6)6) DATA.indicationDATA.indication (receive data request) (receive data request)
7)7) DATA.requestDATA.request (grant data to caller) (grant data to caller)
8)8) DATA.indicationDATA.indication (caller accepts the data) (caller accepts the data)
9)9) DISCONNECT.requestDISCONNECT.request (Caller requests release of (Caller requests release of the connection)
the connection)
10)10) DISCONNECT.indicationDISCONNECT.indication (request for connection (request for connection to be established)
to be established)
1/15
21
Service and Protocols Service and Protocols
If the protocols are not distinguished from If the protocols are not distinguished from
the services than any change in the the services than any change in the
protocol is visible to the user and limits protocol is visible to the user and limits
the portability of the netware.
the portability of the netware.
Service Protocol
Set of primitives (i.e.
elementary operations)
provided to the upper layer and using the layer
interface
Set of rules of the
exchange between the peer entities of a layer (e.g.
message format, packet length etc.)
Transparent
implementation
Used in implementation of services
22
23
24
25
26
27
28