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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                       A. Nicholson
  8. Request for Comments: 1306                                      J. Young
  9.                                                      Cray Research, Inc.
  10.                                                               March 1992
  11.  
  12.  
  13.      Experiences Supporting By-Request Circuit-Switched T3 Networks
  14.  
  15. Status of this Memo
  16.  
  17.    This RFC provides information for the Internet community.  It does
  18.    not specify an Internet standard.  Distribution of this memo is
  19.    unlimited.
  20.  
  21. Abstract
  22.  
  23.    This memo describes the experiences of a project team at Cray
  24.    Research, Inc., in implementing support for circuit-switched T3
  25.    services.  While the issues discussed may not be directly relevant to
  26.    the research problems of the Internet, they may be interesting to a
  27.    number of researchers and implementers.
  28.  
  29.    Developers at Cray Research, Inc. were presented with an opportunity
  30.    to use a circuit-switched T3 network for wide area networking.  They
  31.    devised an architectural model for using this new resource.  This
  32.    involves activating the circuit-switched connection when an
  33.    application program engages in a bulk data transfer, and releasing
  34.    the connection when the transfer is complete.
  35.  
  36.    Three software implementations for this feature have been tested, and
  37.    the results documented here.  A variety of issues are involved, and
  38.    further research is necessary.  Network users are beginning to
  39.    recognize the value of this service, and are planning to make use of
  40.    by-request circuit-switched networks.  A standard method of access
  41.    will be needed to ensure interoperability among vendors of circuit-
  42.    switched network support products.
  43.  
  44. Acknowledgements
  45.  
  46.    The authors thank the T3 project team and other members of the
  47.    Networking Group at Cray Research, Inc., for their efforts: Wayne
  48.    Roiger, Gary Klesk, Joe Golio, John Renwick, Dave Borman and Craig
  49.    Alesso.
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Nicholson & Young                                               [Page 1]
  59.  
  60. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  61.  
  62.  
  63. Overview
  64.  
  65.    Users of wide-area networks often must make a compromise between low
  66.    cost and high speed when accessing long haul connections.  The high
  67.    money cost of dedicated high speed connections makes them
  68.    uneconomical for scientists and engineers with limited budgets.  For
  69.    many traditional applications this has not been a problem.  Datasets
  70.    can be maintained on the remote computer and results were presented
  71.    in a text-only form where a low-speed connection would suffice.
  72.    However, for visualization and other data transfer intensive
  73.    applications, this limitation can severely impact the usability of
  74.    high performance computing tools which are available only through
  75.    long-haul network connections.
  76.  
  77.    Supercomputers are one such high performance tool.  Many users who
  78.    can benefit from access to supercomputers are limited by slow network
  79.    connections to a centrally located supercomputer.  A solution to this
  80.    problem is to use a circuit-switched network to provide high speed
  81.    network connectivity at a reduced cost by allocating the network only
  82.    when it is needed.
  83.  
  84.    Consider how a researcher using a visualization application might
  85.    efficiently use a dedicated low speed link and a circuit switched
  86.    high speed link.  The researcher logs in to the remote supercomputer
  87.    over the low speed link.  After running whatever programs are
  88.    necessary to prepare the visualization, the high speed connection is
  89.    activated and used to transfer the graphics data to the researcher's
  90.    workstation.
  91.  
  92.    We built and demonstrated this capability in September, 1990, at the
  93.    Telecommunications Association show in San Diego, using this type of
  94.    visualization application.  Further, it will be available in a
  95.    forthcoming release of our system software.
  96.  
  97. Architectural Model
  98.  
  99.    We developed our support for circuit switched services around a
  100.    simple model of a switched network.  At some point in the path
  101.    between two hosts, there is a switched network connection.  This
  102.    connection is likely to connect two enterprise networks operated by
  103.    the same organization.  Administrative overlap between the two
  104.    networks is useful for accounting and configuration purposes.  We
  105.    believe that with further investigation circuit switched network
  106.    support could be extended to multiple switched links in an internet
  107.    environment.
  108.  
  109.    The switch which makes the network connection operates on a "by-
  110.    request" basis (also called "on-demand").  When it receives a request
  111.  
  112.  
  113.  
  114. Nicholson & Young                                               [Page 2]
  115.  
  116. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  117.  
  118.  
  119.    to make a network connection it will do so (if possible), and breaks
  120.    the connection when requested.  The switch will not activate
  121.    automatically if there is an attempt to transfer data over an
  122.    incomplete connection.
  123.  
  124.    We also made the assumption that the circuit would be switched on a
  125.    connection basis rather than a packet basis.  When an application
  126.    begins sending data utilizing the switched connection, it will send
  127.    all the data it has, without stopping, until it is finished.  At this
  128.    time it will release the connection.  It is assumed that the quantity
  129.    of data will be large enough that the circuit setup time is
  130.    negligible relative to the period of the transfer.  Otherwise, it is
  131.    not worth the effort to support the circuit switched network for
  132.    small data transfers.
  133.  
  134.    This model requires that just before the application begins a large
  135.    bulk transfer of data, a request message is sent to the switch asking
  136.    that the switched network connection be activated.  Once the link is
  137.    up, the application begins sending data, and the network routes all
  138.    the data from the application through the switched network.  As soon
  139.    as all the data has been sent, a message is sent to the switch to
  140.    turn off the switched link, and the network returns to routing data
  141.    through the slower link.
  142.  
  143.    The prototype system we built for the TCA show was designed around
  144.    this model of circuit switched services.  We connected a FDDI
  145.    backbone at Cray Research in Eagan, Minnesota to the TCA show's FDDI
  146.    network through 2 NSC 703 FDDI/T1/T3 routers.  MCI provided a
  147.    dedicated T1 line and a switched T3 line, using a DSC DS3 T3 switch
  148.    located in Dallas, Texas.  These networks provided connectivity
  149.    between a Cray Research computer in Eagan to a Sun workstation on the
  150.    show floor in San Diego.
  151.  
  152. Alternative Solution Strategies
  153.  
  154.    The first aspect of using the switched services involved the circuit
  155.    switch.  The DS3 switch available to us was accessed via a dial up
  156.    modem, and it communicated using a subset of the CCITT Q.295
  157.    protocol.  Activating the switch required a 4 message exchange and
  158.    deactivation required a 3 message exchange.  We felt the protocol was
  159.    awkward and might be different for other switch hardware.
  160.    Furthermore, we believed that the dial up aspect of communicating
  161.    with the switch suffered from the same drawbacks.  A good solution
  162.    would require a cleaner method of controlling the switch from the
  163.    source host requesting the switched line.
  164.  
  165.    The next aspect of using switched services involves the source host
  166.    software which requests and releases the switched network.  Ideally,
  167.  
  168.  
  169.  
  170. Nicholson & Young                                               [Page 3]
  171.  
  172. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  173.  
  174.  
  175.    the switched network is activated just before data transfer takes
  176.    place and it is released as soon as all data has been sent.  We
  177.    considered using special utility programs which a user could execute
  178.    to control the link, special system libraries which application
  179.    programs could call, or building the capability into the kernel.  We
  180.    also considered the possibility that these methods could send
  181.    messages to a daemon running on the source host which would then
  182.    communicate with another entity actually controlling the switch.
  183.  
  184.    The last aspect of using switched services we considered is selection
  185.    of the switch controlled network.  This involves both policy issues
  186.    and routing issues.  Policy issues include which users running which
  187.    applications will be able to use higher cost switched links.  And
  188.    packets must be routed amongst multiple connections offering varying
  189.    levels of service after they leave their source.
  190.  
  191. Implementations
  192.  
  193.    We have developed a model for switch control through the internetwork
  194.    which we believe to be reasonable.  However, we have experimented
  195.    with three different source host implementations.  These different
  196.    implementations are detailed here.
  197.  
  198. Switch control
  199.  
  200.    Our simplest design decisions involved the switch itself.  We decided
  201.    that the complex protocol and dial up line must be hidden from the
  202.    source host requesting the switched link.  We decided that the source
  203.    host would use a simple request/release protocol with messages sent
  204.    through the regular network (as opposed to dial up lines or other
  205.    connections).  Some host accessible through the local network would
  206.    run a program translating the simple request and release messages
  207.    into the more complicated switch protocol and also have the modem to
  208.    handle the dial up connection.
  209.  
  210.    This has a variety of advantages.  First, it isolates differences in
  211.    switch hardware.  Second, multiple hosts may access the switch
  212.    without requiring multiple modems for the dial up line.  And it
  213.    provides a central point of control for switch access.  We did not
  214.    consider any alternatives to this model of switch control.
  215.  
  216.    Our initial implementation used a simple translator daemon running on
  217.    a Sun workstation.  Listening on a raw IP port, this program would
  218.    wait for switch control messages.  Upon receipt of such a message, it
  219.    would dial up the switch and attempt to handle the request.  It would
  220.    then send back a success or failure response.  This host, in
  221.    conjunction with the translator daemon software, is referred to as
  222.    the switch controller.  The switch controller we used was local to
  223.  
  224.  
  225.  
  226. Nicholson & Young                                               [Page 4]
  227.  
  228. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  229.  
  230.  
  231.    our enterprise network; however, it could reside anywhere in the
  232.    Internet.
  233.  
  234.    Later we designed a simple protocol for switch control, which was
  235.    implemented in the translator daemon.  This protocol is documented in
  236.    RFC 1307, "Dynamically Switched Link Control Protocol".
  237.  
  238. Source Control of the Switched Link
  239.  
  240.    This problem involves a decision regarding what entity on the source
  241.    host will issue the switch request and release messages to the switch
  242.    controller, and when those messages will be issued.  Because we do
  243.    not have very much field experience with this service, we do not feel
  244.    that it is appropriate to recommend one method over the others.  They
  245.    all have advantages and disadvantages.
  246.  
  247.    What we did do is make 3 different implementations of the request
  248.    software and can report our experiences with each.  These are one set
  249.    of special utility programs which communicate with the switch
  250.    controller, and 2 kernel implementations.  We did not experiment with
  251.    special libraries, nor did we implement a daemon for switch control
  252.    messages on the source host.
  253.  
  254. Switch control user programs
  255.  
  256.    This implementation of source host control of the switch is the
  257.    simplest.  Two programs were written which would communicate requests
  258.    to the switch controller; one for activating the connection, and
  259.    another to deactivate the connection.  The applications using this
  260.    feature were then put into shell scripts with the switch control
  261.    programs for simple execution.
  262.  
  263.    This approach has the significant advantage of not requiring any
  264.    kernel modifications to any machine.  Furthermore, application
  265.    programs do not need to be modified to access this feature.  And
  266.    access to the circuit-switched links can be controlled using the
  267.    access permissions for the switch-control programs.
  268.  
  269.    However, there are disadvantages as well.  First, there is
  270.    significant potential for the switch to be active (and billing the
  271.    user) for the dead time while the application program is doing tasks
  272.    other than transferring bulk data.  The granularity of turning the
  273.    switch on and off is limited to a per-application basis.
  274.  
  275.    Another disadvantage is that most applications use only the
  276.    destination host's address for transfer, and this is the only
  277.    information available to the transport and network layers for routing
  278.    data packets.  Some other method must be used to distinguish between
  279.  
  280.  
  281.  
  282. Nicholson & Young                                               [Page 5]
  283.  
  284. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  285.  
  286.  
  287.    traffic which should use the circuit-switched connection and lower-
  288.    priority traffic.  This problem can be addressed using route aliases,
  289.    described below.
  290.  
  291. Kernel switch control
  292.  
  293.    We have made two different implementations of switch control
  294.    facilities within the operating system kernel.  Both rely upon the
  295.    routing lookup code in the kernel to send switch connect and tear
  296.    down messages.  The difference is in how the time delay between
  297.    request of the switch and a response is handled.
  298.  
  299.    For starters, routing table entries were expanded to include the
  300.    internet address of the switch controller and state information for
  301.    the switched connection.  If there is a switch controller address
  302.    specified, then the connection must be set up before packets may be
  303.    sent on this route.  We also added a separate module to handle the
  304.    sending and receiving of the switch control messages.
  305.  
  306.    When a routing lookup is satisfied, the routing code would check
  307.    whether the routing table entry specified a switch controller.  If
  308.    so, then the routine requesting switch setup would be called.  This
  309.    would send a message on the Internet to the switch controller to
  310.    setup the connection.
  311.  
  312.    In our first implementation, the routing lookup call would return
  313.    immediately after sending the switch connection request message.  It
  314.    would be the responsibility of the transport protocol to deal with
  315.    the time delay while the connection is setup, and to tear down if the
  316.    switched connection could not be made.  This has significant
  317.    ramifications.  In the case of UDP and IP, packets must be buffered
  318.    for later transmission or face almost certain extermination as they
  319.    will probably start arriving at the switched connection before it is
  320.    ready to carry traffic.  Because of this problem, we decided that
  321.    this feature would not be available for UDP or IP traffic.
  322.  
  323.    We did make this work for TCP.  Since TCP is already designed to work
  324.    so that it buffers all data for possible later retransmission, this
  325.    was not a problem.  Our first cut was to change TCP to check that the
  326.    route it was using was up if it is a switch controlled route.  TCP
  327.    would not send any data until the route was complete, and it would
  328.    close the connection if the switch did not come up.
  329.  
  330.    This did not work well at first because every time TCP tried to send
  331.    data before the switch came up, the retransmit time would be reset
  332.    and backed off.  The rtt estimate, retransmit timeouts and the
  333.    congestion control mechanism were seriously skewed before any data
  334.    was ever sent.  The retransmit timer would expire as many as 3 times
  335.  
  336.  
  337.  
  338. Nicholson & Young                                               [Page 6]
  339.  
  340. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  341.  
  342.  
  343.    before data could be transmitted.  We solved this problem by adding
  344.    another timer for handling the delay while the route came up, and not
  345.    allowing the delay to affect any of the normal rtt timers.
  346.  
  347.    Our experiences with this approach were not particularly positive,
  348.    and we decided to try another.  We also felt that unreliable datagram
  349.    protocols should be able to use the service without excessive
  350.    reworking.  Our alternative still sends the switch control message
  351.    when a routing lookup finds a controlled route.  However, we now
  352.    suspend execution of the thread of control until a response comes
  353.    back from the switch controller.
  354.  
  355.    This proved to be easier to implement in many ways.  However, there
  356.    were two major areas requiring changes outside the routing code.
  357.    First, we decided that if the switch refused to activate the
  358.    connection, it was pointless to try again.  So we changed the routing
  359.    lookup interface so that it could return an error specifying a
  360.    permanent error condition.  The transport layer could then return an
  361.    appropriate error such as a host unreachable condition.
  362.  
  363.    The other, more complex issue deals with the suspension of the thread
  364.    of execution.  Our operating system, UNICOS, is an ATT System V
  365.    derivative, and our networking subsystem is based on the BSD tahoe
  366.    and reno releases.  The only way to suspend execution is to sleep.
  367.    This is fine, as long as there is a user context to put to sleep.
  368.    However, it is not a good idea to go to sleep when processing network
  369.    interrupts, as when forwarding a packet.
  370.  
  371.    We solved this problem by using a global flag regarding whether it
  372.    was ok for the switch control message code to sleep.  If it is
  373.    necessary to send a message and sleep, then the flag must be set and
  374.    an error is returned if sleeping is not allowed.  User system calls
  375.    which might cause a switch control message to be sent set and clear
  376.    the flag upon entrance and exit.  We also made it impossible to
  377.    forward packets on a switch controlled route.  We feel that this is
  378.    reasonable since the overhead of switch control should be incurred
  379.    only when an application program has made an explicit request to
  380.    begin transfer of data.
  381.  
  382.    The one other change we made was to make sure that TCP freed the
  383.    route it is using upon entering TIME_WAIT state.  There is no point
  384.    in holding the circuit open for two minutes in case we need to
  385.    retransmit the final ack.  Of course, this assumes that an alternate
  386.    path exists for the the peer to retransmit its fin.
  387.  
  388.    The advantage of building this facility into the kernel is that it
  389.    allows a fine degree of control over when the switch will and will
  390.    not need to be activated.  Many applications which open a data
  391.  
  392.  
  393.  
  394. Nicholson & Young                                               [Page 7]
  395.  
  396. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  397.  
  398.  
  399.    connection, transmit their bulk data, and then close the connection
  400.    will not require modifications and will make efficient use of the
  401.    resource.  It also opens the possibility that applications written to
  402.    use type-of-service can use the same network connection for low-
  403.    bandwidth interactive traffic, change the type-of-service (thus
  404.    activating the switched connection) for bulk transfers, and then
  405.    release the switch upon returning to interactive traffic.
  406.  
  407.    Putting this feature into the kernel also allows strong control over
  408.    when and how the switched link can be used, keeping accounting
  409.    information, and limiting multiple use access to the switched link.
  410.  
  411.    The disadvantage is that significant kernel modifications are
  412.    required, and some implementation details can be very difficult to
  413.    handle.
  414.  
  415. Switch control libraries
  416.  
  417.    The switch control programs we used were built on a library of simple
  418.    switch control routines; however, we did not alter any standard
  419.    applications to use this library.  We did consider some advantages
  420.    and disadvantages.  On the plus side, it is possible to achieve a
  421.    satisfactory degree of switch control without requiring any kernel
  422.    modifications.
  423.  
  424.    The primary disadvantage of this approach is that all applications
  425.    must be altered and recompiled.  This is particularly inconvenient
  426.    when source is not available.
  427.  
  428. Link Selection
  429.  
  430.    When an application wishes to send data over a circuit-switched
  431.    connection, it will be necessary to select the switched link over
  432.    other links.  This selection process may need to take place many
  433.    times, depending on the local network between the source host and the
  434.    bridge to the circuit switched connection.
  435.  
  436.    For example, if the kernel routing code is controlling the link, then
  437.    there must be a way to choose a controlled route over another route.
  438.    Further downstream, there must be a way to route packets to the
  439.    switched link rather than other links.
  440.  
  441.    This issue has the potential for great complexity, and we avoided as
  442.    much of the complexity as possible.  Policy routing and local routing
  443.    across multiple connections are fertile areas for work and it is
  444.    outside the scope of this work to address those issues.  Instead we
  445.    opted for simple answers to difficult questions.
  446.  
  447.  
  448.  
  449.  
  450. Nicholson & Young                                               [Page 8]
  451.  
  452. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  453.  
  454.  
  455.    First of all, we added no special policies to link accessibility
  456.    beyond that already found in UNICOS.  And we handled local routing
  457.    issues to the NSC FDDI/T1/T3 routers with routing table manipulation
  458.    and IP Type-of-Service.
  459.  
  460.    We came up with three solutions for selecting a routing table entry.
  461.    The first possibility is to use the type-of-service bits, which
  462.    seemed natural to us.  We changed the routing table to include type-
  463.    of-service values associated with routing entries, and the routing
  464.    lookups would select using the type-of-service.  UNICOS already
  465.    supports a facility to mark connections with a type-of-service value.
  466.    A controlled route could be marked with high throughput type-of-
  467.    service and an application wishing to transfer bulk data could set
  468.    the socket for high throughput before making the connection.  It
  469.    could also be possible to change the type-of-service on an existing
  470.    connection and start using the switched link if one is available.
  471.  
  472.    Using the type-of-service bits have the advantage that downstream
  473.    routers can also use this information.  In our demonstration system,
  474.    the NSC FDDI/T1/T3 routers were configured to transfer packets with
  475.    high throughput type-of-service over the T3 connection and all others
  476.    over the T1 connection.
  477.  
  478.    Another possibility is to take advantage of the multiple addresses of
  479.    a multi-homed host.  Routing tables could be set up so that packets
  480.    for one of the addresses get special treatment by traveling over the
  481.    switched link.  The routing table in the source host would have an
  482.    entry for accessing the switch controller when sending to the high
  483.    throughput destination address.
  484.  
  485.    We also derived a method we call route aliasing.  Route aliasing
  486.    involves associating extra addresses to a single host.  However,
  487.    rather than the destination being an actual multi-homed host, the
  488.    alias is known only to the source host and is used as an alternative
  489.    lookup key.  When an application tries to connect to the alias
  490.    address the routing lookup returns an aliased route.  The route alias
  491.    contains the actual address of the host, but because of looking up
  492.    the special address, the switch is activated.  The alias could also
  493.    specify a type-of-service value to send in the packets so that
  494.    downstream routers could properly route the packets to the switched
  495.    link.  We realize that some may bemoan the waste of the limited
  496.    Internet address space for aliases; however, only the source host is
  497.    aware of the alias, and the primary shortage is with Internet network
  498.    addresses rather than host addresses.  In fact, we argue that this is
  499.    a more efficient use of the already sparse allocation of host
  500.    addresses available with each network address.
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Nicholson & Young                                               [Page 9]
  507.  
  508. RFC 1306          Experiences with Circuit-Switched T3        March 1992
  509.  
  510.  
  511. Future considerations
  512.  
  513.    We believe that by-request services will become increasingly
  514.    important to certain classes of users.  Many data centers make high
  515.    performance resources available over a wide area, and these will be
  516.    the first users to take advantage of wide-area circuit-switched
  517.    networks.  Some users, such as CICNet ([2]), are already interested
  518.    in deploying this capability and telecom vendors are working to
  519.    satisfy this need.  However, there are a lot of issues involved in
  520.    providing this functionality.  We are working to involve others in
  521.    this process.
  522.  
  523. References
  524.  
  525.    [1]  Nicholson, et. al., "High Speed Networking at Cray Research",
  526.         Computer Communications Review, January 1991.
  527.  
  528.    [2]  CICNet DS3 Working Group, "High Performance Applications on
  529.         CICNet: Impact on Design and Capacity", public report, CICNet,
  530.         Inc., June 1991.
  531.  
  532.    [3]  Young, J., and A. Nicholson, "Dynamically Switched Link Control
  533.         Protocol", RFC 1307, Cray Research, Inc., March 1992.
  534.  
  535. Security Considerations
  536.  
  537.    Security issues are not discussed in this memo.
  538.  
  539. Authors' Addresses
  540.  
  541.    Andy Nicholson
  542.    Cray Research, Inc.
  543.    655F Lone Oak Drive
  544.    Eagan, MN 55123
  545.  
  546.    Phone: (612) 452-6650
  547.    EMail: droid@cray.com
  548.  
  549.  
  550.    Jeff Young
  551.    Cray Research, Inc.
  552.    655F Lone Oak Drive
  553.    Eagan, MN 55123
  554.  
  555.    Phone: (612) 452-6650
  556.    EMail: jsy@cray.com
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Nicholson & Young                                              [Page 10]
  563.