home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-lsma-requirements-00.txt < prev    next >
Text File  |  1997-07-30  |  42KB  |  1,286 lines

  1. INTERNET DRAFT                                       R Briscoe
  2. Large-scale Multicast Applications Working Group     P Bagnall
  3. Expiration: 29 January 1998                            BT
  4.                                                      29 July 1997
  5.  
  6.                  Taxonomy of Communication Requirements
  7.                  for Large-scale Multicast Applications
  8.  
  9.                    draft-ietf-lsma-requirements-00.txt
  10.  
  11. Status of this Memo
  12.  
  13.      This document is an Internet-Draft.  Internet-Drafts are working
  14.      documents of the Internet Engineering Task Force (IETF), its
  15.      areas, and its working groups.  Note that other groups may also
  16.      distribute working documents as Internet-Drafts.
  17.  
  18.      Internet-Drafts are draft documents valid for a maximum of six
  19.      months and may be updated, replaced, or obsoleted by other
  20.      documents at any time.  It is inappropriate to use Internet-
  21.      Drafts as reference material or to cite them other than as
  22.      ``work in progress.''
  23.  
  24.      To learn the current status of any Internet-Draft, please check
  25.      the ``1id-abstracts.txt'' listing contained in the Internet-
  26.      Drafts Shadow Directories on ftp.is.co.za (Africa),
  27.      nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
  28.      ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
  29.  
  30.  
  31. Abstract
  32.  
  33. The intention of this draft is to define a classification system for the
  34. communication requirements of any large-scale multicast application
  35. (LSMA). It is very unlikely one protocol can achieve a compromise
  36. between the diverse requirements of all the parties involved in any
  37. LSMA. It is therefore necessary to understand the worst-case scenarios
  38. in order to minimise the range of protocols needed. Dynamic protocol
  39. adaptation is likely to be necessary which will require logic to map
  40. particular combinations of requirements to particular mechanisms.
  41. Standardising the way that applications define their requirements is a
  42. necessary step towards this. Classification is a first step towards
  43. standardisation.
  44.  
  45. 1. Introduction
  46. ===============
  47.  
  48. This taxonomy consists of a large number of parameters that are
  49. considered useful for description of communication requirements of
  50. LSMAs. To describe a particular application, each parameter would be
  51. assigned a value. Typical ranges of values are given wherever possible.
  52. Failing this, the type of any possible values is given. The parameters
  53. are collected into ten or so higher level categories, but this is purely
  54. for convenience.
  55.  
  56. The parameters are pitched at a level considered meaningful to
  57. application programmers. However, they describe communications not
  58. applications - the terms "3D virtual world", or "shared TV" might imply
  59. communications requirements, but they don't accurately describe them.
  60. Assumptions about the likely mechanism to achieve each requirement are
  61. avoided where possible. The exception to this is that receiver initiated
  62. join to multicast address groups [refmcast] on an open access Internet
  63. is assumed.
  64.  
  65. While the parameters describe communications, it will be noticed that
  66. few requirements concerning routing etc. are apparent. This is because
  67. applications have few direct requirements on these second order aspects
  68. of communications. Requirements in these areas will have to be inferred
  69. from application requirements (e.g. latency).
  70.  
  71. The taxonomy is likely to be useful in a number of ways:
  72. -    most simply, it can be used as a checklist to create a requirements
  73.   statement for a particular LSMA. Example applications will be classified
  74.   [bagnall97] using the taxonomy in order to exercise (and improve) it
  75. -    because strictest requirement have been defined for many
  76.   parameters, it will be possible to identify worst case scenarios for the
  77.   design of protocols
  78. -    because the scope of each parameter has been defined (per session,
  79.   per receiver etc.), it will be possible to highlight where heterogeneity
  80.   is going to be most marked
  81. -    a step towards standardisation of the way LSMAs define their
  82.   communications requirements. This could lead to standard APIs between
  83.   applications and protocol adaptation middleware
  84. -    identification of limitations in current Internet technology for
  85.   LSMAs to be added to the LSMA limitations draft [limitations]
  86. -    identification of gaps in Internet Engineering Task Force (IETF)
  87.   working group coverage
  88.  
  89. This approach is intended to complement that used where application
  90. scenarios for Distributed Interactive Simulation (DIS) are proposed
  91. [scenarios] in order to generate network design metrics (values of
  92. communications parameters). Instead of creating the communications
  93. parameters from the applications, we try to imagine applications that
  94. might be enabled by stretching communications parameters.
  95.  
  96. The above introduction assumes all the items under the "Further Work"
  97. section (near the end) have been completed. As they haven't, the reader
  98. is advised to read that section next!
  99.  
  100. 2. Definitions
  101. ==============
  102.  
  103. The following terms have no agreed definition, so they will be defined
  104. for this document.
  105.  
  106. Session
  107.      a happening or gathering consisting of flows of information related
  108.      by a common description that persists for a non-trivial time (more
  109.      than a few seconds) such that the participants (be they humans or
  110.      applications) are involved and interested at intermediate times
  111.      may be defined recursively as a super-set of other sessions
  112. Secure session
  113.      a session with restricted access
  114.      
  115. A session or secure session may be a sub and/or super set of a multicast
  116. group. A session can simultaneously be both a sub and a super-set of a
  117. multicast group by spanning a number of groups while time-sharing each
  118. group with other sessions.
  119.  
  120. 2.1. Definitions of Roles
  121. =========================
  122. Below is an attempt to list all the possible roles in an LSMA. In any
  123. particular LSMA, many of these roles will merge and many will not be
  124. necessary. In order to model the information flows in an LSMA (the comms
  125. parameters) it is generally essential to have a model of the roles. This
  126. would require the linkages between the roles to be defined for the
  127. specific application in question. This approach is standardised in the
  128. Open Distributed Processing Reference Model [rmodp] where these are
  129. called the Information Model and the Enterprise Model respectively.
  130. Security policy owner
  131.      defines policy within which sessions can be created for a security
  132.      domain (e.g. corporate security policy)
  133. Party liable (to some degree) for information accuracy
  134.      a role that may be established to oversee the self-regulation of
  135.      information providers, e.g. Stock Exchange, IEEE conference,
  136.      Compuserve, Internet Watch Foundation
  137. Session owner
  138.      has original idea to set up session and sets Terms and Conditions
  139.      within constraints of above parties
  140. Session creator
  141.      e.g. assistant of session owner, or some session creation service
  142. Session secretary
  143.      advertises or negotiates timing etc
  144. Membership rule creator
  145.      Rules may be different for different roles (e.g. senders v.
  146.      receivers)
  147. List controller(s)
  148.      maintain membership list based on membership rule and control and
  149.      negotiate inclusion in list
  150. Access manager(s)
  151.      trusted by list controller to manage access to session, e.g.
  152.      handing out keys
  153. Security session members
  154.      potential participants, e.g. those that hold keys
  155. Participants
  156.      active senders and receivers
  157. Senders
  158. Receivers
  159. Disallowed participants
  160.      actively black-listed as opposed to just not invited
  161. Media distributors
  162.      more formal role than just senders in an interactive application
  163. Billable parties
  164.      pay for participants, e.g. participant's company
  165. Payment Brokers
  166.      banking services - per participant
  167. Clearing system
  168.      connects payment brokers
  169. Certification authorities (CAs)
  170.      Authenticate parties - per participant
  171. Certification hierarchy
  172.      connects CAs
  173.  
  174. 3. Taxonomy
  175. ===========
  176.  
  177. 3.1 Summary of Communications Parameters
  178. ========================================
  179.  
  180. Before the communications parameters are defined, typed and given worst-
  181. case values, they are simply listed for convenience. Also for
  182. convenience they are collected under classification headings.
  183.  
  184. Reliability
  185.      packet loss
  186.           Transactional
  187.           Guaranteed
  188.           Tolerable loss
  189.           Semantic loss
  190.      component reliability
  191.           fail-over time
  192.           mean time between failures
  193.  
  194. Ordering
  195.      Ordering type
  196.  
  197. Timeliness
  198.      Hard/soft real-time
  199.      Synchronicity
  200.      Burstiness
  201.      Jitter
  202.      expiry
  203.      latency
  204.      optimum bandwidth
  205.      tolerable bandwidth
  206.      required by time and tolerance
  207.      host performance
  208.      fair delay
  209.      frame size
  210.      content size
  211.  
  212. Session Control
  213.      initiation
  214.      start time
  215.      end time
  216.      duration
  217.      active time
  218.      burstiness
  219.      atomic join
  220.      late join allowed ?
  221.      temporary leave allowed ?
  222.      late join with catch-up allowed ?
  223.      potential streams per session
  224.      active streams per sessions
  225.      sessions per super-session
  226.      session semantics
  227.      session list rule (see Security: membership criteria)
  228.      terms and conditions
  229.      
  230. Session Topology
  231.      # of senders
  232.      # of receivers
  233.      density of senders/host
  234.      density of receivers/host
  235.      density of senders/router
  236.      density of receivers/router
  237.      shape
  238.      session heterogeneity
  239.      heterogeneity (of almost all other params)
  240.      bandwidth along path
  241.      hops/path
  242.      rate of join/leave between sub-sets
  243.      rate of join/leave from whole super-session
  244.      time-zone dependent?
  245.      burstiness of join/leave rate
  246.      admin domains/path
  247.      admin domains/group
  248.      
  249. Directory
  250.      latency of lookups (see Timeliness: latency)
  251.      fail-over timeout (see Reliability: fail-over time)
  252.      registration churn
  253.      mobility
  254.      
  255. Security
  256.      strength
  257.      authentication purpose
  258.      tamper-proofing
  259.      non-repudiation
  260.           strength
  261.           type
  262.      denial of service
  263.      membership admission control
  264.      action restriction (privacy)
  265.      membership privacy
  266.      retransmit detection strength
  267.      membership criteria
  268.      membership principals
  269.      collusion prevention
  270.      fairness
  271.      action on compromise
  272.      security dynamics
  273.           mean time between compromises
  274.           compromise detection time limit
  275.           compromise recovery time limit
  276.  
  277. Payment & Charging
  278.      for what
  279.      charge basis
  280.           content
  281.           services
  282.      when
  283.      who pays whom
  284.      prevention of onward re-sale
  285.      costing of communications
  286.           see also topology
  287.           cost elements
  288.           cost epochs
  289.           quotations
  290.           charging costs
  291.  
  292. 3.2 Definitions, types and strictest requirements
  293. =================================================
  294.  
  295. The terms used in the above table are now defined for the context of
  296. this document. Under each definition, the type of their value is given
  297. and where possible worst-case values and example applications that would
  298. exhibit this requirement.
  299. There is no mention of whether a communication is a stream or a discrete
  300. interaction. An attempt to use this distinction as a way of
  301. characterising communications proved to be remarkably unhelpful and was
  302. dropped.
  303.  
  304. 3.2.1 Reliability
  305. =================
  306.  
  307. 3.2.1.1 Reliability - Packet loss
  308. =================================
  309.  
  310. Transactional
  311. -------------
  312. When multiple operations must occur atomically, transactional
  313. communications guarantee that either all occur or none occur and a
  314. failure is flagged.
  315. Type: Boolean - on/off
  316. Strictest requirement - on
  317. Example application: bank credit transfer, debit and credit must be
  318. atomic.
  319. NB: Transactions are potentially much more complex, but it is believed
  320. this is an application layer problem.
  321.  
  322. Guaranteed
  323. ----------
  324. Guarantees communications will succeed in certain cases.
  325. Type: enumerated
  326.       Deferrable   û if communication fails it will be deferred until
  327.                      a time when it will be successful.
  328.       Guaranteed   û the communication will succeed so long as all
  329.                      necessary components are working.
  330.       No guarantee - failure will not be reported.
  331. Strictest requirement - deferred
  332. Example application: stock quote feed û guaranteed
  333. NB: the application will need to set parameters to more fully define
  334. Guarantees, which the middleware may translate into, for example, queue
  335. lengths.
  336.  
  337. Tolerated loss
  338. --------------
  339. This specifies the proportion of data from a communication that can be
  340. lost before the application becomes completely unusable.
  341. Type: fixed point fraction of data
  342. Strictest requirement: 0%
  343. Example application: video û 40%
  344.  
  345. Semantic loss
  346. -------------
  347. The application specifies how many and which parts of the communication
  348. can be discarded if necessary.
  349. type: identifiers - names disposable app level frames
  350. strictest requirement - no loss allowed
  351. example application: video feed - P frames may be lost, I frames not.
  352.  
  353. 3.2.1.2. Component Reliability
  354. ==============================
  355.  
  356. Fail-over time
  357. --------------
  358. The time before a failure is detected and a replacement component is
  359. invoked. This is not directly an application requirement.
  360. Type: time (milliseconds)
  361. Strictest Requirement: application dependent
  362. Example application: Name lookup - 5 seconds
  363.  
  364. Mean time between failures
  365. --------------------------
  366. Type: time (days)
  367. Strictest requirement: indefinite
  368. Example application: xxx
  369.  
  370. 3.2.2. Ordering
  371. ===============
  372.  
  373. Ordering type
  374. -------------
  375. Specifies what ordering must be preserved for the application
  376. Type: boolean û true=idempotent
  377.                false=>
  378.      enumeration
  379.           timing values:
  380.                     global
  381.                     per sender
  382.                     none
  383.           sequenced values:
  384.                     global
  385.                     per sender
  386.                     none
  387.           causal values:
  388.                     global
  389.                     per sender
  390.                     none
  391. Strictest requirement - global timed, sequenced & causal
  392. Example application : Game - global causal (to make sure being hit by
  393. bullet occurs after shot is fired!)
  394.  
  395. 3.2.3. Timeliness
  396. =================
  397. There is a ômeta-requirementö on timeliness. If hard real-time is
  398. required then the interpretation of all the other requirements changes.
  399. Failures to achieve the required timeliness must be reported before the
  400. communication is made. By contrast soft real-time means that there is no
  401. guarantee that an event will occur in time. However statistical measures
  402. can be used to indicate the probability of completion in the required
  403. time, and policies such as making sure the probability is 95% or better
  404. could be used.
  405. Hard-real time: Boolean - hard/soft
  406.  
  407. Synchronicity
  408. -------------
  409. To make sure that separate elements of a session are correctly
  410. synchronised with respect to each other
  411. Type:   milliseconds - allowable sync error
  412. Strictest requirement û 80ms
  413. Example application: TV lip-sync value 80ms
  414.  
  415. Burstiness
  416. ----------
  417. This is a measure of the variance of bandwidth requirements over time.
  418. Type: fixed point - variation in b/w as fraction of b/w for variable b/w
  419.                     communications
  420.       Fixed point - duty cycle (fraction of time at peak b/w) for
  421.                     intermittent b/w communications.
  422. Strictest requirement: variation -> max b/w, duty cycle -> 0
  423. Example application: sharing video clips, with chat channel - sudden
  424.                          bursts as clips are swapped.
  425.                      Compressed Audio - difference between silence and
  426.                          talking
  427. NB: More detailed analysis of communication flow (eg max rate of b/w
  428. change or Fourier Transform of the b/w requirement) is possible but as
  429. complexity increases usefulness and computability decrease.
  430.  
  431. Jitter
  432. ------
  433. Jitter is a measure of variance in the time taken for communications to
  434. traverse from the sender (application) to the receiver, as seen from the
  435. application layer.
  436. Type: milliseconds - maximum acceptable time error
  437. Strictest requirement - <1ms
  438. Example application: audio streaming - <1ms
  439. NB: A jitter requirement implies that the communication is a real-time
  440. stream.
  441.  
  442. Expiry
  443. ------
  444. This specifies how long the information being transferred remains valid
  445. for.
  446. Type: date (seconds since...)
  447. Strictest requirement - for ever
  448. Example application: key distribution - 3600 seconds (valid for at least
  449. one hour)
  450.  
  451. Latency
  452. -------
  453. Time between initiation and occurrence of an action from application
  454. perspective.
  455. Type: time (milliseconds)
  456. Strictest requirement û application dependent
  457. Example application - audio conference 20ms
  458. NB: where an action consists of several distinct sequential parts the
  459. latency ôbudgetö must be split over those parts. For process control the
  460. requirement may take any value.
  461.  
  462. Optimum Bandwidth
  463. -----------------
  464. Bandwidth required to complete communication in time
  465. Type: bandwidth (kb/s)
  466. Strictest requirement - xxx
  467. Example application - I phone 8kb/s
  468.  
  469. Tolerable Bandwidth
  470. -------------------
  471. Minimum bandwidth that application can tolerate
  472. Type: bandwidth (kb/s)
  473. Strictest requirement - xxx
  474. Example application - I phone 4kb/s
  475.  
  476. Required by time and tolerance
  477. ------------------------------
  478. Time communication should complete by and time when failure to complete
  479. renders communication useless (therefore abort).
  480. Type: time - preferred complete time
  481.       time - essential complete time
  482. Strictest requirement û application dependent
  483. Example application: email - 1min & 1 day
  484. NB: bandwidth * duration = size; only two of these parameters may be
  485. specified. An API though could allow application authors to think in
  486. terms of any two.
  487.  
  488. Host performance
  489. ----------------
  490. Ability of host to create/consume communication
  491. Type: application benchmark
  492. Strictest requirement: full consumption
  493. Example application: video - consume 15 frames a second
  494. NB: host performance is complex since load, media type, media quality,
  495. h/w assistance, and encoding scheme all affect the processing load.
  496. These are difficult to predict prior to a communication starting. To
  497. some extent these will need to be measured and modified as the
  498. communication proceeds.
  499.  
  500. Fair delay
  501. ----------
  502. Time between receipt of communication and response by the client should
  503. determine winner of race conditions, not the first response at the
  504. server.
  505. Type: acceptable unfairness (milliseconds)
  506. Strictest requirement: 10ms
  507. Example application: auction room - <10ms
  508.  
  509. Frame size
  510. ----------
  511. Size of logical data packets from application perspective
  512. Type: data size (bytes)
  513. Strictest requirement: 6bytes (gaming)
  514. Example application: video = data size of single frame update
  515.  
  516. Content size
  517. ------------
  518. The total size of the content (not relevant for continuous media)
  519. Type: data size (kB)
  520. Strictest requirement: N/A
  521. Example application: xxx
  522.  
  523. 3.2.4. Session Control
  524. ======================
  525.  
  526. initiation
  527. ----------
  528. which initiation mechanism will be used
  529. type: enumeration
  530.         values : announcement
  531.                  invitation
  532.                  directive
  533. example application: corporate s/w update - directive
  534.  
  535. start time
  536. ----------
  537. time sender start sending!
  538. type: date (milliseconds since ...)
  539. strictest requirement: now
  540. example app: FTP - at 3am
  541.  
  542. end time
  543. --------
  544. type: date (milliseconds since ...)
  545. strictest requirement: now
  546. example app: FTP - now+30mins
  547.  
  548. duration
  549. --------
  550. (end time) - (start time) = (duration), therefore only two of three
  551. should be specified.
  552. type: time (milliseconds)
  553. strictest requirement: -> 0ms for discrete, indefinite for streams
  554. example app: audio feed - 60mins
  555.  
  556. active time
  557. ------------
  558. total time session is active, not including breaks
  559. type: time (milliseconds)
  560. example app: spectator sport transmission
  561.  
  562. burstiness
  563. ----------
  564. expected level of burstiness of the session
  565. type: fixed point. variance as fraction of max bandwidth
  566. strictest requirement: =bandwidth
  567. example app: commentary & slide show: 90% of max
  568.  
  569. atomic join
  570. -----------
  571. session fails unless a certain proportion of the potential participants
  572. accept an invitation to join. Alternatively, may be specified as a
  573. specific numeric quorum.
  574. type: fixed point (proportion required) or int (quorum)
  575. strictest requirement: 1.0 (proportion)
  576. example app: price list update, committee meeting
  577. Note: whether certain participants are essential is application
  578. dependent.
  579.  
  580. late join allowed ?
  581. -------------------
  582. does joining a session after it starts make sense
  583. type: Boolean & indirection
  584. strictest requirement: allowed
  585. example application: game - not allowed, indirect to spectator channel
  586.  
  587. temporary leave allowed ?
  588. -------------------------
  589. does leaving and then coming back make sense for session
  590. type: Boolean
  591. strictest requirement: allowed
  592. example application: FTP - not allowed
  593.  
  594. late join with catch-up allowed ?
  595. ---------------------------------
  596. is there a mechanism for a late joiner to see what they've missed
  597. type: Boolean & indirection
  598. strictest requirement: allowed
  599. example app: sports event broadcast, allowed, indirect to highlights
  600. channel
  601.  
  602. potential streams per session
  603. -----------------------------
  604. total number of streams that are part of session, whether being consumed
  605. or not
  606. type: int
  607. strictest requirement: indefinite
  608. example app: football match mcast - multiple camera's, commentary, 15
  609. streams
  610.  
  611. active streams per sessions  (ie max app can handle)
  612. ---------------------------
  613. maximum number of streams that an application can consume simultaneously
  614. type: int
  615. strictest requirements: indefinite
  616. example app: football match mcast - 6, one main video, four user
  617. selected, one audio commentary
  618.  
  619. sessions per super-session
  620. --------------------------
  621. number of sessions that a single super-session consists of
  622. type: int
  623. strictest requirement: indefinite
  624. example app: parallel and serial meetings in a conference
  625.  
  626. session semantics
  627. -----------------
  628. description of which streams are redundant alternate formats, etc.
  629. type: session hierarchy description object (dependent on session
  630. description packet def)
  631. example app: movie with dubbing in several languages
  632.  
  633. session list rule (see Security: membership criteria)
  634. -----------------
  635.  
  636. terms and conditions
  637. --------------------
  638. expiry
  639. agreement records
  640.  
  641. 3.2.5. Session Topology
  642. =======================
  643. Note: topology may be dynamic. One of the challenges in designing
  644. adaptive protocol frameworks is to predict the topology before the first
  645. join.
  646.  
  647. # of senders
  648. ------------
  649. the number of senders is a result the middleware may pass up to the
  650. application
  651. type: int
  652. strictest requirement: indefinite
  653. example app: network MUD - 100
  654.  
  655. # of receivers
  656. --------------
  657. the number of receivers is a results the middleware may pass up to the
  658. application
  659. type: int
  660. strictest requirement: indefinite
  661. example app: video mcast - 100,000
  662.  
  663. density of senders/host
  664. -----------------------
  665. The total number of senders / total number of hosts 1 hop from the
  666. multicast tree (in the shadow). This may be required by the middleware,
  667. the network should support.
  668. type: fixed point
  669. strictest requirement: < 1
  670. example app: international audio conference - 0.2
  671.  
  672. density of receivers/host
  673. -------------------------
  674. as above
  675.  
  676. density of senders/router
  677. -------------------------
  678. A measure of the utilisation of routers in the tree. This may be
  679. required by the middleware. The network should support it.
  680. type: fixed point
  681. example app: TV broadcast - 0.001
  682.  
  683. density of receivers/router
  684. ---------------------------
  685. A measure of the utilisation of routers in the tree. This may be
  686. required by the middleware. The network should support it.
  687. type: fixed point
  688. example app: TV broadcast - 0.6
  689.  
  690. shape
  691. -----
  692. the shape of the multicast tree. The middleware may need to know this.
  693. The network should support it.
  694. type: enumeration
  695.      values: star, ring, mesh, multi-level, hybrid multi-level etc.
  696. example app: xxx
  697.  
  698. session heterogeneity
  699. ---------------------
  700. number of distinct groups of participants where within each group the
  701. requirements of all members are identical.
  702. type: fixed point (# of sub-sets / # of participants)
  703. strictest requirement: none
  704. example app: movie, subset of English-speaking consumers with slow
  705. terminals as against French-speaking with slow terminals etc.
  706.  
  707. heterogeneity (of almost all other params)
  708. ------------------------------------------
  709. See Further Work
  710.  
  711. bandwidth along path
  712. --------------------
  713. an indication of the rate limiting hop in the path, and it's bandwidth.
  714. Needed by the middleware
  715.  
  716. hops/path
  717. ---------
  718. measure of the distance to the core/sender of a communication
  719.  
  720. rate of join/leave between sub-sets
  721. --------------------------------
  722. the rate at which participants change from one sub-set to another
  723. type: events per time per user
  724. strictest requirement: xxx
  725. example application: TV sports event - camera switching - 0.2/s
  726.  
  727. rate of join/leave from whole super-session
  728. -------------------------------------------
  729. a measure of participant churn in the super-session (application).
  730. type: events per time
  731. strictest requirement:  100 per second
  732. example app: internet shop - shoppers entering & leaving shop 0.2/min
  733. NB: 10% per minute may join/leave once application stable. [NSA]
  734.  
  735. time-zone dependent?
  736. --------------------
  737. Is membership likely to be linked to time-zones (i.e. are members
  738. humans, teenagers or computers?)
  739. type: Boolean
  740. example app: email - relevant
  741.  
  742. burstiness of join/leave rate
  743. ------------------------------
  744. measure of variance of join/leave rate. Needed by middleware, from
  745. application (prediction) and network (measurement).
  746. type: standard deviation of events per second
  747. strictest requirement: xxx
  748. example app: football match - high variance between duration of match
  749. and start and end
  750. chat forum: low variance - people joining and leaving continuously
  751. without a start or end.
  752.  
  753. admin domains/path
  754. ------------------
  755. number of admin domains traversed by traffic along a path in the
  756. multicast group.
  757. type: int
  758. strictest requirement:
  759. example app:
  760.  
  761. admin domains/group
  762. -------------------
  763. number of admin domains which are carrying the communication.
  764. type: int
  765. strictest requirement:
  766. example app:
  767.  
  768. 3.2.6. Directory
  769. ================
  770.  
  771. latency of lookups (see Timeliness: latency)
  772. ------------------
  773.  
  774. fail-over timeout (see Reliability: fail-over time)
  775. -----------------
  776.  
  777. registration churn
  778. ------------------
  779. rate at which name/value mappings are changed
  780. type: probability/time (%/second)
  781. strictest requirement:
  782. example app:
  783.  
  784. mobility
  785. --------
  786. defines restrictions on when directory entries may be changed
  787. type: enumeration
  788.         values: while entry is in use
  789.                 while entry in unused
  790.                 never
  791. strictest requirement: while entry is in use
  792. example app: voice over mobile phone, while entry is in use (as phone
  793. gets new address when changing cell).
  794.  
  795. 3.2.7. Security
  796. ===============
  797.  
  798. Strength
  799. --------
  800. The level to which a system or any sub-system is capable of providing
  801. information security. Stated as the cost of mounting a successful
  802. attack. In practice this typically reduces to key length comparisons,
  803. but these continually need updating as processing speeds improve. Key
  804. length measures are also specific to encryption attacks, whereas cost
  805. can be applied to physical attacks for example.
  806. Strength applies to every security-related parameter as well as to whole
  807. systems.
  808. Type: currency at a set date (to inflation-proof), e.g. 1970 US$
  809. Strictest requirement: a) $300M in 1995 (estimated budget of major
  810. intelligence agency)[Blaze95] b) an international use requirement
  811. restricts key length to {TBA} bits
  812.  
  813. Authentication purpose
  814. ----------------------
  815. The purpose of ensuring that a principal is who they claim to be.
  816. Authentication also has a strength, or level of certainty that a
  817. positive result is correct (see strength) and a time span over which
  818. authentication is valid (for legal follow-up).
  819. Type: Boolean: for admission (see action restriction)?
  820.       Boolean: data from each sender authenticated?
  821. Strictest requirement: authentication of admission to all types of
  822. session and of all senders within sessions
  823. Example application: inter-governmental conference
  824.  
  825. Tamper-proofing
  826. ---------------
  827. Assurance that various aspects of information including its quality is
  828. not violated during communication
  829. Type: Boolean: data is unchanged and complete?
  830.       Boolean: data timeliness is assured (no malicious packet delay)?
  831.       Boolean: no replay of transmission is possible?
  832. Strictest requirement: All true
  833. Example application: stock price feed
  834.  
  835. Non-repudiation strength
  836. ------------------------
  837. The probability of being able to prove that various aspects of a
  838. communication must have occurred.
  839. Type: fixed point
  840. Strictest requirement: 1.0 (full audit trail)
  841. Example application: Full audit trail: billing based on usage logs.
  842. Random partial records: to deter users from fraud with the threat of the
  843. possibility of being able to detect it.
  844.  
  845. Non-repudiation type
  846. --------------------
  847. Prove that various aspects of a communication must have occurred.
  848. Logical time is defined as a value in a sequence of events with no
  849. regard to the actual time between the events (e.g. proving a message was
  850. sent before or after sending or receiving another message).
  851. Type: Boolean: sender proving reception
  852.           enumeration: by whom
  853.             values: {>1 rcvr, certain rcvrs, random rcvrs, all rcvrs }
  854.           Boolean: what
  855.           Boolean: when
  856.           Boolean: logical time
  857.       Boolean: sender proving send (redundant if proves reception)
  858.           Boolean: what
  859.           Boolean: when
  860.           Boolean: logical time
  861.           Boolean: delta time (since previous rcv)
  862.       Boolean: proving membership
  863.           Boolean: when
  864.           Boolean: logical time
  865.       Boolean: rcvr proving received
  866.           Boolean: when
  867.           Boolean: logical time
  868. Strictest requirement: All true
  869. Example application: Quality audits, auctions, voting, patent disputes
  870.  
  871.  
  872. Denial of service
  873. -----------------
  874. TBA - difficult to say anything about this without a particular system
  875. design or mechanism.
  876.  
  877. See also sender exclusion under privacy.
  878.  
  879. Membership admission control
  880. ----------------------------
  881. Whether admission to membership of a session is controlled.
  882. Type: binary enumeration (Boolean?)
  883. Strictest requirement
  884. Example application:
  885.  
  886. Action restriction (privacy)
  887. ----------------------------
  888. The different types of activity listed below may be private to different
  889. secure sessions within an application. These could be considered as the
  890. ACTION field of an access control list, but this doesn't imply an ACL is
  891. a good method to use. Indeed, access to nearly all the actions below can
  892. be separately controlled by distributing data related to each action in
  893. a separate secure session.
  894.  
  895. Type: membership list/rule for each of the actions below that requires a
  896. distinct one from the others:
  897. - sending data
  898. - receiving data
  899. - forwarding on data
  900. - sending metadata (headers)
  901. - receiving metadata (headers)
  902. - forwarding on metadata
  903. - sending keys
  904. - receiving keys
  905. - forwarding on keys
  906. - session announcement (includes identity of key controller)
  907. - listing members (see also membership detection)
  908. - forwarding on list
  909. - admitting members
  910. Strictest requirement: all required, but all different lists.
  911. Excluding senders of unsolicited traffic into a session and deterring
  912. retransmission (see also retransmission detection) are the most
  913. difficult ones.
  914. Example application: banking work-flow where no one person may have
  915. access to sufficient information to allow fraud.
  916.  
  917. Membership privacy
  918. ------------------
  919. How hidden the fact that a particular participant has joined a session
  920. is (see also Privacy; listing members).
  921. Type: enumeration
  922.   values: openly identified
  923.           anonymously identified (only size of membership is known)
  924.           unadvertised (but traffic could be traced)
  925.           undetectable
  926. Strictest requirement: undetectable - involves randomising traffic
  927. patterns
  928. Example application: news feed where customers wish their interests to
  929. be private.
  930.  
  931. Retransmit detection strength
  932. -----------------------------
  933. How strong is the requirement to monitor receivers to detect onward
  934. transmission. This is one case where the real requirement - retransmit
  935. prevention - has not been stated, because it is assumed to be
  936. impossible.(see also Privacy; forwarding on data, list, keys etc.)
  937.      all rcvrs
  938.      certain rcvrs
  939.      random rcvrs
  940.  
  941. Type:
  942. Strictest requirement
  943. Example application:
  944.  
  945. Membership Criteria
  946. -------------------
  947. The type of criterion used to limit the scope of membership
  948. Type: enumeration
  949.   values: session bounded by topology (e.g. fire-wall, TTL)
  950.           session bounded by administrative scope
  951.           Internet-wide membership based on a rule
  952. Strictest requirement: Internet-wide membership based on a rule
  953. Example application:
  954. limited by topology: corporate video-conference;
  955. Rule-based: support forum open to all parties with paid-up support
  956. contracts.
  957. Membership rules may be:
  958. - simple lists of all members
  959. - address rule (e.g. a.b.c.*)
  960. - based on knowledge of a secret
  961.   (token, username-password, challenge-response, customer id)
  962. - based on payment
  963.  
  964.  
  965. Membership Principals
  966. ---------------------
  967. Entities that may join a rule-based secure session atomically. That is,
  968. a group of individuals is a principal if they can only all join or leave
  969. together.
  970. Principals can be considered as the SUBJECT field of an access control
  971. list, but this is not intended to imply ACL is a good method to use.
  972. Type: enumeration
  973.   values: certified individual ids
  974.           certified group ids (corporations, organisations)
  975.           login accounts
  976.           lists (i.e. lists of lists,
  977.                  such as multicast groups, secure sessions)
  978.           addresses
  979.           decryption proxies (decrypt and re-multicast for a secondary
  980. group such as everyone in a corporation)
  981. Strictest requirement: mixture of all types.
  982. Example application: N/A
  983.  
  984. Collusion prevention
  985. --------------------
  986. Which aspects of collusion it is required to prevent. Collusion is
  987. defined as malicious co-operation between members of a secure session.
  988. Superficially, it would appear that collusion is not a relevant threat
  989. in a multicast, because everyone has the same information, however,
  990. wherever there is differentiation, it can be exploited.
  991. Type: Boolean: time race collusion (true if needs preventing)
  992.       Boolean: key encryption key (KEK) sharing
  993.       Boolean: sharing of differential QoS
  994.         (not strictly collusion as across sessions not within one)
  995. Strictest requirement: All true.
  996. Time race collusion is the most difficult one to prevent.
  997. Example application: A race where delay of the start signal may be
  998. allowed for, but one participant may fake packet delay while receiving
  999. the start signal from another participant.
  1000.  
  1001. Fairness
  1002. --------
  1003.      see timeliness for tolerance between delay differences
  1004.      see reliability for tolerance between different reliabilities
  1005.  
  1006. Action on compromise
  1007. --------------------
  1008. The action to take on detection of compromise (until security
  1009. reassured).
  1010. Not sure this has anything to do with communications, really.
  1011. Type: binary enumeration (Boolean?)
  1012.   values: warn but continue
  1013.           pause
  1014. Strictest requirement: pause
  1015. Example application: Secure video conference - if intruder alert,
  1016. everyone is warned, but they can continue while knowing not to discuss
  1017. sensitive matters (cf. catering staff during a meeting).
  1018.  
  1019. 3.2.7.1. Security Dynamics
  1020. --------------------------
  1021. Security dynamics are the delays that security operations insert into a
  1022. system's operation. The delays under normal operation (e.g. key
  1023. processing, certification of authenticity etc.) need to be taken into
  1024. account when designing to meet other requirements like latency. This
  1025. parameter is therefore concerned with delays in abnormal security
  1026. circumstances (e.g. system compromise):
  1027.  
  1028. mean time between compromises
  1029. -----------------------------
  1030. This is not the same as the strength of a system. A fairly weak system
  1031. may have a very long time between compromises because it is not worth
  1032. breaking in to, or it is only worth it for very few people. Mean time
  1033. between compromises is a combination of strength, incentive and scale.
  1034. Type: hours
  1035. Strictest requirement: xxx
  1036. Example application: xxx
  1037.  
  1038. Compromise detection time limit
  1039. -------------------------------
  1040. The average time it must take to detect a compromise (one predicted in
  1041. the design of the detection system, that is).
  1042. Type: seconds
  1043. Strictest requirement: xxx
  1044. Example application: xxx
  1045.  
  1046. Compromise recovery time limit
  1047. ------------------------------
  1048. The maximum time it must take to re-seal the security after a breach.
  1049. Type: hours
  1050. Strictest requirement: 1 second [NSA]
  1051. Example application: xxx
  1052.  
  1053.  
  1054. 3.2.8. Payment & Charging
  1055. =========================
  1056. This whole section is probably too far outside the scope of the LSMA
  1057. working group and is unfinished anyway.
  1058.  
  1059. charging for what?
  1060. ------------------
  1061.      content
  1062.      services
  1063.           content distribution service
  1064.           QoS transmission
  1065.           security services
  1066.           directory services
  1067.  
  1068. Type:
  1069. Strictest requirement
  1070. Example application:
  1071.  
  1072. Charge basis: content
  1073. ---------------------
  1074. (often different granularity to ownership basis)
  1075. ownership of content
  1076.      own use/consumption
  1077.           unlimited
  1078.           limited (e.g. n copies or n "views")
  1079.           royalty-based (pay per "view")
  1080.      resale
  1081.           unlimited
  1082.           limited (e.g. n copies)
  1083.           royalty-based (could hit multicast enabled routers hard!)
  1084.      own use and resale
  1085.      own use and not resale
  1086.      resale and not own use
  1087.  
  1088. Type:
  1089. Strictest requirement
  1090. Example application:
  1091.  
  1092.  
  1093. Charge basis: services
  1094. ----------------------
  1095.      subscription
  1096.           time expired
  1097.           in perpetuity
  1098.      pay per consumption time
  1099.      pay per "object"
  1100.      hybrids of all these
  1101.  
  1102. Type:
  1103. Strictest requirement
  1104. Example application:
  1105.  
  1106.  
  1107. Payment: When?
  1108. ---------------
  1109.      pre-paid deposit
  1110.      pre-pay (before any of each charge basis listed above)
  1111.      post-pay (before any of each charge basis listed above)
  1112.           periodically billed by usage
  1113.      free for introductory period
  1114.      credit and debit decoupled within tolerance
  1115.           time limited
  1116.           money limited
  1117.           time/money hybrid (formula, e.g. 30days if <ú50)
  1118.  
  1119. Type:
  1120. Strictest requirement
  1121. Example application:
  1122.  
  1123.  
  1124. Who pays whom?
  1125. --------------
  1126. (directly as opposed to one collecting for another - every role player
  1127. could charge directly, but these are the more likely ones to do so)
  1128. This bit would be easier to read in two dimensions - who charges and who
  1129. pays
  1130.      Media distributor (typically pays media owner (typically pays media
  1131. advertiser))
  1132.      Session owner (typically pays session advertiser (and might well
  1133. pay media distributor))
  1134.      Network providers (may be paid by session owner, but difficult as
  1135. diff. receivers use diff.networks)
  1136.      Terminal owners (e.g. library, kiosk, arcade, pub etc)
  1137.      Matchmaker (in auctions, session directories etc.)
  1138.      advertising (to partially allay costs, or cover totally)
  1139.      sender pays (e.g. propaganda that receivers are paid to read!)
  1140.      pay to receive, paid to send (e.g. to encourage contribution of
  1141. home videos - yuk!)
  1142.  
  1143. Type:
  1144. Strictest requirement
  1145. Example application:
  1146.  
  1147.  
  1148. prevention of onward re-sale
  1149. ----------------------------
  1150. Type:
  1151. Strictest requirement
  1152. Example application:
  1153.  
  1154.  
  1155. 3.2.8.1. Costing of communications
  1156. ==================================
  1157.  
  1158. See also topology
  1159.  
  1160. Elements of cost
  1161. ----------------
  1162.      terminal resources & QoS
  1163.      network resources & QoS
  1164.      server resources & QoS
  1165.  
  1166. Type:
  1167. Strictest requirement
  1168. Example application:
  1169.  
  1170. Cost epochs
  1171. -----------
  1172.      up front investment
  1173.      fixed running costs independent of use
  1174.      variable (use-dependent) costs
  1175.  
  1176. Type:
  1177. Strictest requirement
  1178. Example application:
  1179.  
  1180. quotations
  1181. ----------
  1182.      response time
  1183.      off-line "well known" pricing
  1184.      expiry
  1185.      spot pricing
  1186.  
  1187. Type:
  1188. Strictest requirement
  1189. Example application:
  1190.  
  1191.  
  1192. Costs of charging
  1193. -----------------
  1194.      communications
  1195.      storage
  1196.      processing
  1197.      debt recovery
  1198.      fraud detection
  1199.      customer service (proving charges are valid)
  1200.  
  1201. Type:
  1202. Strictest requirement
  1203. Example application:
  1204.  
  1205.  
  1206.  
  1207. 4. Mapping of Requirements to IETF Working Groups
  1208. =================================================
  1209.  
  1210. TBA
  1211.  
  1212. 5. Further Work
  1213. ===============
  1214.  
  1215. Attempt to simplify! Refine definitions and types. In particular clarify
  1216. where enumerations aren't intended to be "one of" types. Complete
  1217. specifying worst case values & example apps.
  1218.  
  1219. Identification of scope of each parameter (per session, per receiver,
  1220. per sender etc.) to highlight potential heterogeneity problems
  1221.  
  1222. Mapping between requirements and IETF Working Groups
  1223.  
  1224. Exercising the taxonomy with some scenarios
  1225.  
  1226. Exercising the taxonomy with some media-types which represent large sub-
  1227. sets of application capabilities so can potentially be "macros" or
  1228. shorthand to set values (or ranges) for a large number of parameters at
  1229. once.
  1230.  
  1231. 6. Security Considerations
  1232. ==========================
  1233. See comprehensive security section of taxonomy.
  1234.  
  1235. References
  1236. =============
  1237.  
  1238. [Bagnall97] Bagnall Peter, Example LSMA classifications [TBA]
  1239.  
  1240. [refmcast] IP multicast ref
  1241.  
  1242. [limitations] Pullen M, Myjak M, Bouwens C, Limitations of Internet
  1243. Protocol Suite for Distributed Simulation in the Large Multicast
  1244. Environment, Internet Draft, 26 Mar 1997, draft-ietf-lsma-limitations-
  1245. 01.txt
  1246.  
  1247. [scenarios] Seidensticker S, Smith W, Myjak W, Scenarios and Appropriate
  1248. Protocols for Distributed Interactive Simulation, Internet Draft, 21 Jul
  1249. 1997, draft-ietf-lsma-scenarios-01.txt
  1250.  
  1251. [rmodp] Open Distributed Processing Reference Model (RM-ODP), ISO/IEC
  1252. 10746-1 to 10746-4 or ITU-T (formerly CCITT) X.901 to X.904. Jan 1995.
  1253. Catalogue entries: <URL:http://www.iso.ch/isob/switch-engine-
  1254. cate.pl?searchtype=refnumber&KEYWORDS=10746>
  1255.  
  1256. [blaze95] Blaze, Diffie, Rivest, Schneier, Shimomura, Thompson and
  1257. Wiener, Paper on minimal key lengths for security in secret key ciphers?
  1258. late 1995
  1259.  
  1260. [NSA] Wallner D, Harder E, Agee R, Key Management for Multicast: Issues
  1261. and Architectures, National Security Agency, 1 July '97. Internet Draft
  1262. draft-wallner-key-arch-00.txt
  1263.  
  1264. 8. Authors' Addresses
  1265. =====================
  1266. Bob Briscoe
  1267.    B54/74 BT Labs
  1268.    Martlesham Heath
  1269.    Ipswich, IP5 3RE
  1270.    England
  1271.    Phone: +44 1473 645196
  1272.    Fax:   +44 1473 640929
  1273.    EMail: briscorj@boat.bt.com
  1274.    Home page: http://www.labs.bt.com/people/briscorj/
  1275.  
  1276. Peter Bagnall
  1277.    B54/74 BT Labs
  1278.    Martlesham Heath
  1279.    Ipswich, IP5 3RE
  1280.    England
  1281.    Phone: +44 1473 647372
  1282.    Fax:   +44 1473 640929
  1283.    EMail: pbagnall@jungle.bt.co.uk
  1284.    Home page: http://www.labs.bt.com/people/bagnalpm/
  1285.  
  1286.