RFC 1306 INFORMATIONAL NETWORKING · CIRCUIT SWITCHING · PERFORMANCE

Experiences Supporting By-Request Circuit-Switched T3 Networks

Connecting supercomputers with on-demand high-speed circuits

On rfc-editor.org ↗
PUBLISHED
March 1992
AUTHORS
A. Nicholson, J. Young
STREAM
Legacy
TEST SETUP LOCATION
Cray site (Eagan, Minnesota) to TCA show (San Diego)
BACKBONE TYPE
FDDI
DEDICATED CONNECTION
T1 line via MCI
ON-DEMAND CONNECTION
T3 circuit via DSC DS3 switch (Dallas)
DOI
10.17487/RFC1306

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                       A. Nicholson
Request for Comments: 1306                                      J. Young
                                                     Cray Research, Inc.
                                                              March 1992


     Experiences Supporting By-Request Circuit-Switched T3 Networks

Status of this Memo

   This RFC provides information for the Internet community.  It does
   not specify an Internet standard.  Distribution of this memo is
   unlimited.

Abstract

   This memo describes the experiences of a project team at Cray
   Research, Inc., in implementing support for circuit-switched T3
   services.  While the issues discussed may not be directly relevant to
   the research problems of the Internet, they may be interesting to a
   number of researchers and implementers.

   Developers at Cray Research, Inc. were presented with an opportunity
   to use a circuit-switched T3 network for wide area networking.  They
   devised an architectural model for using this new resource.  This
   involves activating the circuit-switched connection when an
   application program engages in a bulk data transfer, and releasing
   the connection when the transfer is complete.

   Three software implementations for this feature have been tested, and
   the results documented here.  A variety of issues are involved, and
   further research is necessary.  Network users are beginning to
   recognize the value of this service, and are planning to make use of
   by-request circuit-switched networks.  A standard method of access
   will be needed to ensure interoperability among vendors of circuit-
   switched network support products.

Acknowledgements

   The authors thank the T3 project team and other members of the
   Networking Group at Cray Research, Inc., for their efforts: Wayne
   Roiger, Gary Klesk, Joe Golio, John Renwick, Dave Borman and Craig
   Alesso.

Overview

   Users of wide-area networks often must make a compromise between low
   cost and high speed when accessing long haul connections.  The high
   money cost of dedicated high speed connections makes them
   uneconomical for scientists and engineers with limited budgets.  For
   many traditional applications this has not been a problem.  Datasets
   can be maintained on the remote computer and results were presented
   in a text-only form where a low-speed connection would suffice.
   However, for visualization and other data transfer intensive
   applications, this limitation can severely impact the usability of
   high performance computing tools which are available only through
   long-haul network connections.

   Supercomputers are one such high performance tool.  Many users who
   can benefit from access to supercomputers are limited by slow network
   connections to a centrally located supercomputer.  A solution to this
   problem is to use a circuit-switched network to provide high speed
   network connectivity at a reduced cost by allocating the network only
   when it is needed.

   Consider how a researcher using a visualization application might
   efficiently use a dedicated low speed link and a circuit switched
   high speed link.  The researcher logs in to the remote supercomputer
   over the low speed link.  After running whatever programs are
   necessary to prepare the visualization, the high speed connection is
   activated and used to transfer the graphics data to the researcher's
   workstation.

   We built and demonstrated this capability in September, 1990, at the
   Telecommunications Association show in San Diego, using this type of
   visualization application.  Further, it will be available in a
   forthcoming release of our system software.

