home *** CD-ROM | disk | FTP | other *** search
/ Internet Access: To the Information Highway / InternetAccessToTheInformationHighway1994.disc1of1.iso / internet / rfc4 / rfc1324.txt < prev    next >
Text File  |  1994-06-03  |  26KB  |  619 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         D. Reed
  8. Request for Comments: 1324                                   May 1992
  9.  
  10.  
  11.              A Discussion on Computer Network Conferencing
  12.  
  13. Status of this Memo
  14.  
  15.    This memo provides information for the Internet community.  It does
  16.    not specify an Internet standard.  Distribution of this memo is
  17.    unlimited.
  18.  
  19. Abstract
  20.  
  21.    This memo is intended to make more people aware of the present
  22.    developments in the Computer Conferencing field as well as put
  23.    forward ideas on what should be done to formalize this work so that
  24.    there is a common standard for programmers and others who are
  25.    involved in this field to work with.  It is also the intention of
  26.    this memo to stimulate the computer community and generate some
  27.    useful discussion about the merits of this field.
  28.  
  29. Introduction
  30.  
  31.    Computer network conferencing is just now starting to grow and take
  32.    advantage of the modern technology that is available.  Although there
  33.    are some systems which have been around for some time (BRC - Bitnet
  34.    Relay Chat and IRC - Internet Relay Chat), there has not been any
  35.    real move to bring them together under a single protocol. This has
  36.    led to various protocols and different systems coming to life. As
  37.    these different systems continue to pop up, it is becoming more
  38.    obvious that there is need of a standard in this area for developers
  39.    to follow without the need of worrying about protocol clashes.
  40.  
  41.    In any implementation of a conferencing program, there are likely to
  42.    be two main components: (1) a client program or interface which users
  43.    enter commands into (hereafter referred to as a "client") and 2) a
  44.    server program which acts as a multiplexor for various clients which
  45.    connect to it. There are other expectations and requirements for both
  46.    servers and clients which are mentioned in more detail later.
  47.  
  48. Table of Contents
  49.  
  50.    1.0     Network Conferencing Today........................... 2
  51.    1.1     Conferencing in general today........................ 2
  52.    1.2     Talk/phone vs. conferencing.......................... 3
  53.    1.3     Advantages of realtime network conferencing.......... 3
  54.    2.0     Goals for what a protocol should provide............. 4
  55.  
  56.  
  57.  
  58. Reed                                                            [Page 1]
  59.  
  60. RFC 1324             Computer Network Conferencing              May 1992
  61.  
  62.  
  63.    2.1     State Information problems........................... 4
  64.    2.2     Network barriers..................................... 4
  65.    2.3     User needs........................................... 4
  66.    2.3.1   User privacy......................................... 4
  67.    2.3.2   Realtime Expectations................................ 5
  68.    2.4     Message Delivery..................................... 5
  69.    2.4.1   Deficiencies in using IP only........................ 5
  70.    2.4.2   Flexibility.......................................... 5
  71.    2.4.3   Building a flexible transport protocol............... 5
  72.    2.5     Network Structure.................................... 5
  73.    2.5.1   Size................................................. 5
  74.    3.0     Usage................................................ 6
  75.    4.0     Setting it up........................................ 6
  76.    4.1     Installation......................................... 6
  77.    4.2     Controlling growth................................... 7
  78.    5.0     Finding the *right* protocol......................... 7
  79.    5.1     Name for protocol.................................... 7
  80.    5.2     Responsibilities of conference servers............... 7
  81.    5.2.1   Message passing...................................... 7
  82.    5.2.2   Who is on?........................................... 7
  83.    5.2.3   Who is who?.......................................... 8
  84.    5.2.4   Conference security.................................. 8
  85.    5.2.5   Error reporting...................................... 8
  86.    5.2.6   Network Friendliness................................. 8
  87.    5.2.7   To ASCII or not to ASCII............................. 8
  88.    5.2.8   Queries or messages to a server and replies.......... 9
  89.    5.3     Responsibilities of clients.......................... 9
  90.    5.3.1   Providing accurate information....................... 9
  91.    5.3.2   Client as servers.................................... 9
  92.    5.4     How complex should the protocol be?................. 10
  93.    5.4.1   User identification................................. 10
  94.    5.4.2   Trees and cycles.................................... 10
  95.    5.5     Protocol summary.................................... 10
  96.    6.0     Security Considerations............................. 10
  97.    7.0     Author's Address.................................... 11
  98.  
  99. 1.0  NETWORK CONFERENCING TODAY
  100.  
  101. 1.1  Conferencing in general today
  102.  
  103.    Conferences today are an integral part of the business world in many
  104.    ways. A conference may be held to reassure staff about company
  105.    problems (boost moral) or may be held by a few directors in an
  106.    emergency situation where a carefully considered solution is needed.
  107.    Conferences also form the cornerstone of workshops held where various
  108.    groups of people, who attend, are to be briefed on new developments.
  109.    In nearly all of these situations, there will be a group of 2 or
  110.    more, where each speaks and listens to others.  There exist PABXs and
  111.  
  112.  
  113.  
  114. Reed                                                            [Page 2]
  115.  
  116. RFC 1324             Computer Network Conferencing              May 1992
  117.  
  118.  
  119.    other features of the telephone system which provide for conferencing
  120.    between people around the globe at a cost effective rate. The only
  121.    place which really lacks any formal form of conferencing is the
  122.    internet, although many unofficial conferencing systems already
  123.    exist, spanning the globe or providing local forums.
  124.  
  125. 1.2  Talk/phone vs. conferencing
  126.  
  127.    To provide instantaneous communication between two users on unix and
  128.    other multiuser systems, interprocess communication is commonly used
  129.    either over a network or other local methods.  The diversity of unix
  130.    platforms has introduced as many problems as the presence of various
  131.    operating systems on the net.  Commonly, those on Unix based machines
  132.    are unable to talk to those on VMS or VM machines. The occasion even
  133.    arises where two Unix hosts are unable to talk to each other due to
  134.    different talk protocols.
  135.  
  136. 1.3  Advantages of realtime computer conferencing
  137.  
  138.    By providing a standard for computer conferencing, it should
  139.    eliminate the problem of who is using what computer. This will mean
  140.    that someone from a VMS or VM machine can talk with one or more
  141.    people without having to worry whether their counterpart has an
  142.    account on a compatible machine for their choice of communication.
  143.    Electronic mail (email) has already reached this position with most
  144.    modern mailers on the internet being compliant with RFC822. It is
  145.    therefore not unreasonable to expect this of realtime conferencing
  146.    which is to talk as USENet is to email; although of those four (4),
  147.    only email and news have been covered by RFCs.
  148.  
  149.    USENet is a vast resource and immensely useful for many people around
  150.    the globe. It does, however suffer from a high noise to signal ratio.
  151.    It would be unwise to expect much difference in performance from
  152.    conferencing.
  153.  
  154.    By providing the means for realtime computer conferencing, it opens
  155.    up a whole new area of usefulness to computers. For both students and
  156.    staff alike, it opens up new possibilities.  In educational
  157.    institutions where there is a high level of project work with groups
  158.    of more than 2, it means that students can work from home or other
  159.    remote places and discuss their project with their fellow students in
  160.    a manner which would be similar to all students having a conventional
  161.    meeting or conference. This same situation also applies to staff
  162.    members.  For those who have previously relied on email between
  163.    fellow researchers in many remote institutions, computer conferencing
  164.    brings the world together, onto the researchers screen where they can
  165.    trade ideas and code in real time. Traditionally to achieve these
  166.    goals, the phone would have been used and a teleconference setup and
  167.  
  168.  
  169.  
  170. Reed                                                            [Page 3]
  171.  
  172. RFC 1324             Computer Network Conferencing              May 1992
  173.  
  174.  
  175.    it will probably remain so for many years to come with video phones
  176.    too. However, with phone conferencing, when people talk over each
  177.    other, the quality of the discussion is degraded.
  178.  
  179. 2.0  Goals for what a protocol should provide
  180.  
  181.    In producing a protocol for conferencing over computer networks, the
  182.    following problems must be considered:
  183.  
  184. 2.1  State Information problems
  185.  
  186.    The number of users who are a part of the conference may fluctuate
  187.    continuously by a large amount over any given period of time.  The
  188.    protocol should endevour to make disruptions such as these as smooth
  189.    as possible but at the same time, keep the realtime feel in the
  190.    conference. It is not acceptable to buffer a user who quits for any
  191.    given time but at the same time, if a server has network problems
  192.    with connecting to another one, it may be wise to find some way
  193.    around the continual stream of state messages that are passed - or -
  194.    at least a way to reduce the number.
  195.  
  196. 2.2  Network barriers
  197.  
  198.    Members of a conference may be on physical networks which cannot
  199.    directly communicate with each other, such as those used from a host
  200.    on a commercial network talking via a bridge to someone from a
  201.    network directly connected to a network directly accessible from
  202.    theirs. So in this case, the users involved have no need to directly
  203.    use the bridge (as required by unix talk) since the server on the
  204.    gateway host provides a way for messages to be passed in and out of
  205.    the unreachable sections.  In this case also, there is a minimum
  206.    security risk to the network which is otherwise unreachable.
  207.  
  208. 2.3  User needs
  209.  
  210. 2.3.1  User privacy
  211.  
  212.    Members of a conference may wish to exchange ideas privately without
  213.    fear of others eavesdropping or interrupting the current conference.
  214.    To facilitate this, there should be some support by the protocol to
  215.    pass messages from one user/client directly to another.
  216.  
  217.    It is also reasonable for a user to want to be able to hide in one
  218.    way or another from other users, effectively making themself
  219.    invisible to other users.
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Reed                                                            [Page 4]
  227.  
  228. RFC 1324             Computer Network Conferencing              May 1992
  229.  
  230.  
  231. 2.3.2  Realtime Expectations
  232.  
  233.    Users will expect conferencing to be real time, giving the thereby
  234.    demanding that the protocol supply a quick, efficient, reliable and
  235.    accurate delivery of a message. Only when these requirements are met
  236.    can a conference system hope to be of any use to its users.
  237.  
  238. 2.4  Message Delivery
  239.  
  240. 2.4.1  Deficiencies in using IP only
  241.  
  242.    In routing between conference servers, the problem of routing
  243.    messages is an important issue. If there was a server for the
  244.    conference at each domain, this wouldn't be an issue, one could
  245.    simply do some sort of lookup and find the server for it. This is not
  246.    the case and unless such a server becomes a standard item for unix
  247.    machines, it is not reasonable to expect it to ever be so. Thus the
  248.    need for a layer on top of TCP/IP is needed to deliver messages
  249.    between the servers for the conference.
  250.  
  251. 2.4.2  Flexibility
  252.  
  253.    The routing protocol used should not be inflexible and should allow
  254.    for routes to change over time in much the same way as RIP does now.
  255.    However, there is no need for a special routing protocol such as RIP
  256.    since this is already part of IP's functionality. Routing information
  257.    should be updated automatically when the server receives information
  258.    via that route whether it creates or destroys a route.
  259.  
  260. 2.4.3  Building a flexible transport protocol on top of existing ones
  261.  
  262.    If such a conferencing service is built upon TCP/IP, it is therefore
  263.    possible to build an abstract routing model which has no relation to
  264.    the TCP/IP model. However, it is not wise to ignore the presence of
  265.    either TCP or IP since by integrating them into the protocol, it is
  266.    easier to use their strengths.  If the protocol relies too heavily on
  267.    TCP/IP features, it will also inherit some of its weaknesses. These
  268.    maybe taken for granted, but it is worth keeping them in mind when
  269.    designing a protocol to be both reliable, efficient and useful.
  270.  
  271. 2.5  Network Structure
  272.  
  273. 2.5.1  Size
  274.  
  275.    The potential userbase of a conferencing system using the internet
  276.    should not be underestimated. It is therefore desirable that the
  277.    conferencing system should be as distributed as possible, and as
  278.    little state information kept as possible. If the IRC network is
  279.  
  280.  
  281.  
  282. Reed                                                            [Page 5]
  283.  
  284. RFC 1324             Computer Network Conferencing              May 1992
  285.  
  286.  
  287.    taken as a guide, with 800 users on 140 servers in some 200 channels,
  288.    the server was using over 1MB of memory. Due to the nature of
  289.    conferencing and the server being run as a daemon, this memory was
  290.    hardly ever swapped out. For this reason, servers should aim to only
  291.    be authoritive about required users, channels and servers and keep up
  292.    to date information on these.
  293.  
  294.    There is also no requirement that a global conferencing system be
  295.    built, although it is an ideal arena to show the strengths of the
  296.    network. It also goes without saying that it shows up a lot of its
  297.    weaknesses too.
  298.  
  299.    Any protocol which is developed should operate equally well and
  300.    efficiently on both a large scale network and on a small scale
  301.    network.
  302.  
  303. 3.0  Usage
  304.  
  305.    If past usage is any guide, then a network based conferencing system
  306.    will be largely used by mostly students. This is not as unreasonable
  307.    as it may sound since students and student accounts easily form the
  308.    largest body on the internet. To encourage staff or other adults into
  309.    this field, it might be prudent to reduce the amount of noise and
  310.    interfearance a bored student (or staff member!) can generate.
  311.  
  312.    Realtime conferencing via computer networks is, however, a very
  313.    attractive toy to many students. It puts them in touch with the world
  314.    at no extra charge to them. They are able to construct their own
  315.    character and mask or hide their real self. This is a field which has
  316.    already been researched and is an interesting topic to pursue.
  317.  
  318. 4.0  Setting it up
  319.  
  320. 4.1  Installation
  321.  
  322.    The installation and setup of most network utilities/servers is not
  323.    something that is commonly discussed. It is, however, a point worth
  324.    considering here after observations made on the setup and
  325.    installation of systems such as IRC. If the setup is too easy and
  326.    requires little work, it is not unreasonable to expect students to
  327.    "install" it in their own accounts to provide themselves and friends
  328.    with this service. There is little that can really be done about this
  329.    except to force servers to listen and connect only to a certain
  330.    priveledged port(s). This need, however, requires root intervention
  331.    or aid and it is doubtful whether a service such as this should
  332.    require such steps.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Reed                                                            [Page 6]
  339.  
  340. RFC 1324             Computer Network Conferencing              May 1992
  341.  
  342.  
  343.    This problem is not often encountered with other network services
  344.    since they either require large amounts of disk space to be done
  345.    properly (news) or require the co-operation of other servers before
  346.    they work in a full serving role (DNS and use of name servers is a
  347.    good example of this). Of the two, the latter is a good solution if
  348.    it can be implemented fairly and well.
  349.  
  350. 4.2  Controlling growth
  351.  
  352.    Is it possible to reasonably control the growth and connectivity of a
  353.    large realtime conferencing network? Should it be compared to other
  354.    facilities such as USENet which is commonly available and very
  355.    widespread with no real central control over who gets news?
  356.  
  357. 5.0  Finding the *right* protocol
  358.  
  359.    This section deals with points which are central issues when deciding
  360.    upon a protocol. There are many points to consider when developing a
  361.    realtime protocol which is going to provide a service to many users
  362.    simultaneously.
  363.  
  364. 5.1  Name for protocol
  365.  
  366.    Although names such as IRC and ICB have been used in the past to
  367.    describe the implementation provided, this document is aimed at
  368.    stimulating a protocol which is much more general and useful than
  369.    these. A better name would reflect this. Depending on what network it
  370.    is implemented on, the Network Conferencing Protocol (NCP) or the
  371.    Internet Conferencing Protocol (ICP) are two suitable names.
  372.  
  373. 5.2  Responsibilities of conference servers
  374.  
  375. 5.2.1  Message passing
  376.  
  377.    A conferencing server should pass on all messages not destined for
  378.    itself or its users to the destination as quickly and efficiently as
  379.    possible. To this end, the server should not be required to do
  380.    extensive parsing of the incoming message, but rather, look at the
  381.    header and decide from there whether to send it on in the typical
  382.    gateway/relay fashion or parse it and pass it to one or more of its
  383.    users.
  384.  
  385. 5.2.2  Who is on?
  386.  
  387.    Any conference server should be able to supply (on request) a list of
  388.    attached user(s). The attached user(s) should have the option of
  389.    being able to say whether they wish to show up in such lists.
  390.  
  391.  
  392.  
  393.  
  394. Reed                                                            [Page 7]
  395.  
  396. RFC 1324             Computer Network Conferencing              May 1992
  397.  
  398.  
  399. 5.2.3  Who is who?
  400.  
  401.    All servers should provide *some* method to identify any known user
  402.    and supply details to the person making the query based on the search
  403.    key given.
  404.  
  405. 5.2.4  Conference security
  406.  
  407.    Conference servers should not run in such a manner that they
  408.    deliberately record the private conversation(s) of users which are
  409.    relying on the server in some way. It might seem that encrypting the
  410.    message before transmission to other servers in some way would solve
  411.    this, but this is better left as an option which is implemented in
  412.    clients and thus leaves it to the users to decide how secure they
  413.    want their conference to be.
  414.  
  415. 5.2.5  Error reporting
  416.  
  417.    All errors that the server encounters in its running life should one
  418.    way or another be reported to the operator(s) which are responsible
  419.    for this. This may include sending messages if an operator is online
  420.    or logging it to an error file.
  421.  
  422. 5.2.6  Network Friendliness
  423.  
  424.    It is quite easy for any network based application to "abuse" the
  425.    network it is running on. Also in a relay situation, it is quite
  426.    possible that a server will become bogged down trying to keep up with
  427.    just one connection and reduces the performance on an overall scale
  428.    to all users relying on it. It is therefore recommended that user
  429.    connections be subject to some sort of monitoring and flood control
  430.    to stop them dumping large amounts of spurious data and causing the
  431.    server to slow down.
  432.  
  433.    The server should also aim to maximise the packet size of all packets
  434.    written out to the network. Not only does this make the packet/bytes
  435.    statistics look nice, but also increases the efficiency of the server
  436.    by reducing the time it spends in the system state waiting/doing IO
  437.    operations such as read/write. The cost here is a fractional decrease
  438.    in the real-time efficiency of the server.
  439.  
  440. 5.2.7  To ASCII or not to ASCII
  441.  
  442.    Given that most of the widely used Internet protocols such as SMTP,
  443.    NNTP and FTP are all based on commands which are given via ASCII
  444.    strings, there seems no reason why a conferencing protocol should be
  445.    any different. The gains from going to binary are marginal and
  446.    debugging/testing is not as easy as with ASCII. However, it is not
  447.  
  448.  
  449.  
  450. Reed                                                            [Page 8]
  451.  
  452. RFC 1324             Computer Network Conferencing              May 1992
  453.  
  454.  
  455.    unreasonable for some part of the protocol to be done in binary.
  456.  
  457. 5.2.8  Queries or messages to a server and replies
  458.  
  459.    For implementation of server queries, it is quite acceptable to use
  460.    ASCII messages which are made up of words. (Any string of characters
  461.    which doesn't start with a number). Replies should be some sort of
  462.    numeric. This is a follow on from from 5.2.7 where all of FTP, NNTP
  463.    and SMTP work in this manner. By reserving numerics *just* for server
  464.    replies, there can be no confusion about whether the message is going
  465.    to or from a server.
  466.  
  467. 5.3  Responsibilities of clients
  468.  
  469.    This section discusses the obligations of clients which are connected
  470.    to a conference server.
  471.  
  472. 5.3.1  Providing accurate information
  473.  
  474.    Expecting accurate information is foolish, it matters not for most of
  475.    the internet, but those that we do wish to trace wont give such
  476.    information. A client is expected to provide accurate and valid
  477.    information to the server it connects to so that confusion about who
  478.    is who is not a problem. Optionally, the server may decide to not
  479.    trust the information from the client and use some authentication
  480.    scheme that is open to it for such.
  481.  
  482. 5.3.2  Client as servers
  483.  
  484.    If a client is acting as a server and accepting direct connections
  485.    from other clients, the client should provide information about users
  486.    as discussed in 5.2.3. It is not necessary that a client be able to
  487.    handle complex methods of communication such as channels and their
  488.    advanced forms, but they should at least provide users with being
  489.    able to send messages to other users.
  490.  
  491.    An example of this type of program might be Xtv where one or more
  492.    users can connect to another Xtv client program using Xtv clients.
  493.  
  494.    In the case of X windows and perhaps in other areas, one it to ask
  495.    the destination user to run a program in a similar manner to unix
  496.    talk.
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Reed                                                            [Page 9]
  507.  
  508. RFC 1324             Computer Network Conferencing              May 1992
  509.  
  510.  
  511. 5.4  How complex should the protocol be?
  512.  
  513. 5.4.1  User identification
  514.  
  515.    When a user signs onto a system that has an implementation of a
  516.    conferencing protocol, they are usually asked or given some sort of
  517.    unique key by which they are later able to be referenced by.  In a
  518.    large system, it may be such that any key which has meaning to the
  519.    user(s) will not be sufficient and that collisions will occur with
  520.    such. It is therefore suggested that a server generate an identifier
  521.    for each new user it has. This identifier must not only be unique in
  522.    space, but also time. It is not reasonable for the user to ever have
  523.    to be aware of what this identifier is, it should only be known by
  524.    servers which *need* to know. A similar system to that used by
  525.    NNTP/SMTP is a fair implementation of such a scheme.
  526.  
  527. 5.4.2  Trees and cycles
  528.  
  529.    Due to the structure of the network being cyclic or forming loops, it
  530.    is quite natural to want to emulate this within the protocol that is
  531.    available for users. This has several advantages over trees, mainly
  532.    the average path between any 2 nodes being shorter. A cyclic
  533.    structure also poses many problems in getting messages delivered and
  534.    keeping the connected users and servers up to date.  The main problem
  535.    with using the tree model is that a break in one part of the tree
  536.    needs to be communicated to all other parts of the tree to keep some
  537.    sort of realism about it.  The problem here is that such
  538.    communications happen quite often and a lot of bandwidth is
  539.    needlessly generated. By implementing a protocol which supports a
  540.    cyclic graph of its connectivity, breakages are less damaging except
  541.    when it is a leaf or branch that breaks off.
  542.  
  543. 5.5  Protocol summary
  544.  
  545.    It is not expected that any protocol that meets the above demands
  546.    will be either easy to arrive at or easy to implement.  Some of the
  547.    above requirements may seem to be exotic, unnecessary or not worth
  548.    the effort. After viewing previous conferencing programs and how they
  549.    work, many short comings can be seen in taking shortcuts.
  550.  
  551. 6.0  Security Considerations
  552.  
  553.    Security issues are not discussed in this memo.
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Reed                                                           [Page 10]
  563.  
  564. RFC 1324             Computer Network Conferencing              May 1992
  565.  
  566.  
  567. 7.0  Author's Address
  568.  
  569.    Darren Reed
  570.    4 Pateman Street
  571.    Watsonia, Victoria 3087
  572.    Australia
  573.  
  574.    Email: avalon@coombs.anu.edu.au
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Reed                                                           [Page 11]
  619.