home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / avt / avt-minutes-92mar.txt < prev    next >
Text File  |  1993-02-17  |  11KB  |  232 lines

  1. This is a rough draft - Megan 04/20/92
  2.  
  3.            Audio/Video Transport WG Meeting Report
  4.              17-Mar-92, San Diego
  5.  
  6. 1. Introduction:  Goals, Scope of this working group
  7.  
  8. The AVT WG met for three sessions on Tuesday in San Diego.  Audio from
  9. the presentations and discussions at these sessions was "audiocast"
  10. via UDP and IP multicast to participants at a number of locations
  11. ranging from Australia to the UK, and the remote participants were
  12. able to ask questions over the return path.
  13.  
  14. The purpose of this working group is to specify one or more
  15. experimental protocols to foster interoperation among multiple packet
  16. audio/video implementations in experiments such as this audiocast.
  17. The focus of the WG is short-term (see the charter).  Our first goal
  18. is to have the protocols defined and experimental implementations
  19. running in time for use in a second audiocast at the July, 1992 IETF
  20. meeting.  Therefore, in this meeting we dove right in to a discussion
  21. of what the protocol should look like.
  22.  
  23.  
  24. 2. Data packet header formats for real-time audio and video
  25.  
  26. We need a "transport" protocol for real-time, continuous media.  That
  27. means we don't want the retransmission and flow control of TCP, but we
  28. do want sequencing and checksumming.  We could define a new protocol
  29. to fit directly over IP, but in keeping with the short-term scope of
  30. this working group, we choose to fit a new protocol over IP+UDP so it
  31. can be deployed quickly.  Alternatively, another protocol that
  32. provides the necessary functions, such as ST-II, can be used.  Those
  33. functions are port addressing, length, and (optional) checksumming.
  34.  
  35. The missing function is sequencing.  Steve Casner described the data
  36. packet format of the Network Voice Protocol (NVP-II) which was serving
  37. this function for the audiocast of this meeting.  The header is
  38. efficient (only 4 octets), but that makes some of the fields too small
  39. to support current requirements.  To begin discussion of a
  40. replacement, the following strawman protocol with only two fields was
  41. proposed:
  42.  
  43.     o  32-bit Timestamp (16 bits of seconds + 16-bit fraction)
  44.     o  Sequence Number (could be less than 32 bits)
  45.  
  46. There was substantial discussion of the nature of the timestamp.  It
  47. must have sufficient range to cover any network delay (segment
  48. lifetime) that might be expected, and it must have sufficient
  49. resolution to allow the desired degree of superposition and
  50. coordination among media streams.  The bit allocation shown has a
  51. range of 18 hours and a resolution of 16 microseconds.  The timestamp
  52. could be synchronous with the media sampling clock, in which case it
  53. would tick at the nominal sampling rate and drift with respect to real
  54. time, or it could be synchronous with real time.  In the latter case,
  55. the timestamp could represent absolute real time if it were defined to
  56. be the middle 32 bits of a Network Time Protocol (NTP) timestamp, or
  57. it could be merely relative to real time.
  58.  
  59. For purposes of synchronization among multiple media sources,
  60. real-time timestamps should be used, though they need not be absolute.
  61. Julio Escobar from BBN gave a presentation on the Synchronization
  62. Protocol.  It is based on globally synchronized clocks (e.g., using
  63. NTP) and defines a set of control protocol exchanges to establish an
  64. equalization delay for synchronized playback.  It's only requirement
  65. on the data packet format is that a real-time-synchronous, relative
  66. timestamp be carried.
  67.  
  68. Although the timestamp field can be used to sequence the packets, it
  69. cannot be used to detect lost packets for media such as voice that
  70. suppress transmission when there is no activity.  The sequence number
  71. serves that function.  It could be smaller than 32 bits because the
  72. timestamp disambiguates wrap-around within the maximum segment
  73. lifetime.  The number of bits should be large enough that the loss of
  74. exactly one sequence space of packets is a rare-enough event that
  75. failure to detect it is acceptable.
  76.  
  77. Steve Deering proposed some additional fields/functions to be included
  78. in the data packet header:
  79.  
  80.     o  Checksum (to validate decryption)
  81.     o  Version Number
  82.     o  Encoding Type
  83.  
  84. The UDP checksum cannot be used to validate decryption because it must
  85. be applied after encryption, so a separate checksum would be required.
  86. An alternative that would not require an additional field but would
  87. require more complex processing is to use the successful decryption of
  88. several properly sequenced packets as the validation of the key.  On
  89. the other hand, including a checksum at this level, covering either
  90. just the header or header plus data, would also be useful with the
  91. ST-II protocol that does not checksum higher-layer protocols.
  92.  
  93. A version number would allow implementations to distinguish among
  94. multiple versions of the protocol.
  95.  
  96. The encoding type field might be used for several purposes.  It could
  97. identify the particular compression algorithm used so that the
  98. receiver could select the correct decompression.  However, if that
  99. selection would be constant over the life of the session, it could be
  100. communicated in an out-of-band control protocol.
  101.  
  102. If multiple media are sent are sent on one port number, then an
  103. additional level of demultiplexing would be needed and the encoding
  104. field could serve that purpose.  For layered (embedded) coding
  105. schemes, a field is needed to identify the separate layers, but this
  106. field might be here or might be consigned to the application-layer
  107. protocol.  For the network to process the separate layers at different
  108. priorities, it is expected that some priority field would be needed in
  109. the network layer.
  110.  
  111. Finally, two fields from other packet audio protocols were considered:
  112.  
  113.         o  Energy Level (from Xerox PARC Phoenixphone)
  114.         o  Cumulative Delay (from CCITT G.764)
  115.  
  116. For audio packets, the energy level is an indication of the sound
  117. volume in the packet.  This may be useful to the receiver when mixing
  118. audio streams, for example.  It could be recalculated by the receiver
  119. rather than being carried in the packet.
  120.  
  121. The CCITT recommendation G.764 Packetized Voice Protocol includes a
  122. field that records the cumulative variable queueing delays experienced
  123. by a packet in traversing the network.  This may be useful for
  124. deadline-scheduling of packet forwarding, but it was decided that
  125. those experimenting with such algorithms would need to add the field
  126. in some lower layer.
  127.  
  128.  
  129. 3. Field inclusion criteria
  130.  
  131. We did not attempt to decide "in real time" what fields/functions
  132. should be included or excluded.  Further discussion is expected via
  133. email.  Instead, we established some criteria for inclusion of these
  134. and other fields in a real-time transport protocol:
  135.  
  136.     - What percentage of applications would require the field?  If
  137.       only a small percentage, the field should be left to the
  138.       application layer.
  139.  
  140.     - What application functions we are trying to support with these
  141.       fields?  We may be able to combine functions by choosing the
  142.       fields right.
  143.  
  144.     - How should we tradeoff network bandwidth vs. processing and
  145.       complexity of control algorithms?  (The discussions of the
  146.       checksum and energy fields are examples.)
  147.  
  148.     - Would the field be constant in all packets at a given
  149.       demultiplexing level?  If so, that information could be implicit
  150.       and carried in an out-of-band control protocol.  Or is there a
  151.       need for the data to be self-describing?
  152.  
  153.     - Does the field/function "belong" at this level?  Considerations
  154.       include overlap with other layers, aesthetics, common practice
  155.       and understanding.
  156.  
  157.  
  158. 4. Addressing
  159.  
  160. In the third session we discussed how addressing (multiplexing) should
  161. be divided among the layers.  Steve Deering explained:
  162.  
  163.     - The IP multicast address should identify a particular session or
  164.       set of recipients.  Two different sets of recipients should have
  165.       two different addresses.
  166.  
  167.     - The destination port address must be the same for all recipients
  168.       if the packets are to be multicast, so the destination port must
  169.       be administratively, not dynamically, assigned.  Since the space
  170.       space of well-known port numbers is small, we can't assign
  171.       separate ports for each kind of data in a multimedia session.
  172.       It may be appropriate to have a control port and a data port, or
  173.       perhaps to distinguish major data types, such as audio and
  174.       video.  Source port numbers are dynamically assigned and can
  175.       distinguish multiple participants at one IP address.
  176.  
  177.     - If there are multiple flows (e.g., audio and video) to one
  178.       multicast address, it may be necessary to include another level
  179.       of demultiplexing in the audio/video transport layer.  This
  180.       relates to the "encoding" field mentioned earlier.
  181.  
  182. Further discussion is needed to decide how much multiplexing should
  183. occur at each layer.  There are considerations both of address space
  184. and of implementation (whether it is better to read multiple media on
  185. one socket or separate sockets, for example).
  186.  
  187.  
  188. 5. Linkages between data and control
  189.  
  190. Flexible management of multimedia connections or sessions is the
  191. subject of current research and beyond the short-term scope of this
  192. working group.  For simple application modes, such as an audiocast on
  193. an advertized "channel" (e.g., IP multicast address), operation is
  194. possible with no control protocol at all.
  195.  
  196. For spontaneous communication, there is pool of 2^16 IP multicast
  197. addresses from which an address may be chosen, but then that address
  198. must be communicated to the participants.  This group may define a
  199. simple interim protocol for this purpose as a second step (after the
  200. transport protocol).  Some inputs to this process would be the
  201. "session protocol" used by the vat program, the Connection Control
  202. Protocol from ISI, and the DVC control protocol (see next section).
  203.  
  204.  
  205. 6. Software Encoding
  206.  
  207. Listed as a bonus topic on the agenda was a discussion of algorithms
  208. and protocols for software encoding of real-time media.  This is not a
  209. main topic because such protocols should be at a layer above the
  210. transport.  However, in keeping with the working group goal to foster
  211. interoperation and experimentation with packet audio and video, it may
  212. be valuable to agree on some (perhaps low performance) software
  213. compression techniques for use until hardware is generally available.
  214.  
  215. For this purpose, Paul Milazzo from BBN gave an update on the protocol
  216. used in the Desktop Video Conference program.  DVC uses the low-cost
  217. VideoPix frame-grabber card for SPARCstations plus software
  218. compression to generate video at about 5 frames per second.  The DVC
  219. protocol communicates sequences of video subimage blocks over UDP and
  220. uses TCP for the control connection.  A recent enhancement is the
  221. ability to decode multiple streams (up to 6 so far).
  222.  
  223.  
  224. 7. Further discussion
  225.  
  226. Thanks to Karen Sollins and Eve Schooler for taking the notes from
  227. which these minutes were prepared.  A longer report of the meeting
  228. with more detail will be posted to the mailing list rem-conf@es.net to
  229. stimulate discussion of the issues raised above.  It is proposed that
  230. we also hold some packet audio teleconference meetings as needed to
  231. augment the e-mail discussion.
  232.