Architectural Model

   We developed our support for circuit switched services around a
   simple model of a switched network.  At some point in the path
   between two hosts, there is a switched network connection.  This
   connection is likely to connect two enterprise networks operated by
   the same organization.  Administrative overlap between the two
   networks is useful for accounting and configuration purposes.  We
   believe that with further investigation circuit switched network
   support could be extended to multiple switched links in an internet
   environment.

   The switch which makes the network connection operates on a "by-
   request" basis (also called "on-demand").  When it receives a request
   to make a network connection it will do so (if possible), and breaks
   the connection when requested.  The switch will not activate
   automatically if there is an attempt to transfer data over an
   incomplete connection.

   We also made the assumption that the circuit would be switched on a
   connection basis rather than a packet basis.  When an application
   begins sending data utilizing the switched connection, it will send
   all the data it has, without stopping, until it is finished.  At this
   time it will release the connection.  It is assumed that the quantity
   of data will be large enough that the circuit setup time is
   negligible relative to the period of the transfer.  Otherwise, it is
   not worth the effort to support the circuit switched network for
   small data transfers.

   This model requires that just before the application begins a large
   bulk transfer of data, a request message is sent to the switch asking
   that the switched network connection be activated.  Once the link is
   up, the application begins sending data, and the network routes all
   the data from the application through the switched network.  As soon
   as all the data has been sent, a message is sent to the switch to
   turn off the switched link, and the network returns to routing data
   through the slower link.

   The prototype system we built for the TCA show was designed around
   this model of circuit switched services.  We connected a FDDI
   backbone at Cray Research in Eagan, Minnesota to the TCA show's FDDI
   network through 2 NSC 703 FDDI/T1/T3 routers.  MCI provided a
   dedicated T1 line and a switched T3 line, using a DSC DS3 T3 switch
   located in Dallas, Texas.  These networks provided connectivity
   between a Cray Research computer in Eagan to a Sun workstation on the
   show floor in San Diego.

Alternative Solution Strategies

   The first aspect of using the switched services involved the circuit
   switch.  The DS3 switch available to us was accessed via a dial up
   modem, and it communicated using a subset of the CCITT Q.295
   protocol.  Activating the switch required a 4 message exchange and
   deactivation required a 3 message exchange.  We felt the protocol was
   awkward and might be different for other switch hardware.
   Furthermore, we believed that the dial up aspect of communicating
   with the switch suffered from the same drawbacks.  A good solution
   would require a cleaner method of controlling the switch from the
   source host requesting the switched line.

   The next aspect of using switched services involves the source host
   software which requests and releases the switched network.  Ideally,
   the switched network is activated just before data transfer takes
   place and it is released as soon as all data has been sent.  We
   considered using special utility programs which a user could execute
   to control the link, special system libraries which application
   programs could call, or building the capability into the kernel.  We
   also considered the possibility that these methods could send
   messages to a daemon running on the source host which would then
   communicate with another entity actually controlling the switch.

   The last aspect of using switched services we considered is selection
   of the switch controlled network.  This involves both policy issues
   and routing issues.  Policy issues include which users running which
   applications will be able to use higher cost switched links.  And
   packets must be routed amongst multiple connections offering varying
   levels of service after they leave their source.

Implementations

   We have developed a model for switch control through the internetwork
   which we believe to be reasonable.  However, we have experimented
   with three different source host implementations.  These different
   implementations are detailed here.

Switch control

   Our simplest design decisions involved the switch itself.  We decided
   that the complex protocol and dial up line must be hidden from the
   source host requesting the switched link.  We decided that the source
   host would use a simple request/release protocol with messages sent
   through the regular network (as opposed to dial up lines or other
   connections).  Some host accessible through the local network would
   run a program translating the simple request and release messages
   into the more complicated switch protocol and also have the modem to
   handle the dial up connection.

   This has a variety of advantages.  First, it isolates differences in
   switch hardware.  Second, multiple hosts may access the switch
   without requiring multiple modems for the dial up line.  And it
   provides a central point of control for switch access.  We did not
   consider any alternatives to this model of switch control.

   Our initial implementation used a simple translator daemon running on
   a Sun workstation.  Listening on a raw IP port, this program would
   wait for switch control messages.  Upon receipt of such a message, it
   would dial up the switch and attempt to handle the request.  It would
   then send back a success or failure response.  This host, in
   conjunction with the translator daemon software, is referred to as
   the switch controller.  The switch controller we used was local to
   our enterprise network; however, it could reside anywhere in the
   Internet.

   Later we designed a simple protocol for switch control, which was
   implemented in the translator daemon.  This protocol is documented in
   RFC 1307, "Dynamically Switched Link Control Protocol".

Source Control of the Switched Link

   This problem involves a decision regarding what entity on the source
   host will issue the switch request and release messages to the switch
   controller, and when those messages will be issued.  Because we do
   not have very much field experience with this service, we do not feel
   that it is appropriate to recommend one method over the others.  They
   all have advantages and disadvantages.

   What we did do is make 3 different implementations of the request
   software and can report our experiences with each.  These are one set
   of special utility programs which communicate with the switch
   controller, and 2 kernel implementations.  We did not experiment with
   special libraries, nor did we implement a daemon for switch control
   messages on the source host.

