WO2003028272A2 - Method and system for detecting false packets in wireless communications systems - Google Patents

Method and system for detecting false packets in wireless communications systems Download PDF

Info

Publication number
WO2003028272A2
WO2003028272A2 PCT/US2002/030449 US0230449W WO03028272A2 WO 2003028272 A2 WO2003028272 A2 WO 2003028272A2 US 0230449 W US0230449 W US 0230449W WO 03028272 A2 WO03028272 A2 WO 03028272A2
Authority
WO
WIPO (PCT)
Prior art keywords
bits
packet
bit
transmission
legal value
Prior art date
Application number
PCT/US2002/030449
Other languages
French (fr)
Other versions
WO2003028272A3 (en
Inventor
William J. Mcfarland
John S. Thomson
Original Assignee
Atheros Communications Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atheros Communications Inc. filed Critical Atheros Communications Inc.
Priority to AU2002341836A priority Critical patent/AU2002341836A1/en
Publication of WO2003028272A2 publication Critical patent/WO2003028272A2/en
Publication of WO2003028272A3 publication Critical patent/WO2003028272A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • H04L1/242Testing correct operation by comparing a transmitted test signal with a locally generated replica

Definitions

  • the present invention relates generally to the field of radio communications and more specifically to the field of detecting unwanted data in a wireless networking system.
  • Wireless data networks must function in environments with high radio noise and interference. In order to achieve maximum range, the receivers must operate at extremely low signal levels. As the signal levels move lower, both the noise and interference signals become large compared to the desired signals (the signal-to-noise ratio or "SNR" decreases).
  • SNR signal-to-noise ratio
  • a radio receiver detects the start of each packet and receives it. Noise and interference can interfere with the correct reception of the packets. In addition, the interference and statistical fluctuation of the background noise can cause the receiver to incorrectly believe a packet is arriving even when one is not. These "false packets" can interfere with the proper operation of the network. In particular, ⁇ ⁇ false packets can reduce the throughput of networks using
  • CSMA carrier sense multiple access
  • False packets can also affect the reception of valid packets.
  • Most communication systems include a predefined preamble code at the beginning of a packet.
  • the receiver uses the preamble to perform a sequence of tasks including antenna selection, gain setting, frequency offset correction, symbol timing recovery, and channel estimation. These actions must be performed in a specific sequence, and must be completed by the time that the data payload in the packet begins. Once the data portion of the packet begins, these preamble activities stop to avoid interfering with reception of the data.
  • the receiver may be unable to synchronize to a valid packet that arrives later, because its receiver sequence is already engaged. In fact, the receiver may not be able to receive a valid packet until processing the false packet is complete or otherwise terminated.
  • a further complication is raised by terminating reception solely on the basis of a drop in signal strength.
  • the receive signal may decrease in magnitude over time due to fading. Drops in signal strength are common even on valid packets. Often, packets with significant drops in signal strength can be successfully received if the packet is not abandoned. Therefore, it would be unacceptable to terminate reception on the basis of a drop in signal strength alone. Because false packets make the medium appear to be busy, and because they obstruct the reception of valid packets, they can significantly reduce the actual data throughput of typical wireless networks. There is therefore a need in the art for techniques and systems to reduce the amount of time a station spends attempting to receive false packets.
  • the present inventor has realized that communications protocols, such as the 802.1 1 a Wireless LAN protocol, have insufficient error checking bits to validate incoming packets prior to processing the incoming packets, resulting in lost processing time that occurs when a false packet is processed.
  • the present invention provides a system and method that validates incoming packets by using bits other than parity or error checking bits to check the validity of incoming packets.
  • the present inventor has also realized that bits having a set value or range of values can be used for error checking.
  • the invention may also be applied to other communication protocols, whether or not the protocol has sufficient internal error checking capabilities.
  • the invention is also applicable whether the protocol is directed to a wireless, RF, HF, microwave, satellite, bluetooth, optic, laser, wired, network, fiber-optic, or any other type of communication systems.
  • the present invention provides a method, comprising the steps of, identifying a portion of data comprising at least one data bit, comparing the identified data bit to a legal value, and rejecting the portion of data and any other data associated with the portion of data if the identified portion of data does not match the legal value, wherein the legal value is determined by other than a standard parity check.
  • the present invention is a device that includes means for identifying at least one non-parity bit of the transmission, means for comparing the identified bits to a legal value to determine if the identified bits are part of a valid packet, and means for rejecting the identified bits as a false packet if the comparison of the identified bits and legal value do not match.
  • the present invention also provides a device, comprising, a receiver configured to receive data transmissions, a bit recognition device configured to recognize selected bits, including at least one non-parity bit, from an incoming data transmission, a comparator configured to compare the selected bits to a legal value, and a rejection device configured to reject the incoming data transmission if the selected bits do not match the legal value.
  • Portions of both the device and method may be conveniently implemented in programming on a general purpose/specialized computer, hardwired logic, or otherwise programmed in electronic circuitry.
  • Various results and controlling functions, user inputs, etc. may be displayed on an output device connected to any of the general purpose, networked computers , or transmitted to a remote device for output or display.
  • any components of the present invention represented in a computer program, data sequences, and/or control signals may be embodied as an electronic signal broadcast (or transmitted) at any frequency in any medium including, but not limited to, wireless broadcasts, and transmissions over copper wire(s), fiber optic cable(s), and co-ax cable(s), etc.
  • FIG. 1 is a drawing of the format of packets in the 802.1 1 a protocol
  • Fig. 2 is a drawing of a more detailed view of the 802.1 1 a signal symbol
  • Fig. 3 is a drawing of the encoding of the 802.1 1 a rate field
  • Fig. 4 is a drawing of the encoding of the 802.1 1 a reserved service bits
  • Fig. 5 is a circuit block diagram of a preferred embodiment of the present invention
  • Fig. 6 is a screen shot of an example error check set-up screen according to an embodiment of the present invention
  • Fig. 7 is an example advanced error check screen 700 according to an embodiment of the present invention
  • Fig. 8 is a block diagram that illustrates hardware and/or software components that may be configured in several possible embodiments of a device according to the present invention.
  • a PLCP preamble 105 includes 12 symbols that enable antenna selection, gain setting, frequency offset correction, symbol timing recovery, channel estimation and other functions.
  • the PLCP preamble 105 is followed by a SIGNAL symbol 1 10, which is the first data field that a receiver receiving an 802.1 1 a packet decodes.
  • the first data symbol contains several bit fields.
  • the rate field 1 12 (4 bits) specifies the data rate at which the remainder of the data packet is encoded (from ⁇ - 54Mb/s).
  • the length field 1 15 specifies the number of bits that are in the data portion of the packet, the total length of the data portion of the packet in time can be calculated by taking the length of the packet value of length field 1 15 * 8 (the length is indicated in octets) and dividing by the rate.
  • the rate field is decoded based on a table lookup, and then that actual rate is what is used to divide the length.
  • this parity bit be the main mechanism for quickly detecting bad packets (false packets). However, false packets from noise or interference are likely to have multiple errors in the signal symbol. If all the bits in the signal symbol are random noise, the single parity bit would still have a
  • the parity bit is a very weak mechanism for weeding out false packets. Generally speaking, it will catch only half of the false packets as errors.
  • a false packet can have any value for the rate and length fields.
  • the rate can be the lowest rate, while the length is the longest possible length.
  • the station will consider the * , medium to be busy for a very long time, and will be unable to transmit or receive for this long period of time.
  • the false packets will interrupt transmission and detection for a period of time equal to a length of 4096 bytes divided by a rate of - 18 Mb/s, or an average time of 1.8 ms.
  • Fig. 2 illustrates a more detailed view of the 802.1 1 a signal symbol.
  • the signal symbol has rate bits 1 12 stored in bits 0 through 3, reserved bit 1 14 in bit 4, length bits 1 15 in bits 5 (LSB) through 16 (MSB), parity bit 1 16 in bit 17, and a signal tail 1 17 in bits 18 through 23.
  • Each of the signal tail bits, according to the 802.1 1 a standard, are set to "0.”
  • a transmit order 200 indicates the order of transmission for bits transmitted in the 802.1 1 a standard.
  • Fig. 3 illustrates the encoding of the rate field.
  • the four bits 310 in the rate field could describe up to 16 different data rates.
  • the 802.1 1 a standard manages the unused rate field bit by always setting the fourth rate bit equal to "1 ". The preferred embodiment of the present invention therefore checks that this is the case, as all valid packets under
  • 802.1 1 a will have R4 set to "1 ". If a packet with a forth bit (R4) of "0" is ever received, it is assumed to be a packet with an error, or a false packet, in which case, reception is aborted, and the channel is no longer indicated as busy. According to the 802.1 1 a standard, the reserved bit 1 14 must be transmitted (set) as a "0". Therefore a "1 " in this location indicates a bad or false packet. Because it is a "reserved bit” this bit might be used in a future protocol yet to be determined. This potential change (or changes in other bits e.g. R4) may be accommodated by the preferred embodiment, as discussed with reference to Figs.
  • the length field is defined by the 802.1 1 a standard to be a 12 bit integer which indicates the number of bytes in the data field. This would support lengths up to 4096 bytes. However, the 802.1 1 a standard defines packets up to only 2346 bytes. Further, in most applications, the packets are Ethernet packets, which have a maximum length of 1518 Bytes. Depending on the application the wireless station is being used in, all lengths greater than either 2346 or 518 can be considered bad packets or false packets.
  • Fig. 4 provides another example of bits defined to have a set value according to the 802.1 1 a standard. Reserved service bits 400, bits 7 to 15, are set to 0, and scrambler initialization bits 410, bits 0 to 6, are also set to 0.
  • a transmit order 420 indicates the order that the bits are transmitted when transmitted in an 802.1 1 a packet.
  • FIG. 5 illustrates in block diagram form of a preferred embodiment of the present invention.
  • a received signal 500 (which is described herein in the context of the 802.1 1 a protocol, but may also be any other communication protocol having characteristics similar to those of the 802.1 1 a protocol) is input to a demodulator or other equipment that performs analog processing, frequency conversion, etc., converting the received signal to a manageable frequency (e.g., intermediate frequency), and performing an analog to digital conversion to digitize the incoming signal, producing Rx Data 508.
  • a demodulator or other equipment that performs analog processing, frequency conversion, etc., converting the received signal to a manageable frequency (e.g., intermediate frequency), and performing an analog to digital conversion to digitize the incoming signal, producing Rx Data 508.
  • a manageable frequency e.g., intermediate frequency
  • the Rx Data 508 is transmitted to a Media Access Control (MAC) device that controls access of the RX Data 508 to a host device 512.
  • a signal detection state machine 520 performs signal detection, a process of detecting that a signal is being received by the demodulator. Upon detection of a signal being received by the demodulator, the signal detection state machine 520 asserts a channel busy line 521. The channel busy line 521 signals the MAC 510 that a packet is being received by the demodulator, and the MAC 510 then begins receiving the incoming packet. The channel busy line also tells the MAC that packets cannojrbe transmitted on a communications channel shared by incoming and outgoing packets. In one embodiment, the channel busy line is also connected to a transmitter (not shown), the channel busy line signaling the transmitter to halt any transmissions. The signal detection state machine 520 also performs gain control, frequency control, and timing (e.g. symbol timing).
  • the Rx Data 508 is input into a logic block 530.
  • the illustrated logic block preferably examines all the bits in the signal symbol, looking for any combination of bits that is not legal.
  • Legal values include specific bit patterns or ranges of values.
  • the legal values are comparison data used to compare against data or fields of packets being tested for validity.
  • the logic block 530 may be called a comparator as its main task is to compare bits of an incoming data packet with legal values (predetermined values, comparison data) that comprise either individual set values or ranges of values that are valid for a particular set of bits.
  • the timing of the bits to be examined is provided by the signal detection state machine 520 or another timing device.
  • the Rx Data 508 is input to the logic block/comparator 530 and specific bits of the Rx Data are captured in memory locations. For example, the rate bits 1 12, 4 bits, are captured in check device 550.
  • Check device 550 comprises a memory location capable of holding the 4 rate bits 1 12.
  • bits e.g., reserved bit 1 14, length bits 1 15 parity bit 1 16, and service bits 1 18 are stored in check devices 552, 554, 556, and 558 respectively.
  • the specific bits of the Rx Data are captured in a single memory location, or read into a firmware or software programmed memory location for storage and comparison processing. Also alternatively, other combinations of bits, fields, or other Rx Data that are to be checked are saved.
  • the saved Rx Data will be checked against a predetermined bit pattern to determine if the packets are valid.
  • the predetermined bit pattern is either a set bit value(s) from which corresponding bits being checked must be equal to, or the predetermined bits are a set of values (e.g. table of values), any one of which the bits being checked can be equal to.
  • the predetermined bits may also comprise a range oi ⁇ bit values of which the bits being checked must fall within.
  • a register 540 contains the legal values for each of the bits to be checked.
  • the exact number of checks executed is preferably enabled or disabled by the user, by software or by an update in the software configuration of the device. This control allows the device to be forward compatible, in case the reserve bit or currently illegal patterns become part of the protocol in the future.
  • the register. 540 includes data that indicates whether a particular bit or set of bits are being checked.
  • the register may also include the predetermined pattern against which the bits from the incoming packet are being checked.
  • rate check device 550 is a memory location that stores the rate field of an incoming packet. A valid rate or set of rates is transmitted from the register 540 to the rate check device 550.
  • the rate check device 550 includes logic for comparing the valid rate, set of rates, or rate range against the stored rate field.
  • the rate check device 550 identifies a programmed operation of a high speed data processor that compares the valid rate/rates to the rate field of the incoming packet.
  • the register 540 also contains an indication as to whether a particular check is to go forward. In the rate check device example, if the rate field is to be checked, the register 540 asserts rate check line 542. If both the rate check line 541 and illegal rate line 551 are asserted, rate abort line 565 is asserted. •" In another example, the predetermined bit pattern for checking the reserved bit is pre-programmed into reserved bit check device 552. As discussed above, the reserved bit value is preprogrammed to 0. If the reserved bit is not 0, reserved bit line 553 is asserted.
  • the reserved bit is to be checked, determined by assertion of the reserved bit check line 543 by register 540, then, the reserved bit abort line 566 is asserted.
  • the parity bit can be performed as is done in available solutions. It is difficult to use the signal tail field 1 17 for this purpose. This field is used to complete the trace-Back in the Viterbi decoder. Therefore these bits are not decoded with accuracy even in a valid packet.
  • Fig. 1 there is another field in Fig. 1 that can be used - the Service field 1 18. As shown in Fig. 4, the first 7 bits of the Service field, scrambler initialization 410, are set to 0 to initialize the scrambler in the receiver.
  • reserved service bits 400 are reserved, and are set to 0 concurrently. Therefore, each of the reserved service bits 400 can be used for screening out false packets. Preferably, the bits checked are selectable since new interoperability standards may make use of these bits. If any of the above listed errors are detected, and the register is configured for the error to be considered, then the reception of the packet is aborted by notifying the Medium Access Controller (MAC) that the packet is bad and to be abandoned, and resetting the demodulator and the signal detection state machine and circuitry. Thus, if any of abort lines 567 are asserted, logic gate 568 asserts the abort packet line 570.
  • MAC Medium Access Controller
  • Abort packet line signals the MAC 510 to abort a packet currently being received and signals the demodulator 505 to reset.
  • the Abort packet line also signals the signal detection state machine 520 clear the channel busy signal 521 .
  • the reset of the signal detection circuitry and state machine will in turn cause the medium busy signal to be cleared going to the MAC.
  • the station is then ready to transmit, or begin reception again.
  • the channel busy signal ma ⁇ _r also be configured to notify a transmitter that it is ok to transmit.
  • F>9-_6 is a screen shot of an example error check set-up screen 600 according to an embodiment of the present invention.
  • the error check set-up screen 600 is selected from a tabbed set of options from a network set-up program or other software interface.
  • the error check screen includes a list of bit fields 610 and a set of check boxes 620 corresponding to each listed bit field. A user selects check boxes corresponding to the bit fields that are to be tested for detection of false packets. In some cases, default bit fields are preprogrammed into the error check.
  • the R4 bit is always set to " 1 ".
  • Checking the Rate bits check box identifies the R4 bit of the rate field to be checked for packet validity.
  • the length bits field includes a pull down selection box 625 that allows the- ⁇ ser to select a max valid length for a packet.
  • the selected max value is 1024, thus any packet having a length greater than the selected value is determined to be a false packet.
  • Many other forms of an error check screens may be implemented and still fall within the scope of the present invention. The main point is to provide the user an ability to select which bits/fields are either set or within predeterminedr- ranges for a valid packet.
  • the example error check screen 600 includes an advanced button 630 that brings up an advanced error check screen.
  • Fig. 7 is an example advanced error check screen 700 according to an embodiment of the present invention.
  • the advanced error check screen 700 provides a user the ability to select values of specific bit values within specified fields of a packet.
  • the selection facilities include, for example using the rate bits.
  • Rate bit identification 705 identifies the available rate bit fields, and rate bit check boxes 710 are used to identify bit values.
  • the rate bit check boxes are set as either "1 ", identified by a check mark, "QVTdentified as a blank check box, and don't care, which is identified as an x mark in the check box.
  • the current example shows bits R1-R3 as don't care, and R4 set to "1 ".
  • Length bits 715 are also shown and all set to don't care.
  • Parity bit checks 720 include setting the parity bit to a specific bit value (check box 722), and/or an option to use normal parity checks.
  • additional logic is contained in check device 556 to determine a proper bit pattern according to normal parity procedures. In this manner the normal parity check is implemented in addition to the checks of other set bit values or ranges of values.
  • the parity check box fields may be one, don't care, or zero, if the applicable protocol specifies a set value for any of the parity bit fields (or parity bit). Since the 802.1 1 a standard uses the parity bit, unless a particular implementation or other restriction on the parity bit is imposed, the use normal parity selection is normally selected for
  • a user defined field is also shown having bit selection boxes 730 and check boxes 740.
  • a user selects one or more specific bits in the bit selection boxes 730 and specifies the value in check boxes 740._
  • the user has selected each of service bits S7 through S15.
  • the check boxes 740 are each deselected indicating a value of "0", consistent with the 802.1 1 a standard discussed with reference to the service bits shown in Fig. 4.
  • Other fields or selected bits may be displayed on the error check and advanced error * check screens depending on the implementation and protocol to be checked.
  • Fig. 8 is a block diagram that illustrates hardware and/or software components 800 for several possible embodiments of a device according to the present invention.
  • logic block/comparator 530 may be constructed of memory element and logic devices that compare identified bits and/or fields of an incoming packet against a predetermined pattern(s). Logic block/comparator 530 may also be a processing device that performs a similar comparison. The result is control logic that identifies false packets.
  • the identified' bits and/or fields of the incoming packets may be selected via a user interface according to Figs. 6 and 7, or another interface that allows the user to select bits, fields, and identify valid values whether the valid values are a table of possible entries, a range of values, or specific bit patterns.
  • the selected bits and field values are then compiled into one of a software, firmware, programmed logic, or other driver device 810.
  • the driver device 810 loads the register 540 with the valid values. In addition to valid values, the register may also maintain other logic for calculating valid values.
  • a user interface 820, a program that invokes a similar GUI as shown in Figs. 6 and 7, may directly supply the driver device 810 with the valid values, or compile the driver device into an independent executable program.
  • the User Interface is run on a device separate and remote from the logic block/comparator (i.e., a manufacturer's site).
  • the driver is compiled from the user interface input values and then the driver is shipped independently (or downloaded) to an end user's site where the driver is run to load register 540.
  • the driver may be run at a first set-up time of the logic block/comparator 530, or may run each time the logic block/comparator is started.
  • the User inter ace 820 writes the valid values to a configuration file 830. The driver reads the configuration file and updates the register 540.
  • any number of configurations are possible.
  • two methods for updating or changing the screening checks that are active have already been described.
  • One is for the user to reconfigure the device through a user interface.
  • the other is to load new software from storage media or over a network which automatically updates the screening checks being performed.
  • Another method to change the screening checks being performed is to have intelligence within the device or software for the device that can intelligently choose the best set of screens in a given situation.
  • FCS frame check sum
  • the device does not reject packets according to the service field i values. However, during this time it checks to see if any packets with a correct FCS arrive that have the service bits set other than zero. If such packets arrive, they are known to be valid because of the correct FCS, and the device would know not to screen packets based on the service field. However, if all packets with correct FCS values have the service field set to all zeros, then the device may safely reject packets based on the values in the service field.
  • the advantage to having the software or device intelligently select the packet screening checks is that the user does not need to intervene, and the system can adapt dynamically to the situation without the need to load new software or configuration information.
  • the present invention has been described herein with reference to the 802.1 1 a protocol, the devices and processes of the present invention may be applied to ether protocols having set or determinable fields.
  • the present invention includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to control, or cause, a computer to perform any of the processes of the present invention.
  • the storage medium can include, but is not limited to, any type of disk including floppy disks, mini disks (MD's), optical discs, DVD, CD- ROMS, micro-drive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.
  • the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention.
  • software may include, but is not limited to, device drivers, operating systems, and user applications.
  • computer readable media further includes software for performing the present invention, as described above.
  • the programming (software) of the general/specialized computer or microprocessor are software modules for implementing the teachings of the present invention, including, but not limited to, storing predetermined field and bit values, retrieving and comparing bit and field values, resetting MACs, demodulators, receivers, and transmitters, producing timing signals, identification and retrieval of bit/field values from a user, device driver, or other source, and the display, storage, or communication of results according to the processes of the present invention.

Abstract

Specific bits and bit fields of incoming packets (500) are compared against a predetermined bit pattern(s). If the bits and/or bit fields do match corresponding parts of the predetermined bit pattern(s), the incoming packet (500) is rejected as a false packet. A register (540) stores the predetermined bit pattern. The predetermined bit pattern contains specific values for particular bit locations, specific values (558) for fields within a packet, a table of valid values, and/or a range of valid values (550, 554) for any one or more bits and/or bit fields of a packet. Parity (556) checks may be performed in addition to checking for the predetermined bit fields. The specific bits and bit fields are restricted according to packet protocol standards, device standards, and/or implementation standards to the predetermined bit pattern(s). A user interface is utilized to collect the predetermined bit patterns and/or initiate or modify validity checks on specifiq: fields of the packets.

Description

METHOD AND SYSTEM FOR DETECTING FALSE PACKETS IN WIRELESS COMMUNICATIONS SYSTEMS
BACKGROUND OF THE INVENTION Field of Invention
The present invention relates generally to the field of radio communications and more specifically to the field of detecting unwanted data in a wireless networking system.
Discussion of Background
Wireless data networks must function in environments with high radio noise and interference. In order to achieve maximum range, the receivers must operate at extremely low signal levels. As the signal levels move lower, both the noise and interference signals become large compared to the desired signals (the signal-to-noise ratio or "SNR" decreases).
Most available radio systems communicate data in packet form. A radio receiver detects the start of each packet and receives it. Noise and interference can interfere with the correct reception of the packets. In addition, the interference and statistical fluctuation of the background noise can cause the receiver to incorrectly believe a packet is arriving even when one is not. These "false packets" can interfere with the proper operation of the network. In particular,~~false packets can reduce the throughput of networks using
CSMA (carrier sense multiple access) schemes, which share the available bandwidth with a listen-before-talk style protocol. In such a network, false packets cgn have at least two detrimental effects. First, during the time that the wireless station believes a false packet is present, it will interpret the medium as busy and will not initiate the transmission of its own data. This will reduce the data flow from that station and slow the network.
False packets can also affect the reception of valid packets. Most communication systems include a predefined preamble code at the beginning of a packet. During normal operation, the receiver uses the preamble to perform a sequence of tasks including antenna selection, gain setting, frequency offset correction, symbol timing recovery, and channel estimation. These actions must be performed in a specific sequence, and must be completed by the time that the data payload in the packet begins. Once the data portion of the packet begins, these preamble activities stop to avoid interfering with reception of the data.
If a false packet causes a receiver to incorrectly commence preamble analysis, the receiver may be unable to synchronize to a valid packet that arrives later, because its receiver sequence is already engaged. In fact, the receiver may not be able to receive a valid packet until processing the false packet is complete or otherwise terminated.
A further complication is raised by terminating reception solely on the basis of a drop in signal strength. In the radio environment, the receive signal may decrease in magnitude over time due to fading. Drops in signal strength are common even on valid packets. Often, packets with significant drops in signal strength can be successfully received if the packet is not abandoned. Therefore, it would be unacceptable to terminate reception on the basis of a drop in signal strength alone. Because false packets make the medium appear to be busy, and because they obstruct the reception of valid packets, they can significantly reduce the actual data throughput of typical wireless networks. There is therefore a need in the art for techniques and systems to reduce the amount of time a station spends attempting to receive false packets.
SUMMARY OF THE INVENTION The present inventor has realized that communications protocols, such as the 802.1 1 a Wireless LAN protocol, have insufficient error checking bits to validate incoming packets prior to processing the incoming packets, resulting in lost processing time that occurs when a false packet is processed. The present invention provides a system and method that validates incoming packets by using bits other than parity or error checking bits to check the validity of incoming packets. The present inventor has also realized that bits having a set value or range of values can be used for error checking. Although particularly applicable to the 802.1 1 a Wireless LAN Protocol, the invention may also be applied to other communication protocols, whether or not the protocol has sufficient internal error checking capabilities. The invention is also applicable whether the protocol is directed to a wireless, RF, HF, microwave, satellite, bluetooth, optic, laser, wired, network, fiber-optic, or any other type of communication systems.
In one embodiment, the present invention provides a method, comprising the steps of, identifying a portion of data comprising at least one data bit, comparing the identified data bit to a legal value, and rejecting the portion of data and any other data associated with the portion of data if the identified portion of data does not match the legal value, wherein the legal value is determined by other than a standard parity check.
In another embodiment, the present invention is a device that includes means for identifying at least one non-parity bit of the transmission, means for comparing the identified bits to a legal value to determine if the identified bits are part of a valid packet, and means for rejecting the identified bits as a false packet if the comparison of the identified bits and legal value do not match.
In yet another embodiment the present invention also provides a device, comprising, a receiver configured to receive data transmissions, a bit recognition device configured to recognize selected bits, including at least one non-parity bit, from an incoming data transmission, a comparator configured to compare the selected bits to a legal value, and a rejection device configured to reject the incoming data transmission if the selected bits do not match the legal value.
Also provided is a method for loading a predetermined set of legal values into a register, wherein said legal values comprise a pattern of at least one bit that matches at least one specific bit location in valid packets, wherein said register is coupled to a packet screening device that validates incoming packets by comparing the incoming packets to said legal values. And, a method for displaying a user interface identifying bits that may be set to check packet validity, retrieving user inputs from the user interface, and storing the user inputs. The stored and loaded values are then used to compare against incoming packets to determine validity of the incoming packets.
Portions of both the device and method may be conveniently implemented in programming on a general purpose/specialized computer, hardwired logic, or otherwise programmed in electronic circuitry. Various results and controlling functions, user inputs, etc., may be displayed on an output device connected to any of the general purpose, networked computers , or transmitted to a remote device for output or display. In addition, any components of the present invention represented in a computer program, data sequences, and/or control signals may be embodied as an electronic signal broadcast (or transmitted) at any frequency in any medium including, but not limited to, wireless broadcasts, and transmissions over copper wire(s), fiber optic cable(s), and co-ax cable(s), etc.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the invention and many of the attendant advantages thereof-will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein: Fig. 1 is a drawing of the format of packets in the 802.1 1 a protocol;
Fig. 2 is a drawing of a more detailed view of the 802.1 1 a signal symbol; Fig. 3 is a drawing of the encoding of the 802.1 1 a rate field; Fig. 4 is a drawing of the encoding of the 802.1 1 a reserved service bits; Fig. 5 is a circuit block diagram of a preferred embodiment of the present invention; Fig. 6 is a screen shot of an example error check set-up screen according to an embodiment of the present invention;
Fig. 7 is an example advanced error check screen 700 according to an embodiment of the present invention; and Fig. 8 is a block diagram that illustrates hardware and/or software components that may be configured in several possible embodiments of a device according to the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS For the purposes of this section, the IEEE 802.1 1 a Wireless LAN protocol is used as an example. However, as noted above, other communication systems and protocols have similar properties, and the presently described invention could be applied to those systems as well.
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts, and more particularly to Fig. 1 thereof, there is illustrated a format 100 of packets in the 802.1 1 a protocol. A PLCP preamble 105, includes 12 symbols that enable antenna selection, gain setting, frequency offset correction, symbol timing recovery, channel estimation and other functions. The PLCP preamble 105 is followed by a SIGNAL symbol 1 10, which is the first data field that a receiver receiving an 802.1 1 a packet decodes.
As can be seen in Fig. 1 , the first data symbol, the SIGNAL symbol 1 10, contains several bit fields. The rate field 1 12 (4 bits) specifies the data rate at which the remainder of the data packet is encoded (from β - 54Mb/s). The length field 1 15 specifies the number of bits that are in the data portion of the packet, the total length of the data portion of the packet in time can be calculated by taking the length of the packet value of length field 1 15 *8 (the length is indicated in octets) and dividing by the rate. The rate field is decoded based on a table lookup, and then that actual rate is what is used to divide the length. There is also a parity bit 1 16 present in the signal symbol. The creators of the protocol intended that this parity bit be the main mechanism for quickly detecting bad packets (false packets). However, false packets from noise or interference are likely to have multiple errors in the signal symbol. If all the bits in the signal symbol are random noise, the single parity bit would still have a
50% chance of being correct. Therefore, the parity bit is a very weak mechanism for weeding out false packets. Generally speaking, it will catch only half of the false packets as errors.
Such weak screening of false packets can cause serious inefficiencies on the wireless network. A false packet can have any value for the rate and length fields. In the worst case, the rate can be the lowest rate, while the length is the longest possible length. In this case the station will consider the*, medium to be busy for a very long time, and will be unable to transmit or receive for this long period of time. For the 802.1 1 a standard, given the encoding of the rate and length fields, on average, the false packets will interrupt transmission and detection for a period of time equal to a length of 4096 bytes divided by a rate of - 18 Mb/s, or an average time of 1.8 ms. This is a significant loss considering that in that same time over 12k bytes of data could have been transferred at the 54Mb/s data rate. Since such false packets can occur frequently in environments with interference or weak signals (including high noise environments), the throughput can be seriously degraded.
Fig. 2 illustrates a more detailed view of the 802.1 1 a signal symbol. The signal symbol has rate bits 1 12 stored in bits 0 through 3, reserved bit 1 14 in bit 4, length bits 1 15 in bits 5 (LSB) through 16 (MSB), parity bit 1 16 in bit 17, and a signal tail 1 17 in bits 18 through 23. Each of the signal tail bits, according to the 802.1 1 a standard, are set to "0." A transmit order 200 indicates the order of transmission for bits transmitted in the 802.1 1 a standard. Fig. 3 illustrates the encoding of the rate field. The four bits 310 in the rate field could describe up to 16 different data rates. Since, however, only eight different rates are defined by the 802.1 1 a standard (rates 320), not all possible combinations of the four rate field bits are used. As illustrated in Fig. 3, the 802.1 1 a standard manages the unused rate field bit by always setting the fourth rate bit equal to "1 ". The preferred embodiment of the present invention therefore checks that this is the case, as all valid packets under
802.1 1 a will have R4 set to "1 ". If a packet with a forth bit (R4) of "0" is ever received, it is assumed to be a packet with an error, or a false packet, in which case, reception is aborted, and the channel is no longer indicated as busy. According to the 802.1 1 a standard, the reserved bit 1 14 must be transmitted (set) as a "0". Therefore a "1 " in this location indicates a bad or false packet. Because it is a "reserved bit" this bit might be used in a future protocol yet to be determined. This potential change (or changes in other bits e.g. R4) may be accommodated by the preferred embodiment, as discussed with reference to Figs. 6-8 herein, by allowing a change to the values stored in a false detect control register, or other register, storage, or calculation device configured to produce the set values that are indicative of a valid packet. These changes may be updated via software with user assistance or by downloading and installing a driver having knowledge of the set values indicative of a valid packet. In this example, if the reserved bit were changed to indicate some value, the check of the reserved bit would no longer be performed and packets with either 1 or 0 in the reserved bit location would be accepted as valid.
The length field is defined by the 802.1 1 a standard to be a 12 bit integer which indicates the number of bytes in the data field. This would support lengths up to 4096 bytes. However, the 802.1 1 a standard defines packets up to only 2346 bytes. Further, in most applications, the packets are Ethernet packets, which have a maximum length of 1518 Bytes. Depending on the application the wireless station is being used in, all lengths greater than either 2346 or 518 can be considered bad packets or false packets. Fig. 4 provides another example of bits defined to have a set value according to the 802.1 1 a standard. Reserved service bits 400, bits 7 to 15, are set to 0, and scrambler initialization bits 410, bits 0 to 6, are also set to 0. A transmit order 420 indicates the order that the bits are transmitted when transmitted in an 802.1 1 a packet.
Fig. 5 illustrates in block diagram form of a preferred embodiment of the present invention. A received signal 500 (which is described herein in the context of the 802.1 1 a protocol, but may also be any other communication protocol having characteristics similar to those of the 802.1 1 a protocol) is input to a demodulator or other equipment that performs analog processing, frequency conversion, etc., converting the received signal to a manageable frequency (e.g., intermediate frequency), and performing an analog to digital conversion to digitize the incoming signal, producing Rx Data 508.
The Rx Data 508 is transmitted to a Media Access Control (MAC) device that controls access of the RX Data 508 to a host device 512. A signal detection state machine 520 performs signal detection, a process of detecting that a signal is being received by the demodulator. Upon detection of a signal being received by the demodulator, the signal detection state machine 520 asserts a channel busy line 521. The channel busy line 521 signals the MAC 510 that a packet is being received by the demodulator, and the MAC 510 then begins receiving the incoming packet. The channel busy line also tells the MAC that packets cannojrbe transmitted on a communications channel shared by incoming and outgoing packets. In one embodiment, the channel busy line is also connected to a transmitter (not shown), the channel busy line signaling the transmitter to halt any transmissions. The signal detection state machine 520 also performs gain control, frequency control, and timing (e.g. symbol timing).
The Rx Data 508 is input into a logic block 530. The illustrated logic block preferably examines all the bits in the signal symbol, looking for any combination of bits that is not legal. Legal values include specific bit patterns or ranges of values. The legal values are comparison data used to compare against data or fields of packets being tested for validity. The logic block 530 may be called a comparator as its main task is to compare bits of an incoming data packet with legal values (predetermined values, comparison data) that comprise either individual set values or ranges of values that are valid for a particular set of bits. The timing of the bits to be examined is provided by the signal detection state machine 520 or another timing device.
In operation, the Rx Data 508 is input to the logic block/comparator 530 and specific bits of the Rx Data are captured in memory locations. For example, the rate bits 1 12, 4 bits, are captured in check device 550. Check device 550 comprises a memory location capable of holding the 4 rate bits 1 12.
Other bits (e.g., reserved bit 1 14, length bits 1 15 parity bit 1 16, and service bits 1 18 are stored in check devices 552, 554, 556, and 558 respectively. Alternatively, the specific bits of the Rx Data are captured in a single memory location, or read into a firmware or software programmed memory location for storage and comparison processing. Also alternatively, other combinations of bits, fields, or other Rx Data that are to be checked are saved.
The saved Rx Data will be checked against a predetermined bit pattern to determine if the packets are valid. The predetermined bit pattern is either a set bit value(s) from which corresponding bits being checked must be equal to, or the predetermined bits are a set of values (e.g. table of values), any one of which the bits being checked can be equal to. The predetermined bits may also comprise a range oi~bit values of which the bits being checked must fall within.
A register 540 contains the legal values for each of the bits to be checked. The exact number of checks executed is preferably enabled or disabled by the user, by software or by an update in the software configuration of the device. This control allows the device to be forward compatible, in case the reserve bit or currently illegal patterns become part of the protocol in the future.
The register. 540 includes data that indicates whether a particular bit or set of bits are being checked. The register may also include the predetermined pattern against which the bits from the incoming packet are being checked. For example, rate check device 550 is a memory location that stores the rate field of an incoming packet. A valid rate or set of rates is transmitted from the register 540 to the rate check device 550. The rate check device 550 includes logic for comparing the valid rate, set of rates, or rate range against the stored rate field. Alternatively, the rate check device 550 identifies a programmed operation of a high speed data processor that compares the valid rate/rates to the rate field of the incoming packet. An invalid rate in the incoming packet's rate field results in the illegal rate line 551 being asserted, The register 540 also contains an indication as to whether a particular check is to go forward. In the rate check device example, if the rate field is to be checked, the register 540 asserts rate check line 542. If both the rate check line 541 and illegal rate line 551 are asserted, rate abort line 565 is asserted. •" In another example, the predetermined bit pattern for checking the reserved bit is pre-programmed into reserved bit check device 552. As discussed above, the reserved bit value is preprogrammed to 0. If the reserved bit is not 0, reserved bit line 553 is asserted. And, if the reserved bit is to be checked, determined by assertion of the reserved bit check line 543 by register 540, then, the reserved bit abort line 566 is asserted. The parity bit can be performed as is done in available solutions. It is difficult to use the signal tail field 1 17 for this purpose. This field is used to complete the trace-Back in the Viterbi decoder. Therefore these bits are not decoded with accuracy even in a valid packet. However, there is another field in Fig. 1 that can be used - the Service field 1 18. As shown in Fig. 4, the first 7 bits of the Service field, scrambler initialization 410, are set to 0 to initialize the scrambler in the receiver. However, the remaining 9 bits in the service field, reserved service bits 400, are reserved, and are set to 0 concurrently. Therefore, each of the reserved service bits 400 can be used for screening out false packets. Preferably, the bits checked are selectable since new interoperability standards may make use of these bits. If any of the above listed errors are detected, and the register is configured for the error to be considered, then the reception of the packet is aborted by notifying the Medium Access Controller (MAC) that the packet is bad and to be abandoned, and resetting the demodulator and the signal detection state machine and circuitry. Thus, if any of abort lines 567 are asserted, logic gate 568 asserts the abort packet line 570. Abort packet line signals the MAC 510 to abort a packet currently being received and signals the demodulator 505 to reset. The Abort packet line also signals the signal detection state machine 520 clear the channel busy signal 521 . The reset of the signal detection circuitry and state machine will in turn cause the medium busy signal to be cleared going to the MAC. The station is then ready to transmit, or begin reception again. Alternatively, the channel busy signal ma\_r also be configured to notify a transmitter that it is ok to transmit.
As described in the background section, using only the parity bit there is a 50% chance for a false packet to be interpreted as a valid packet, resulting in wasted time and bandwidth across the medium. Each additional bit that is checked reduces the odds of false packets getting through by a factor of two. The present invention, using just the rate and length checks, would reduce the likelihood of false packets making it through the screening by approximately a factor of 8. If screening on the reserved bits is activated as well, the odds are reduced by a further factor of 1024. When all of the disclosed checks in the preferred embodi erit are enabled, the odds of false packets making it through the screen are reduced from those of the standard scheme by many orders of magnitude. F>9-_6 is a screen shot of an example error check set-up screen 600 according to an embodiment of the present invention. The error check set-up screen 600 is selected from a tabbed set of options from a network set-up program or other software interface. The error check screen includes a list of bit fields 610 and a set of check boxes 620 corresponding to each listed bit field. A user selects check boxes corresponding to the bit fields that are to be tested for detection of false packets. In some cases, default bit fields are preprogrammed into the error check.
For example, under the 802.1 1 a standard, as discussed above, the R4 bit is always set to " 1 ". Checking the Rate bits check box identifies the R4 bit of the rate field to be checked for packet validity. In another example, the length bits field includes a pull down selection box 625 that allows the-υser to select a max valid length for a packet. In this example, the selected max value is 1024, thus any packet having a length greater than the selected value is determined to be a false packet. Many other forms of an error check screens may be implemented and still fall within the scope of the present invention. The main point is to provide the user an ability to select which bits/fields are either set or within predeterminedr- ranges for a valid packet.
The example error check screen 600 includes an advanced button 630 that brings up an advanced error check screen. Fig. 7 is an example advanced error check screen 700 according to an embodiment of the present invention. The advanced error check screen 700 provides a user the ability to select values of specific bit values within specified fields of a packet. The selection facilities include, for example using the rate bits. Rate bit identification 705 identifies the available rate bit fields, and rate bit check boxes 710 are used to identify bit values. The rate bit check boxes are set as either "1 ", identified by a check mark, "QVTdentified as a blank check box, and don't care, which is identified as an x mark in the check box. For the rate bits, the current example shows bits R1-R3 as don't care, and R4 set to "1 ". Length bits 715 are also shown and all set to don't care.
Parity bit checks 720 include setting the parity bit to a specific bit value (check box 722), and/or an option to use normal parity checks. When using normal parity checks, additional logic is contained in check device 556 to determine a proper bit pattern according to normal parity procedures. In this manner the normal parity check is implemented in addition to the checks of other set bit values or ranges of values. Alternatively, the parity check box fields may be one, don't care, or zero, if the applicable protocol specifies a set value for any of the parity bit fields (or parity bit). Since the 802.1 1 a standard uses the parity bit, unless a particular implementation or other restriction on the parity bit is imposed, the use normal parity selection is normally selected for
802.1 1 a packets.
A user defined field is also shown having bit selection boxes 730 and check boxes 740. A user selects one or more specific bits in the bit selection boxes 730 and specifies the value in check boxes 740._ In this example, the user has selected each of service bits S7 through S15. The check boxes 740 are each deselected indicating a value of "0", consistent with the 802.1 1 a standard discussed with reference to the service bits shown in Fig. 4. Other fields or selected bits may be displayed on the error check and advanced error* check screens depending on the implementation and protocol to be checked. Fig. 8 is a block diagram that illustrates hardware and/or software components 800 for several possible embodiments of a device according to the present invention. As discussed previously, logic block/comparator 530 may be constructed of memory element and logic devices that compare identified bits and/or fields of an incoming packet against a predetermined pattern(s). Logic block/comparator 530 may also be a processing device that performs a similar comparison. The result is control logic that identifies false packets.
The identified' bits and/or fields of the incoming packets may be selected via a user interface according to Figs. 6 and 7, or another interface that allows the user to select bits, fields, and identify valid values whether the valid values are a table of possible entries, a range of values, or specific bit patterns. The selected bits and field values are then compiled into one of a software, firmware, programmed logic, or other driver device 810. The driver device 810 loads the register 540 with the valid values. In addition to valid values, the register may also maintain other logic for calculating valid values. A user interface 820, a program that invokes a similar GUI as shown in Figs. 6 and 7, may directly supply the driver device 810 with the valid values, or compile the driver device into an independent executable program. In one embodiment, the User Interface is run on a device separate and remote from the logic block/comparator (i.e., a manufacturer's site). The driver is compiled from the user interface input values and then the driver is shipped independently (or downloaded) to an end user's site where the driver is run to load register 540. The driver may be run at a first set-up time of the logic block/comparator 530, or may run each time the logic block/comparator is started. In another alternative, the User inter ace 820 writes the valid values to a configuration file 830. The driver reads the configuration file and updates the register 540.
Based on the present disclosure, any number of configurations are possible. For example, two methods for updating or changing the screening checks that are active have already been described. One is for the user to reconfigure the device through a user interface. The other is to load new software from storage media or over a network which automatically updates the screening checks being performed. Another method to change the screening checks being performed is to have intelligence within the device or software for the device that can intelligently choose the best set of screens in a given situation.
In particulaTrthe 802.1 1 a standard provides a frame check sum (FCS) at the very end of the packet that also can be used to indicate if the packet was valid. This check comes too late to be of value for false packet screening. However, it can be used to intelligently choose the screening that is appropriate.
As an example, consider a situation in which in some locations devices are using the service field to convey information, while in other locations, devices are forcing the service field to all zeros. In this case a device that roams between to the two locations could use the following algorithm. At first the device does not reject packets according to the service field i values. However, during this time it checks to see if any packets with a correct FCS arrive that have the service bits set other than zero. If such packets arrive, they are known to be valid because of the correct FCS, and the device would know not to screen packets based on the service field. However, if all packets with correct FCS values have the service field set to all zeros, then the device may safely reject packets based on the values in the service field. This additional screening in the environments that allow it improves network throughput. A similar approach of starting with a given check turned off, observing the patterns of valid packets (as indicated by both the parity bit in the signal symbol and the Frame Check Sum at the end of the packet), and determining ~ whether the given screen can be turned on can be applied to all of the potential screens discussed previously. This includes the checking of the rate, length, reserved, and service fields.
The advantage to having the software or device intelligently select the packet screening checks is that the user does not need to intervene, and the system can adapt dynamically to the situation without the need to load new software or configuration information. Although the present invention has been described herein with reference to the 802.1 1 a protocol, the devices and processes of the present invention may be applied to ether protocols having set or determinable fields.
Portions of the present invention may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.
Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of application specific integrated circuits, logic devices, including programmable logic, or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
The present invention includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to control, or cause, a computer to perform any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, mini disks (MD's), optical discs, DVD, CD- ROMS, micro-drive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.
Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software for performing the present invention, as described above.
Included i . the programming (software) of the general/specialized computer or microprocessor are software modules for implementing the teachings of the present invention, including, but not limited to, storing predetermined field and bit values, retrieving and comparing bit and field values, resetting MACs, demodulators, receivers, and transmitters, producing timing signals, identification and retrieval of bit/field values from a user, device driver, or other source, and the display, storage, or communication of results according to the processes of the present invention. Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.

Claims

WHAT IS CLAIMED IS:
1 . A method, comprising the steps of: identifying a portion of data comprising at least one data bit; comparing the identified data to a legal value; and rejecting the portion of data and any other data associated with the portion of data if the identified portion of data does not match the legal value; wherein the legal value is determined by other than a standard parity check.
2. The method according to Claim 1 , wherein the portion of data and other data associated with the portion of data comprise a packet.
3. The method according to Claim 1 , further comprising the step of receiving a packet including at least said portion of data.
4. The method according to Claim 3, wherein said step of receiving comprises receiving the packet over a wired connection to a receiver.
5. The method according to Claim 3, wherein said step, of receiving comprises receiving the packet from a wireless packet transmission.
6. The method according to Claim 3, wherein said wireless packet transmission is an 802.1 1 a wireless packet.
7. -" he method according to Claim 1 , wherein said legal value includes patterns that are not intended for the purpose of packet validity checking.
8. The method according to Claim 7, wherein: said method is embodied in a set of computer instructions stored on a computer readable media; said computer instructions, when loaded into a computer, cause the computer to perform the steps of said method.
9. The method according to Claim 8, wherein said computer instruction are compiled computer instructions stored as an executable program on said computer readable media.
10. A method comprising the steps of: receiving at least part of a transmission; identifying at least one predetermined bit of the transmission; comparing the identified bits to a legal value to determine if the identified bits are part of a valid packet; and rejecting the identified bits as a false packet if the comparison of the identified bits and legal value do not match; wherein at least one of the identified bits is not a parity bit.
1 1 . The method according to Claim 10, wherein said step of comparing does not include parity bit calculations.
12. The method according to Claim 10, wherein said step of rejecting comprises resetting a receiver device that receives the transmissions.
1 &. The method according to Claim 10, wherein said step of rejecting comprises the steps of, rejecting an incoming packet associated with the received transmission as a false packet, and clearing a line busy signal used by one of a receiver and a transmitter.
1 . The method according to Claim 10, wherein said legal value comprises at least one of specific bit values and ranges of bit values corresponding to the identified bits.
1 5. The method according to Claim 10, wherein said step of rejecting comprises rejecting the identified bits and other bits associated with the identified bits as a false packet if the comparison of the identified bits and legal value do not match.
16. The method according to Claim 10, wherein the identified bits comprise at least one of rate bits, length bits, reserved bits, and service bits.
17. The method according to Claim 10, wherein the identified bits comprise bits having a set value.
18. The method according to Claim 10, wherein the identified bits comprise at least one of rate bits, length bits, reserved bits, service bits, and parity bits.
19. The method according to Claim 10, wherein the identified bits comprise any bits that have at least one of a fixed value and range of values based on any of packet protocol standards, device standards, and implementation specific standards of a communications system receiving said at least part of a transmission.
2G. The method according to Claim 19, wherein said fixed value and range of values are not determined via a parity calculation.
21 . The method according to Claim 10, further comprising the step of setting the legal value based on a user input.
22. The method according to Claim 10, further comprising the step of programming the legal value.
2.3. The method according to Claim 10, further comprising the step of writing the legal value to a register for use by said comparing step.
24. The method according to Claim 23, wherein said step of writing comprises running a program configured to write said register.
25. The method according to Claim 24, wherein said program is a software program configured to determine the legal value and write it to the register.
26. The method according to Claim 24, wherein said program is a firmware based program configured to read the legal value and write it to the register.
27. The method according to Claim 24, wherein said program is a programmable logic device configured to determine the legal value and write it to the register.
28. The method according to Claim 24, wherein said program is controlling software that implements said method.
29. The method according to Claim 24, wherein said program is device software.
30. The method according to Claim 10, further comprising the step of calculating at least a portion of the legal value.
31 . The method according to Claim 10, wherein said transmission is an OFDM transmission.
32. The method according to Claim 10, wherein said transmission is a wireless transmission.
33. The method according to Claim 10, wherein said transmission is an 802.1 1 a transmission.
34. The method according to Claim 10, wherein said legal value matches selected bits from an 802.1 1 a packet.
35. The method according to Claim 10, wherein said legal value is determined prior to receipt of the transmission.
36. The method according to Claim 10, wherein said transmission is a wireless transmission and said legal value matches selected bits from a packet protocol.
37. The method according to Claim 10, further comprising the step of choosing the legal value.
38. The method according to Claim 37, wherein the legal value includes bit patterns chosen based on previously received packets.
39". The method according to Claim 10, further comprising the steps of: testing values used in a field of received packets to determine a range of legal values being transmitted in the tested field; and adding the tested field to the identified bits and adding corresponding comparison data to the legal value for the tested field.
40. The method according to Claim 39, wherein said step of testing includes the step of checking to determine if received packets are valid, and, disregarding invalid packets.
41 . The method according to Claim 39, wherein said step of testing comprises testing values of fields within packets of the transmission to determine if they are being used.
42. The method according to Claim 40, wherein said step of checking comprises performing an FCS test on the received packets.
43. The method according to Claim 39, wherein the tested field is a service field.
44. The method according to Claim 39, wherein the tested field is at least one of rate bits, length bits, reserved bits, and service bits.
45. The method according to Claim 39, wherein the received packet is an 802.1 1 a packet.
46. A device, comprising: a receiver configured to receive data transmissions; a bit recognition device configured to recognize selected bits, including at least one non-parity bit, from an incoming data transmission; a comparator configured to compare the selected bits to a legal value; and a rejection device configured to reject the incoming data transmission if the selected bits do not match the legal value.
47. The device according to Claim 46, wherein the incoming data transmission comprises a packet.
48. The device according to Claim 46, wherein said bit slice recognizer comprises a state machine configured to identify bits from the incoming data transmission.
49. The device according to Claim 46, wherein the rejection device comprises a Medium Access Control device.
50. The device according to Claim 46, further comprising: a packet reject line coupled between said comparator and said rejectior device; wherein: said comparator is further configured to assert the packet reject line if the selected bits do not match the legal value; and said rejection device is further configured to reject the incoming data transmission if the packet reject line is asserted.
51. The device according to Claim 50, further comprising a state machine coupled to the incoming transmission and the packet reject line and configured to produce at least a part of a timing of a channel busy signal based on the packet reject line.
52,. The device according to Claim 50, further comprising: a "transmitter coupled to the channel busy signal; wherein said transmitter is configured to allow transmissions based on the channel busy signal.
53. The device according to Claim 50, wherein: said receiver is coupled to the packet reject line; and said receiver is further configured to reset based on assertion of the packet reject line.
54. The device according to Claim 46, further comprising a channel busy line and a state machine configured to assert the channel busy signal when the receiver receives a data transmission and clear the channel busy line when an incoming data transmission is rejected.
55. The device according to Claim 46, wherein: said legal value comprises at least one of a legal value and range of values for at least one of data rate bits, length bits, and other predetermined bits; and said comparator comprises, a register configured to store the legal value, and a logic device configured to compare the register values and ranges against at least one of selected bits.
56. The device according to Claim 46, further comprising: memory elements configured to store the recognized selected bits; wherein said-comparator comprises, a register configured to store the legal value, and a comparison device coupled to said register and the memory elements.
57. The device according to Claim 56, wherein the comparison device is coupled to each memory element and a register location in the register corresponding to the recognized bit.
58. The device according to Claim 46, wherein the selected bits have a set value or range of values that correspond to the legal value.
59. The device according to Claim 46, wherein said bit recognition device is configured to recognize at least one of data rate bits, reserved bits, length bits, and service field bits in a packet of the incoming data transmission.
60. The device according to Claim 46, further comprising: a demodulator configured to demodulate the received data transmissions; and a packet reject line coupled between said comparator and said demodulator; wherein: said comparator is further configured to assert the packet reject line if the selected bits do not match the legal value; and said demodulator is further configured to reset if the packet reject line is asserted.
61 . The device according to Claim 46, wherein: said comparator comprises, a register configured to store the legal value, and comparison logic coupled to said register and corresponding bits of the incoming data transmission.
62. The device according to Claim 61 , further comprising: an input device configured to write the legal value in said register.
63. The device according to Claim 62, wherein said user input device is software that queries a user for the legal value.
64. The device according to Claim 62, wherein said user input device is software that reads the legal value.
65. The device according to Claim 46, wherein said incoming data transmissions are wireless.
66. The device according to Claim 46, wherein said incoming data transmissions are OFDM transmissions.
67. The device according to Claim 46, wherein said incoming data transmissions are wireless.
68. The device according to Claim 46, wherein said incoming data transmissions are 802.1 1a transmissions.
69. The device according to Claim 46, wherein said incoming data transmissions are 802.1 1 like transmissions.
70. The device according to Claim 46, wherein said incoming data transmissions are wire line transmissions.
71. The deyjce according to Claim 55, wherein the legal value includes a table of valid values for at least part of the selected bits.
72. The device according to Claim 46, wherein the legal value includes a table of valid values for at least part of the selected bits.
73. A computer readable media having instructions stored thereon that, when loaded into a computer, cause the computer to perform the step of: loading a set of legal values into a register, wherein said legal values comprise a pattern of at least one bit that matches at least one non-parity bit location in a valid packet; wherein said register is coupled to a packet screening device that validates incoming packets by comparing the incoming packets to the legal values.
74. The computer readable media according to Claim 73, wherein said legal values are not determined via parity calculations.
75. The computer readable media according to Claim 73, wherein said- legal values comprise ranges of valid bit values.
76. The computer readable media according to Claim 73, wherein said specific bit locations comprises any of rate bits, length bits, reserved bits, service bits, and parity bits.
77. The computer readable media according to Claim 73, wherein said specific bit locations comprises any bit locations having set values according to any of a standard a a protocol of the packets, standards of devices transmitting, receiving or storing the packets, and standards of any implementation of devices transmitting, receiving, or storing the packets.
7B. The computer readable media according to Claim 73, wherein said register comprises a software register configured to maintain specific bit values and ranges of bit values.
79. A computer readable media having instructions stored thereon that, when loaded into a computer, cause the computer to perform the steps of: displaying a user interface identifying bits, including at least one non- parity bit, that may be set to check packet validity; retrieving user inputs from the user interface; and storing the user inputs.
80. The computer readable media according to Claim 73, wherein said step of storing comprises storing the user inputs in a register.
81 . The computer readable media according to Claim 73, wherein said step of storing comprises storing the user inputs in a driver.
82. The computer readable media according to Claim 73, wherein said user interface comprises a graphical user interface including a tab that identifies portions of data packets to check for validity.
83. The computer readable media according to Claim 73, wherein said user interface provides facilities for the user to identify specific bit values required to be in valid packets.
84. The computer readable media according to Claim 73, wherein said user interface provides facilities for the user to identify bit value ranges of at least portions of valid packets.
857 A device, comprising: means for receiving at least part of a transmission; means for identifying at least one non-parity bit of the transmission; means for comparing the identified bits to a legal value to determine if the identified bits are part of a valid packet; and means for rejecting the identified bits as a false packet if the comparison of the identified bits and legal value do not match.
86. The device according to Claim 85, wherein said legal value is not a parity based pattern.
87. The device according to Claim 85, wherein said at least one of the identified bits include at least one of a length bit, rate bit, and other reserved fixed value bits.
88. The device according to Claim 85, wherein said legal value comprises at least one of a set value and range of values.
89. The device according to Claim 85, wherein said at least part of a transmission is a packet.
90. The device according to Claim 85, wherein said transmission is an OFDM transmission.
91. The device according to Claim 85, wherein said transmission is a wireless transmission.
92. The device according to Claim 85, wherein said transmission is a wireless 802.1 1 a packet transmission.
93. The device according to Claim 85, further comprising: means for testing values used in fields of received packets to determine a range of legal values being transmitted in the tested fields; and means for adding the tested fields to the identified bits and adding corresponding comparison data to the legal value for the tested fields.
94. The device according to Claim 85, further comprising means for choosing the legal value.
95. A method comprising the steps of: receiving at least part of a transmission; identifying at least one predetermined bit of the transmission; comparing the identified bits to a legal value to determine if the identified bits are part of a valid packet; and rejecting the identified bits as a false packet if the comparison of the identified bits and legal value do not match; wherein: said step of identifying comprises identifying at least one predetermined, bit of the transmission wherein at least one of the identified bits is not a parity bit; said step of comparing does not include parity bit calculations; said legal value includes patterns determined by other than parity calculations; said step of rejecting comprises, rejecting an incoming packet associated with the received transmission as a false packet, clearing a line busy signal used by one of a receiver and a transmitter; and resetting a receiver device that receives the transmissions; said legal value comprises set bit values and ranges of bit values corresponding to the identified bits; the identified bits comprise rate bits, length bits, reserved bits, service bits, parity bits and other bits having set bit values and ranges of values; said set bit values and ranges of values are based on packet protocol standards, device standards, and implementation specific standards of a communications system receiving said at least part of a transmission; said method further comprises the step of setting the legal value based on a user input, including the steps of, displaying a user interface, retrieving user inputs regarding the set bit values and ranges of values of the legal value, storing the legal value, and running a program that performs the step of writing the legal value to a register for use by said comparing step; said transmission is a wireless OFDM 802.1 1 a packet transmission; and said legal value corresponds to selected bits from an 802.1 1 a packet.
96. A device, comprising: a receiver configured to receive data transmissions; a bit slice recognizer configured to recognize selected bits from an incoming data transmission; a comparator configured to compare the selected bits to a legal value; and a rejection device configured to reject the incoming data transmission if the selected bits do not match the legal value; wherein: the incoming data transmission comprises an OFDM encoded 802.1 1 a wireless packet; said bit slice recognizer comprises a state machine configured to identify the selected bits from the incoming data transmission; said rejection device comprises a Medium Access Control device; the device further comprises a packet reject line coupled between said comparator and said rejection device; said comparator is further configured to assert the packet reject line if the selected bits do not match the legal value; said rejection device is further configured to reject the incoming data transmission if the packet reject line is asserted; said state machine is coupled to the incoming transmission and the packet reject line and configured to produce at least a part of a timing of a channel busy signal based on the incoming transmission and the packet reject line; the device further comprising a transmitter coupled to the channel busy signal; said transmitter is configured to allow transmissions based on the channel busy signal; said receiver is coupled to the packet reject line; said receiver is further configured to reset based on assertion of the packet reject line; said state machine further configured to assert the channel busy signal when the receiver receives a data transmission and clear the channel busy line when an incoming data transmission is rejected; said legal value comprises a predetermined value and range of values for data rate bits, reserved bits, length bits, service field bits and other predetermined bits; the device further comprising memory elements configured to store the recognized selected bits; said comparator comprises, a register configured to store the legal value, and a logic device configured to compare the register to the memory elements; the comparison device is coupled to each memory element and a register location in the register corresponding to the recognized bit; said bit slice recognizer is configured to recognize data rate bits, reserved bits, length bits, service field bits, and other predetermined bits in a packet of the incoming data transmission; the device further comprising a demodulator configured to demodulate the received data transmissions; said demodulator coupled to the packet reject line and further configured to reset if the packet reject line is asserted; the device further comprising an input mechanism configured to write the legal value in said register; said input mechanism includes software configured to query a user for the legal value and software to write the legal value to said register; and at least some of the legal value is written to said register in tabular format.
97. The method according to Claim 10, further comprising the step of- choosing fields of a packet that comprise the identified bits.
98. The method according to Claim 97, wherein the step of choosing fields comprises choosing fields based on previously received packets.
99. The device according to Claim 85, further comprising means for choosing fields of a packet that comprise the identified bits.
100. The method according to Claim 85, wherein said means for choosing fields comprises means for choosing fields based on previously received packets.
PCT/US2002/030449 2001-09-25 2002-09-24 Method and system for detecting false packets in wireless communications systems WO2003028272A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002341836A AU2002341836A1 (en) 2001-09-25 2002-09-24 Method and system for detecting false packets in wireless communications systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/963,217 2001-09-25
US09/963,217 US7385929B1 (en) 2001-09-25 2001-09-25 Method and system for detecting false packets in wireless communications systems

Publications (2)

Publication Number Publication Date
WO2003028272A2 true WO2003028272A2 (en) 2003-04-03
WO2003028272A3 WO2003028272A3 (en) 2003-11-27

Family

ID=25506926

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2002/030449 WO2003028272A2 (en) 2001-09-25 2002-09-24 Method and system for detecting false packets in wireless communications systems

Country Status (4)

Country Link
US (1) US7385929B1 (en)
AU (1) AU2002341836A1 (en)
TW (1) TW588534B (en)
WO (1) WO2003028272A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1693973A1 (en) * 2003-12-04 2006-08-23 Buffalo Inc. Radio lan transmission/reception device and radio lan transmission/reception method
EP1816779A2 (en) * 2006-02-03 2007-08-08 AGILENT TECHNOLOGIES, INC. (A Delaware Corporation) Interoperability verification for implementation according to communication standard

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8191136B2 (en) * 2002-11-04 2012-05-29 Riverbed Technology, Inc. Connection based denial of service detection
US20070133804A1 (en) * 2005-12-12 2007-06-14 Intel Corporation Techniques to scramble wireless communications
TWI309109B (en) * 2006-02-27 2009-04-21 Realtek Semiconductor Corp Packet processing system and related packet processing method
KR101791987B1 (en) * 2010-12-07 2017-11-20 한국전자통신연구원 Method and apparatus for transmitting preamble in wireless communication system
US9648149B2 (en) * 2011-11-11 2017-05-09 Lg Electronics Inc. Method and device for indicating PLCP header transmission mode
JP5880143B2 (en) * 2012-03-02 2016-03-08 セイコーエプソン株式会社 Receiving method
US9934090B2 (en) * 2015-12-22 2018-04-03 Intel Corporation Apparatus and method for enforcement of reserved bits
US10541721B2 (en) * 2017-09-26 2020-01-21 Analog Devices Global Unlimited Company Modulation index adjustment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129315A1 (en) * 2001-03-09 2002-09-12 Onvural O. Raif Packet based ATM CRC-32 calculator

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4316285A (en) * 1980-09-11 1982-02-16 Bell Telephone Laboratories, Incorporated Framing circuit for digital receiver
US4835776A (en) * 1987-07-15 1989-05-30 Advanced Micro Devices Inc. Communication filter
US5838698A (en) * 1995-04-28 1998-11-17 Lucent Technologies Inc. Alignment of parity bits to eliminate errors in switching from an active to a standby processing circuit
US6522875B1 (en) * 1998-11-17 2003-02-18 Eric Morgan Dowling Geographical web browser, methods, apparatus and systems
US6349371B1 (en) * 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6662339B1 (en) * 1999-12-15 2003-12-09 Agere Systems Inc. Error screening based on code and control information consistency in a communication system
US6763490B1 (en) * 2000-09-25 2004-07-13 Agilent Technologies, Inc. Method and apparatus for coordinating program execution in a site controller with pattern execution in a tester
US6718493B1 (en) * 2001-05-17 2004-04-06 3Com Corporation Method and apparatus for selection of ARQ parameters and estimation of improved communications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129315A1 (en) * 2001-03-09 2002-09-12 Onvural O. Raif Packet based ATM CRC-32 calculator

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1693973A1 (en) * 2003-12-04 2006-08-23 Buffalo Inc. Radio lan transmission/reception device and radio lan transmission/reception method
EP1693973A4 (en) * 2003-12-04 2008-12-03 Buffalo Inc Radio lan transmission/reception device and radio lan transmission/reception method
US7515555B2 (en) 2003-12-04 2009-04-07 Buffalo Inc. Wireless LAN transceiver and wireless LAN transmitting/receiving method
EP1816779A2 (en) * 2006-02-03 2007-08-08 AGILENT TECHNOLOGIES, INC. (A Delaware Corporation) Interoperability verification for implementation according to communication standard
EP1816779A3 (en) * 2006-02-03 2009-09-16 AGILENT TECHNOLOGIES, INC. (A Delaware Corporation) Interoperability verification for implementation according to communication standard

Also Published As

Publication number Publication date
AU2002341836A1 (en) 2003-04-07
WO2003028272A3 (en) 2003-11-27
TW588534B (en) 2004-05-21
US7385929B1 (en) 2008-06-10

Similar Documents

Publication Publication Date Title
US7548736B2 (en) Transmitter, receiver, data transfer system, transmission method, reception method, computer program for transmission, computer program for reception, and recording medium
US7385929B1 (en) Method and system for detecting false packets in wireless communications systems
US7583649B1 (en) Rate adaptation
US7415661B2 (en) Early detection of false start-of-packet triggers in a wireless network node
US20070086423A1 (en) Modified start frame delimiter detection
US6690719B1 (en) Host to modem interface
US6421735B1 (en) Apparatus and method for automatically selecting a network port for a home network station
US8014379B2 (en) Correlation of access code for bluetooth synchronization
US5715278A (en) Standby power saving in mobile phones
US20050095986A1 (en) Spectrum sharing in the unlicensed band
US20100067551A1 (en) Method for Providing Packet Framing in a DSSS Radio System
JP3819843B2 (en) Ethernet adaptor
FI113225B (en) Initialization of a new D2B device address using an output address
CN107852423A (en) The method and system retained for the bandwidth of USB 2.0
US5559801A (en) Programmable packet sampling for network management
EP2493110A1 (en) Method, module and apparatus for receiving data packet frames
US10992452B2 (en) System and method of adaptive correlation threshold for bandlimited signals
KR20070047316A (en) A method and system for error differentiating in wireless networks
US8687743B2 (en) Methods and apparatus for detecting and decoding adaptive equalization training frames
US10805139B2 (en) Software-defined radio system and method for detecting packets
US6680984B1 (en) Data slicer with digitally-controlled reference
US20120027149A1 (en) Method and apparatus to detect a synchronization delimiter
JP3486186B1 (en) Received data playback device
US8385840B2 (en) Phone service processor
US7729406B2 (en) Detection of process state change

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG UZ VC VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP