gtps2m23ACF/SNA Data Communications Reference

Segmentation and Reassembly

When an RTP connection is started, part of the ROUTE_SETUP process is to find the smallest link size of all the hops along the route. This value is the maximum link size (MLS) and is the largest size of an NLP that can be sent across the RTP connection. The MLS value can change (increase or decrease) when a path switch occurs.

The function of intermediate (ANR) nodes is to route NLPs, not examine or process them. For that reason, intermediate nodes do not segment or reassemble NLPs. This means that when an RTP endpoint transmits an NLP, the size of that NLP cannot be greater than the MLS value for that RTP connection. If a message is larger than the MLS value, the message is segmented by the origin RTP endpoint and sent as multiple NLPs that are THDR chained. The first NLP is marked as start-of-message (SOM) and the last NLP is marked as end-of-message (EOM). The remote RTP endpoint will reassemble the pieces of the message and then pass the complete message to the application for processing.

The use of segmentation and reassembly is transparent to the application; therefore, the application does not know or have to worry about the MLS value. However, segmentation and reassembly does involve overhead at the RTP endpoints. To avoid that overhead, it is recommended that you configure your network with link sizes large enough to prevent segmentation from being necessary.

The minimum link size for an HPR link is 768 bytes. The NHDR and THDR sections of an NLP cannot be segmented.

Segmenting Output Messages

When the SOUTC code builds an NLP, the NHDR and THDR are built first. Subtracting the size of the LH, NHDR, and THDR from the MLS determines how much data will fit in this NLP. If all of the data from the message will fit, segmentation is not necessary and the message is sent in a single NLP. However, if all of the data does not fit, the message must be segmented and sent as multiple NLPs.

The following example shows a THDR chained message:

Figure 83. Segmenting an Output Message




In Figure 83:

  1. An RTP connection exists between the TPF system and Node 3. The route has three hops with link sizes of 2000 bytes, 1000 bytes, and 3500 bytes. The MLS is the smallest of the link sizes, which is 1000 bytes.
  2. A 2500-byte message needs to be sent on an LU-LU session that is over this RTP connection; therefore, the message must be segmented.
  3. The first NLP for the message is built and marked as SOM. The combined size of the LH, NHDR, THDR, TH, and RH is 100 bytes in this example. With the MLS value of 1000, the first 900 bytes of data are sent in this NLP. Because there is more data to send in this message, the NLP is not marked as EOM.
  4. The second NLP for the message is built. The combined size of the LH, NHDR, and THDR is 80 bytes this time. The next 920 bytes of the message are sent in this NLP. Because there is still more data to send, this NLP is not marked as EOM either.
  5. The third NLP for the message is built. The combined size of the LH, NHDR, and THDR is 75 bytes this time. The remaining part of the message (the remaining 680 bytes) is sent in this NLP, and the NLP is marked as EOM.

In the previous example, the combined size of the LH, NHDR, and THDR was different for each NLP in the chained message. The LH size is fixed. For a given THDR chained message, the NHDR size and contents will be the same for all the NLPs that make up the message (unless a path switch occurs in the middle of sending the chained message). The THDR is variable length based on which optional segments are included.

Reassembling Input Messages

When the TPF system receives a THDR chained (segmented) message, SNA Opzero reassembles the message and then passes the complete message to the application. When an NLP marked as SOM, but not EOM is received, this indicates the start of a chained message. The message is reassembled in a core block called the THDR chained input message block, which is pointed to by the RTPCB entry. As subsequent pieces of the message (NLPs) are received, the data from those NLPs is added to the core block to rebuild the message. When the NLP marked as EOM arrives, its data is added to the core block and the message is then passed to the application for processing.

Before HPR support, the TPF system supported TH chained messages for LU-LU sessions other than LU 6.2. The long message assembly (LMA) package puts a TH chained message back together before passing it to the application. With HPR support, TH chaining for LU 6.2 must be supported over RTP connections. SNA Opzero, not LMA, performs the TH chaining reassembly function for LU 6.2 sessions over RTP connections. This reassembly is very similar to THDR chaining reassembly except that the message is rebuilt in a core block called the TH chained input message block, which is pointed to by the SCB entry representing the LU 6.2 session.

An input message can be both THDR chained and TH chained.