Switch control user programs

   This implementation of source host control of the switch is the
   simplest.  Two programs were written which would communicate requests
   to the switch controller; one for activating the connection, and
   another to deactivate the connection.  The applications using this
   feature were then put into shell scripts with the switch control
   programs for simple execution.

   This approach has the significant advantage of not requiring any
   kernel modifications to any machine.  Furthermore, application
   programs do not need to be modified to access this feature.  And
   access to the circuit-switched links can be controlled using the
   access permissions for the switch-control programs.

   However, there are disadvantages as well.  First, there is
   significant potential for the switch to be active (and billing the
   user) for the dead time while the application program is doing tasks
   other than transferring bulk data.  The granularity of turning the
   switch on and off is limited to a per-application basis.

   Another disadvantage is that most applications use only the
   destination host's address for transfer, and this is the only
   information available to the transport and network layers for routing
   data packets.  Some other method must be used to distinguish between
   traffic which should use the circuit-switched connection and lower-
   priority traffic.  This problem can be addressed using route aliases,
   described below.

Kernel switch control

   We have made two different implementations of switch control
   facilities within the operating system kernel.  Both rely upon the
   routing lookup code in the kernel to send switch connect and tear
   down messages.  The difference is in how the time delay between
   request of the switch and a response is handled.

   For starters, routing table entries were expanded to include the
   internet address of the switch controller and state information for
   the switched connection.  If there is a switch controller address
   specified, then the connection must be set up before packets may be
   sent on this route.  We also added a separate module to handle the
   sending and receiving of the switch control messages.

   When a routing lookup is satisfied, the routing code would check
   whether the routing table entry specified a switch controller.  If
   so, then the routine requesting switch setup would be called.  This
   would send a message on the Internet to the switch controller to
   setup the connection.

   In our first implementation, the routing lookup call would return
   immediately after sending the switch connection request message.  It
   would be the responsibility of the transport protocol to deal with
   the time delay while the connection is setup, and to tear down if the
   switched connection could not be made.  This has significant
   ramifications.  In the case of UDP and IP, packets must be buffered
   for later transmission or face almost certain extermination as they
   will probably start arriving at the switched connection before it is
   ready to carry traffic.  Because of this problem, we decided that
   this feature would not be available for UDP or IP traffic.

   We did make this work for TCP.  Since TCP is already designed to work
   so that it buffers all data for possible later retransmission, this
   was not a problem.  Our first cut was to change TCP to check that the
   route it was using was up if it is a switch controlled route.  TCP
   would not send any data until the route was complete, and it would
   close the connection if the switch did not come up.

   This did not work well at first because every time TCP tried to send
   data before the switch came up, the retransmit time would be reset
   and backed off.  The rtt estimate, retransmit timeouts and the
   congestion control mechanism were seriously skewed before any data
   was ever sent.  The retransmit timer would expire as many as 3 times
   before data could be transmitted.  We solved this problem by adding
   another timer for handling the delay while the route came up, and not
   allowing the delay to affect any of the normal rtt timers.

   Our experiences with this approach were not particularly positive,
   and we decided to try another.  We also felt that unreliable datagram
   protocols should be able to use the service without excessive
   reworking.  Our alternative still sends the switch control message
   when a routing lookup finds a controlled route.  However, we now
   suspend execution of the thread of control until a response comes
   back from the switch controller.

   This proved to be easier to implement in many ways.  However, there
   were two major areas requiring changes outside the routing code.
   First, we decided that if the switch refused to activate the
   connection, it was pointless to try again.  So we changed the routing
   lookup interface so that it could return an error specifying a
   permanent error condition.  The transport layer could then return an
   appropriate error such as a host unreachable condition.

   The other, more complex issue deals with the suspension of the thread
   of execution.  Our operating system, UNICOS, is an ATT System V
   derivative, and our networking subsystem is based on the BSD tahoe
   and reno releases.  The only way to suspend execution is to sleep.
   This is fine, as long as there is a user context to put to sleep.
   However, it is not a good idea to go to sleep when processing network
   interrupts, as when forwarding a packet.

   We solved this problem by using a global flag regarding whether it
   was ok for the switch control message code to sleep.  If it is
   necessary to send a message and sleep, then the flag must be set and
   an error is returned if sleeping is not allowed.  User system calls
   which might cause a switch control message to be sent set and clear
   the flag upon entrance and exit.  We also made it impossible to
   forward packets on a switch controlled route.  We feel that this is
   reasonable since the overhead of switch control should be incurred
   only when an application program has made an explicit request to
   begin transfer of data.

   The one other change we made was to make sure that TCP freed the
   route it is using upon entering TIME_WAIT state.  There is no point
   in holding the circuit open for two minutes in case we need to
   retransmit the final ack.  Of course, this assumes that an alternate
   path exists for the the peer to retransmit its fin.

   The advantage of building this facility into the kernel is that it
   allows a fine degree of control over when the switch will and will
   not need to be activated.  Many applications which open a data
   connection, transmit their bulk data, and then close the connection
   will not require modifications and will make efficient use of the
   resource.  It also opens the possibility that applications written to
   use type-of-service can use the same network connection for low-
   bandwidth interactive traffic, change the type-of-service (thus
   activating the switched connection) for bulk transfers, and then
   release the switch upon returning to interactive traffic.

   Putting this feature into the kernel also allows strong control over
   when and how the switched link can be used, keeping accounting
   information, and limiting multiple use access to the switched link.

   The disadvantage is that significant kernel modifications are
   required, and some implementation details can be very difficult to
   handle.

