US20070291654A1 - Memory Access Optimization and Communications Statistics Computation - Google Patents
Memory Access Optimization and Communications Statistics Computation Download PDFInfo
- Publication number
- US20070291654A1 US20070291654A1 US11/424,832 US42483206A US2007291654A1 US 20070291654 A1 US20070291654 A1 US 20070291654A1 US 42483206 A US42483206 A US 42483206A US 2007291654 A1 US2007291654 A1 US 2007291654A1
- Authority
- US
- United States
- Prior art keywords
- network
- statistics
- data unit
- memory
- network traffic
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Definitions
- the invention relates to memory access, network communications, and network communications statistics computation.
- Networks such as the Internet carry a variety of data communicated using a variety of networking devices, including servers, routers, hubs, and switches; and network capable devices, including computers, personal digital assistants (PDAs), cell phones, telephones, and other devices.
- PDAs personal digital assistants
- the network including the networking devices, network media, network segments and network applications included therein, may be tested to ensure successful operation.
- Network capable devices, networking devices and network applications may be tested, for example, to ensure that they function as intended, comply with supported protocols, and can withstand anticipated traffic demands. Such testing may be performed on already deployed and not yet deployed networking devices, network capable devices, network segments and network applications.
- networks may be augmented with network analyzing devices, network conformance systems, network monitoring devices, and network traffic generators, all which are referred to herein as network testing systems.
- the network testing systems may allow for analyzing the performance of networks, network applications and network capable devices by capturing, modifying, analyzing and/or sending network communications.
- the network testing systems may be used to evaluate how well network capable devices handle data communication, including streaming media and voice communications.
- FIG. 1 is a block diagram of an environment in which memory access optimization and communications statistics computation may be implemented.
- FIG. 2A is a block diagram of a first network card.
- FIG. 2B is a block diagram of a second network card.
- FIG. 3 is a block diagram of a memory and the contents thereof.
- FIG. 4 is a flow chart of a method of communications statistics computation.
- FIG. 5 is a flow chart of a method of memory access optimization and communications statistics computation.
- FIG. 6 is a flow chart of a method of preparing communications statistics.
- FIG. 1 is a block diagram of an environment 100 in which memory access optimization and data communication statistics computation may be implemented.
- the environment 100 includes network testing system 110 coupled via a network card 120 to a network 140 over a communications medium 144 .
- the network testing system 110 may include or be one or more of a performance analyzer, a conformance validation system, a network analyzer, a packet blaster, a network management system, a combination of these, and/or others.
- the network testing system may be used to evaluate and/or measure characteristics and performance of a communication line or system, including the throughput of network traffic, the number of dropped packets, jitter, and many others. Such testing may be used to evaluate the Mean Opinion Score (MOS) of voice transmission over a network or portion thereof.
- MOS Mean Opinion Score
- the network testing system 110 may be used to evaluate the performance of servers; network capable devices such as, for example, computers, personal digital assistants (PDAs), cellular phones, analog telephones, digital telephones, and voice over Internet protocol (VOIP) telephones; networking devices such as, for example, routers, gateways, hubs, load balancers, universal threat management devices (UTMs), firewalls, load sharers, and others; as well as network applications and other software.
- network capable devices such as, for example, computers, personal digital assistants (PDAs), cellular phones, analog telephones, digital telephones, and voice over Internet protocol (VOIP) telephones
- networking devices such as, for example, routers, gateways, hubs, load balancers, universal threat management devices (UTMs), firewalls, load sharers, and others
- UPMs universal threat management devices
- the network testing system 110 may be in the form of a chassis or card rack, as shown in FIG. 1 , or may be an integrated unit. Alternatively, the network testing system may comprise a number of separate units such as two or more chassis cooperating to provide network analysis, network conformance testing, network capable device testing, networking device testing, network application testing, and other tasks.
- the chassis of the network testing system 110 may include one or more network cards 120 and a back plane 112 .
- the network cards 120 may be coupled with back plane 112 .
- One or more network cards 120 may be included in network testing system 110 .
- the network cards 120 may be permanently installed in the network testing system 110 , may be removable, or may be a combination thereof.
- the network testing system 110 and/or one or more of the network cards 120 may include an operating system such as, for example, versions of Linux, Unix and Microsoft Windows.
- Network card 120 may be coupled with network 140 via a communications medium 144 . Although only one connection over communications medium 144 is shown, each of the network cards 120 may be connected with network 140 over a communications medium. Although only one connection between network card 120 and network 140 over communications medium 144 is shown, the network card 120 may be have two or more connections with network 140 over a communications medium.
- the communications medium may be, for example, wire lines such as an Ethernet cable, fibre optic cable, and coaxial cable, and may be wireless.
- the network testing system 110 and the network cards 120 may support one or more well known higher level communications standards or protocols such as, for example, one or more versions of the User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Real-Time Transport Protocol (RTP), Internet Protocol (IP), Internet Control Message Protocol (ICMP), Internet Group Management Protocol (IGMP), Session Initiation Protocol (SIP), Hypertext Transfer Protocol (HTTP), address resolution protocol (ARP), reverse address resolution protocol (RARP), file transfer protocol (FTP), Simple Mail Transfer Protocol (SMTP); may support one or more well known lower level communications standards or protocols such as, for example, the 10 and/or 40 Gigabit Ethernet standards, the Fibre Channel standards, one or more varieties of the IEEE 802 Ethernet standards, Asynchronous Transfer Mode (ATM), X.25, Integrated Services Digital Network (ISDN), token ring, frame relay, Point to Point Protocol (PPP), Fiber Distributed Data Interface (FDDI), Universal Serial Bus (USB), IEEE 1394 (also known as i.link® and Firewire®); may support
- network card encompasses line cards, test cards, analysis cards, network line cards, load modules, interface cards, network interface cards, data interface cards, packet engine cards, service cards, smart cards, switch cards, relay access cards, CPU cards, port cards, and others.
- the network cards 120 may be referred to as blades, particularly when a processor is included on the network card.
- the network cards 120 may include one or more processors 124 , memory 126 , and one or more network communications units 128 .
- the network communications unit 128 may be implemented as one or more field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), programmable logic devices (PLD), programmable logic arrays (PLA), other kinds of devices, and combinations of these.
- the network communications unit 128 may support one or more communications protocols in hardware.
- the network communications unit 128 may include a network interface through which the network card 120 may transmit and/or receive communications over the network 140 .
- the network communications unit 128 may be a network interface card (NIC).
- the back plane 112 may serve as a bus or communications medium for the network cards 120 .
- the back plane 112 may also provide power to the network cards 120 .
- the network testing system 110 may have a computer 100 coupled thereto.
- the computer 100 may be local to or remote from the network testing system 110 .
- the network testing system 110 may include a CPU on a card, motherboard or backplane that allows the chassis to also serve as a computer workstation.
- the network testing system 110 may have coupled therewith a display 118 and user input devices such as a keyboard 114 and a mouse 116 , as well as other user input devices including, for example, pens and trackballs.
- the user input devices may be coupled to a network card, other card, motherboard, or backplane included in the chassis.
- the network testing system 110 may be implemented in a computer such as a personal computer, server, or workstation, as well as the chassis shown.
- the network testing system 110 may be used alone or in conjunction with one or more other network testing systems 110 .
- the network testing system 110 may be located physically adjacent to and/or remote to the devices 130 in the network 140 .
- the network testing system 110 may be used to test and evaluate the network 140 and/or portions thereof, devices 130 , applications or other software running on devices 130 , and/or services provided by network 140 and/or devices 130 .
- the network 140 may be a local area network (LAN), a wide area network (WAN), a storage area network (SAN), or a combination of these.
- the network 140 may be wired, wireless, or a combination of these.
- the network 140 may include or be the Internet.
- the network 140 may be public or private, may be a segregated test network, and may be a combination of these.
- the network 140 may be comprised of a single or numerous nodes providing numerous physical and logical paths for data units to travel.
- the network 140 may be a packet switched network, a data network, or a combination thereof.
- the network 140 may be the Internet.
- Communications on the network 140 may take various forms, including frames, cells, datagrams, packets, higher level logical groupings of data, or other units of information, all of which are referred to herein as data units.
- Those data units that are communicated over a network are referred to herein as network traffic.
- the network traffic may include data units that represent electronic mail messages, computer files, web pages, graphics, documents, audio and video files, streaming media such as music (audio) and video, telephone (voice) conversations, and others.
- the network traffic may also be referred to as communications and network communications.
- the devices 130 may be devices capable of communicating over the network 140 and/or listening to, injecting, delaying, dropping, and/or modifying network traffic on network 140 .
- the devices 130 may be network capable devices such as computer workstations, personal computers, servers, portable computers, set-top boxes, video game systems, personal video recorders, telephones (cellular, digital, VOIP), personal digital assistants (PDAs), computing tablets, and the like; peripheral devices such as printers, scanners, facsimile machines and the like; network capable storage devices including disk drives such as network attached storage (NAS) and SAN devices; network testing equipment such as analyzing devices, network conformance systems, emulation systems, network monitoring devices, and network traffic generators; and networking devices such as routers, relays, firewalls, hubs, UTMs, switches, bridges, traffic accelerators, and multiplexers.
- NAS network attached storage
- networking devices such as routers, relays, firewalls, hubs, UTMs, switches, bridges, traffic accelerators, and multiplexers.
- the devices 130 may include appliances such as refrigerators, washing machines, and the like as well as residential or commercial heating, ventilation, and air conditioning (HVAC) systems, alarm systems, and other devices or systems capable of communicating over a network.
- HVAC heating, ventilation, and air conditioning
- One or more of the devices 130 may be devices to be tested and may be referred to as devices under test.
- FIG. 2A is a block diagram of a first network card 200
- FIG. 2B is a block diagram of a second network card 204
- the network cards 200 and 204 may include hardware, software, firmware, and/or a combination thereof.
- the network cards 200 and 204 each may include may include a processor 210 , a network communications unit 220 , a backplane connector 202 , and a communications connector 240 .
- the processor 210 may be coupled with a memory unit 212 and the network communications unit 220 .
- the network card 204 may include a statistics engine 230 .
- the statistics engine 230 may be implemented on or as an FPGA, and may also be implemented on or as an ASIC, PLD or other hardware device.
- the statistics engine 230 may be coupled with the network communications unit 220 and the memory 232 , and the processor 210 may also be coupled with the memory 232 .
- the statistics engine 230 may also be coupled with or include a second memory and/or a cache memory, not shown in FIG. 2B .
- the network cards 200 and 204 may have two or more network communications units 220 and a corresponding number of communications connectors 240 .
- the network card 200 may also have two or more memory units 212 and/or two or more processors 210 included thereon.
- the network card 204 may have two or more statistics engines 230 include thereon.
- the network cards 200 and 204 may include an operating system or a real-time operating system.
- the memory unit 212 is coupled with both the processor 210 and the network communications unit 220 .
- the memory unit 232 is also coupled with the network communications unit 220 .
- the backplane connector 202 may allow the network cards 200 and 204 to be coupled with a network testing system such as networking testing system 110 .
- the processor 210 may be a multipurpose processor, such as, for example, a PowerPC processor available from IBM, Inc., and may be a specialized processor.
- the processor 210 may include an internal cache memory and an arithmetic logic unit or other logic unit.
- the processor 210 may be capable of executing instructions which may be located in a local memory, other storage medium, or other local or remote storage device.
- the memory 212 and 232 may be dynamic random access memory (DRAM).
- the memory 212 and 232 are each a 512 Mbyte DRAM having 2 Kbytes per row.
- An example embodiment of memory 212 and 232 is discussed in more detail below regarding FIG. 3 .
- the network cards 200 and 204 may include and/or have access to local and/or remote memory, storage media and storage devices. Instructions to be executed by the processor may be stored on and executed from a local or remote machine readable medium or storage device.
- a machine readable medium includes, for example, without limitation, magnetic media (e.g., hard disks, tape, floppy disks), optical media (e.g., CD, DVD), flash memory products (e.g., memory stick, compact flash and others), and volatile and non-volatile silicon memory products (e.g., random access memory (RAM), programmable read-only memory (PROM), electronically erasable programmable read-only memory (EEPROM), and others).
- a storage device is a device that allows for the reading from and/or writing to a machine readable medium. Storage devices include hard disk drives, DVD drives, flash memory devices, and others.
- the network communications unit 220 may include one or more circuits, chips, logic, firmware and/or instructions that allow for communication over a network according to the optimized data unit communications techniques described herein.
- the network communications unit 220 may be implemented as one or more FPGAs.
- the network communications unit 220 may also be implemented or included on one or more ASICs, silicon devices, integrated circuits, specialized processors such as a network processor, or other devices.
- the network communications unit 220 may be coupled with the communications connector 240 .
- the network communications unit 220 may be coupled with a communications medium 250 via the communications connector 240 .
- the communications medium 250 may be a wire such as Ethernet cabling, coaxial cable, fibre optic cable, and others, and may be wireless.
- Additional and fewer units, hardware and firmware may be included in the network cards 200 and 204 to achieve the techniques described herein.
- the methods described herein are achieved by software executing on processor 210 of network card 200 . In another embodiment, the methods described herein are achieved by executing code or instructions stored on or as statistics engine 230 of network card 204 .
- FIG. 3 is a block diagram of a memory 300 and the contents thereof.
- Memory 300 is an embodiment of the memory 126 , the memory 212 and the memory 232 of FIGS. 1 , 2 A and 2 B.
- the memory 300 may be a DRAM having a size of 512 Mbyte and having 2 Kbytes per row.
- the DRAM may be a dual in-line memory module (DIMM) or a small outline (SO) DIMM.
- DIMM dual in-line memory module
- SO small outline
- the data unit information stored may include: data unit size, data unit type, sequence number, flow number, socket, stream, port, protocol, send and/or receive timestamps, source address, destination address, error code (if any), payload type, and others
- the data unit information may be used to prepare and provide summaries or reports concerning the network traffic.
- the summaries and reports may include, for example, one or more of the following network traffic data: byte count, data unit count (for example, number of packets received and/or sent); minimum data unit latency; maximum data unit latency; average data unit latency; number of errors; kinds of errors; oldest, first or earliest timestamp; most recent, last or latest timestamp; and others.
- This network traffic data may be reported per device, per network segment, per stream, per sequence, per flow, per data unit type, and/or overall.
- versions of partial network traffic data may be stored iteratively in a round robin fashion in four banks of the memory 300 .
- Each version of the partial network traffic is different because it is based on different data unit information from different data units.
- four different versions of partial network traffic data for flow A is stored in row 0 , slot 0 of banks 1 , 2 , 3 and 4 .
- the four partial network traffic statistics data in each of banks zero through three must be added, analyzed or otherwise processed.
- the partial network traffic may be stored per flow, stream, source address, destination address, socket, network segment, device, etc.
- a version of the partial network traffic statistics for flow Q, stream Q, source address Q may be stored as shown in FIG. 3 in row 2 , slot 2 .
- each slot is a record that is 64 bytes of data. That is, each set of partial network traffic statistics may be 64 bytes.
- the size of the record in memory and the size of each set of the partial network traffic statistics, as well as the size of the full network traffic statistics may be 32, 64, 48, 128, 178, 256, etc. bytes. It is contemplated that the methods described herein may work with other numbers of memory banks, such as, for example, 8, 10, 12, 16 and others.
- FIG. 4 is a flow chart of a method of communications statistics computation.
- a network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method.
- An incoming data unit is received, as shown in block 410 .
- Information about the data unit may be placed in a queue for later or immediate processing, as shown in block 420 .
- Stored network traffic statistics are read or retrieved from memory, as shown in block 430 .
- Network traffic statistics may then be computed and/or updated based on the data units in the queue, as shown in block 440 .
- the network traffic statistics that are computed and/or updated may pertain to a particular flow of data units, all data units, and/or a particular class or type of data units.
- Some individual network traffic statistics may be computed/updated by, for example, simple adding, such as, for example, the total number of bytes received (sometimes referred to as byte count), the total number of data units received (sometimes referred to a packet count), and others.
- Other individual network traffic statistics may be computed/updated by performing some simple analysis, such as, for example, determining the earliest or latest timestamp which requires a simple comparison of the timestamp in the current data unit with the stored earliest/latest timestamp in the network traffic statistics.
- the computed and/or updated network traffic statistics are stored, such as by writing them to memory, as shown in block 450 .
- the updating and computing of the network traffic statistics may be delayed and may be inefficient due to memory access characteristics typically referred to as latency.
- memory latency causes a delay in the preparation of network traffic statistics due to the delay incurred in writing network traffic statistics to memory, as shown in block 450 .
- the delay is caused by memory writing overhead, namely the time and clock cycles it takes to write to and close the memory. What may occur is that incoming data units may be added to the queue at network speed, also known as, in one embodiment, wire line speed.
- versions of partial network statistics may be accessed (that is read and written) in a pipelined manner.
- partial network traffic statistics may be stored in memory 300 as described above regarding FIG. 3 so that the memory 300 may be accessed in a pipelined round robin manner as shown in and described regarding FIG. 5 .
- FIG. 5 is a flow chart of a method of memory access optimization and communications statistics computation.
- the communications statistics may also be referred to as network traffic statistics as described above.
- a network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method.
- This method may be implemented with a memory 300 like that shown in FIG. 3 and described above.
- a current memory bank is set to be the first memory bank of the memory, as shown in block 500 . This would be, for example, bank 0 shown in FIG. 3 .
- the flow of actions may continue based on whether a queue of incoming data unit information is empty, as shown in block 510 . If the queue of incoming data unit information is empty, after a short wait or delay, as shown in block 514 , the queue may be checked again, as shown in block 510 .
- Incoming data unit information may be read from the queue, as shown in block 512 .
- the current memory bank may be activated, as shown in block 520 .
- Partial network traffic statistics may be read from a memory location in the current memory bank, as shown in block 522 .
- a memory read includes memory bank activation so that blocks 520 and 522 may be combined, or block 520 may not be needed.
- the partial network traffic statistics may be computed and/or updated based on the data unit information, as shown in block 524 .
- the computed/updated partial network traffic statistics may be written or stored to the memory at a location in the current bank, as shown in block 526 .
- the memory bank may be closed, as shown in block 528 .
- a memory write includes memory bank closing, so that blocks 526 and 528 may be combined, or block 528 may not be needed.
- the flow of actions may continue based on whether the current memory bank is the last memory bank, as shown in block 530 .
- the current memory bank is the last memory bank, as shown in block 530 .
- the flow of actions may continue at block 500 .
- the flow of actions may continue at block 532 , where the current memory bank may be set to be the next memory bank.
- the flow of actions may continue at block 512 .
- reads from and writes to each memory bank may proceed in sequence. However, each of the steps need not be completed before for the next step proceeds. Importantly, the memory writes need not be completed on the current memory bank before memory reads for the next memory bank are processed. As such, processing of data unit information as shown in blocks 512 , 520 , 522 , and 524 for a current memory bank may proceed concurrently with the writing of the updated partial network traffic statistics based on the previous data unit information and the closing of the previous memory bank as shown in blocks 526 and 528 .
- FIG. 6 is a flow chart of a method of preparing communications statistics.
- the communications statistics may also be referred to as network traffic statistics as described above.
- a network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method.
- This method may be implemented with a memory 300 like that shown in FIG. 3 and described above.
- a request for full network statistics may be received, as shown in block 600 .
- the full network traffic statistics may pertain to a particular flow or stream of data units, data units having a particular source address, data units having a particular destination address, all data units, and/or a particular class or type of data units.
- the requester may be a software program running on a network testing system.
- the request may be user initiated or automatically generated.
- An automatically generated request may be made every 1, 5, 10, 12, 20, 30, 44, etc. seconds, every 1, 2, 6, 8, 12, etc. minutes, every hour, every few hours, etc.
- An automatically generated request may be user configurable or may be system defined.
- An automatically generated request may be achieved using a daemon or other software process, utility, construct, etc.
- a current memory bank may be set to be the first memory bank of the memory, as shown in block 602 . This would be, for example, bank 0 shown in FIG. 3 .
- the current memory bank may be activated, as shown in block 610 .
- Partial network traffic statistics may be read from the current memory bank, as shown in block 612 .
- a memory read includes memory bank activation so that blocks 610 and 612 may be combined, or block 610 may not be needed.
- Full network traffic statistics may be updated and/or computed based on the partial network traffic statistics read from the current memory bank, as shown in block 614 .
- four sets of partial network statistics are computed by adding or otherwise processing each version of the four sets of partial network statistics.
- some individual network traffic statistics may be computed/updated by, for example, simple adding, such as, for example, the total number of bytes received (sometimes referred to as byte count), the total number of data units received (sometimes referred to a packet count), and others.
- Other individual network traffic statistics may be computed/updated by performing simple analysis, such as, for example, determining the earliest or latest timestamp which requires a simple comparison of the timestamp in the partial network statistics with the earliest/latest timestamp.
- the current memory bank may be closed, as shown in block 616 .
- a memory write includes memory bank closing, so that blocks 614 and 616 may be combined, or block 616 may not be needed.
- the flow of actions may continue based on whether the current memory bank is the last memory bank, as shown in block 620 .
- the last memory bank check may be a check to learn whether the current memory bank is the fourth of four memory banks, such as when the memory 300 from FIG. 3 is used.
- the flow of actions may continue at block 622 , where the current memory is set to be the next memory bank.
- the flow of actions may continue at block 610 as described above.
- the flow of actions may continue at block 624 , where full network statistics are provided to the requester.
- a “set” of items may include one or more of such items.
Abstract
Description
- A portion of the disclosure of this patent document contains material which is subject to copyright protection. This patent document may show and/or describe matter which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by any one of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever.
- 1. Field of the Invention
- The invention relates to memory access, network communications, and network communications statistics computation.
- 2. Related Art
- Networks such as the Internet carry a variety of data communicated using a variety of networking devices, including servers, routers, hubs, and switches; and network capable devices, including computers, personal digital assistants (PDAs), cell phones, telephones, and other devices. Before placing a network into use, the network, including the networking devices, network media, network segments and network applications included therein, may be tested to ensure successful operation. Network capable devices, networking devices and network applications may be tested, for example, to ensure that they function as intended, comply with supported protocols, and can withstand anticipated traffic demands. Such testing may be performed on already deployed and not yet deployed networking devices, network capable devices, network segments and network applications.
- To assist with the construction, installation and maintenance of networks, network applications and network capable devices, networks may be augmented with network analyzing devices, network conformance systems, network monitoring devices, and network traffic generators, all which are referred to herein as network testing systems. The network testing systems may allow for analyzing the performance of networks, network applications and network capable devices by capturing, modifying, analyzing and/or sending network communications. The network testing systems may be used to evaluate how well network capable devices handle data communication, including streaming media and voice communications.
-
FIG. 1 is a block diagram of an environment in which memory access optimization and communications statistics computation may be implemented. -
FIG. 2A is a block diagram of a first network card. -
FIG. 2B is a block diagram of a second network card. -
FIG. 3 is a block diagram of a memory and the contents thereof. -
FIG. 4 is a flow chart of a method of communications statistics computation. -
FIG. 5 is a flow chart of a method of memory access optimization and communications statistics computation. -
FIG. 6 is a flow chart of a method of preparing communications statistics. - Throughout this description, the embodiments and examples shown should be considered as exemplars, rather than limitations on the apparatus and methods described.
- A System
-
FIG. 1 is a block diagram of anenvironment 100 in which memory access optimization and data communication statistics computation may be implemented. Theenvironment 100 includesnetwork testing system 110 coupled via anetwork card 120 to anetwork 140 over acommunications medium 144. Thenetwork testing system 110 may include or be one or more of a performance analyzer, a conformance validation system, a network analyzer, a packet blaster, a network management system, a combination of these, and/or others. The network testing system may be used to evaluate and/or measure characteristics and performance of a communication line or system, including the throughput of network traffic, the number of dropped packets, jitter, and many others. Such testing may be used to evaluate the Mean Opinion Score (MOS) of voice transmission over a network or portion thereof. Thenetwork testing system 110 may be used to evaluate the performance of servers; network capable devices such as, for example, computers, personal digital assistants (PDAs), cellular phones, analog telephones, digital telephones, and voice over Internet protocol (VOIP) telephones; networking devices such as, for example, routers, gateways, hubs, load balancers, universal threat management devices (UTMs), firewalls, load sharers, and others; as well as network applications and other software. - The
network testing system 110 may be in the form of a chassis or card rack, as shown inFIG. 1 , or may be an integrated unit. Alternatively, the network testing system may comprise a number of separate units such as two or more chassis cooperating to provide network analysis, network conformance testing, network capable device testing, networking device testing, network application testing, and other tasks. The chassis of thenetwork testing system 110 may include one ormore network cards 120 and aback plane 112. Thenetwork cards 120 may be coupled withback plane 112. One ormore network cards 120 may be included innetwork testing system 110. Thenetwork cards 120 may be permanently installed in thenetwork testing system 110, may be removable, or may be a combination thereof. - The
network testing system 110 and/or one or more of thenetwork cards 120 may include an operating system such as, for example, versions of Linux, Unix and Microsoft Windows. -
Network card 120 may be coupled withnetwork 140 via acommunications medium 144. Although only one connection overcommunications medium 144 is shown, each of thenetwork cards 120 may be connected withnetwork 140 over a communications medium. Although only one connection betweennetwork card 120 andnetwork 140 overcommunications medium 144 is shown, thenetwork card 120 may be have two or more connections withnetwork 140 over a communications medium. The communications medium may be, for example, wire lines such as an Ethernet cable, fibre optic cable, and coaxial cable, and may be wireless. - The
network testing system 110 and thenetwork cards 120 may support one or more well known higher level communications standards or protocols such as, for example, one or more versions of the User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Real-Time Transport Protocol (RTP), Internet Protocol (IP), Internet Control Message Protocol (ICMP), Internet Group Management Protocol (IGMP), Session Initiation Protocol (SIP), Hypertext Transfer Protocol (HTTP), address resolution protocol (ARP), reverse address resolution protocol (RARP), file transfer protocol (FTP), Simple Mail Transfer Protocol (SMTP); may support one or more well known lower level communications standards or protocols such as, for example, the 10 and/or 40 Gigabit Ethernet standards, the Fibre Channel standards, one or more varieties of the IEEE 802 Ethernet standards, Asynchronous Transfer Mode (ATM), X.25, Integrated Services Digital Network (ISDN), token ring, frame relay, Point to Point Protocol (PPP), Fiber Distributed Data Interface (FDDI), Universal Serial Bus (USB), IEEE 1394 (also known as i.link® and Firewire®); may support proprietary protocols; and may support other protocols. Eachnetwork card 120 may support a single communications protocol, may support a number of related protocols, or may support a number or combination of unrelated protocols. - The term “network card” as used herein encompasses line cards, test cards, analysis cards, network line cards, load modules, interface cards, network interface cards, data interface cards, packet engine cards, service cards, smart cards, switch cards, relay access cards, CPU cards, port cards, and others. The
network cards 120 may be referred to as blades, particularly when a processor is included on the network card. Thenetwork cards 120 may include one ormore processors 124, memory 126, and one or more network communications units 128. - The network communications unit 128 may be implemented as one or more field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), programmable logic devices (PLD), programmable logic arrays (PLA), other kinds of devices, and combinations of these. The network communications unit 128 may support one or more communications protocols in hardware. The network communications unit 128 may include a network interface through which the
network card 120 may transmit and/or receive communications over thenetwork 140. The network communications unit 128 may be a network interface card (NIC). - The
back plane 112 may serve as a bus or communications medium for thenetwork cards 120. Theback plane 112 may also provide power to thenetwork cards 120. - The
network testing system 110 may have acomputer 100 coupled thereto. Thecomputer 100 may be local to or remote from thenetwork testing system 110. In another embodiment, thenetwork testing system 110 may include a CPU on a card, motherboard or backplane that allows the chassis to also serve as a computer workstation. Thenetwork testing system 110 may have coupled therewith adisplay 118 and user input devices such as a keyboard 114 and amouse 116, as well as other user input devices including, for example, pens and trackballs. The user input devices may be coupled to a network card, other card, motherboard, or backplane included in the chassis. - The
network testing system 110 may be implemented in a computer such as a personal computer, server, or workstation, as well as the chassis shown. Thenetwork testing system 110 may be used alone or in conjunction with one or more othernetwork testing systems 110. Thenetwork testing system 110 may be located physically adjacent to and/or remote to thedevices 130 in thenetwork 140. Thenetwork testing system 110 may be used to test and evaluate thenetwork 140 and/or portions thereof,devices 130, applications or other software running ondevices 130, and/or services provided bynetwork 140 and/ordevices 130. - The
network 140 may be a local area network (LAN), a wide area network (WAN), a storage area network (SAN), or a combination of these. Thenetwork 140 may be wired, wireless, or a combination of these. Thenetwork 140 may include or be the Internet. Thenetwork 140 may be public or private, may be a segregated test network, and may be a combination of these. Thenetwork 140 may be comprised of a single or numerous nodes providing numerous physical and logical paths for data units to travel. Thenetwork 140 may be a packet switched network, a data network, or a combination thereof. Thenetwork 140 may be the Internet. - Communications on the
network 140 may take various forms, including frames, cells, datagrams, packets, higher level logical groupings of data, or other units of information, all of which are referred to herein as data units. Those data units that are communicated over a network are referred to herein as network traffic. The network traffic may include data units that represent electronic mail messages, computer files, web pages, graphics, documents, audio and video files, streaming media such as music (audio) and video, telephone (voice) conversations, and others. The network traffic may also be referred to as communications and network communications. - The
devices 130 may be devices capable of communicating over thenetwork 140 and/or listening to, injecting, delaying, dropping, and/or modifying network traffic onnetwork 140. Thedevices 130 may be network capable devices such as computer workstations, personal computers, servers, portable computers, set-top boxes, video game systems, personal video recorders, telephones (cellular, digital, VOIP), personal digital assistants (PDAs), computing tablets, and the like; peripheral devices such as printers, scanners, facsimile machines and the like; network capable storage devices including disk drives such as network attached storage (NAS) and SAN devices; network testing equipment such as analyzing devices, network conformance systems, emulation systems, network monitoring devices, and network traffic generators; and networking devices such as routers, relays, firewalls, hubs, UTMs, switches, bridges, traffic accelerators, and multiplexers. In addition, thedevices 130 may include appliances such as refrigerators, washing machines, and the like as well as residential or commercial heating, ventilation, and air conditioning (HVAC) systems, alarm systems, and other devices or systems capable of communicating over a network. One or more of thedevices 130 may be devices to be tested and may be referred to as devices under test. -
FIG. 2A is a block diagram of afirst network card 200, andFIG. 2B is a block diagram of asecond network card 204. Thenetwork cards network cards processor 210, anetwork communications unit 220, abackplane connector 202, and acommunications connector 240. In thenetwork card 200, theprocessor 210 may be coupled with amemory unit 212 and thenetwork communications unit 220. Thenetwork card 204 may include astatistics engine 230. Thestatistics engine 230 may be implemented on or as an FPGA, and may also be implemented on or as an ASIC, PLD or other hardware device. Thestatistics engine 230 may be coupled with thenetwork communications unit 220 and thememory 232, and theprocessor 210 may also be coupled with thememory 232. Thestatistics engine 230 may also be coupled with or include a second memory and/or a cache memory, not shown inFIG. 2B . - The
network cards network communications units 220 and a corresponding number ofcommunications connectors 240. Thenetwork card 200 may also have two ormore memory units 212 and/or two ormore processors 210 included thereon. Thenetwork card 204 may have two ormore statistics engines 230 include thereon. Thenetwork cards network card 200, thememory unit 212 is coupled with both theprocessor 210 and thenetwork communications unit 220. In one embodiment ofnetwork card 204, thememory unit 232 is also coupled with thenetwork communications unit 220. Thebackplane connector 202 may allow thenetwork cards networking testing system 110. - In
network card 200, theprocessor 210 may be a multipurpose processor, such as, for example, a PowerPC processor available from IBM, Inc., and may be a specialized processor. Theprocessor 210 may include an internal cache memory and an arithmetic logic unit or other logic unit. Theprocessor 210 may be capable of executing instructions which may be located in a local memory, other storage medium, or other local or remote storage device. - The
memory memory memory FIG. 3 . - The
network cards - The
network communications unit 220 may include one or more circuits, chips, logic, firmware and/or instructions that allow for communication over a network according to the optimized data unit communications techniques described herein. Thenetwork communications unit 220 may be implemented as one or more FPGAs. Thenetwork communications unit 220 may also be implemented or included on one or more ASICs, silicon devices, integrated circuits, specialized processors such as a network processor, or other devices. Thenetwork communications unit 220 may be coupled with thecommunications connector 240. - The
network communications unit 220 may be coupled with acommunications medium 250 via thecommunications connector 240. Thecommunications medium 250 may be a wire such as Ethernet cabling, coaxial cable, fibre optic cable, and others, and may be wireless. - Additional and fewer units, hardware and firmware may be included in the
network cards - In one embodiment, the methods described herein are achieved by software executing on
processor 210 ofnetwork card 200. In another embodiment, the methods described herein are achieved by executing code or instructions stored on or asstatistics engine 230 ofnetwork card 204. -
FIG. 3 is a block diagram of amemory 300 and the contents thereof.Memory 300 is an embodiment of the memory 126, thememory 212 and thememory 232 ofFIGS. 1 , 2A and 2B. Thememory 300 may be a DRAM having a size of 512 Mbyte and having 2 Kbytes per row. The DRAM may be a dual in-line memory module (DIMM) or a small outline (SO) DIMM. When network testing systems acquire, prepare and report summaries of information about network traffic, various data about the network traffic may be maintained. When data units are received and/or sent, information about the data units may be stored in a queue. This information is referred to herein as data unit information. The data unit information stored may include: data unit size, data unit type, sequence number, flow number, socket, stream, port, protocol, send and/or receive timestamps, source address, destination address, error code (if any), payload type, and others. - The data unit information may be used to prepare and provide summaries or reports concerning the network traffic. The summaries and reports may include, for example, one or more of the following network traffic data: byte count, data unit count (for example, number of packets received and/or sent); minimum data unit latency; maximum data unit latency; average data unit latency; number of errors; kinds of errors; oldest, first or earliest timestamp; most recent, last or latest timestamp; and others. This network traffic data may be reported per device, per network segment, per stream, per sequence, per flow, per data unit type, and/or overall.
- To improve the access to network traffic data for use in network traffic summaries and reports, and/or to provide near real-time network traffic summaries or reports, versions of partial network traffic data may be stored iteratively in a round robin fashion in four banks of the
memory 300. Each version of the partial network traffic is different because it is based on different data unit information from different data units. In the example shown inFIG. 3 , four different versions of partial network traffic data for flow A is stored inrow 0,slot 0 ofbanks FIG. 3 inrow 2,slot 2. In one embodiment each slot is a record that is 64 bytes of data. That is, each set of partial network traffic statistics may be 64 bytes. In various embodiments, the size of the record in memory and the size of each set of the partial network traffic statistics, as well as the size of the full network traffic statistics, may be 32, 64, 48, 128, 178, 256, etc. bytes. It is contemplated that the methods described herein may work with other numbers of memory banks, such as, for example, 8, 10, 12, 16 and others. - Methods
-
FIG. 4 is a flow chart of a method of communications statistics computation. A network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method. An incoming data unit is received, as shown inblock 410. Information about the data unit may be placed in a queue for later or immediate processing, as shown inblock 420. Stored network traffic statistics are read or retrieved from memory, as shown inblock 430. Network traffic statistics may then be computed and/or updated based on the data units in the queue, as shown inblock 440. The network traffic statistics that are computed and/or updated may pertain to a particular flow of data units, all data units, and/or a particular class or type of data units. Some individual network traffic statistics may be computed/updated by, for example, simple adding, such as, for example, the total number of bytes received (sometimes referred to as byte count), the total number of data units received (sometimes referred to a packet count), and others. Other individual network traffic statistics may be computed/updated by performing some simple analysis, such as, for example, determining the earliest or latest timestamp which requires a simple comparison of the timestamp in the current data unit with the stored earliest/latest timestamp in the network traffic statistics. The computed and/or updated network traffic statistics are stored, such as by writing them to memory, as shown inblock 450. - However, when performing the method described regarding
FIG. 4 , the updating and computing of the network traffic statistics may be delayed and may be inefficient due to memory access characteristics typically referred to as latency. When the actions described inFIG. 4 are performed in order, memory latency causes a delay in the preparation of network traffic statistics due to the delay incurred in writing network traffic statistics to memory, as shown inblock 450. The delay is caused by memory writing overhead, namely the time and clock cycles it takes to write to and close the memory. What may occur is that incoming data units may be added to the queue at network speed, also known as, in one embodiment, wire line speed. Even when the computation of network traffic statistics is very fast and efficient (that is, taking a limited amount of time and computation cycles), before the network traffic statistics are updated based on the next data unit, the currently processed network traffic statistics are stored to memory. As such, the computing of updated network traffic statistics for the next data unit must wait until the network traffic statistics based on the current data unit are stored. This delay is caused by memory latency. As such, there is a delay in preparing and reporting network traffic statistics caused memory access latency, and, in particular, overhead in the form of the time and clock cycles it takes to close the memory. - To alleviate or reduce the impact of the latency inherent in writing to memory, and in particular writing to DRAM, versions of partial network statistics may be accessed (that is read and written) in a pipelined manner. To reduce or eliminate the impact of the amount of time and clock cycles it takes to open and close a bank of memory, partial network traffic statistics may be stored in
memory 300 as described above regardingFIG. 3 so that thememory 300 may be accessed in a pipelined round robin manner as shown in and described regardingFIG. 5 . -
FIG. 5 is a flow chart of a method of memory access optimization and communications statistics computation. The communications statistics may also be referred to as network traffic statistics as described above. A network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method. This method may be implemented with amemory 300 like that shown inFIG. 3 and described above. A current memory bank is set to be the first memory bank of the memory, as shown inblock 500. This would be, for example,bank 0 shown inFIG. 3 . The flow of actions may continue based on whether a queue of incoming data unit information is empty, as shown inblock 510. If the queue of incoming data unit information is empty, after a short wait or delay, as shown inblock 514, the queue may be checked again, as shown inblock 510. - If the queue of incoming data unit information is not empty, as shown in
block 510, the flow of actions may continue atblock 512. Incoming data unit information may be read from the queue, as shown inblock 512. The current memory bank may be activated, as shown inblock 520. Partial network traffic statistics may be read from a memory location in the current memory bank, as shown inblock 522. In one embodiment, a memory read includes memory bank activation so thatblocks block 524. The computed/updated partial network traffic statistics may be written or stored to the memory at a location in the current bank, as shown inblock 526. The memory bank may be closed, as shown inblock 528. In one embodiment, a memory write includes memory bank closing, so thatblocks - The flow of actions may continue based on whether the current memory bank is the last memory bank, as shown in
block 530. In one embodiment, there are four memory banks andbank 3 is the last memory bank, as shown inmemory 300 ofFIG. 3 . When the current memory bank is the last memory bank, the flow of actions may continue atblock 500. - When the current memory bank is not the last memory bank, the flow of actions may continue at
block 532, where the current memory bank may be set to be the next memory bank. The flow of actions may continue atblock 512. - As shown in
FIG. 5 , reads from and writes to each memory bank may proceed in sequence. However, each of the steps need not be completed before for the next step proceeds. Importantly, the memory writes need not be completed on the current memory bank before memory reads for the next memory bank are processed. As such, processing of data unit information as shown inblocks blocks -
FIG. 6 is a flow chart of a method of preparing communications statistics. The communications statistics may also be referred to as network traffic statistics as described above. A network card, the statistics engine running in an FPGA or other PLD included in a network card, or software running on a processor or in computing device may perform this method. This method may be implemented with amemory 300 like that shown inFIG. 3 and described above. - A request for full network statistics may be received, as shown in
block 600. The full network traffic statistics may pertain to a particular flow or stream of data units, data units having a particular source address, data units having a particular destination address, all data units, and/or a particular class or type of data units. The requester may be a software program running on a network testing system. The request may be user initiated or automatically generated. An automatically generated request may be made every 1, 5, 10, 12, 20, 30, 44, etc. seconds, every 1, 2, 6, 8, 12, etc. minutes, every hour, every few hours, etc. An automatically generated request may be user configurable or may be system defined. An automatically generated request may be achieved using a daemon or other software process, utility, construct, etc. - A current memory bank may be set to be the first memory bank of the memory, as shown in
block 602. This would be, for example,bank 0 shown inFIG. 3 . The current memory bank may be activated, as shown inblock 610. Partial network traffic statistics may be read from the current memory bank, as shown inblock 612. In one embodiment, a memory read includes memory bank activation so thatblocks - Full network traffic statistics may be updated and/or computed based on the partial network traffic statistics read from the current memory bank, as shown in
block 614. In one embodiment, according to the example shown inFIG. 3 , when the are four memory banks, four sets of partial network statistics are computed by adding or otherwise processing each version of the four sets of partial network statistics. To prepare the full network traffic statistics, some individual network traffic statistics may be computed/updated by, for example, simple adding, such as, for example, the total number of bytes received (sometimes referred to as byte count), the total number of data units received (sometimes referred to a packet count), and others. Other individual network traffic statistics may be computed/updated by performing simple analysis, such as, for example, determining the earliest or latest timestamp which requires a simple comparison of the timestamp in the partial network statistics with the earliest/latest timestamp. The current memory bank may be closed, as shown inblock 616. In one embodiment, a memory write includes memory bank closing, so thatblocks - The flow of actions may continue based on whether the current memory bank is the last memory bank, as shown in
block 620. In one embodiment, the last memory bank check may be a check to learn whether the current memory bank is the fourth of four memory banks, such as when thememory 300 fromFIG. 3 is used. When the current memory bank is not the last memory bank, the flow of actions may continue atblock 622, where the current memory is set to be the next memory bank. The flow of actions may continue atblock 610 as described above. When the current memory bank is the last memory bank, the flow of actions may continue atblock 624, where full network statistics are provided to the requester. - With regard to
FIGS. 4 , 5 and 6, additional and fewer steps may be taken, and the steps as shown may be combined or further refined to achieve the methods described herein. - Closing Comments
- As used herein, “plurality” means two or more.
- As used herein, a “set” of items may include one or more of such items.
- As used herein, whether in the written description or the claims, the terms “comprising”, “including”, “carrying”, “having”, “containing”, “involving”, and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of”, respectively, are closed or semi-closed transitional phrases with respect to claims.
- Use of ordinal terms such as “first”, “second”, “third”, etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
- As used herein, “and/or” means that the listed items are alternatives, but the alternatives also include any combination of the listed items.
- Although exemplary embodiments have been shown and described, it will be apparent to those having ordinary skill in the art that a number of changes, modifications, or alterations as described herein may be made. All such changes, modifications and alterations should therefore be seen as within the scope of below claims.
Claims (16)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/424,832 US7826377B2 (en) | 2006-06-16 | 2006-06-16 | Memory access optimization and communications statistics computation |
US12/267,364 US7821962B2 (en) | 2006-06-16 | 2008-11-07 | Memory access optimization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/424,832 US7826377B2 (en) | 2006-06-16 | 2006-06-16 | Memory access optimization and communications statistics computation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/267,364 Continuation-In-Part US7821962B2 (en) | 2006-06-16 | 2008-11-07 | Memory access optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070291654A1 true US20070291654A1 (en) | 2007-12-20 |
US7826377B2 US7826377B2 (en) | 2010-11-02 |
Family
ID=38861430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/424,832 Active 2029-05-24 US7826377B2 (en) | 2006-06-16 | 2006-06-16 | Memory access optimization and communications statistics computation |
Country Status (1)
Country | Link |
---|---|
US (1) | US7826377B2 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060165076A1 (en) * | 2005-01-21 | 2006-07-27 | Bryan Rittmeyer | Data communication optimization |
US20080144519A1 (en) * | 2006-12-18 | 2008-06-19 | Verizon Services Organization Inc. | Content processing device monitoring |
US20090059808A1 (en) * | 2006-06-16 | 2009-03-05 | Gerald Pepper | Memory Access Optimization |
US20090213869A1 (en) * | 2008-02-26 | 2009-08-27 | Saravanakumar Rajendran | Blade switch |
US20090310491A1 (en) * | 2008-06-16 | 2009-12-17 | Errol Ginsberg | Distributed Flow Analysis |
EP2239888A1 (en) | 2009-04-08 | 2010-10-13 | Ixia | Traffic receiver using parallel capture engines |
US20110013519A1 (en) * | 2009-07-14 | 2011-01-20 | Chang Joseph Y | Parallel Packet Processor with Session Active Checker |
US20110069620A1 (en) * | 2009-09-22 | 2011-03-24 | Noah Gintis | Misdirected Packet Detection Apparatus and Method |
CN102033832A (en) * | 2010-12-02 | 2011-04-27 | 杭州国芯科技股份有限公司 | Access control method of synchronous dynamic memory |
US20110182191A1 (en) * | 2010-01-25 | 2011-07-28 | Dean Jackson | Testing Network Equipment |
US20110243029A1 (en) * | 2010-03-30 | 2011-10-06 | Futurewei Technologies, Inc. | Method For Measuring Throughput For a Packet Connection |
US20110295890A1 (en) * | 2010-05-28 | 2011-12-01 | Marc Evens Gracieux | Apparatuses, Methods and Systems for a Real-Time Multi-Hop Route Reporter |
US20120246307A1 (en) * | 2006-08-08 | 2012-09-27 | Opnet Technologies, Inc. | Analysis of activity of devices in a network that employ translated network addresses |
US8310942B2 (en) | 2010-08-27 | 2012-11-13 | Ixia | Flow statistics aggregation |
US8654643B2 (en) | 2011-07-27 | 2014-02-18 | Ixia | Wide field indexing for packet tracking |
US20140164409A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, L.P. | Generating And Using Temporal Data Partition Revisions |
US9094336B2 (en) | 2013-03-15 | 2015-07-28 | Ixia | Methods, systems, and computer readable media for assisting with the debugging of conditions associated with the processing of test packets by a device under test |
US9172647B2 (en) | 2013-04-25 | 2015-10-27 | Ixia | Distributed network test system |
US9264340B2 (en) | 2013-03-15 | 2016-02-16 | Ixia | Methods, systems, and computer readable media for misdirected packet drill down and negative packet capture at a network test device |
US10178015B2 (en) | 2016-03-21 | 2019-01-08 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for testing network equipment devices using connectionless protocols |
CN109245967A (en) * | 2018-11-09 | 2019-01-18 | 深圳互联先锋科技有限公司 | A kind of more network interface card auto-polymerizations and monitoring alarm method and system |
US10193773B2 (en) | 2016-11-09 | 2019-01-29 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for distributed network packet statistics collection in a test environment |
CN109309591A (en) * | 2018-10-31 | 2019-02-05 | 掌阅科技股份有限公司 | Data on flows statistical method, electronic equipment and storage medium |
CN111447692A (en) * | 2019-01-16 | 2020-07-24 | 成都鼎桥通信技术有限公司 | Call method and device for multi-system terminal, electronic equipment and storage medium |
US10764148B2 (en) | 2017-11-29 | 2020-09-01 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network traffic statistics collection |
US11470017B2 (en) * | 2019-07-30 | 2022-10-11 | At&T Intellectual Property I, L.P. | Immersive reality component management via a reduced competition core network component |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497298B (en) * | 2011-12-19 | 2015-04-01 | 曙光信息产业(北京)有限公司 | Network audit equipment and method based on flow statistic network card |
US8990534B2 (en) | 2012-05-31 | 2015-03-24 | Apple Inc. | Adaptive resource management of a data processing system |
US8655969B2 (en) | 2012-06-01 | 2014-02-18 | Ixia | Statistics reporting in a network test system |
US9165687B2 (en) | 2013-01-21 | 2015-10-20 | Cisco Technology, Inc. | Methods and apparatus for testing and repairing digital memory circuits |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742760A (en) * | 1992-05-12 | 1998-04-21 | Compaq Computer Corporation | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5850386A (en) * | 1996-11-01 | 1998-12-15 | Wandel & Goltermann Technologies, Inc. | Protocol analyzer for monitoring digital transmission networks |
US5982753A (en) * | 1997-06-09 | 1999-11-09 | Fluke Corporation | Method of testing a switched local area network |
US6065053A (en) * | 1997-10-01 | 2000-05-16 | Micron Electronics, Inc. | System for resetting a server |
US20020183969A1 (en) * | 1999-09-22 | 2002-12-05 | Hanes Gordon G.G. | Method and apparatus for statistical compilation |
US20030033025A1 (en) * | 2001-05-16 | 2003-02-13 | Lee Wayne Y. | Universal optical control and management platform |
US20040252686A1 (en) * | 2003-06-16 | 2004-12-16 | Hooper Donald F. | Processing a data packet |
US6938133B2 (en) * | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
US7007089B2 (en) * | 2001-06-06 | 2006-02-28 | Akarnai Technologies, Inc. | Content delivery network map generation using passive measurement data |
US7035223B1 (en) * | 2000-03-23 | 2006-04-25 | Burchfiel Jerry D | Method and apparatus for detecting unreliable or compromised router/switches in link state routing |
US20060153078A1 (en) * | 2004-12-28 | 2006-07-13 | Kabushiki Kaisha Toshiba | Receiver, transceiver, receiving method and transceiving method |
US7187683B1 (en) * | 2001-12-07 | 2007-03-06 | Cisco Technology, Inc. | Statistics data collection mechanism for distributed, high-speed data processing environments |
US7443870B2 (en) * | 2004-08-20 | 2008-10-28 | Opnet Technologies, Inc. | Method for prioritizing grouped data reduction |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805927A (en) | 1994-01-28 | 1998-09-08 | Apple Computer, Inc. | Direct memory access channel architecture and method for reception of network information |
US6088777A (en) | 1997-11-12 | 2000-07-11 | Ericsson Messaging Systems, Inc. | Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
-
2006
- 2006-06-16 US US11/424,832 patent/US7826377B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742760A (en) * | 1992-05-12 | 1998-04-21 | Compaq Computer Corporation | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5850386A (en) * | 1996-11-01 | 1998-12-15 | Wandel & Goltermann Technologies, Inc. | Protocol analyzer for monitoring digital transmission networks |
US5982753A (en) * | 1997-06-09 | 1999-11-09 | Fluke Corporation | Method of testing a switched local area network |
US6065053A (en) * | 1997-10-01 | 2000-05-16 | Micron Electronics, Inc. | System for resetting a server |
US20020183969A1 (en) * | 1999-09-22 | 2002-12-05 | Hanes Gordon G.G. | Method and apparatus for statistical compilation |
US7035223B1 (en) * | 2000-03-23 | 2006-04-25 | Burchfiel Jerry D | Method and apparatus for detecting unreliable or compromised router/switches in link state routing |
US20030033025A1 (en) * | 2001-05-16 | 2003-02-13 | Lee Wayne Y. | Universal optical control and management platform |
US7007089B2 (en) * | 2001-06-06 | 2006-02-28 | Akarnai Technologies, Inc. | Content delivery network map generation using passive measurement data |
US6938133B2 (en) * | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
US7187683B1 (en) * | 2001-12-07 | 2007-03-06 | Cisco Technology, Inc. | Statistics data collection mechanism for distributed, high-speed data processing environments |
US20040252686A1 (en) * | 2003-06-16 | 2004-12-16 | Hooper Donald F. | Processing a data packet |
US7443870B2 (en) * | 2004-08-20 | 2008-10-28 | Opnet Technologies, Inc. | Method for prioritizing grouped data reduction |
US20060153078A1 (en) * | 2004-12-28 | 2006-07-13 | Kabushiki Kaisha Toshiba | Receiver, transceiver, receiving method and transceiving method |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060165076A1 (en) * | 2005-01-21 | 2006-07-27 | Bryan Rittmeyer | Data communication optimization |
US7515585B2 (en) * | 2005-01-21 | 2009-04-07 | Ixia | Data communication optimization |
US7821962B2 (en) | 2006-06-16 | 2010-10-26 | Ixia | Memory access optimization |
US20090059808A1 (en) * | 2006-06-16 | 2009-03-05 | Gerald Pepper | Memory Access Optimization |
US20120246307A1 (en) * | 2006-08-08 | 2012-09-27 | Opnet Technologies, Inc. | Analysis of activity of devices in a network that employ translated network addresses |
US9009304B2 (en) * | 2006-08-08 | 2015-04-14 | Riverbed Technology, Inc. | Mapping virtual internet protocol addresses |
US8159960B2 (en) * | 2006-12-18 | 2012-04-17 | Verizon Patent And Licensing Inc. | Content processing device monitoring |
US20080144519A1 (en) * | 2006-12-18 | 2008-06-19 | Verizon Services Organization Inc. | Content processing device monitoring |
US20090213869A1 (en) * | 2008-02-26 | 2009-08-27 | Saravanakumar Rajendran | Blade switch |
US8625592B2 (en) * | 2008-02-26 | 2014-01-07 | Cisco Technology, Inc. | Blade switch with scalable interfaces |
CN101960796A (en) * | 2008-02-26 | 2011-01-26 | 思科技术公司 | The blade type switch |
US8391157B2 (en) | 2008-06-16 | 2013-03-05 | Ixia | Distributed flow analysis |
US20090310491A1 (en) * | 2008-06-16 | 2009-12-17 | Errol Ginsberg | Distributed Flow Analysis |
US20100260204A1 (en) * | 2009-04-08 | 2010-10-14 | Gerald Pepper | Traffic Receiver Using Parallel Capture Engines |
US7953092B2 (en) | 2009-04-08 | 2011-05-31 | Ixia | Traffic receiver using parallel capture engines |
EP2239888A1 (en) | 2009-04-08 | 2010-10-13 | Ixia | Traffic receiver using parallel capture engines |
US8014295B2 (en) | 2009-07-14 | 2011-09-06 | Ixia | Parallel packet processor with session active checker |
US8441940B2 (en) | 2009-07-14 | 2013-05-14 | Ixia | Parallel packet processor with session active checker |
US20110013519A1 (en) * | 2009-07-14 | 2011-01-20 | Chang Joseph Y | Parallel Packet Processor with Session Active Checker |
US8614955B2 (en) | 2009-09-22 | 2013-12-24 | Ixia | Misdirected packet detection apparatus and method |
US20110069620A1 (en) * | 2009-09-22 | 2011-03-24 | Noah Gintis | Misdirected Packet Detection Apparatus and Method |
US8649271B2 (en) | 2010-01-25 | 2014-02-11 | Ixia | Testing network equipment |
US20110182191A1 (en) * | 2010-01-25 | 2011-07-28 | Dean Jackson | Testing Network Equipment |
US8665746B2 (en) * | 2010-03-30 | 2014-03-04 | Futurewei Technologies, Inc. | Method for measuring throughput for a packet connection |
US20110243029A1 (en) * | 2010-03-30 | 2011-10-06 | Futurewei Technologies, Inc. | Method For Measuring Throughput For a Packet Connection |
US8356096B2 (en) * | 2010-05-28 | 2013-01-15 | Verizon Patent And Licensing Inc. | Apparatuses, method and system for network performance metric statistics from traffic link data, identifying, violating network elements associated with threshold violation using visual cue |
US20110295890A1 (en) * | 2010-05-28 | 2011-12-01 | Marc Evens Gracieux | Apparatuses, Methods and Systems for a Real-Time Multi-Hop Route Reporter |
US8310942B2 (en) | 2010-08-27 | 2012-11-13 | Ixia | Flow statistics aggregation |
US8582466B2 (en) | 2010-08-27 | 2013-11-12 | Ixia | Flow statistics aggregation |
CN102033832A (en) * | 2010-12-02 | 2011-04-27 | 杭州国芯科技股份有限公司 | Access control method of synchronous dynamic memory |
US8654643B2 (en) | 2011-07-27 | 2014-02-18 | Ixia | Wide field indexing for packet tracking |
US20140164409A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, L.P. | Generating And Using Temporal Data Partition Revisions |
US9600526B2 (en) * | 2012-12-06 | 2017-03-21 | At&T Intellectual Property I, L.P. | Generating and using temporal data partition revisions |
US9264340B2 (en) | 2013-03-15 | 2016-02-16 | Ixia | Methods, systems, and computer readable media for misdirected packet drill down and negative packet capture at a network test device |
US9094336B2 (en) | 2013-03-15 | 2015-07-28 | Ixia | Methods, systems, and computer readable media for assisting with the debugging of conditions associated with the processing of test packets by a device under test |
US9172647B2 (en) | 2013-04-25 | 2015-10-27 | Ixia | Distributed network test system |
US10178015B2 (en) | 2016-03-21 | 2019-01-08 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for testing network equipment devices using connectionless protocols |
US10193773B2 (en) | 2016-11-09 | 2019-01-29 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for distributed network packet statistics collection in a test environment |
US10764148B2 (en) | 2017-11-29 | 2020-09-01 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network traffic statistics collection |
CN109309591A (en) * | 2018-10-31 | 2019-02-05 | 掌阅科技股份有限公司 | Data on flows statistical method, electronic equipment and storage medium |
CN109245967A (en) * | 2018-11-09 | 2019-01-18 | 深圳互联先锋科技有限公司 | A kind of more network interface card auto-polymerizations and monitoring alarm method and system |
CN111447692A (en) * | 2019-01-16 | 2020-07-24 | 成都鼎桥通信技术有限公司 | Call method and device for multi-system terminal, electronic equipment and storage medium |
US11470017B2 (en) * | 2019-07-30 | 2022-10-11 | At&T Intellectual Property I, L.P. | Immersive reality component management via a reduced competition core network component |
Also Published As
Publication number | Publication date |
---|---|
US7826377B2 (en) | 2010-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7826377B2 (en) | Memory access optimization and communications statistics computation | |
US8391157B2 (en) | Distributed flow analysis | |
EP2282478B1 (en) | Parallel packet processor with session active checker | |
US8159957B2 (en) | Hardware time stamping and synchronized data transmission | |
US7827295B2 (en) | Protocol stack | |
US7616568B2 (en) | Generic packet generation | |
US8121148B2 (en) | Protocol stack using shared memory | |
US8050175B2 (en) | Distributed packet group identification for network testing | |
US20090010170A1 (en) | Varying the Position of Test Information in Data Units | |
US7515585B2 (en) | Data communication optimization | |
US9203728B2 (en) | Metadata capture for testing TCP connections | |
US20120265866A1 (en) | Redirecting Function Calls | |
US8654643B2 (en) | Wide field indexing for packet tracking | |
US9319441B2 (en) | Processor allocation for multi-core architectures | |
US9985864B2 (en) | High precision packet generation in software using a hardware time stamp counter | |
US20070053349A1 (en) | Network interface accessing multiple sized memory segments | |
US9804899B2 (en) | Communications using the common object request broker architecture (CORBA) | |
US7821962B2 (en) | Memory access optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: IXIA, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PEPPER, GERALD;REEL/FRAME:017854/0031 Effective date: 20060616 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, TE Free format text: SECURITY AGREEMENT;ASSIGNOR:IXIA;REEL/FRAME:029698/0060 Effective date: 20121221 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE A Free format text: NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT;ASSIGNOR:BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT;REEL/FRAME:034870/0598 Effective date: 20150130 |
|
AS | Assignment |
Owner name: IXIA, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT;REEL/FRAME:042335/0465 Effective date: 20170417 |
|
AS | Assignment |
Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IXIA;REEL/FRAME:044222/0695 Effective date: 20170930 Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LT Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IXIA;REEL/FRAME:044222/0695 Effective date: 20170930 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
AS | Assignment |
Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD., Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.;REEL/FRAME:048225/0065 Effective date: 20181001 Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.;REEL/FRAME:048225/0065 Effective date: 20181001 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |