Duplicate message handling in SMSCs is a complex process than it appears to be. Currently what most of the SCs does is check the Message Reference (MR) figure and if it's the same, then reject the message classifying it as a duplicate message.
Above mentioned process is carried out if the value, TR-REJECT-DUPLICATE, is set to true by the Message Sending Entity (MSE).
Message Reference
TP-MR is a integer field submitted to SC by a Mobile Station (MS) as a SMS-SUBMIT or SMS-COMMAND. MS increments the MR by 1 for each Short Message (SM) sent. This unique number is obtained by reading the last used TP-MR valued from the SIM card of the MS and increment by 1. After each SM submitted to the network, the last used TP-MR value in the SIM is updated with the last MR and it ranges from 0 to 255.
Reject Duplicate
TP-Reject-Duplicate is a two bit field in SMS-SUBMIT indicating whether the duplicate SMs should be handled by the SC or not. If set to "True", SC checks to find out whether the SM is a duplicate or not and if set to "False", SC just forwards the SM to the required destination without checking for duplicates.
In the process of checking duplicate what happens first is the checking of the TP-Reject-Duplicate value, to check whether duplicate identification should be performed or not. If yes then with the current process, there is a possible loophole.
There are three scenarios of different MR receiving is involved in SC
- When MR is larger than existing MR at SC
- When MR is lower than existing MR at SC
- When MR is equal to the existing MR at SC
1. When the MR is larger than existing MR at SC
This is the ideal preferred situation where MR is larger than the value in the SC database, where it indicates the SM is not a duplicate. This message is allowed to pass through the duplicate message handling filter provided in the SM TP-Reject-Duplicate parameter is set to true.
2. When the MR is lower than existing MR
This is a possible situation where the MR range restricts between 0 and 255. For the SMs sent after MR = 255, it starts from 0. Because of that message reference which is lower than the existing MR is allowed to flow through the filter safely.
3. When the MR is equal to the existing MR at SC
This is the problematic situation where MR value in the received SM is equal to the MR value of the previously sent SM's MR value. According to the definition, SM is rejected since it has the same value of MR.
Previously mentioned loophole occurs with the last point mentioned. In a situation where
- MS sent a SM thorough the SC where MR = x
- MS sent exactly 254 SMs through another Service Centre (SC)
- MS sending next SM through the relevant SC
In the above situation, SM is not duplicated, but still message would be discarded, categorizing as a duplicate SM.
Solution
To avoid this problem, SCs can make use of the timestamp applied at the SM receiving end. Since the timestamp has a accuracy of one second, it can be assumed that sending 254 messages per second from an ordinary MS is not possible. Sequential application of timestamp check once duplicating MR is identification would resolve the above mentioned problem of Message Duplication of SMSCs.
No comments:
Post a Comment