Switch control libraries

   The switch control programs we used were built on a library of simple
   switch control routines; however, we did not alter any standard
   applications to use this library.  We did consider some advantages
   and disadvantages.  On the plus side, it is possible to achieve a
   satisfactory degree of switch control without requiring any kernel
   modifications.

   The primary disadvantage of this approach is that all applications
   must be altered and recompiled.  This is particularly inconvenient
   when source is not available.

Link Selection

   When an application wishes to send data over a circuit-switched
   connection, it will be necessary to select the switched link over
   other links.  This selection process may need to take place many
   times, depending on the local network between the source host and the
   bridge to the circuit switched connection.

   For example, if the kernel routing code is controlling the link, then
   there must be a way to choose a controlled route over another route.
   Further downstream, there must be a way to route packets to the
   switched link rather than other links.

   This issue has the potential for great complexity, and we avoided as
   much of the complexity as possible.  Policy routing and local routing
   across multiple connections are fertile areas for work and it is
   outside the scope of this work to address those issues.  Instead we
   opted for simple answers to difficult questions.

   First of all, we added no special policies to link accessibility
   beyond that already found in UNICOS.  And we handled local routing
   issues to the NSC FDDI/T1/T3 routers with routing table manipulation
   and IP Type-of-Service.

   We came up with three solutions for selecting a routing table entry.
   The first possibility is to use the type-of-service bits, which
   seemed natural to us.  We changed the routing table to include type-
   of-service values associated with routing entries, and the routing
   lookups would select using the type-of-service.  UNICOS already
   supports a facility to mark connections with a type-of-service value.
   A controlled route could be marked with high throughput type-of-
   service and an application wishing to transfer bulk data could set
   the socket for high throughput before making the connection.  It
   could also be possible to change the type-of-service on an existing
   connection and start using the switched link if one is available.

   Using the type-of-service bits have the advantage that downstream
   routers can also use this information.  In our demonstration system,
   the NSC FDDI/T1/T3 routers were configured to transfer packets with
   high throughput type-of-service over the T3 connection and all others
   over the T1 connection.

   Another possibility is to take advantage of the multiple addresses of
   a multi-homed host.  Routing tables could be set up so that packets
   for one of the addresses get special treatment by traveling over the
   switched link.  The routing table in the source host would have an
   entry for accessing the switch controller when sending to the high
   throughput destination address.

   We also derived a method we call route aliasing.  Route aliasing
   involves associating extra addresses to a single host.  However,
   rather than the destination being an actual multi-homed host, the
   alias is known only to the source host and is used as an alternative
   lookup key.  When an application tries to connect to the alias
   address the routing lookup returns an aliased route.  The route alias
   contains the actual address of the host, but because of looking up
   the special address, the switch is activated.  The alias could also
   specify a type-of-service value to send in the packets so that
   downstream routers could properly route the packets to the switched
   link.  We realize that some may bemoan the waste of the limited
   Internet address space for aliases; however, only the source host is
   aware of the alias, and the primary shortage is with Internet network
   addresses rather than host addresses.  In fact, we argue that this is
   a more efficient use of the already sparse allocation of host
   addresses available with each network address.

