Patent ID: 7447234
Filing Date: 2008-11-04
Classification: H04L,H04W

Abstract:
1. A method of reconstituting messages fragmented in packets, conveyed to a recipient terminal, by a packet-switched transmission network, each packet comprising a data payload constituting a message fragment and service information relating to the address of a reception port of the recipient terminal, the identity of the message to which it belongs and its relative position in such a message, the service information field also provide information on their length, wherein the method comprises the following steps: receiving packets from packet transmission networks and storing the received packets, creating in a second working memory space, a table formed by N descriptors, N being a positive integer, allocated to messages in the course of being reconstituted and by a table of descriptor allocation elements, each descriptor comprising: each descriptor allocation element designating a descriptor by associating with it a flag that reports the allocated or non-allocated state of the designated descriptor, the analysis of the service information of each packet newly arrived at the terminal, to extract therefrom the identity of the message of which it is a part and the reception port that is the addressee or recipient of this message within the terminal, a search, in the table of descriptors, by means of the table of allocation elements, for a message descriptor assigned to the message identified in the service information of the packet, when there is no allocated descriptor: the allocation of an available descriptor of the table to the message identified in the service information of the packet and the updating of the allocation elements table, the allocation of the first available pointer of the stack of the newly assigned descriptor to the newly arrived packet currently being analyzed with an intermediate status of eligibility, and the updating of the header block of the descriptor, when there is an allocated descriptor: the allocation, to the packet, of the first available pointer of the stack of the descriptor, the comparison of the packet with those corresponding to the already allocated pointers of the stack of the descriptor, when there is an already allocated pointer pointing at a packet having the same position in the message, the assigning, to the pointer allocated to the packet, of an intermediate status of redundancy, in the absence of an already allocated pointer pointing at a packet having the same position in the message, the assigning, to the pointer allocated to the packet, of an intermediate status of eligibility, the repetitive analysis, as a background task, of the stacks of pointers of the descriptors of the table effectively allocated to messages in order to withdraw, from the first space of the working memory, in the right order, with neither repetition nor omission, all the packets of each message undergoing reception and to transfer their payloads to a message reconstitution stack, this analysis consisting, at the level of a descriptor stack, in, if the relative position, in the message, of the packet pointed at, extracted from the service information fields of this packet, is lower than or equal to the maximum chaining position recorded in the header block of the descriptor, depositing the payload of the packet pointed at in a message reconstitution stack, updating the maximum chaining position in the header block of the descriptor by increasing its value by the length of the deposited payload, and passing to the next pointer of the stack, if the relative position, in the message, of the packet pointed at, extracted from the service information fields of this packet, is greater than the maximum chaining position recorded in the header block of the descriptor, assigning the intermediate status of premature eligibility to the pointer, and, passing to the next pointer of the stack, as soon as a deposition has been completed changing the intermediate status of eligibility or premature eligibility of the pointer allocated to the deposited packet into a definitive status of deposition, examining the relative position of the deposited packet in the message if the deposited packet is the last packet of a message closing the message reconstitution stack, and deactivating the descriptor allocated to the message by updating the allocation elements table, if the deposited packet is not the last packet of a message changing the status of the pointer or pointers allocated to packets and placed immediately downstream in the stack with an intermediate state of redundancy into a definitive state of redundancy, searching, upstream in the stack, for the pointers allocated to packets with the intermediate status of premature eligibility, and when this search is positive, verifying the reality of the intermediate status of premature eligibility by comparing the relative position in the message of the packet pointed at, extracted from the service information fields of the packet pointed at, with a maximum chaining position located in the header block of the descriptor, if the relative position, in the message, of the packet pointed at by a pointer with the intermediate status of premature eligibility is lower than or equal to the maximum chaining position, changing the intermediate status of premature eligibility into an intermediate status of eligibility, and resuming the analysis of the stack at the allocated pointer that has undergone the change in status, as soon as a deposition fails changing the status of a pointer allocated to the packet whose deposition has failed, from an intermediate status of eligibility into a definitive status of reject, searching in the stack for another allocated pointer corresponding to the packet for which the deposition has failed but which is assigned an intermediate status of redundancy, if the search is positive changing the status of the pointer found, from intermediate status of redundancy to intermediate status of eligibility, and resuming the analysis of the pointer stack, at the level of the allocated pointer that has undergone the change in status, if the search is negative momentarily abandoning the reconstruction of the message in a mailbox memory, this reconstruction being resumed naturally at the arrival of a packet corresponding to the next fragment.