25 april 2000 seescoaseescoa stww - programma d3.1: components in protocol stacks d3.2: guidelines...

31
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

Upload: georgiana-mathews

Post on 02-Jan-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 2: 25 April 2000 SEESCOASEESCOA 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

Page 3: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 4: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

Protocol stacks: use

InternetInternet

Page 5: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 6: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 7: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

outline

introduction to the domain

key abstractions used

examples

component granularity and component

design

example: fragmentation

Page 8: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 9: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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”

Page 10: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

outline

introduction to the domain

key abstractions used

examples

component granularity and component

design

example: fragmentation

Page 11: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 12: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: TCP/IP over internet

composition of protocol stacks

Page 13: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: TCP/IP over internet

fragmentationfragmentation

reassemblyreassembly small packetssmall packets

composition of protocol stacks

Page 14: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 15: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 16: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: reliable connection

routingrouting

orderingordering

fragmentationfragmentation

reassemblyreassembly

retransmissionretransmission

aknowledgementaknowledgement

composition of protocol stacks

Page 17: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: reliable connection

fragmentationfragmentation

reassemblyreassembly small packetssmall packets

routingrouting

orderingordering

retransmissionretransmission

aknowledgementaknowledgement

composition of protocol stacks

Page 18: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: reliable connection

routingrouting

orderingordering

fragmentationfragmentation

reassemblyreassembly

retransmissionretransmission

aknowledgementaknowledgement

reliablereliable

XX

composition of protocol stacks

Page 19: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

example: reliable connection

routingrouting

orderingordering

fragmentationfragmentation

reassemblyreassembly just one routejust one route

XX

composition of protocol stacks

Page 20: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

summary: reliable connection

fragmentationfragmentation

reassemblyreassembly

composition of protocol stacks

Page 21: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

summary: TCP/IP over internet

routingrouting

orderingordering

fragmentationfragmentation

reassemblyreassembly

retransmissionretransmission

aknowledgementaknowledgement

composition of protocol stacks

Page 22: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 23: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

simple router version 1

Reassembler

InRouter

OutRouter

Fragmenter

local

interface 1interface 2

forward

Page 24: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

simple router version 2

Reassembler

InRouter

OutRouter

Fragmenter

local

interface 1interface 2

forward

Page 25: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

simple router version 3

Reassembler

InRouter

OutRouter

Fragmenter

local

interface 1interface 2

forward

Page 26: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

outline

introduction to the domain

key abstractions used

examples

component granularity and component

design

example: fragmentation

Page 27: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 28: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 29: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

S

E

E

S

C

O

A

outline

introduction to the domain

key abstractions used

examples

component granularity and component

design

example: fragmentation

Page 30: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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

Page 31: 25 April 2000 SEESCOASEESCOA STWW - Programma D3.1: Components in protocol stacks D3.2: Guidelines for component development Yolande Berbers

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