Future considerations

   We believe that by-request services will become increasingly
   important to certain classes of users.  Many data centers make high
   performance resources available over a wide area, and these will be
   the first users to take advantage of wide-area circuit-switched
   networks.  Some users, such as CICNet ([2]), are already interested
   in deploying this capability and telecom vendors are working to
   satisfy this need.  However, there are a lot of issues involved in
   providing this functionality.  We are working to involve others in
   this process.

References

   [1]  Nicholson, et. al., "High Speed Networking at Cray Research",
        Computer Communications Review, January 1991.

   [2]  CICNet DS3 Working Group, "High Performance Applications on
        CICNet: Impact on Design and Capacity", public report, CICNet,
        Inc., June 1991.

   [3]  Young, J., and A. Nicholson, "Dynamically Switched Link Control
        Protocol", RFC 1307, Cray Research, Inc., March 1992.

Security Considerations

   Security issues are not discussed in this memo.

Authors' Addresses

   Andy Nicholson
   Cray Research, Inc.
   655F Lone Oak Drive
   Eagan, MN 55123

   Phone: (612) 452-6650
   EMail: droid@cray.com


   Jeff Young
   Cray Research, Inc.
   655F Lone Oak Drive
   Eagan, MN 55123

   Phone: (612) 452-6650
   EMail: jsy@cray.com

AI ELI5

On this page
PROBLEMSupercomputers are often far away from the scientists who need them, and dedicated high-speed network connections to reach them are expensive. For most work, slow connections suffice, but for data-intensive tasks like visualization, they become a bottleneck.
MECHANISMThe RFC describes a system where a slow, cheap connection stays open for everyday use, and a fast circuit-switched connection (T3 line) is activated on demand only when large data transfers happen. A switch controller on the network translates requests from application software into commands for the circuit switch.
ON-DEMAND CIRCUITSThe team demonstrated working prototypes with three different approaches (user programs, two kernel implementations), and reported that kernel-based switch control was most promising but needed careful design to handle timing and avoid disrupting TCP.

§1The Problem and the Solution

In the early 1990s, Cray Research wanted to make their supercomputers available to researchers around the world, but the researchers had a problem: dedicated high-speed wide-area network connections were very expensive. A researcher might spend 90 percent of their time working interactively over a slow connection (which costs little), but need to transfer gigabytes of visualization data home (which requires speed). Buying a high-speed T3 circuit just to have it sitting idle most of the time made no economic sense.

The solution was to use two connections: a dedicated low-speed link for everyday login and interaction, and a circuit-switched T3 line (a high-speed connection you can turn on and off) that activates automatically when bulk data transfer begins. Once the data is sent, the expensive circuit goes down and billing stops. The RFC documents Cray's experiences building this system, including what they learned about how to control the circuit switch from application software.

Imagine a researcher in San Diego needing to use a supercomputer in Minnesota. They keep a slow phone line to Minnesota open (cheap). When they need to download pictures, the system automatically dials up a super-fast T3 line (expensive) just for that moment, then hangs up. It's like calling long distance only when you really need to.

Two-tier connection model (illustrative)
Interactive sessionsresearcher → supercomputerConstant low-speed T1 link for login and commands
ACTIVATED FOR BULK TRANSFERS VIA
Data transfersupercomputer → researcherOn-demand high-speed T3 circuit for bulk visualization data

§2How the System Works

