System and methods of data transmission to devices

A method, system, and medium are provided for detecting data intended for transmission to a first device on a network. A slot for transmission of data is assigned to a second device based on the amount of data intended for transmission to the first device. This may allow modification or control of the amount of padding or extra information used in data transmissions.

SUMMARY

In one embodiment, the present invention is directed to one or more tangible computer-readable media having computer-useable instructions embodied thereon for performing a method of providing data to receiving devices. The method includes receiving a first amount of data intended for transmission to a first receiving device, determining that the first amount of data is below a threshold amount of data for transmission to the first receiving device, and delaying transmission of the first amount of data to the first receiving device until the earliest of two events: (1) receipt of an additional amount of data intended for transmission to the first receiving device that, when added to the first amount of data, creates a total amount of data that meets or exceeds the threshold amount of data; or (2) expiration of a predetermined time period.

In another embodiment, the present invention is directed to one or more tangible computer-readable media having computer-useable instructions embodied thereon for performing a method of data transmission, including receiving a first amount of data for transmission to a first receiving device and determining a first amount of data padding that would need to be added to the first amount of data such that a sum of the first amount of data and the data padding meets a threshold amount of data for transmission to the first receiving device. A first ratio comprising a ratio of the first amount of data padding to the first amount of data is calculated, and transmission of the first amount of data is delayed upon determining that the first ratio is equal to or greater than a predetermined transmission ratio.

In yet another embodiment, a first amount of data is received and a computing device is configured to compare the first amount of data to the threshold amount of data for transmission to the first receiving device. It is determined that the first amount of data is below a threshold amount of data for transmission to the first receiving device, and it is determined a first amount of data padding would need to be added to the first amount of data such that the sum of the data and data padding meets a threshold amount for transmission. A first ratio comprising a ratio of the first amount of data padding to the first amount of data is calculated, transmission of the first amount of data is delayed upon determining that the first ratio is equal to or greater than a predetermined transmission ratio.

DETAILED DESCRIPTION

The transmission of data packets over a network to a receiving device often includes transmitting data in packets defined by slots. In some instances, the amount of data to be transmitted over the network may be less than the amount of data that can comprise a packet of data. In other instances, a minimum size limit for a payload of information may be set such that the amount of data to be transmitted to a receiving device must be at least the minimum amount for transmission to occur. In either case, the data may be padded, for instance, with zeros or other placeholders, in order to reach an appropriate size for transmission before the data is transmitted to the receiving device. Such padding may increase the network traffic due to the extra information being transmitted, causing data transmission over the network to be less efficient. Ratios of data to padding may be used to determine to transmit data or to delay transmission of data.

With reference toFIG. 1, a schematic diagram depicting an exemplary network architecture suitable for use with embodiments of the present invention is shown and designated generally as reference numeral100. The network architecture includes, a network110, a first device120and a second device130, the first and second devices120,130being in communication with the network110. The network100may be, by way of example only, a radio access network (RAN). Examples of radio access networks include GSM (global system for mobile communications) radio access networks or UMTS (universal mobile telecommunications system) radio access networks. Under TIA standards such as IS-136 and IS-95, the present invention may operate with the air interface of networks. The network110may exist or communicate between a core network and the first and second receiving devices120,130.

An evolution-data optimized or evolution-data only (EVDO) network is one telecommunications standard that may be used for the transmission of data over a radio access network. EVDO networks may use multiplexing techniques, such as code division multiple access (CDMA) or time division multiple access (TDMA), to process network throughput. In other embodiments, the network110may be a network with slower or faster data transmission rates than EVDO networks. In yet other embodiments, the network110may comprise more than one network. Any and all such variations, and any combination thereof, are contemplated to be within the scope of embodiments of the present invention.

The network110is configured to transmit data, such as data amounts140,150and/or160, to the first and second receiving devices120,130. Data may be associated with a device by being intended for transmission to the device, or through other means, such as by tagging, identifying, requesting or subscribing to the information. Each of the first and second receiving devices120,130may be one or more types of client, handheld or stationary devices. Additionally, any user equipment, terminal equipment or mobile station may act as a receiving device120,130. In accordance with embodiments hereof, any type of information that is capable of being transmitted as packets of data may be transmitted over the network110, as more fully described below.

As previously stated, the transmission of data packets over a network (e.g., network110) to a receiving device (e.g., first receiving device120and/or second receiving device130) often includes transmitting data in packets defined by slots (not shown). A slot may be any defined interval of time, and a time slot defines a packet of data. For example, an EVDO network with a signaling rate of 2.45 Mbps creates a signal with every bit occupying a slot with a time of 1/2,544,000 seconds. Alternatively, an EVDO network with a signaling rate of 3.1 Mbps creates a signal with each bit occupying a slot with a time of 1/3,100,000 seconds. When data is transmitted over a network (e.g., network110), the amount of data may equal only a portion of a slot, an entire slot or more than one slot of time. Therefore, the data to be transmitted may consist of one packet of data, less than one packet of data, or more than one packet of data. The threshold amount of data for transmission to a device may be a slot or the amount of data defined by or equal to a slot, or the threshold may be a limit or amount of data used for transmission of data to devices.

Slots may be associated with a particular receiving device. In other words, the network110may assign certain slots to be used for transmitting data to certain receiving devices. In the embodiment illustrated inFIG. 1, the network110receives a first amount of data140and an additional amount of data150, both intended for transmission to the first receiving device120. The network110also receives an amount of data160intended for transmission to a second device130. Other amounts of data intended for transmission to the first or second receiving device may be received or monitored by the network110.

FIG. 2is a flow diagram illustrating a method of transmitting data in accordance with an embodiment of the present invention, designated generally as200. A first amount of data140intended for transmission to a first receiving device120is received at step205. At step210, it is determined that the first amount of data140is below a threshold amount of data for transmission of data to the first receiving device120. As shown at215, if it is determined a time period has expired, the data is transmitted (220). If a time period has not expired, additional data150is received at step230. Where the total amount of data meets or exceeds a threshold, data is transmitted to the first receiving device120(235). As shown at240, transmission is delayed where the total amount of data does not meet or exceed a threshold.

FIG. 3is a flow diagram illustrating a method of transmitting data to a receiving device in accordance with an embodiment of the present invention. The method300illustrated inFIG. 3begins at point A, corresponding to point A inFIG. 2. As shown inFIG. 3, a second amount of data150intended for transmission to the first receiving device is received (350). It is determined that a predetermined time period has not expired at360, and is determined that the sum of the first amount of data140and the second amount of data150meets or exceeds the threshold amount of data for transmission to the first receiving device at370. The first and second amounts of data140,150are transmitted to the first device120(380).

Turning now toFIG. 4, a flow diagram illustrating a method of transmitting data to a receiving device in accordance with an embodiment of the present invention is shown. The method of transmitting data inFIG. 4is indicated generally by400and begins at point A, corresponding to point A inFIG. 2. The embodiment shown inFIG. 4includes the steps of detecting the expiration of the predetermined time period (405), adding data padding to the first amount of data such that a sum of the first amount of data and the data padding meets the threshold amount of data (410), and transmitting the first amount of data and the data padding to the first receiving device120(420).

The flow diagram inFIG. 5, designated generally as500, illustrates a method of transmitting data in accordance with an embodiment of the present invention. The embodiment shown inFIG. 5includes receiving a first amount of data140intended for transmission to a first receiving device120at505. At step510, it is determined a first amount of data padding would need to be added to the first amount of data140such that a sum of the first amount of data140and the data padding meets a threshold amount of data for transmission to the first receiving device120. A first ratio comprising a ratio of the first amount of data padding to the first amount of data140is calculated (520). Upon determining that the first ratio is equal to or greater than a predetermined transmission ratio at step530, transmission of the first amount of data is delayed.

The predetermined time period, the threshold and/or the transmission ratio may be configured manually or automatically by software or hardware associated with the network110. For example, the type of receiving device120may affect the time period, threshold or transmission ratio, based on device identification information detected by the network110or made available by the device120, or publicly available information regarding devices. A plan, time period or location associated with the device120may affect the time period, threshold or transmission ratio used in some embodiments. In other cases, the time period, threshold or transmission ratio may be dynamic or responsive to one or more characteristics of the network110, such as the demand by devices and other network components, or other occurrences, such as an outage, virus, slow or weak area of the network110, monitoring, costs associated with certain activities or regulatory issues.

Embodiments include configuring the time period, threshold or transmission ratio to optimize transmission of data to one or more devices, or a dynamic time period, threshold or transmission ratio that includes optimizing transmission of data. Configuration or modification of these amounts or ratios may obtain an efficiency or throughput of data within a certain range. An algorithm or other formula may determine the amounts of data and space used in various embodiments of the invention. The users of the receiving devices120,130may not discern the delay to receive additional data. This delay for additional data may occur for a predetermined or maximum amount of time, or it may occur until a signal is received indicating the end of the transmission. In fact, overall, users may perceive an increase in network speed or data transmission due to the reduced padding of data.

FIG. 6is a flow diagram illustrating a method of transmitting data in accordance with an embodiment of the present invention. The method of transmitting data inFIG. 6is designated generally as600and begins at point C, corresponding to point C inFIG. 5. As shown at610, where it is determined a time period has expired, data is transmitted (615), and where it is determined a time period has not expired, data is received (620). At625, it is determined an amount of data meets a threshold and data is transmitted (615), or it is determined the data does not meet a threshold and additional data is received (630). In an embodiment, transmission is delayed until the earliest of (1) receipt of an additional amount of data150that, when added to the first amount of data140, creates a total amount of data that meets or exceeds the threshold amount of data at625, or (2) expiration of a predetermined time period at610.

In an embodiment, a computing device may be configured to compare the first amount of data140to the threshold amount of data. An embodiment may include determining that the first ratio is equal to or greater than a predetermined transmission ratio and receiving a second amount of data160for transmission to a second receiving device130. The second amount of data160may be transmitted to the second receiving device130based on a determination that the first ratio is equal to or greater than a predetermined transmission ratio.

FIG. 7is a flow diagram illustrating a method of transmitting data in accordance with an embodiment of the present invention, indicated generally as a method700. The method700shown inFIG. 7begins at point A, corresponding to point A inFIG. 2.FIG. 7shows monitoring a first total amount of data intended for transmission to the first receiving device at740, determining that the predetermined time period has not expired at750, and determining that the first total amount of data intended for transmission to the first receiving device120is lower than the threshold amount of data for transmission to the first receiving device at760. At step770, second total amount of data intended for transmission to a second receiving device130is received. If it is determined that the second total amount of data intended for transmission to the second receiving device130is greater than the first total amount of data intended for transmission to the first receiving device120at step780, the second total amount of data is transmitted to the second receiving device130(790).

Turning now toFIG. 8, a flow diagram illustrating a method of sending data in accordance with an embodiment of the present invention is shown. The present invention may be used when processing large amounts of data for receiving devices, such as during file transfer protocol. An embodiment shown inFIG. 8shows checking the payload size in step800. The payload size in the buffer may be the amount of data the network received for a certain receiving device, or it may be the remaining data that comprises less than one packet or slot200. At step810, it is determined whether the payload size is less than a minimum packet size. If the answer is no (meaning the payload size is greater than the minimum packet size), then the packet is transmitted (820).

If the payload size in step810is less than the minimum packet size, then it is determined whether the padding information bit ratio is greater than a configurable threshold (830). The decision in step830may be informed by the history of padding and information bits on the network or other networks (860), and the configurable threshold may be any amount set by a user, administrator, network, provider or component. If the padding information bit ratio is not greater than a configurable threshold, then the packet is transmitted (820).

If the padding information bit ratio is greater than a configurable threshold, then a delay is introduced at840. This delay may continue or repeat until it reaches a configurable threshold (see step850). In one embodiment, after the delay exceeds a threshold, the packet is transmitted (820). In other embodiments, as indicated above, the delay may occur for a predetermined or maximum amount of time, or it may occur until a signal is received indicating the end of the transmission.

The padding information bit ratio in step830may be the ratio between the padding, or extra, information added to data packets and the actual data. This ratio may be monitored and modified by affecting certain parameters or settings in the network110or devices. In other embodiments, as opposed to configuring a ratio of padding to data, the present invention may be used to avoid padding or to employ padding only when necessary. For example, in some cases, the delay to certain users may have no perceived effect, while padding data may slow network110traffic. In these cases, the collection of additional data for one device120may continue in order to eliminate padding as much as possible or completely. The second total amount of data may also be padded. In an embodiment, the first amount of data140is directed or pushed to the first receiving device120without modification. This is illustrated inFIG. 8and may be referred to as sending the digital packet over the physical layer.

In an embodiment, receiving a first amount of data140intended for transmission to a first receiving device120includes an indication (not shown) that the additional amount of data150intended for transmission to a first receiving device120exists. The predetermined time period may be adjusted based on an indication that the additional amount of data intended for transmission to a first receiving device exists. For example, the predetermined time period may be greater or extended based on additional data150expected to be received for transmission to the first device120.

A computing device may be configured to compare the first amount of data140to the threshold amount of data for transmission to the first receiving device120, and it may be determined that a first amount of data padding that would need to be added to the first amount of data140to meet a threshold amount of data for transmission to the first receiving device120. A first ratio comprising a ratio of the first amount of data padding to the first amount of data may be calculated, and transmission of the first amount of data140may be delayed upon determining that the first ratio is equal to or greater than a predetermined transmission ratio. The expiration of a predetermined time period may be determined, and data padding may be added to the first amount of data140such that a sum of the first amount of data and the data padding meets a threshold amount of data for transmission to the first device120, and the data may be transmitted to the first device120.

In some cases, it may be determined that the first ratio is equal to or greater than a predetermined transmission ratio. A second amount of data160intended for transmission to a second receiving device may be received, and a second amount of data padding that would need to be added to the second amount of data160such that a sum of the second amount of data160and the data padding meets a threshold amount of data for transmission to a second receiving device may be determined. A second ratio comprising a ratio of the second amount of data padding to the second amount of data may be calculated and compared to the first ratio. Transmission of the second amount of data160to the second receiving device may be based on the comparison of the first ratio to the second ratio. As discussed above, the receiving the first amount of data140intended for transmission to a first receiving device120may include receiving an indication that an additional amount of data intended for transmission to the first receiving device120exists.