INTERNET DRAFT Gene Ma Date: November 1998 tti (telecom technologies inc.) Expires: May 1999 T/UDP: UDP for TCAP Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Abstract This document proposes the T/UDP, UDP for TCAP, which uses Internet protocols UDP and ICMP, plus part of SS7 SCCP, to provide network services for SS7 TCAP in IP network. Acknowledgements This internet-draft is a tribute to Jon Postel, who created IP, UDP, TCP, ICMP, SMTP, and much more. Table of Contents 1.0 Purpose and Scope 2.0 Message Formats and Codes 3.0 Protocol Procedures 3.1 T/UDP Message Routing 3.2 T/UDP Management 4.0 Further Studies 5.0 Acronyms 6.0 References 7.0 Author 1.0 Purpose and Scope The main purpose of T/UDP is to provide necessary network services to support SS7 TCAP in current IP network. In SS7 network, signaling points use TCAP to exchange small amounts but real-time sensitive data. T/UDP uses the existing Internet protocols, UDP and IMCP, without intending to make any modification on current TCP/IP protocol suite. At the same time, in order to add reliability to UDP, SS7 SCCP Routing Control(SCRC), SCCP Connectionless Control(SCLC), and SCCP Management (SCMG) are included into T/UDP with the following exceptions: - Only SCLC protocol class 0 is supported by T/UDP. There are two protocol classes, 0 and 1, in SCLC. Class 0 provides basic connectionless service that has the limitation on TCAP message length (254 octets in SS7 network, and 512 octets for UDP[6]). For most of the current TCAP applications, message sizes are under 254 octets. Therefore the 512-octet limitation in T/UDP will leave some space for future expansion. SCLC protocol class 1 adds sequence control to class 0 service, which is achieved by MTP message routing function in SS7 network. Since there is no similar sequence control procedure in IP network, and current TCAP applications have a very few messages to use protocol class 1. Therefore T/UDP only supports SCLC protocol class 0. - Address scheme for UDP in IP network contains two parts, an IP address and a UDP port number, which have the counterparts in SS7 network addressing that includes a point code along with a subsystem number (SSN). Therefore, when SS7 SCCP procedures are used in T/UDP, a SS7 point code is replaced by an IP address and a SCCP SSN is by a UDP port number . For TCAP applications that need to transmit large size of message, such as a file in IP network, it would be better to use TCP, the connection- oriented transport protocol to handle the message out-of-order problem, This document will not discuss this issue. Figure 1 shows the T/UDP position in the TCP/IP protocol suite. +--------+ | TCAP | +--------+ ^ ^ | | | | v | +-----+ +-----+ +-------+ | | TCP | | UDP |<------->| T/UDP | | +-----+ +-----+ +-------+ | ^ ^ ^ | | | | | | | | | v v v | +--------------+ +------------+ | IP |<--------->| IMCP | +--------------+ +------------+ Figure 1. T/UDP uses UDP and ICMP to provide services for TCAP 2.0 Message Formats and Codes Figure 2 shows that T/UDP message is encapsulated as a UDP datagram. |<----------------------- UDP Datagram ------------------------>| |<---------------- T/UDP Datagram--------------->| +--------------+--------------+---------------------------------+ | UDP header | T/UDP header | T/UDP data | +--------------+--------------+---------------------------------+ Figure 2. T/UDP encapsulation T/UDP follows SCCP message formats and codes for SCLC with exceptions listed in Section 1.0. The following tables show the SCCP message formats and codes that are used as the T/UDP datagram. The detail information and explanation on these formats and codes can be found in SCCP standard[1]. +--------------+----------+---------------+ ------- | Parameter | Code | Length(octets)| ^ +==============+==========+===============+ | |Message Type | 00001001 | 1 | | +--------------+----------+---------------+ T/UDP |Protocol Class| x0000000 | 1 (Note 1) | header +--------------+----------+---------------+ | |Called Party | Note 2 | 4 min | | +--------------+----------+---------------+ | |Calling Party | Note 2 | 3 min | v +--------------+----------+---------------+ ------- |T/UDP Data | | 2-503 | +--------------+----------+---------------+ Table 1. Unitdata(UDT) message +--------------+----------+---------------+ ------- | Parameter | Code | Length(octets)| ^ +==============+==========+===============+ | |Message Type | 00001010 | 1 | | +--------------+----------+---------------+ T/UDP |Return Cause | Table 3 | 1 | header +--------------+----------+---------------+ | |Called Party | Note 2 | 4 min | | +--------------+----------+---------------+ | |Calling Party | Note 2 | 3 min | v +--------------+----------+---------------+ ------- |T/UDP Data | | 2-503 | +--------------+----------+---------------+ Table 2. Unitdata Service(UDTS) message +----------+----------------------------------------------+ | bits | Return Cause | | 87654321 | | +==========+==============================================+ | 00000000 | no translation for an address of such nature | +----------+----------------------------------------------+ | 00000001 | no translation for this specific address | +----------+----------------------------------------------+ | 00000010 | port congestion (Note 3) | +----------+----------------------------------------------+ | 00000011 | port failure (Note 3) | +----------+----------------------------------------------+ | 00000100 | unequipped user | +----------+----------------------------------------------+ | 00000101 | IP failure (Note 4) | +----------+----------------------------------------------+ | 00000110 | network congestion | +----------+----------------------------------------------+ | 00000111 | unqualified | +----------+----------------------------------------------+ | 00001000 | | | to | not used by T/UDP | | 00001100 | | +----------+----------------------------------------------+ | 00001101 | | | to | spare | | 11111000 | | +----------+----------------------------------------------+ | 11111001 | not used by T/UDP | +----------+----------------------------------------------+ | 11111010 | unauthorized message | +----------+----------------------------------------------+ | 11111011 | message incompatibility | +----------+----------------------------------------------+ | 11111100 | | | to | not used by T/UDP | | 11111110 | | +----------+----------------------------------------------+ | 11111111 | spare | +----------+----------------------------------------------+ Table 3. Return Causes for UDT and UDTS messages Note 1: Bits 8765 in protocol class parameter specify the message handling, code 0000 for discarding message on error, 1000 for returning message on error, and any other values for spare. Bits 4321 contain the protocol class information, 0000 for class 0 and 0001 for class 1. Note 2: The called or calling party address format follows the SCCP specification, which includes 1-octet address indicator followed by addressing. In T/UDP, the 1-octet SSN is replaced by a 2-octet UDP port number, and the SS7 point code by a 4-octet IP address. The IP address and UDP port number in the called and calling party used by T/UDP are actually the same as the IP address and the UDP port number in IP and UDP header unless GTT is involved in T/UDP message routing. Note 3: This code is for subsystem congestion in SCCP. For the same reason, this code is used for UDP port congestion in T/UDP. Note 4: This code is for MTP failure in SS7 network. In T/UDP, this code is used for IP layer failure. +--------------------+-----------+---------------+ | Parameter | Name Code | Length(octets)| +====================+===========+===============+ |Message Type | Table 5 | 1 | +--------------------+-----------+---------------+ |Affected Port | 00000001 | 2 | +--------------------+-----------+---------------+ |Affected IP Address | 00000010 | 4 | +--------------------+-----------+---------------+ |Port Multiplicity | 00000011 | 1 | +--------------------+-----------+---------------+ Table 4. T/UDP management message +------------------------------------ +----------+ | Message Type | CODE | | | 87654321 | +=====================================+==========+ | PA - Port-allowed | 00000001 | +-------------------------------------+----------+ | PP - Port-prohibited | 00000010 | +-------------------------------------+----------+ | PT - Port-status-test | 00000011 | +-------------------------------------+----------+ | POR - Port-out-of-service-request | 00000100 | +-------------------------------------+----------+ | POG - Port-out-of-service-grant | 00000101 | +-------------------------------------+----------+ | PBR - Port-backup-routing | 11111101 | +-------------------------------------+----------+ | PNR - Port-normal-routing | 11111110 | +-------------------------------------+----------+ | PRT - Port-routing-status-test | 11111111 | +-------------------------------------+----------+ Table 5. T/UDP management message type code 3.0 Protocol Procedures 3.1 T/UDP Message Routing T/UDP uses UDP and IP to send TCAP message, the T/UDP data, to destination based on the IP address and UDP port number included in IP and UDP headers. When GT is not presented in called or calling party address, T/UDP copies the port number to UDP header and the IP address to IP header. When T/UDP receives the incoming message, the address indicator in the T/UDP header is checked to see if GTT is required. If no GT is presented, T/UDP passes the data to TCAP. If GTT is needed to obtain further routing information, the IP address in IP header and the UDP port number in UDP header provide the address at which the GTT is performed. The IP address and the UDP port number in called or calling party address are the result of the GTT, which are passed to the UDP and IP headers by T/UDP for the next destination. T/UDP follows SCRC procedures to handle GTT in IP network. 3.2 T/UDP Management T/UDP management has two parts: IP host status management and port status management, which have counterparts in SCCP management, signaling point status management and subsystem status management. SCCP traffic information management is not used in T/UDP. IP host status management and port status management are used by T/UDP to check whether the destination is reachable and also to report the network and host status. IMCP messages are mapped into T/UDP management and UDTS messages that are used by the T/UDP management. Table 6 shows message mapping between ICMP and T/UDP. T/UDP management follows SS7 SCCP management procedures to handle the listed T/UDP messages and to maintain network performance. Note that not all of the T/UDP management and UDTS messages have the mapping to ICMP messages. +---------+------+----------------------+------------+-----------------+ | ICMP | ICMP | ICMP Message | T/UDP | T/UDP UDTS | | Message | Code | Description | Management | with | | Type | | | Message | Return Cause | +=========+======+======================+============+=================+ | 0 | 0 | echo reply | PT, PA | | +---------+------+----------------------+------------+-----------------+ | 3 | 0 | net unreachable | | IP failure* | | | 1 | host unreachable | | IP failure** | | | 2 | protocol unreachable | | unequipped user | | | 3 | port unreachable | PP | port failure | +---------+------+----------------------+------------+-----------------+ | 4 | 0 | source quench | | port congested# | | | | | | net congested## | +---------+------+----------------------+------------+-----------------+ Table 6. ICMP and T/UDP message mapping Note: *The ICMP "net unreachable" message indicates local IP failure. **The ICMP "host unreachable" message is for remote IP failure. #If the "source quench" is from the local host, "port congested" is used. ##If the "source quench" is from a router, "net congested" is issued. 4.0 Further Studies The further studies for following issues are needed: - The port assignment in IP networks for T/UDP. - The network architecture required by SCCP for SCP in IP networks. - The usage of traffic information management in T/UDP. - The applications of SCCP GTT in IP networks. 5.0 Acronyms T/UDP - UDP for TCAP GT - Global Title GTT - Global Title Translation ICMP - Internet Control Message Protocol IP - Internet Protocol MTP - Message Transfer Part SCCP - Signaling Connection Control Part SCLC - SCCP Connectionless Control SCMG - SCCP Management SCP - Service Control Point SCRC - SCCP Routing Control SS7 - Signaling System No. 7 TCP - Transport Control Protocol UDP - User Datagram Protocol 6.0 References [1] ANSI T1.112-1992, "Signaling System No. 7 (SS7) - Signaling Connection Control Part (SCCP)" [2] ANSI T1.114-1992, "Signaling System No. 7 (SS7) - Transaction Capabilities Application Part (TCAP)" [3] ITU-T Recommendation Q.775-1993, "Signaling System No. 7 - Guidelines for Using Transaction Capabilities" [4] Postel, J.B. 1980, "User Datagram Protocol", RFC 768 [5] Postel, J.B. 1981, "Internet Control Message Protocol" RFC 792 [6] Stevens, W.R. 1994, "TCP/IP Illustrated, Volume 1: The Protocols", Addison-Wesley Publication Company 7.0 Author Gene Ma tti (telecom technologies inc.) 1700 North Collins Blvd. Richardson, Texas 75080 Tel: 972-301-4987 Email: gene.ma@ttimail.com