home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1307.txt < prev    next >
Text File  |  1996-05-07  |  25KB  |  384 lines

  1.   
  2.  
  3.   
  4.  
  5.   
  6.  
  7. Network Working Group                                           J. Young Request for Comments: 1307                                  A. Nicholson                                                      Cray Research, Inc.                                                               March 1992  
  8.  
  9.                 Dynamically Switched Link Control Protocol  
  10.  
  11. Status of this Memo  
  12.  
  13.    This memo defines an Experimental Protocol for the Internet    community.  Discussion and suggestions for improvement are requested.    Please refer to the current edition of the "IAB Official Protocol    Standards" for the standardization state and status of this protocol.    Distribution of this memo is unlimited.  
  14.  
  15. Abstract  
  16.  
  17.    This memo describes an experimental protocol developed by a project    team at Cray Research, Inc., in implementing support for circuit-    switched T3 services.  The protocol is used for the control of    network connections external to a host, but known to the host.  It is    documented here for the benefit of others who may wish to perform    further research.  
  18.  
  19.    While working with circuit-switched T3 networks, developers at Cray    Research, Inc., defined a model wherein a host would generate control    messages for a network switch.  This work is described in RFC 1306,    "Experiences Supporting By-Request Circuit-Switched T3 Networks".  In    order to simplify the model it was decided that the inconsistencies    of switch control should be hidden from the host generating the    control messages.  To that end, a protocol was defined and    implemented.  This RFC documents the Dynamically Switched Link    Control Protocol (DSLCP), which is used for creation and control of    downstream network links by a host.  
  20.  
  21. 1.0  INTRODUCTION  
  22.  
  23.    The Dynamically Switched Link Control Protocol (DSLCP) allows a host    with knowledge of a special downstream network link to issue messages    to control the status of that link.  
  24.  
  25.    This document describes the functions of the DSLCP to control    external network connections.  
  26.  
  27.   
  28.  
  29.   
  30.  
  31.   
  32.  
  33. Young & Nicholson                                               [Page 1]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  34.  
  35.  1.1  Motivation  
  36.  
  37.    Circuit Switched Networks are becoming available to the Internet    community.  These networks are made available by requesting a    connection through a switch.  Normally circuit switched network links    are disconnected, and their prohibitive cost suggests that it is very    costly to leave them connected at all times.  
  38.  
  39.    Internet users and hosts wish to send data over a circuit switched    networks, but only connect the network links when a transport    connection is to be established.  While it would be possible to use    packet routers to identify the need for switching a connection on and    off, only the transport provider can positively identify the    beginning and end of a transport session.  There must be a mechanism    to activate and deactivate the link at the beginning and end of a    transport session.  
  40.  
  41.    The DSLCP assumes that a transport provider has knowledge of a    downstream link which must be setup before data transfer may take    place.  However, the details of link setup may vary by the type of    link (circuit-switched or other), specific hardware, or    administrative differences.  The DSLCP hides these details from the    transport provider by offering a simple request/release model of link    preparation.  The model assumes an entity in control of the link    which handles the details of connection preparation while responding    to the DSLCP commands of the transport provider.  This entity is    called the link controller.  
  42.  
  43.    The DSLCP allows internet hosts to dynamically change the fabric of    the internet by sending messages through the internet in advance of    data which is to travel across the newly created links.  
  44.  
  45. 1.2  Scope  
  46.  
  47.    DSLCP is intended to provide an interface between transport providers    and arbitrary network links requiring creation, control, setup, or    conditioning before data communications may take place.  
  48.  
  49. 1.3  Interfaces  
  50.  
  51.    There are no specific user level interfaces to DSLCP, although they    are not precluded.  Link control is a function of the network layer,    initiated by requests from the transport provider.  
  52.  
  53.    A DSLCP transaction is defined as a transport provider communicating    with a link controller for the duration of transport session.  A    network path between the host providing transport services and the    link controller must exist in advance of the DSLCP transaction.  
  54.  
  55.   
  56.  
  57. Young & Nicholson                                               [Page 2]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  58.  
  59.     Either party to an DSLCP transaction may asynchronously generate    messages.  
  60.  
  61. 1.4  Operation  
  62.  
  63.    The purpose of the DSLCP is to allow a transport provider to request    the setup of a downstream network link so that data transfer may take    place through that link.  DSLCP messages are assumed to be    communicated between the transport provider and the link controller    through a transport service, such as UDP or TCP, or through a network    service such as IP.  
  64.  
  65.    DSLCP provides messages for link setup and teardown.  All the details    of link management are left to the link controller.  The transport    provider is interested only whether the link is ready to carry data.  
  66.  
  67. 1.5  Transmission  
  68.  
  69.    DSLCP messages are carried through the network in datagrams using    either IP or UDP.  DSLCP is designed to not require a reliable    transport protocol.  
  70.  
  71. 2.0  DSLCP Architecture  
  72.  
  73.    DSLCP is used in a host environment.  Normally, transport users on    the host will make requests of a transport provider to carry data to    other hosts.  Some of these requests may require the preparation of a    downstream network link.  The transport provider has knowledge of    these special network links, and issues a request to DSLCP that the    link be prepared to carry data.  This happens transparently to the    transport user.  
  74.  
  75.    When a transport user requests transport services, the transport    provider will normally attempt to establish a connection.  In the    event the transport provider discovers that the connection requires    special link control, the transport provider will call upon DSLCP to    send a link setup message to the link controller.  The transport    provider does not attempt to use the connection until DSLCP informs    the transport provider that the link is setup or that the setup    attempt failed.  If the setup failed, then the transport provider is    free to attempt to find another way to create a connection.  
  76.  
  77.    When the transport user is finished using the services, then the    transport provider will call DSLCP to release the link.  The    transport provider may now assume that the link is no longer    available.  
  78.  
  79.    In general, DSLCP maintains and hides the status of link control  
  80.  
  81.   
  82.  
  83. Young & Nicholson                                               [Page 3]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  84.  
  85.     transactions from the transport provider.  This way the transport    provider does not need to keep track of multiple DSLCP transactions.    For example, if the transport provider requests a link be setup for a    new transport user while another transport user has the link active,    the DSLCP may inform the transport provider that the link is ready    without delay, provided that the link can support multiple transport    connections.  
  86.  
  87. 3.0  FUNCTIONAL SPECIFICATION  
  88.  
  89.    This document specifies both a message format and a state machine for    DSLCP protocol transactions.  
  90.  
  91. 3.1  Control Message Format  
  92.  
  93.         0                   1                   2                   3         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |  Identifier                   |   Total length                |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |  Function                     |   Event Status                |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |                Endpoint 1                                     |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |                Endpoint 2                                     |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |                       Message                                 |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        |                       Body                                    |        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  94.  
  95.    Identifier: 16 bits  
  96.  
  97.        The identifier is a value assigned by the DSLCP used to uniquely        identify link setup transactions.  It is intended to be used with        the endpoint addresses by a link controller to identify a        transaction.  
  98.  
  99.    Total length: 16 bits  
  100.  
  101.        The total length, in octets, including the header of this DSLCP        control message.  
  102.  
  103.    Function: 16 bits  
  104.  
  105.        The operation to be processed or being responded to.  
  106.  
  107.        Functions currently defined are:  
  108.  
  109.   
  110.  
  111. Young & Nicholson                                               [Page 4]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  112.  
  113.             Bring up        value 0            Bring down      value 1  
  114.  
  115.    Event Status: 16 bits  
  116.  
  117.        The state of the controlled link, relative to the last function        request.  
  118.  
  119.        The possible event states are:            Setup request succeeded        value 2            Setup request failed           value 3            Teardown request succeeded     value 4            Teardown request failed        value 5            Asynchronous network down      value 7  
  120.  
  121.    Endpoint addresses: 32 bits each  
  122.  
  123.        The internet addresses of the two communicating parties for which        the link is being prepared.  
  124.  
  125.    Message body:  arbitrary length up to 65499 octets  
  126.  
  127.        An ascii string which is meaningful the link controller.  When the        requesting host is configured, the system administrator sets the        control strings for each network link that may be accessed by the        requesting host.  
  128.  
  129. 3.2  State Machine  
  130.  
  131.    The transport provider is aware of only 2 possible states for the    controlled link: up or down.  Furthermore, transport users may    request or release transport services from the transport provider at    any time.  Thus, there must be a state machine employed by DSLCP when    communicating between the transport provider and the controlled link.    This state machine hides the details of link control transactions    from the transport provider.  The state machine has 6 possible    states.  
  132.  
  133.         Down: There is no active transport connection and the controlled         link is not setup.  
  134.  
  135.         Coming Up: A transport user has requested a connection for which         the transport provider has given a setup request to the DSLCP.         The DSLCP has sent a setup request to the link controller and is         awaiting a response.  
  136.  
  137.         Up: At least one transport connection is active and the         controlled link is setup.  
  138.  
  139.   
  140.  
  141. Young & Nicholson                                               [Page 5]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  142.  
  143.          Going Down: All transport connections have been terminated and         the transport provider has sent an equivalent number of up         requests and down requests to the DSLCP.  The DSLCP has sent a         teardown request to the link controller and is awaiting a         response.  
  144.  
  145.         Bring Down: While DSLCP is in the Coming Up state, the transport         provider requested link teardown.  As soon as a response is         received from the link controller, the DSLCP will send a         teardown request if the link setup was successful.  
  146.  
  147.         Bring Up: While in the Going Down state, the transport provider         requested connection setup.  As soon as a response is received         from the link controller, the DSLCP will send a setup request.  
  148.  
  149.   
  150.  
  151.   
  152.  
  153.   
  154.  
  155.   
  156.  
  157.   
  158.  
  159.   
  160.  
  161.   
  162.  
  163.   
  164.  
  165.   
  166.  
  167.   
  168.  
  169.   
  170.  
  171.   
  172.  
  173.   
  174.  
  175.   
  176.  
  177.   
  178.  
  179.   
  180.  
  181.   
  182.  
  183.   
  184.  
  185. Young & Nicholson                                               [Page 6]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  186.  
  187.      DSLCP state diagram:  
  188.  
  189.               ------- +----------------+      Transport        |     Down       |<---------\      Connect     ---->+----------------+           \      Request    /               ^  ^                \      -------  Setup             |  |                 \      Send     Failed            |  |         Teardown \ Response Timeout      Setup   /------            |  |         Success   \ ---------------        /    /                   |  |         --------  |        |    |                   |  |                   |        |    |                   |  |                   |        |    | Teardown Response |  |                   |        |    | Success  Timeout  |  |                   |        |    | ----------------- |  |     +----------+  |        |    |      Send---------|--|-----| Bring Up |--|----\        |    |      Setup        |  |     +----------+  |    | Transport        |    |     /             |  |               ^   |    | Teardown        |    |    /              |  |        Transport  |    | Request        |    |   /               |  |        Connect|   |    | ---------        |    |  /            Setup  |        Request|   |    |        |    |  |           Failed  |        -------|   |    |        v    |  v           ------  |               |   |    v  +--------------+               |  |              +-------------+  | Coming Up    |----------+----|--|--Response--->| Going Down  |  +--------------+          ^    |  |  Timeout     +-------------+    |    ^      |           |    |  |  --------      ^    ^    |    |      Transport   |    |  |  Send          |    |    | Transport Teardown    |    |  |  Teardown      |    |    |  Connect  Request     |    |  |                /    |    |  Request  -------     |    |  |               /     |    |  -------  v           |    |  |              /      /    |      \ +------------+ -    |  |             /      /    |       -| Bring Down | ------  |            /      /     \       +------------+ --------|--Setup-----      /      \                             |  Success        /       \                            |  -------       /        \   Setup           Network |  Send         / Transport         \  Success         Is Down |  Teardown    /  Teardown          \ -------         ------- |             /   Request           \                        |            /    --------            \                       |           /     Send             \             +---------------+   /      Teardown              \----------->|   Up          |---                           +---------------+  
  190.  
  191.   
  192.  
  193.   
  194.  
  195.  Young & Nicholson                                               [Page 7]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  196.  
  197.  Events and State Transitions  
  198.  
  199.    The DSLCP will process three type of events:  
  200.  
  201.       A link control request from the transport provider       An DSLCP message from the link controller       DSLCP message timeout  
  202.  
  203.    The transport provider will make link setup and and teardown requests    to the DSLCP when transport users request and release services    requiring link control operations.  The transport provider should not    keep track of the status of a particular link, as this is a function    of the DSLCP.  The transport provider may be unaware of redirection    or other processing of link setup requests performed by DSLCP, so    this is a function best left to DSLCP.  The DSLCP will inform the    transport provider as to the success or failure of a particular setup    request, and transport providers may assume the success of teardown    requests (the DSLCP will always return a success response to a    teardown request).  
  204.  
  205.    The DSLCP will engage in link control transactions with link    controllers.  This will include accepting messages from link    controllers in response to requests as well as unexpected messages    from the link controller.  Unexpected messages may include redundant    responses to redundant requests sent as a result of timeouts.  
  206.  
  207.    Because of the possibility of unavailable links and link controllers,    DSLCP should not wait indefinitely for message responses from link    controllers to which it has sent messages.  Since DSLCP does not    require the use of a reliable transport protocol to carry DSLCP    messages, DSLCP must have a timeout and retransmission mechanism.    Since we have used DSLCP in a local network context with switch    controllers which offer a quick turnaround (on the order of 1    second), we use a 5 second timeout with a 3 retransmit limit.  These    figures would require adaptation to different network and link    controller configurations, and a self-adapting algorithm would be    most appropriate for a general solution.  
  208.  
  209.    The specific events of interest to the DSLCP are:  
  210.  
  211.         Transport provider link setup request         Transport provider link teardown request  
  212.  
  213.         Link setup request failed         Link setup request succeeded         Link teardown request succeeded         Link teardown request failed         Network link is down  
  214.  
  215.   
  216.  
  217. Young & Nicholson                                               [Page 8]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  218.  
  219.          Timeout waiting for DSLCP response from link controller  
  220.  
  221.    The necessary processing for each event while in each state is as    follows:  
  222.  
  223.         Transport provider link setup request  
  224.  
  225.             Down:                 Send setup request to link controller.                 Enter Coming Up state.                 Notify transport provider to wait until link is up.  
  226.  
  227.             Coming Up:             Bring Up:                 Notify transport provider to wait until link is up.  
  228.  
  229.             Up:                 Notify transport provider that link is up.  
  230.  
  231.             Bring Down:                 Enter Coming Up state.                 Notify transport provider to wait until link is up.  
  232.  
  233.             Going Down:                 Enter Bring Up state.                 Notify transport provider to wait until link is up.  
  234.  
  235.             Discussion:  
  236.  
  237.             If the controlled link is not capable to support multiple             transport connections, then the DSLCP must return             appropriate errors when it detects multiple transport setup             requests for that link.  
  238.  
  239.         Transport provider link teardown request.  
  240.  
  241.             Down:             Bring Down:             Going Down:                 Notify transport provider that link is down.  
  242.  
  243.             Coming Up:                 Enter Bring Down state.                 Notify transport provider that link is down.  
  244.  
  245.             Bring Down:                 Notify transport provider that link is down.  
  246.  
  247.   
  248.  
  249.  Young & Nicholson                                               [Page 9]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  250.  
  251.              Up:                 Send teardown request.                 Enter Going Down state.                 Notify transport provider that link is down.  
  252.  
  253.         Link setup request failed  
  254.  
  255.             Down:             Going Down:             Bring Up:                 Unexpected message, possibly due to duplicate requests -                 ignore it.  
  256.  
  257.             Up:                 Unexpected message, link controller may be refusing                 multiple setup requests sent because of timeout - ignore                 it.  
  258.  
  259.             Coming Up:             Bring Down:                 Enter down state.  
  260.  
  261.         Link setup request succeeded  
  262.  
  263.             Down:                 Unexpected message, possibly due to duplicate requests                 and reordering of request packets by network.                 Send teardown request.  
  264.  
  265.             Going Down:             Bring Up:             Up:                 Unexpected message, possibly due to duplicate requests -                 ignore it.  
  266.  
  267.             Coming Up:                 Enter Up state.                 Notify transport provider(s) waiting for link that it is                 available.  
  268.  
  269.             Bring Down:                 Send teardown request.                 Enter Going Down state.  
  270.  
  271.         Link teardown request succeeded  
  272.  
  273.             Down:             Coming Up:  
  274.  
  275.   
  276.  
  277. Young & Nicholson                                              [Page 10]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  278.  
  279.              Bring Down:                 Unexpected message, possibly due to duplicate requests -                 ignore it.  
  280.  
  281.             Up:                 Unexpected message, possibly due to duplicate requests                 and reordering of request packets by network.                 Send teardown request.                 Enter Going Down state.                 Notify transport providers that link has gone down.  
  282.  
  283.             Bring Up:                 Send setup request                 Enter Coming Up state  
  284.  
  285.             Going Down:                 Enter Down state  
  286.  
  287.             Discussion:  
  288.  
  289.             If a teardown request succeeded message arrives when the             DSLCP is in the UP state, then some error has occurred, and             the conservative approach is to bring down the connection             and resynchronize.  However, it may be satisfactory to             ignore the message without ill effect.  
  290.  
  291.          Link teardown request failed  
  292.  
  293.             Down:             Coming up:             Bring Down:             Bring Up:             Going Down:             Up:                 DSLCP sent a teardown request message for an invalid                 transaction.  The link controller has no                 identifier/endpoints transaction record for the request.                 Continue as if request had succeeded.  
  294.  
  295.         Network link is down  
  296.  
  297.             Down:                 Ignore message.  
  298.  
  299.             Bring Down:             Going Down:                 Enter Down state.  
  300.  
  301.   
  302.  
  303. Young & Nicholson                                              [Page 11]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  304.  
  305.              Coming up:             Bring Up:             Up:                 Enter down state.                 Notify transport provider that link is down.  
  306.  
  307.          Timeout waiting for DSLCP response from controller  
  308.  
  309.             Down:             Up:                 DSLCP protocol error - fix bug, don't set timer when                 there are no outstanding requests.  
  310.  
  311.             Coming Up:             Bring Down:                 Send teardown request.                 Enter Going down state.  
  312.  
  313.             Going Down:                 Enter Down state.  
  314.  
  315.             Bring Up:                 Send setup request.                 Enter Coming Up state.  
  316.  
  317. References  
  318.  
  319.    [1]  Nicholson, et. al., "High Speed Networking at Cray Research",         Computer Communications Review, January, 1991.  
  320.  
  321.    [2]  Nicholson, A., and J. Young, "Experiences Supporting By-Request         Circuit-Switched T3 Networks", RFC 1306, Cray Research, Inc.,         March 1992.  
  322.  
  323. Security Considerations  
  324.  
  325.    Security issues are not discussed in this memo.  
  326.  
  327.   
  328.  
  329.   
  330.  
  331.   
  332.  
  333.   
  334.  
  335.   
  336.  
  337.   
  338.  
  339. Young & Nicholson                                              [Page 12]   RFC 1307       Dynamically Switched Link Control Protocol     March 1992  
  340.  
  341.  Authors' Addresses  
  342.  
  343.    Jeff Young    Cray Research, Inc.    655F Lone Oak Drive    Eagan, MN 55123  
  344.  
  345.    Phone: (612) 452-6650    EMail: jsy@cray.com  
  346.  
  347.     Andy Nicholson    Cray Research, Inc.    655F Lone Oak Drive    Eagan, MN 55123  
  348.  
  349.    Phone: (612) 452-6650    EMail: droid@cray.com  
  350.  
  351.   
  352.  
  353.   
  354.  
  355.   
  356.  
  357.   
  358.  
  359.   
  360.  
  361.   
  362.  
  363.   
  364.  
  365.   
  366.  
  367.   
  368.  
  369.   
  370.  
  371.   
  372.  
  373.   
  374.  
  375.   
  376.  
  377.   
  378.  
  379.   
  380.  
  381.   
  382.  
  383. Young & Nicholson                                              [Page 13]    
  384.