25 april 2000 seescoaseescoa stww - programma d3.1: components in protocol stacks d3.2: guidelines...
TRANSCRIPT
25 April 2000
S
E
E
S
C
O
A STWW - Programma
D3.1: Components in protocol stacks
D3.2: Guidelines for component development
Yolande Berbers
S
E
E
S
C
O
A
acknowledgements
part of the presented material is based on
research done in DistriNet around protocol stacks
Ph.D. of Frank Matthijs:
Component Framework Technology for Protocol Stacks
S
E
E
S
C
O
A
Outline
introduction to the domain
key abstractions used
example: a simple router
component granularity and component
design
example: fragmentation
S
E
E
S
C
O
A
Protocol stacks: use
InternetInternet
S
E
E
S
C
O
A
Protocol stacks: how they work
Properties
communication in layers
other protocol in each layer
messages between layer n and layer n+1
Manage-Manage-mentment
Secre-Secre-tariattariat
Dispatch-Dispatch-inging
S
E
E
S
C
O
A
protocol stacks: basic functionality
data manipulation operations
copying to/from interface
error detection
buffering for retransmission
fragmentation and reassembly
data encoding
control operations
flow control, congestion control
traffic shaping
detecting network problems
acknowledgements
multiplexing
timestamping
address determination
S
E
E
S
C
O
A
outline
introduction to the domain
key abstractions used
examples
component granularity and component
design
example: fragmentation
S
E
E
S
C
O
A
key abstractions used
components
basic building block
consists of one of more objects
has one input and one output to receive and produce Packet objects
for most data manipulation and control operations
examples
fragmentationorderingerror detection
S
E
E
S
C
O
A
key abstractions used
connectors
programmable entity
responsible for interaction between components
is glue between components
resolves conflicts if interfaces do not matchallows more reuse as interfaces do not have to match exactly
components do not know with which other components they are interacting: interaction is through connector
Packet object
represents a data packet that traverses the protocol stack
components can add met-information to a packet, which will be used by other components “downstream”
S
E
E
S
C
O
A
outline
introduction to the domain
key abstractions used
examples
component granularity and component
design
example: fragmentation
S
E
E
S
C
O
A
composition of protocol stacks
Variations in functionality
Depending on application needs
Depending on network technology
Built from basic operations
routingrouting
fragmentationfragmentation
retransmissionretransmission
orderingordering
reassemblyreassembly
aknowledgementaknowledgement
Components
S
E
E
S
C
O
A
example: TCP/IP over internet
composition of protocol stacks
S
E
E
S
C
O
A
example: TCP/IP over internet
fragmentationfragmentation
reassemblyreassembly small packetssmall packets
composition of protocol stacks
S
E
E
S
C
O
A
example: TCP/IP over internet
fragmentationfragmentation
reassemblyreassembly
retransmissionretransmission
aknowledgementaknowledgement
loss of packetsloss of packets
composition of protocol stacks
S
E
E
S
C
O
A
example: TCP/IP over internet
routingrouting
orderingordering
fragmentationfragmentation
reassemblyreassembly
retransmissionretransmission
aknowledgementaknowledgement
alternative routesalternative routes
composition of protocol stacks
S
E
E
S
C
O
A
example: reliable connection
routingrouting
orderingordering
fragmentationfragmentation
reassemblyreassembly
retransmissionretransmission
aknowledgementaknowledgement
composition of protocol stacks
S
E
E
S
C
O
A
example: reliable connection
fragmentationfragmentation
reassemblyreassembly small packetssmall packets
routingrouting
orderingordering
retransmissionretransmission
aknowledgementaknowledgement
composition of protocol stacks
S
E
E
S
C
O
A
example: reliable connection
routingrouting
orderingordering
fragmentationfragmentation
reassemblyreassembly
retransmissionretransmission
aknowledgementaknowledgement
reliablereliable
XX
composition of protocol stacks
S
E
E
S
C
O
A
example: reliable connection
routingrouting
orderingordering
fragmentationfragmentation
reassemblyreassembly just one routejust one route
XX
composition of protocol stacks
S
E
E
S
C
O
A
summary: reliable connection
fragmentationfragmentation
reassemblyreassembly
composition of protocol stacks
S
E
E
S
C
O
A
summary: TCP/IP over internet
routingrouting
orderingordering
fragmentationfragmentation
reassemblyreassembly
retransmissionretransmission
aknowledgementaknowledgement
composition of protocol stacks
S
E
E
S
C
O
A
example: simple router
InRouter connector determines if packet is local or must be forwarded
OutRouter component determines to which interface/subnet packet should go
Fragmenter component determines maximal size for packet and splits it
Reassembler component reconstructs larger packet from fragments
composition of protocol stacks
S
E
E
S
C
O
A
simple router version 1
Reassembler
InRouter
OutRouter
Fragmenter
local
interface 1interface 2
forward
S
E
E
S
C
O
A
simple router version 2
Reassembler
InRouter
OutRouter
Fragmenter
local
interface 1interface 2
forward
S
E
E
S
C
O
A
simple router version 3
Reassembler
InRouter
OutRouter
Fragmenter
local
interface 1interface 2
forward
S
E
E
S
C
O
A
outline
introduction to the domain
key abstractions used
examples
component granularity and component
design
example: fragmentation
S
E
E
S
C
O
A
component granularity
coarse grain
more optimization opportunities
fine grain
more potential for reuse
results in a high degree of modularity
leads to a high degree of precision for selection
best of both worlds
small components correspond to primitive functions
components can be nested
S
E
E
S
C
O
A
component design
iterative generalization steps
method 1: study a number of concrete implementations
discover patterns they use
try to adapt them to make them usable in other circumstances
method 2: generalize input and output of algorithm
derive general properties that all algorithms share
S
E
E
S
C
O
A
outline
introduction to the domain
key abstractions used
examples
component granularity and component
design
example: fragmentation
S
E
E
S
C
O
A
example: fragmentation
IP
fragment offset (no sequence number), bit telling if more fragments, identification field
ATM AAL 3/4
BOM:EOM/COM/SSM indication, message identifier field, sequence number
ATM AAL 5
bit for last fragment, assumes only one message sent at a time, assumes delivery in sequence
generalized abstract information
one bit first fragment, one bit last fragment, sequence number range, identification
S
E
E
S
C
O
A
conclusion
proposed components and connectors concepts
special case for protocol stacks
show nicely how well the concepts can be used to create different protocol stacks from the same set of components
what is needed
generalization of these concepts