Abstract:
Embodiments of the present invention relate to a method. The method includes a step of receiving a bundle of data (i.e., a frame). The method also includes a step of verifying if the content of the bundle of data was previously received in a subsequently received bundle of data. The verifying comprises checking at least two types of information. In other words, embodiments of the present invention include a procedure for discarding a duplicate packet. These procedures ensure that a subsequent packet is actually a duplicate packet and not a new packet by checking at least two types of information associated with the device receiving the packet and the data on the packet. Accordingly, embodiments of the present invention provide for a communication system with minimal data loss. In turn, the embodiments of the present invention provide for a communication system which can communication data without frustrating an end user due to an incompletion of a data request, such as accessing a web page on the Internet.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a method for processing a duplicate data packet.  
           [0003]    2. Background of the Related Art  
           [0004]    Communication systems are used in everyday life. For instance, watching television requires a broadcast communication system. Talking on the telephone requires a telecommunication system. Conducting a conversation on a cellular phone requires a wireless communication system. Surfing the Internet requires a data communication system. Many of these communication systems are actually digital communication systems. A digital communication system breaks up data (i.e., sound signals, TV broadcasts, web page data) into ones and zeros. These ones and zeros are transmitted throughout the respective communication system and eventually reassembled to reproduce an originating signal.  
           [0005]    Communicating these ones and zeros across communication networks is a significant task. In some communication systems, these ones and zeros are bundled together in the form of a packet. A packet can be directed through a communication network between two users or systems, as they are communicating.  
           [0006]    Unfortunately, communication systems are not perfect. Mistakes do occur that result in loss of these packets. This can be a significant problem, as sometimes the lost packets contain data which is vital to communication. For example, if a user is surfing the Internet and enters a world wide web address into an Internet browser, that address is converted into ones and zeros and transmitted across a communication network in order to retrieve the desired web page. However, if a packet containing these ones and zeros that are associated with the web address is lost in the communication network, the user will be unable to complete the communication and view the desired web page. Accordingly, there is a long felt need to improve communication systems, such that data is not lost in the network.  
         SUMMARY OF THE INVENTION  
         [0007]    Objects of the present invention at least include overcoming the disadvantages of the background art. Embodiments of the present invention relate to a method. The method includes a step of receiving a bundle of data (i.e., a frame). The method also includes a step of verifying if the content of the bundle of data was previously received in a subsequently received bundle of data. The verifying comprises checking at least two types of information.  
           [0008]    In other words, a communication system may send packets of data several times in order to ensure that at least one of the packets of data reaches it&#39;s intended destination. However, once one of these packets is received at the destination, any subsequent duplicate packet is no longer needed. In fact, any subsequent packet may actually cause confusion in the communication network. Accordingly, embodiments of the present invention include procedures for discarding this duplicate packet. These procedures ensure that a subsequent packet is actually a duplicate packet and not a new packet by checking at least two types of information associated with the device receiving the packet or the data of the packet. Accordingly, embodiments of the present invention provide for a communication system with minimal data loss. In turn, the embodiments of the present invention provide for a communication system which can communication data without frustrating an end user due to incompletion of a data request, such as accessing a web page on the Internet.  
           [0009]    Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objects and advantages of the invention may be realized and attained as particularly pointed out in the appended claims. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]    [0010]FIG. 1 is an exemplary view illustrating a Type3 packet.  
         [0011]    [0011]FIGS. 2 and 3 are exemplary flow charts illustrating Type3 packet processing.  
         [0012]    [0012]FIG. 4 is an exemplary structure diagram illustrating a memory which may be allotted to each ATM channel. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0013]    Asynchronous Transfer Mode (ATM) may be composed of four layers (a higher layer, ATM adaptation layer, ATM layer and a physical layer). The structure of an ATM protocol may follow an OSI reference model. ATM may have a structure that is formed by expanding a N-ISDN protocol. Respective layers of ATM have specific performances. Service of these respective layers is implemented using a service of a lower layer. An upper layer may not affect the lower layer. A lower layer may include a physical layer, an ATM layer, and an ATM adaptation layer.  
         [0014]    In an ATM layer, an AAL layer (ATM Adaptation Layer) may provide user service information, conversion among ATM cells, compensation of cells which are damaged by transmission error or congestion, transmission or restoration of time information, and multiplexing or demultiplexing. When an AAL is divided vertically, it is divided into a Segment and Disassembly Sublayer (SAR) and a Convergence Sublayer (CS). A SAR may be formed by disassembling and assembling a data unit in a unit of a cell. A CS may verify effectiveness of a data unit and transmit the result to an upper layer. When the AAL is divided in parallel, it can be divided into an AAL 1  (which supports B-ISDN service class A), AAL 2  (which supports B-ISDN service class B), AAL 3  (which supports B-ISDN service class C), AAL 4  (which supports B-ISDN service class D), and AAL 5  (which supports a high speed data communication having simplified performances from the performance of AAL 3 / 4 ).  
         [0015]    The AAL 2  transmits U-SDU (User-Service Data Unit) of real time service data (Audio or Video data) and provides time information, error restoration and information services to the upper layer. Also, the AAL 2  provides division of user information, reassemble, cell insertion and restoration of damaged cells. In the AAL 2 , a CPS (Common Part Sublayer) packet may be generated for AAL 2 . Signaling may be divided into three types (Type 1, Type 2 and Type 3 packets). A Type 1 is a packet that may be used for transmitting voice. Accordingly, there may be no need to detect errors or correct errors of a Type 1 packet. A Type 3 packet is used to transmit call control information. Call control information may include dialed digits, CAS (Channel Associated Signaling), Facsimile Demodulation Control, Alarms, and User State Control. One of ordinary skill in the art would appreciate that other types of information may be included in the call control information.  
         [0016]    Damage to a call control signal packet (Type 3 packet) or packet error can cause more serious problems than that of voice packets (Type 1 packet). To solve the above problem, in embodiments of the present invention, an ATM may use a Redundancy function that entails repeatedly transmitted similar Type 3 packets including identical content multiple times at a predetermined time interval. For example, an ATM may repeatedly transmit a Type 3 packet three times. A call control signal packet (type 3 packet) which is transmitted according to a Redundancy function may secure some reliability of the system. Transmitting Redundancy packets may cause a master processor of an ATM sender and receiver to be over burdened due to a necessity of processing content-identical packets several times. To reduce this burden on the master processor, an ATM sender and receiver may have a packet processing unit for reporting only new packets to a master processor and discard redundant packets.  
         [0017]    [0017]FIG. 1 illustrates an exemplary Type 3 packet which may include a Redundancy field, TimeStamp field, Message Dependent Information field, message-type field and/or CRDC (Cyclic Redundancy Check) field. A Redundancy field is a region that may identify redundancy packets according to a Redundancy function. For instance, when a packet is repeatedly transmitted 3 times, ordering values (0, 1 and 2) may be inputted in a Redundancy field. Input values of a field may be binary values of 2 bits (00 (2) , 01 (2) , 10 (2)  and 11 (2) ) and among them, 3 (11 (2) ) may be used for another object.  
         [0018]    A TimeStamp field is a region that may indicate a ‘relative point in time’ that the respective packet was processed in a sender system. Redundancy packets identify this same relative point in time value in each respective TimeStamp field. A receiver may determine whether a received packet is a redundancy packet or a packet of a new event by checking a TimeStamp field of the received packet. A size of a TimeStamp field may be 14 bits. The value of a TimeStamp field may be increased 1 by 1 in a unit of milliseconds and reset as 0 again every 16.4 seconds.  
         [0019]    A Message-dependent information field is a region which may indicate information related to an event. A message-type field is a region which may indicate identification values of respective events. A CRC field may be used to detect errors of a Type 3 packet and determine whether there is an error in a received packet by comparing the CRC field value and a CRC value calculated by a receiver. An event may be call control signals related to a call setting, maintaining and disconnecting, namely, Hook-on, Hook-off, Hook-flash. One of ordinary skill in the art would appreciate other functional information that can be included in an event.  
         [0020]    [0020]FIG. 2 is an exemplary flow chart illustrating Type 3 packet processing. When ATM cells are received, a receiver may process a call control signal packet (Type 3 packet) by dividing out a voice packet (i.e., Type 1 packet). That is, a Type 3 packet may be processed according to a Type 3 packet processing routine by extracting the Type 3 packet.  
         [0021]    After a packet is received, a packet processing unit may first check if there is an error in the packet by refering to a CRC (Cyclic Redundancy Check) field of a received packet (step S 1 ). If there is an error, a packet processing unit may discard a received packet (step S 6 ). If there is no error in a received packet, a packet processing unit compares a TimeStamp value of a received packet and a TimeStamp value written in memory (step S 2 ). A TimeStamp value written in memory is a TimeStamp value of a packet which was previously processed by a master processor. After the comparison of step S 2 , if a TimeStamp value of a received packet and a TimeStamp value written in a memory are identical, then a packet processing unit may discard the received packet (step S 6 ). If a TimeStamp value of a received packet is different from a TimeStamp value written in a memory, then a packet processing unit may overwrite the TimeStamp value of the received packet in the memory (step S 3 ), and may process an event of the received packet according to an event processing routine (step S 4 ). Event information of a received packet may be reported to a master processor (step S 5 ).  
         [0022]    In other words, when an event occurs, a sender side may transmit information about an event by loading it in a Type 3 packet. “Identical” Type 3 packets may be transmitted according to a Redundancy function. Such a redundancy transmission is in anticipation of errors in a Type 3 packet or the Type 3 packet is damaged. The transmitted “Identical” packets have identical contents, and may only have differences in Redundancy field values. A packet which is initially transmitted to a receiver may be referred to as a “new packet”. Packets which are transmitted after an initial packet (or new packet) may be referred to as a “redundancy packet”. For a receiver, identical Type 3 packets may be transmitted three times per event. If there was no damaged packets, Redundancy value of a “new packet” may be “00 (2) ” and Redundancy values of two redundancy packets may be “01 (2) ” and “10 (2) ”.  
         [0023]    During transmission, if a “new packet” is damaged or an error occurs, a receiver may not discard subsequent redundancy packets. However, if a “new packet” is received successfully, a packet processing unit of a receiver may determine whether the received packet is a “redundancy packet” or a “new packet” using a TimeStamp value. A TimeStamp value is a relative time value of a sender system and the TimeStamp value of a “new packet” and TimeStamp value of a “redundancy packet” may be identical. A packet processing unit may receive a “new packet” and when it is checked that there are no errors in the “new packet”, the packet processing unit may overwrite a TimeStamp value of the packet and report packet information to a master processor. Packet processing unit may then check a TimeStamp value which was received after receiving a “new packet” and discard the received packet if the TimeStamp value is identical to a TimeStamp value stored in memory.  
         [0024]    For example, a new packet may be misconceived as a redundancy packet and discarded. Likewise, a redundancy packet may be misconceived as a new packet and erroneously reported to a master processor. In fact, the probability that two received packets, which are actually not identical, have an identical TimeStamp value is ½ 14 ({fraction (1/16384)}). This may be a very high rate as an erroneous processing occurrence probability. In other words, a packet is erroneously processed every 16384 packets.  
         [0025]    [0025]FIG. 3 is an exemplary flow chart illustrating Type 3 packet processing in accordance with embodiments of the present invention. A Type 3 packet processing method used in AAL 2  signaling in accordance with embodiments of the present invention may include the following steps. Checking errors of a received packet (step S 11 ). Determining whether a received packet is a redundancy packet or a new packet by comparing a plurality of values of the corresponding packet and stored information. If there is no error in a received packet (step S 15 ) then a field value of the corresponding field in a memory is overwritten if the received packet is a new packet and the new packet is reported to a master processor (step S 21 ). Step S 21  may include the following steps. Storing a Redundancy value and a TimeStamp value. Setting a History-bit of a corresponding event as in active state ‘1’ (step S 17 ). Processing an event of an identified received packet according to an event processing routine (step S 18 ). Reporting a received packet information to a master processor and checking whether a call was disconnected (step S 19 ).  
         [0026]    Step S 15  may include the following steps. Comparing a TimeStamp value of a received packet with a TimeStamp value which is stored in a memory (step S 12 ). Checking whether a History-bit of a corresponding event in a memory is an active state value (‘1’) after identifying kinds of events of a received packet. If these TimeStamp values are identical (step S 13 ), then comparing a Redundancy value of a received packet with a Redundancy value which is stored in a memory. If a History-bit is in an active state value (‘1’), then determining that a received packet is a new packet if the Redundancy value of the received packet is smaller or the same as a stored Redundancy value. In step S 12 , if two TimeStamp values are different, a packet processing unit determines that the received packet is a new packet. In step S 13 , if a History-bit of a corresponding event is in an inactive state value (‘0’), a packet processing unit determines that a received packet is a new packet. In step S 14 , if a Redundancy value of a received packet is larger than a redundancy value which is stored in a memory, a packet processing unit discards the received packet (step S 16 ). In step S 19 , when it is confirmed that a call was not disconnected, a packet processing unit sets a initial value ‘0’ in the mask-bit region of memory (step S 20 ).  
         [0027]    [0027]FIG. 4 is an exemplary structure diagram illustrating a memory allotted to an ATM channel. The memory region shown in FIG. 4 is composed of a mask-bit region (second region) having a maximum of 6 bits, Redun-bit region (second region) having a maximum of 12 bits, and TimeStamp-bit region (third region) having a maximum of 14 bits. The memory region may be allotted to respective ATM channels and size of the memory allotted to each channel may be 32 bits. The mask-bit region may include a plurality of 1 bit event History-bits. Event History-bit may have an inactive state value ‘0’ as an initial value. When a “new packet” is received from a sender, a History-bit value of a corresponding event may be set as active state value ‘1’. Therefore, an event History-bit of ‘0’ means that a corresponding event has not yet occurred or a packet of the corresponding event has not been received.  
         [0028]    In embodiments of the present invention, a size of a mask-bit region may be as 6 bits. However, since the number of bits of a mask-bit region may be equal to the number of events, the size of the mask-bit region may be expanded or reduced according to the number of events. For example, three kinds of events may be Hook-off, Hook-on, and Hook-flash. In this example, mask-bit region may be 3 bits; one bit for Hook-off, one bit for Hook-on, and one bit for Hook-flash.  
         [0029]    A TimeStamp-bit region may have an identical size (14 bit) as a TimeStamp field of a Type 3 packet. A TimeStamp value of a packet which is most recently reported to the master processor, may be overwritten to the TimeStamp-bit region. When a packet is received, a packet processing unit may compare the TimeStamp value of a received packet with a value which is written in the TimeStamp-bit region of a memory. Redun-bit region may include a plurality of event regions of identical size (2 bits) as a Redundancy field of a packet and a packet processing unit may write a Redundancy value of a “new packet” in a corresponding event region of a memory when the “new packet” is received.  
         [0030]    In embodiments of the present invention, size of a Redun-bit region is a maximum of 12 bits. However, the number of bits of the Redun-bit region of a respective ATM channel can be expanded or reduced in accordance with the number of events. For example, if an event is divided into Hook-off, Hook-on, and Hook-flash (three kinds of events), the Redun-bit region may be 6 bits, two bits are for Hook-off, and two bits are for Hook-flash.  
         [0031]    In an ATM, a sender may send a packet in several millisecond intervals. The transmitted packet can be lost or damaged in the transmission path. However, the order in which a packet arrives at a receiver may not be changed, since an ATM is connection-Oriented. For example, after a packet having a Redundancy value of ‘1’ is transmitted to a receiver, the subsequent packet includes identical event information and has a Redundancy value of ‘1’. A packet processing unit may regard the received packet as a “new packet”. Accordingly, the TimeStamp-bit region and Redun-bit region are not used reset to the initial value, even if the corresponding call is disconnected. FIGS. 3 and 4 illustrate an exemplary process for processing a Type 3 packet. For example, an event may be divided into three types (Hook-on, Hook-off and Hook-flash). The received packet may be associated with Hook-off and the number of the ATM channels may be 2048. A memory region of 23 bits may be allotted to each channel and a memory region of respective channels may be a mask-bit region of 3 bits, Redun-bit region of 6 bits, and TimeStamp region of 14 bits. All values of the memory region is set as ‘0’ (initial value).  
         [0032]    When ATM cells are transmitted to the receiver side through an ATM network, a receiver may process the ATM cells by dividing them into ATM cells carrying voice data and ATM cells carrying call control information. A receiver may extract Type 3 packets from an ATM cell carrying call control information. The extracted packet may be determined to be a “redundancy packet” or a “new packet” by a packet processing unit. If the extracted packet is a “redundancy packet”, the packet may be discarded. If the extracted packet is a “new packet”, the packet processing unit may overwrite information of the “new packet” (i.e., TimeStamp value, message-type information and Redundancy value) in a memory and report occurrence of an event to a master processor.  
         [0033]    When a received (extracted) packet is inputted into a packet processing unit, the packet processing unit tests whether there are errors in the packet by checking a CRC field of the packet (step S 11 ). If an error is found, the packet processing unit discards the packet (step S 16 ). The CRC code may be CRC-10. If no error is found, the packet processing unit may compare the TimeStamp value of the received packet and the TimeStamp value stored in the memory (step S 12 ). If the two TimeStamp values are identical, additional information about the received packet (message-type information and Redundancy value) is compared with the information (mask-bit region value and Redun-bit region value) which is overwritten in the memory region.  
         [0034]    For example, if the two TimeStamp values are identical, the packet processing unit may examine a History-bit of a corresponding event (Hook-off) in the mask-bit region with reference to the message-type field (event identifier of ‘Hook-off’) of the received packet S 13 . If the History-bit of the corresponding event indicates an active state, (i.e., has a value of ‘1’), the packet processing unit compares the Redundancy value of the received (extracted) packet with the Redundancy value written in memory (step S 14 ). As the result of the comparison in step S 14 , if the Redundancy value of a received (extracted) packet is larger than the Redundancy value written in memory, then the packet processing unit discards the received packet (step S 16 ). As a result of the comparison S 12 , if the two compared TimeStamp values are different, the packet processing unit may designate the received packet as a “new packet” (step S 21 ). As a result of the examination in S 13 , if the History-bit of the corresponding event Hook-off is under the inactive state, (i.e., has a value of ‘0’), the packet processing unit may designate the received packet as a “new packet” and perform step S 21 . Also, as a result of the examination in S 14 , if a Redundancy value of the received (extracted) packet is equal to or less than a Redundancy value stored in memory, then the packet processing unit designates the received packet as a “new packet” and performs step S 21 .  
         [0035]    When a packet processing unit determines that a received packet is a “new packet”, it may store information (i.e., TimeStamp value and Redundancy value) of the “new packet” in a memory region to enable the discarding of a redundancy packet. Further, the packet processing unit may set an active state value ‘1’ in a corresponding event bit of a mask bit region (step S 17 ). According to an event processing routine, a packet processing unit may process an event of a received packet (step S 18 ). The packet processing unit may report event information of a received packet to a master processor (step S 19 ). Contents of event information may be different for different systems.  
         [0036]    After reporting event information to a master processor, a packet processing unit may check whether a call is disconnected. If the call is not disconnected, it may convert the state (i.e., active state or inactive state) in anticipation of subsequent packets (step S 22 ). If a call was disconnected, a mask-bit region of memory may be initialized. An inactive state value of ‘0’ may be set in all event History-bits of a mask-bit region (step S 20 ). However, TimeStamp-bit region and Redun-bit region may not be set to the initial value even if the call is disconnected.  
         [0037]    Embodiments of the present invention utilizing checking of at least two types of information may have an erroneous processing occurrence probability of ½ 14 ×{fraction (1/2048)}×½×{fraction (3/9)}×2={fraction (1/100,663,269)}. A memory region (32 bit) is allotted to each channel (2048 channels) and it uses the TimeStamp-bit region (14 bit), mask-bit region (event region of 1 bit) and Redun-bit region (event region of 2 bit). This means that a packet may be misconceived only once among more than 100 million packets.  
         [0038]    If the generation order of each event is determined, erroneous processing occurrence probability can be further reduced. That is, in case a normal call, since a Hook-on event must occur after the Hook-off event occurs, when the Hook-off bit value of the mask-bit region is ‘0’, if the Type 3 packet of the Hook-on is received, the packet can be determined whether it is a redundancy packet or new packet just by comparing the TimeStamp value. As described above, the Type 3 packet processing method in accordance with embodiments of the present invention implement a Redundancy function that concretely, efficiently, and substantially reduces erroneous processing occurrence probability in a process of determining redundancy packet of a ATM receiver. Embodiments of the present invention relate to a process for determining if a packet is a redundancy packet or a new packet that can be performed more precisely and efficiently by allotting memory for processing the Type 3 packets for each ATM channel. The memory region can be expanded and reduced according to the number of events.  
         [0039]    Therefore, an object of the present invention is to provide a method for processing a Type 3 packet used in AAL 2  signaling, capable of decreasing a rate of erroneous processing occurred in processing the Type 3 packet and performing identification process of redundancy packet and new packet more accurately and efficiently.  
         [0040]    To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described herein, there is provided a method for processing a Type 3 packet used in AAL 2  signaling, including the steps of checking errors of a received packet S 11 , determining whether the received packet is a redundancy packet or new packet by comparing the plurality of filed values of the corresponding packet and stored information, if there is no error in the received packet S 15  and overwriting the field value of the corresponding field in a memory if the received packet is a new packet and reporting to a master processor S 21 .  
         [0041]    The reporting step S 21  includes the steps of storing a Redundancy value and TimeStamp value, and setting a History-bit of the corresponding event as an active state ‘1’ S 17 , processing the event of the identified received packet according to event processing routine S 18  and reporting the received packet information to a master processor and checking whether a call was disconnected S 19 .  
         [0042]    The step of determination S 15  includes the steps of comparing the TimeStamp value of the received packet with the TimeStamp value which is stored in the memory S 12 , checking whether the History-bit of the corresponding event in the memory is under the active state after identifying kinds of events of the received packet, if the two TimeStamp values are identical S 13 , comparing a Redundancy value of the received packet with the Redundancy value which is stored in the memory, if the History-bit is under the active state ‘1’ and determining that the received packet is a new packet if the Redundancy value of the received packet is smaller or same as the stored Redundancy value.  
         [0043]    The foregoing embodiments and advantages are merely exemplary and are not to be construed as limiting the present invention. The present teaching can be readily applied to other types of apparatuses. The description of the present invention is intended to be illustrative, and not to limit the scope of the claims. Many alternatives, modifications, and variations will be apparent to those skilled in the art.