📄 rfc3049.txt
字号:
RFC 3049 TN3270E Location & Balancing January 2001 example, if the scope name is Building-D, then the SLP session balancing would search all TN3270E servers in the Building-D scope to find the least loaded TN3270E server. If the scope name is blank, then the scope name is not used. This is referred to as unscoped. It should be noted as in section 4.1 above that any reference to unscoped services applies to Service Location Protocol version 1 only [1]. Service Location Protocol version 2 doesn't allow unscoped services but does allow the use of default scope [4]. In this case all TN3270E servers, with or without scope names, can be used to satisfy the request for least loaded TN3270E servers. In order to cut down on network overhead, it is recommended that either all servers be scoped or no servers be scoped. Refer back to section 4.1 for more discussion of scope. DA Discovery Time Out Value This value is specified in milliseconds and is fully described in section 4.2 of this document. SA Multicast Time Out Value This value is specified in milliseconds and is fully described in section 4.3 of this document.5.2 How to obtain the list of TN3270E servers supporting SLP A TN3270E client that implements SLP session balancing uses API calls to obtain the list of TN3270E servers supporting SLP session balancing. The following Service Location Version 2 API [5] calls, could be used with TN3270E SLP session balancing: SLPOpen - returns an SLPHandle handle to be used SLPFindSrvs - issues the query for services SLPFindAttrs - returns service attributes matching the attribute ids for the indicated service URL or service type. SLPClose - frees all resources associated with the handle.Naugle, et al. Standards Track [Page 8]RFC 3049 TN3270E Location & Balancing January 20015.3 TN3270E Sample Client Flow5.3.1 Open the SLP connection The TN3270E client must first open a handle with the SLP User Agent. For Service Location Protocol version 2, SLPOpen API call [5] The SA multicast time out and DA discovery time out values would be passed as parameters to the SLPOpen API call.5.3.2 Query the list of TN3270E servers The TN3270E client then queries for the list of TN3270E servers supporting SLP. This is done by using the Service Request API call. The request string contains information that determines which type of TN3270E servers that this client desires to connect to. The request string can contain the scope name, pool name, session type and 3270 screen size. The SLPv1 query string has the following format: TN3270/<scope name>/LUPOOL/ == <pool name><TAB><device type> The <scope name> is the name of the scope that is configured for the TN3270E client. If the scope is blank or null (unscoped request), then the scope is not inserted into the request string. The <pool name> is a 1 to 8 character upper case string that indicates the name of the pool to which the TN3270E client desires to connect. For SLP session balancing, the same pool name must be configured on different TN3270E servers. The <TAB> is the '/t' tab character which is hexadecimal 0x09. the <TAB> is a literal and is used as a separator. The <device type> can be any of the following: 3270DSC for TN3270E device type IBM-3287-1 3270002 for TN3270E device types IBM-3278-2 and IBM-3278-2-E 3270003 for TN3270E device types IBM-3278-3 and IBM-3278-3-E 3270004 for TN3270E device types IBM-3278-4 and IBM-3278-4-E 3270005 for TN3270E device types IBM-3278-5 and IBM-3278-5-E * for TN3270E device type IBM-DYNAMICNaugle, et al. Standards Track [Page 9]RFC 3049 TN3270E Location & Balancing January 2001 Example: For a TN3270E client searching for TN3270E servers in the ENGINEERING scope for a model 2 screen size and LUPOOL name pool2, the following request SLPv1 string would be constructed: "TN3270/ENGINEERING/LUPOOL/ == POOL2<TAB>3270002" Note: The " characters before and after the string are not part of the request string.5.3.3 Forward Looking Example for SLPv2 For SLPv2 the scope and service type are no longer part of the query string. These are now separate fields in the message. The service type name is required to have the "service:" prepended. The service type field would look like "service:TN3270", and the scope field would be a comma separated list of scopes. A scope name is always required in SLPv2, if no other name is known, the scope name "DEFAULT" is used. The example below uses the same parameters as used in above section 5.3.2. Example: Service Type: service:TN3270 Scope string: ENGINEERING The query string would have the following format: (LUPOOL=<POOL2> <32700002>) In SLPv2 queries, all whitespace is compressed to a single space character during matching, so the identity of the separator character does not matter. The tab character could be added for readability, but it will not affect the outcome of the query.5.3.4 Determine loading of each TN3270E server An attribute request for "service:tn3270e" specifying the attribute LOAD can be made and you will get back all the available loads. Say these are 35,88,78. You can then issue a service request for all tn3270E servers with "LOAD<40" for instance. Even if the load changes between the time you get the attribute reply and when you issue the request, you will still get the best the network has to offer. The TN3270E client then uses the TN3270E server's IP Host address to start normal Telnet TN3270E negotiation.Naugle, et al. Standards Track [Page 10]RFC 3049 TN3270E Location & Balancing January 20015.4 Recommendations The TN3270E client SHOULD display the IP hostname and TCP Port that is being used for the TN3270E connection. This gives the user knowledge of which TN3270E server the session is connected to. For example, the IP host address could be displayed in the window system status bar. The TN3270E client SHOULD display the resource name that is returned by the TN3270E server after connection and TN3270E negotiation is completed. This gives the user knowledge of which LU resource name in the LUPOOL the session is connected to. For example, the resource name could be displayed in the Windows status bar, or even in the 3270 OIA line. In the event that after the TN3270E client has determined the least loaded server and the connection to that server fails for some reason, the connection should be closed and an attempt made to connect to other TN3270E servers in the list of least loaded servers. For example, a TN3270E server may reject a connection to a specific pool if the pool is full, or if the device type does not match what is available in the pool. If this occurs, then an attempt to other least loaded TN3270E servers SHOULD be performed.6. Sample Trace Flow of SLP and Session Balancing This sample trace flow is provided for informational purposes only. SLP API: Service Request: TN3270//LUPOOL == POOL2 3270002/ SLP API: Service Reply: service:tn3270://206.109.45.139:23 SLP API: Service Reply: service:tn3270://206.109.45.140:23 Connecting to 206.109.45.139:23... TerminalType=NVT Connection established Recv <- DO TN3270E Send -> WILL TN3270E TerminalType=TN3270E Recv <- SEND DEVICE_TYPENaugle, et al. Standards Track [Page 11]RFC 3049 TN3270E Location & Balancing January 2001 Send -> DEVICE_TYPE REQUEST IBM-3278-2-E CONNECT POOL2 Recv <- DEVICE_TYPE IS IBM-3278-2-E CONNECT TN8003 Send -> FUNCTIONS REQUEST BIND_IMAGE SYSREQ Recv <- FUNCTIONS IS BIND_IMAGE SYSREQ7. Service Templates and Service Registration The Service Location Protocol uses the "service:" URL scheme name to define URLs called "service: URLs". These schemes provide a way for clients to obtain configuration information that is needed to establish a 3270 session through the TN3270E server. The Service Location Protocol provides for service: URLs to be registered and discovered. Service Registration These service registrations contain a service: URL, and possible attributes associated with that service. The service registration information are shown below for the server. Service Templates Service templates are documents defining in a formal way the attributes associated with that service that a client may want to use. For more information on service templates please refer to, Service Templates and service: Schemes. [2]. The server service template and TN3270 service templates are shown below.7.1 The TN3270E Service Type Template The 'service:tn3270:' template defined below conforms to the grammar described in "Service Templates and service: Schemes". Please refer to [2] for detailed explanation of the syntax. Name of submitters: Jim Naugle <jnaugle@us.ibm.com> Gregg Ledford <gledford@zephyrcorp.com> K. Kasthurirangan <kasthuri@us.ibm.com> Language of service template: en Security Considerations: Service Location Protocol can help clients discover security services supported by the TN3270E server. If security services are important or required, using SLP authentication, and protected scopes in Service Location Protocol version 1 is recommended [1]. Well known ciphersuite names are used in the template [3].Naugle, et al. Standards Track [Page 12]RFC 3049 TN3270E Location & Balancing January 2001 Template text: ----------------------template begins here ------------------------- template-type=tn3270e template-version=1.0 template-description= The tn3270 service provides 3270 gateway access to an SNA network via the TN3270 protocol. The attributes reflect the types of 3270 devices, LU Pools, and load information available on the server. template-url-syntax= # service:tn3270://<hostname>:<port> # <hostname> # <port> load=integer # This is the load balancing quantity to use in determining the # least loaded TN3270E server to attach to for the service. The #range of valid values is an integral 0 to 100 with 0 indicating the #lowest possible load and 100 the highest LUPool=string X M L # This attribute takes on one or more values as defined below. # The <TAB> char. 0x09 is literal and will be used as a separator. # # # <pool name> = <name> / <name> "<TAB>" <dev type> # <name> = 1*ALPHANUM # "3270DSC" # # # # # Identifies the LU pool names of LU pools available for use on this # service with the associated device types supported in each pool. # Each value is a record where the first token is the pool name of # the pool and the second token is a device type supported in that # pool. A pool name without a device type indicates that LUs of # unknown type are included in the pool. Records associated with a # given pool name are repeated for each supported device type. A # given pool is included in a registration request if any PU profile # that contributes at least one LU to the pool is active on the # server. The range of valid dev_types are: # # dev_type Meaning #Naugle, et al. Standards Track [Page 13]RFC 3049 TN3270E Location & Balancing January 2001 # 3270002 Lu Type 2 Model 2 # # 3270003 Lu Type 2 Model 3 # # 3270004 Lu Type 2 Model 4 # # 3270005 Lu Type 2 Model 5 # # 3270DSC Printer LU # BIND=keyword # The server supports the SNA bind image TN3270E function. DATA=keyword # The non-SNA 3270 data stream is supported by server. RESPONSES=keyword # The server supports SNA response mode. SCS=keyword # The server supports SNA 3270 SCS data stream. SYSREQ=keyword # The SYSREQ keyboard key is supported on server. RFC1576=keyword # RFC1576 options supported. RFC1646=keyword # RFC1646 options supported. RFC2355=keyword # RFC2355 options supported. security=string M # This is the security technique supported on the server. # The defined values are: NONE SSLV3 Ciphersuites=string M # Cipher specifications supported by this server. # Additional values will be defined in future templates. NULL_NULL, NULL_MD5, NULL_SHA, RC4_MD5_EXPORT,Naugle, et al. Standards Track [Page 14]RFC 3049 TN3270E Location & Balancing January 2001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -