This invention relates to the field of simulation systems, and in particular to a network simulator that includes models of wireless nodes or other forms of broadcast communications.
A network simulator is an analysis tool that provides information that is useful for network planning and evaluation. New or existing networks can be analyzed to determine network performance, identify communication bottlenecks, estimate throughput capacity, and so on. Proposed changes to networks can be evaluated via simulation before they are implemented, so that informed choices can be made among considered alternatives.
The simulation of a complex network consumes a substantial amount of computer resources. In a conventional network simulation, the transmission of a packet of information is simulated by the propagation of “events” from one node/element in the network to another. The generation of the packet at the source node is an event that is propagated to the first node along the communication path of this simulated packet. The arrival of this packet at the first node is an event that triggers the modeling of the propagation of this event through the first node, resulting in the generation of a subsequent transmission event from this node and a reception event at the next node along the communication path. This reception event triggers the modeling of the propagation of the event through the second node, and the subsequent transmission-reception events to the next node, and so on. To simulate actual network performance, the processing of an event at a node may trigger multiple events; for example, the simulation may include the estimation of an error likelihood at each node, and subsequent requests for retransmission from sending nodes based on the error likelihood.
The scheduling of each of these events and the modeling of the processing of each event through each node consumes computer time and memory, and if there are many simulated transmissions of packets and/or many nodes in each communication path, the simulation of a complex network can take hours, or days, to complete.
The simulation of a “broadcast” event, such as the transmission of a packet from a wireless device, or the transmission of a packet along a cable-TV network, further exacerbates the scheduling and modeling resource requirements of a network simulator. In a conventional point-to-point wired network, a transmission event from one node results in a single reception event at another node. In a wireless network, a transmission event from one node often results in the generation of a reception event at each of the nodes that are within range of transmitting node. In like manner, a transmission event from a cable-TV provider results in the generation of reception events at each receiving node.
The “data” layer 110 of
Because the characteristics of the reception at each node B, C, and D within the range of node A may differ, based on the characteristics of each transmit-receive pair A-B, A-C, A-D, each packet 201A that is transmitted from node A results in a replication of the packet at each of the receiving nodes, as illustrated by receptions 201B, 201C, and 201D. In like manner, each of the transmitted packets from each of the other nodes B, C, and D are replicated at each of the nodes within the range of each node. The creation of each modified copy of the packet as it is propagated from source to destination can consume substantial computer time and resources, particularly if the packet is transmitted along a link that includes a broadcast from one node to multiple other nodes.
An objective of this invention is to provide an efficient method of simulating traffic in a network simulator. A further objective of this invention is to substantially reduce the storage requirements associated with the simulation of broadcast traffic in a network simulator. A further object of this invention is to substantially reduce the number of redundant copies of information associated with traffic in a network simulator.
These objectives, and others, are achieved by providing a system and method that models a replicated packet using a header that contains unique information relative to the replicated packet, and a pointer to the information that is common to the original packet. At each level of the protocol hierarchy, and particularly at the transmission layer, the unique information is contained in the header information that is added at that level, while the common information is the information in the protocol stack created prior to the appending of this header information. Only network elements that traverse and modify the contents of the prior protocol headers are fully instantiated, and thus the resources required for replicating packets is substantially reduced.
The invention is explained in further detail, and by way of example, with reference to the accompanying drawings wherein:
Throughout the drawings, the same reference numerals indicate similar or corresponding features or functions. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.
The invention is presented using the paradigm of the simulation of a wireless network that includes the replication of packets that are broadcast transmitted from one node to multiple other nodes. This invention is particularly well suited for improving the efficiency of such a simulation, but is not limited to this application. One of ordinary skill in the art will recognize that the principles of this invention can be applied at all levels of the protocol hierarchy, but the greatest efficiency gains are realized at the lower levels of the hierarchy, and particularly at the transmission layer during the simulation of broadcast transmissions.
In a preferred embodiment of this invention, the data structure used to model packets in the simulated network substantially conforms to the hierarchical protocol data structure of the packets being modeled. That is, for example, a packet that is simulated as being transmitted between nodes at the physical/transmission layer includes application layer information, protocol layer information, and transmission layer information. In accordance with this invention, the header information at each layer in the simulated packets includes information that is relevant to the simulation of the packet at the given protocol layer. For example, based on the specified distances between nodes and other parameters provided in the simulation, including the other traffic being simulated, and other factors, the estimated signal to noise ratio of a received packet can be calculated, and this information can be included in the header information that is created when the particular reception packet 201B, 201C, 201D is created. This information is simulator-specific, in that such information does not exist in the packet header of actual packets that are transmitted between nodes. Other simulation-specific and link-specific information may also be contained in the headers that are created in the simulator of this invention.
Because the unique simulator-specific characteristics associated with the simulation of each packet are contained in the header information associated with the protocol layer that produces these characteristics, the information contained in the packets at higher levels of the protocol stack is common to each of the replications 201B, 201C, and 201D of the transmitted packet 201A. In accordance with this invention, as illustrated in
In
Because a single copy of the common information 310 is maintained, and each of the replicated packets merely contains a pointer 311 to this common information, substantial savings are achieved with respect to memory allocation. Further, because the replication of transmitted packets 301A only requires the creation of the header information 320B, 320C, 320D and the appending of the pointer 311, substantial processing gains are achieved, compared to copying the common information for each replicated packet. Other advantages of using a pointer 311 to common packet information 310 for replicating and propagating packets will be evident to one of ordinary skill in the art in view of this invention. It is noted that the advantages of this invention can be realized at each layer of the protocol hierarchy. That is, for example, with regard to
At 410, the body of the packet is identified and a reference pointer PTR to this body is created. The loop 420-470 is executed for each replication of the packet. In a simulation of a broadcast environment, the packet (301A) is replicated (301B, 301C, 301D) for each receiver (B, C, D) within range of a transmitting node (A), as discussed above. At 410, parameters specific to the transmission from node A and common to all of the receivers may also be determined, and stored in a transmission header (320A) associated with the transmitting node (A).
At 430, the parameters of the particular replication of the transmitted packet (301A) are determined, based on characteristics of the transmission path between the transmitting node (A) and the particular receiving node (B, C, or D).
At 440, the transmission layer header TL (320B, 320C, or 320D) is created to contain the parameters of the particular replication of the transmitted packet (301A). This header TL (320B, 320C, 320D) may include a copy of the transmission header (320A) associated with the transmitting node (A), and augmented to include the parameters specific to the particular transmit-receive pair (A-B, A-C, or A-D).
At 450, the pointer PTR to the body (311) is appended to the header TL (320B, 320C, or 320D), thereby forming the replication (301B, 301C, 301D) of the transmitted packet (301A) for each of the receivers (B, C, D). This replication is then scheduled to be received at the particular receiver (B, C, D) at a time that is determined based on the distance of each receiver from the transmitter, at 460.
By use of the flow diagram of
If the packet is not addressed to the receiving node, the processing of the packet typically involves nothing more than recognizing the address and discarding the packet. To do so, the processing routine does not need to access the body of the packet.
If the packet is addressed to the receiving node as the terminal destination, the processing of the packet will generally require access to the body of the packet. In such a case, the simulator accesses the body via the use of the referential pointer to the body, using techniques common to the art of computer programming. Upon completion of the processing, the packet is discarded.
To preserve memory space, a counter is preferably maintained for each body. At each replication of the packet that uses a pointer to this body, the count is incremented; at each discard of a packet that uses a pointer to the body, the count is decremented. When the count is zero, the referenced body can safely be deleted.
If the packet is addressed to the receiving node as an intermediate link to a terminal destination, one of two scenarios is possible. If the receiving node is merely acting as a “repeater”, it merely schedules a retransmission of the packet, using, for example, the flow diagram of
If, at 520, the body needs to be modified, due to the aforementioned protocol change, or other processing requirements, the body that is pointed to by the pointer PTR is instantiated as a new body, at 530. At 540, the pointer is modified to point at this new body, and this new body is modified as required.
The subsequent processing continues thereafter, using the packet that contains either the pointer to the received body (via the “NO” path from 520), or the pointer to the amended body (from 540).
Although the flow diagrams of
The event handler 610 simulates the occurrences of events. Generally, as discussed further below, events are scheduled to occur at specific simulation times. The event handler 610 scans the schedule of events to determine which events are scheduled to occur at the current simulation time, and provides each scheduled event to the appropriate element model 620 associated with the event. For example, if the scheduled event at the current simulation time is the arrival of a given packet at a particular node, the event handler 610 provides the given packet to the element model 620 of the particular node, and in so doing, activates the element model 620 to process the given packet. In a conventional software embodiment, for example, the event handler 610 may call a subroutine corresponding to the element model 620, with an identification of the packet and node as arguments.
Each element model 620 processes the given event, and, in most cases, will generate one or more subsequent events based on this processing. These subsequent events are provided to the event scheduler 630. The event scheduler 630 collects and organizes the appropriate information to facilitate the above described simulation of the event by the event handler 610 and element models 620, when the event is scheduled to occur.
As illustrated in
In the network simulator of this invention, the packet generator 624 is configured to provide multiple output events corresponding to the scheduled arrival of the broadcast packet at each receiving element. As in the conventional point-to-point simulator, this packet generator 624 may be contained within the model of each broadcast transmitter, or within a model of the medium between the broadcast transmitter and the multiple receivers.
In accordance with this invention, the packet generator 624 is configured to generate header information that is specific to each receiver of the broadcast transmission, and to append to this header information a pointer to the body of the packet that is common to all the receivers of the packet, using, for example, the flow diagram of
The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope. For example, the simulator 600 is presented above using an explicit event scheduler and an event handler. One of ordinary skill in the art will recognize that the scheduling and handling functions may be distributed throughout the simulator 600, and not necessarily embodied as discrete elements. For example, in an object-oriented embodiment of this invention, the element models 620 be objects that receive a parameter that specifies their next scheduled activation time, and are autonomously activated when the simulation time equals this scheduled activation time. These and other system configuration and optimization features will be evident to one of ordinary skill in the art in view of this disclosure, and are included within the scope of the following claims.
In interpreting these claims, it should be understood that:
This application claims the benefit of U.S. Provisional Patent Application 60/497,689, filed 25 Aug. 2003.
Number | Date | Country | |
---|---|---|---|
60497689 | Aug 2003 | US |