OSI model
MTP1 Layer
The MTP1 layer is the physical layer and is responsible of the actual HDLC framing of SS7 packets (usually called MSU – Message signaling unit). Beside the transmission and reception of frames, calculation of CRC, this layer is also responsible to monitor and report the quality of the link based on the number of failures detected (CRC errors, unexpected packets). Using specially formatted packets (LSSU and FISU), this layer makes sure the communication with the peer side is always valid and synchronized, even when the communication link is supposedly idle (no MSU being sent).
MTP2 Layer
The MTP2 layer is used to create a flow control and buffering mechanism over the MTP1 layer. The flow control works both ways (toward upper layer and toward remote side) to avoid loosing packets because of a lack of buffer or because of a temporary resource outage on the local/remote side (i.e CPU too busy to process packets). Because it contains the buffering scheme, it allows upper layers to retrieve buffers that were not sent in the event of a MTP1 link failure. It is also responsible to establish the connection with the peer MTP2 layer upon physical link activation.
MTP3 Layer
Using the services of MTP2, the MTP3 layer really controls the networking aspect of SS7. This layer knows every reachable destination (represented by a “point code”) within the SS7 network and knows about the paths (called “routes”) to reach them. A point code can be compared to an address in the IP world. It also knows the state of every destination at any time in addition to knowing the state of every path to them. This last functionality allows this layer to perform rerouting live, without any packet loss, in case of a link failure. This layer is the base of the SS7 redundancy architecture and makes the SS7 network fault-tolerant. This robustness however has a price, which is the rigidity of the MTP3 layout. Adding a new node (point-code) to the network needs a reconfiguration of every other node that needs to talk to it. There is no automatic discovery mechanism to do that. Special nodes, called STP, in the SS7 network are designated to act as MTP3 relays to route messages from one SS7 end-node to another. Those nodes are usually deployed in pairs to allow for failure recovery of the network (see second figure on the left).
TUP and ISUP
At this point, stacks composed of layers MTP1-3 are only able to send packets to each other going through STPs. There is no concept of a ‘voice call’ yet. Two layers are available to offer this functionality over MTP3: the TUP and ISUP layers.
TUP is a call-control layer which is mostly used to control analog calls and equipments. The ISUP layer offers a virtual control over ‘circuits’ (which are really TDM timeslots) and to associate calls to them. As shown in Figure 9, those ‘circuits’ conveying the end-to-end voice conversation are truly separated from the signaling links that MTP1-MTP3 are transmitting onto. This allows an SS7 end-point to control equipments not even located at the same facility. Once the virtual call is establish, the application interfacing with the ISUP layer is responsible to send appropriate commands to the systems to actually connect the voice path. Thus, the responsibility of the ISUP is to negotiate the call parameters and also to negotiate with other SS7 nodes within the network the path through which TDM voice data will be connected. Of course, this is the basic function of ISUP. All other supplementary services are also support (call forward/transfer, call hold, etc). In other words, the ISUP layer does NOT actually do the TDM connections to connect both ends of a call, it only negotiate the parameters and the path.
The actual connection is not the responsibility of SS7 as it is dependent on the equipment, services or even the medium. The application sitting on top of SS7 is bounded to do the connections. (Note: ISUP is responsible for negotiating circuit assignment/reservation. It does not actually open the TDM channels to connect the physical timeslots.)
The second graphic shows an SS7 network containing mobile switches (for cellular phones) and fixed switch (for residential or commercial phones) that are all linked to each other through the STPs (SS7 routers). Those switches are also connected to each other with trunks dedicated to transfer voice conversation using TDM technologies. Those voice trunks are statically configured and the SS7 stack contained in every switch knows this configuration. Thus, a mobile switch SS7 stack knows how many physical timeslot it has to reach a specific PSTN switch. Every timeslot within those trunks are assigned a circuit identification code (CIC) and is referred to as a ‘circuit’. It is not necessary for a switch to have a circuit toward every other switch present in the network as an SS7 call can be routed through many switches before reaching its final destination. This is where the ‘negotiation’ function of ISUP is so critical: to be able to manage multi-path circuit reservation, allocation and teardown.