The team built their system around a straightforward architecture. Between two networks (for example, Cray's site in Minnesota and the show floor in San Diego), a circuit switch sits ready. The switch operates on-demand: when someone requests a connection, it makes one (if possible); when requested to close it, it does. The connection is not activated automatically by traffic.

The system assumes that when an application starts using the switched connection, it will send all its data in one continuous burst, then release the connection. The time spent activating the circuit is short relative to the data transfer, so the savings outweigh the setup overhead.

At a practical level, the researchers connected an FDDI network at Cray (in Eagan, Minnesota) to another FDDI network at the show in San Diego using two routers. MCI provided a dedicated T1 line and a switched T3 line, with a DS3 switch in Dallas. This created a test environment where a Cray supercomputer could send data to a Sun workstation using either the slow T1 or the fast T3, depending on demand.

The switch sits between two networks like a dispatcher. When an application says "I need the fast line," the dispatcher calls the switch and activates the T3. When the application is done sending data, it tells the dispatcher, who hangs up the T3. Only the big data transfer pays for the expensive connection.

§3Three Ways to Control the Switch

The RFC describes three strategies for how application software could request and release the circuit. The first approach used special utility programs that users could run manually or embed in shell scripts. To transfer a large file, a user would run a program to activate the switch, then start their application, and finally run another program to deactivate it. This had the advantage of not requiring any kernel changes, but it could waste money if the switch stayed active while the application was idle, and developers had to think about when to flip the switch.

The second and third approaches built switch control into the operating system kernel itself, so the switch activation was tied to network routing decisions. In the first kernel version, when a packet was sent to a destination with a controlled route, the kernel would send a request to the switch controller and continue immediately. This worked for TCP (which buffers data anyway), but UDP packets were lost because they arrived before the circuit was ready. The team later tried a second kernel approach where the kernel paused and waited for the switch to actually come up before sending any packets. This required adding a separate timer to avoid messing up TCP's retransmission estimates, and it only worked for application-initiated connections, not for packet forwarding.

The team tried three ways to decide when to flip the switch. First: user types a command. Second: the kernel flips it automatically when it sees traffic to a special address, then keeps going. Third: the kernel flips it and waits for it to be ready before sending data. Each had tradeoffs.

§4Choosing Which Connection to Use

Even with a switch controller in place, applications still need a way to request the switched connection instead of the default slow link. The RFC explores three approaches. Type-of-service marking uses fields in the IP header that the application can set to request high throughput. Routers downstream can see this and send the traffic over the T3. Multi-homed addressing assigns an additional IP address to the destination host; routing rules send packets for this address over the switched link. Route aliasing, a novel technique, lets the local host associate an extra IP address with a destination. When the application connects to this alias, the routing table returns a special route that activates the switch and includes the real address of the destination.

The team opted for simple solutions and used type-of-service and route aliasing in their demonstration, along with manual routing table manipulation. More complex policy routing and link selection were recognized as open problems outside the scope of this work.

Once the switch exists, an application has to ask for the fast connection. Three ways to ask: mark the traffic as high-speed, send it to a special address, or use an alias address that only the local host knows about.

§5Key Findings and Future Work

The RFC emphasizes several hard-won insights. First, hiding complexity was crucial: instead of having every host know how to talk to the switch (which uses an obscure CCITT protocol and a modem), a single switch controller host translates simple on/off requests from applications into the complex protocol. This isolates each host from differences in switch hardware and allows multiple hosts to share the modem.

Second, TCP integration matters. TCP already buffers data for retransmission, so building switch control into TCP worked reasonably well once the team added a separate timer for circuit setup and avoided messing with TCP's retransmission time estimates. UDP and IP datagrams were harder to handle because they assume the link is already up.

The authors note that by-request services were becoming increasingly important to data centers and supercomputer sites, and that vendors were working to support them. However, many issues remained: policy routing, link selection across multiple connections, handling UDP reliably, and knowing when an application really needs the switched link. The work suggested that this architectural approach was viable but needed broader industry collaboration to establish standards.

The team learned that it's easier to have one special computer talk to the switch instead of every host. They also learned that TCP (which retransmits lost packets) works better than UDP (which doesn't) because TCP already waits for things. They hope others will build on this and work on making it a standard.

§6References

[1]Nicholson, et. al., "High Speed Networking at Cray Research", Computer Communications Review, January 1991.
[2]CICNet DS3 Working Group, "High Performance Applications on CICNet: Impact on Design and Capacity", public report, CICNet, Inc., June 1991.
[3]RFC 1307Young, J., and A. Nicholson, "Dynamically Switched Link Control Protocol", RFC 1307, Cray Research, Inc., March 1992.March 1992