rfc-3049

TN3270E Service Location and Session Balancing

J. Naugle, K. Kasthurirangan, G. Ledford
date2001-01 streamIETF areaapp wgtn3270e statusPROPOSED STANDARD pages21 canonicalhttps://www.rfc-editor.org/rfc/rfc3049 doi10.17487/RFC3049
This document discusses the implementation of Service Location Protocol (SLP) and session balancing with a TN3270E emulator in a client server implementation with a TN3270E server. [STANDARDS-TRACK]

Extracted elements (27)

design-rationale §3.1

Administrators can manually bias a TN3270E server's load value (0-100) to compensate for differences in load calculation implementations across vendors, controlling the likelihood of that server being selected by clients.

design-rationale §5.3.3

In SLPv2, scope and service type were moved out of the query string into separate message fields, and whitespace handling was normalized (all whitespace compressed to a single space), making the tab separator from SLPv1 irrelevant in v2.

design-rationale §5.1

SLP session balancing is performed entirely outside of and before TN3270E telnet negotiation, so no IP address or TCP port needs to be pre-configured on the client; the least-loaded server is discovered dynamically.

design-rationale §3.1

The document intentionally does not standardize the method of individual server load calculations, as different vendors may calculate load based on factors they consider important and methods may change over time. Load is instead expressed as an abstract integer 0-100.

interoperability-note §3.1

If a TN3270E server coexists with other TN server implementations using SLP for session balancing, the TN3270E server load value can be adjusted administratively to compensate for differences in load calculation methodologies.

interoperability-note §5.1

To reduce network overhead, it is recommended that either all TN3270E servers be scoped or no servers be scoped; mixed configurations increase overhead.

interoperability-note §5.1

Unscoped services (blank scope name) apply only to SLP version 1. SLP version 2 does not allow unscoped services but does allow the 'DEFAULT' scope name as a fallback.

normative-requirement §3.1 MAY

Attribute Requests MAY include a select clause to retrieve only specific attributes such as load information.

normative-requirement §5.4 SHOULD

If a connection to the least-loaded server fails, an attempt to connect to other least-loaded TN3270E servers SHOULD be performed.

normative-requirement §4.1 MUST

If TN3270E clients are not configured with a scope, they MUST use the scope 'default'.

normative-requirement §3.1 MUST

Load MUST be defined as one of the attributes for the TN3270E server, allowing clients to determine which server to connect to.

registry

normative-requirement §5.1 MUST

The TN3270E client MUST allow configuration of SLP session balancing parameters including scope name, DA discovery time-out, and SA multicast time-out when SLP session balancing is enabled.

normative-requirement §5.4 SHOULD

The TN3270E client SHOULD display the IP hostname and TCP Port being used for the TN3270E connection so the user knows which server the session is connected to.

normative-requirement §5.4 SHOULD

The TN3270E client SHOULD display the resource name returned by the TN3270E server after connection and TN3270E negotiation is completed.

normative-requirement §3.1 SHOULD

TN3270E servers providing load information SHOULD include number of sessions available, not in current use, as part of the calculation for total server load.

protocol-element §5.3.2

Device types in LU pool definitions map 3270DSC to IBM-3287-1 (printer LU), 3270002 to IBM-3278-2/-2-E, 3270003 to IBM-3278-3/-3-E, 3270004 to IBM-3278-4/-4-E, 3270005 to IBM-3278-5/-5-E, and '*' to IBM-DYNAMIC.

protocol-element §7.2

The commserver service type template ('service:commserver:') describes generic SNA gateway server attributes including platform, protocol, server name, and release version.

protocol-element §7.1

The LUPool attribute identifies LU pool names and associated device types available on a TN3270E service. Each value is a record with pool name and device type separated by a TAB character (0x09).

protocol-element §7.1

The security attribute in the TN3270E service template specifies the security technique supported, with defined values NONE and SSLV3. Supported ciphersuites include NULL_NULL, NULL_MD5, NULL_SHA, RC4_MD5_EXPORT, RC4_MD5_US, RC4_SHA_US, RC2_MD5_EXPORT, DES_SHA_EXPORT, and TRIPLE_DES_SHA_US.

security, tls

protocol-element §7.1

The SLP LOAD attribute for TN3270E servers is an integer in the range 0 to 100, where 0 indicates the lowest possible load and 100 the highest, used for session balancing.

protocol-element §7.1

The TN3270E service type template ('service:tn3270e:') defines attributes including load, LUPool, BIND, DATA, RESPONSES, SCS, SYSREQ, security, Ciphersuites, platform, protocol, server name, and release.

security-consideration §7.4

If service type templates are modified or false templates distributed, services may not correctly register themselves, or clients may not be able to interpret service information. SLP provides an authentication mechanism allowing service URLs to be signed and signatures verified by clients.

security

security-consideration §7.4

Service URLs could be distributed pointing to unintended service locations. Using SLP authentication and protected scopes is recommended when security services are important or required.

security

wire-format §7.1

The release attribute format is 'vv.rr.mm' where vv is major version, rr is minor version, and mm is modification level, all left-padded with zeroes to two characters (e.g., '03.00.00').

wire-format §7.1

The service:tn3270 URL syntax is 'service:tn3270://<hostname>:<port>' and the service:commserver URL syntax is 'service:commserver://<hostname>:<port>'.

wire-format §5.3.2

The SLPv1 query string for TN3270E servers uses the format 'TN3270/<scope name>/LUPOOL/ == <pool name><TAB><device type>' where TAB is the literal 0x09 character used as a separator.

wire-format §5.3.3

The SLPv2 query string separates scope and service type into distinct fields. Service type is 'service:TN3270', scope is a comma-separated list, and the query string uses the format '(LUPOOL=<POOL NAME> <DEVICE TYPE>)' with whitespace compressed to a single space during matching.