Open-Source PC-Based Software Routers: A Viable Approach to High-Performance Packet Switching
|
|
|
- Nicholas Sims
- 10 years ago
- Views:
Transcription
1 Open-Source PC-Based Software Routers: A Viable Approach to High-Performance Packet Switching 353 Andrea Bianco 1, Jorge M. Finochietto 1, Giulio Galante 2, Marco Mellia 1, and Fabio Neri 1 1 Dipartimento di Elettronica, Politecnico di Torino, Corso Duca degli Abruzzi 24, 1129 Torino, Italy {bianco,finochietto,mellia,neri}@polito.it 2 Networking Lab, Istituto Superiore Mario Boella, via Pier Carlo Boggio 61, 1138 Torino, Italy [email protected] Abstract. We consider IP routers based on off-the-shelf personal computer (PC) hardware running the Linux open-source operating system. The choice of building IP routers with off-the-shelf hardware stems from the wide availability of documentation, the low cost associated with large-scale production, and the continuous evolution driven by the market. On the other hand, open-source software provides the opportunity to easily modify the router operation so as to suit every need. The main contribution of the paper is the analysis of the performance bottlenecks of PC-based open-source software routers and the evaluation of the solutions currently available to overcome them. 1 Introduction Routers are the key components of IP packet networks. The call for high-performance switching and transmission equipment in the Internet keeps growing due to the increasing diffusion of information and communication technologies, and the deployment of new bandwidth-hungry applications and services such as audio and video streaming. So far, routers have been able to support the traffic growth by offering an ever increasing switching speed, mostly thanks to the technological advances of microelectronics granted by Moore s Law. Contrary to what happened for PC architectures, where, at least for hardware components, de-facto standards were defined, allowing the development of an open multivendor market, networking equipment in general, and routers in particular, have always seen custom developments. Proprietary architectures are affected by incompatibilities in configuration and management procedures, scarce programmability, lack of flexibility, and the cost is often much higher than the actual equipment value. Appealing alternatives to proprietary network devices are the implementations of software routers based on off-the-shelf PC hardware, which have been recently made available by the open-source software community, such as Linux [1], Click [2] and FreeBSD [3] for the data plane, as well as Xorp [4] and Zebra [5] for the control plane, This work has been carried out in the framework of EURO, a project partly funded by the Italian Ministry of University, Education, and Research (MIUR). M. Ajmone Marsan et al. (Eds.): QoS-IP 25, LNCS 3375, pp , 25. c Springer-Verlag Berlin Heidelberg 25
2 354 Andrea Bianco et al. just to name a few. Their main benefits are: wide availability of multi-vendor hardware and documentation on their architecture and operations, low cost and continuous evolution driven by the PC market s economy of scale. Criticisms to software routers are focused on limited performance, instability of software, lack of system support, scalability problems, lack of functionalities. Performance limitations can be compensated by the natural evolution of the performance of the PC architecture. Current PC-based routers and switches have the potentiality for switching up to a few Gbit/s of traffic, which is more than enough for a large number of applications. Today, the maturity of open-source software overcomes most problems related to stability and availability of software functionalities. It is therefore important to explore the intrinsic limitations of software routers. In this paper we focus only on the data plane, ignoring all the (fundamental) issues related to management functions and to the control plane. Our aim is to assess the routing performance and the hardware limitations of high-end PCs equipped with several Gigabit Ethernet network interface cards (NICs) running at both 1 Gbit/s and 1 Mbit/s under the Linux operating system. The remainder of the paper is organized as follows. Provided that the Linux IP stack is implemented partly in hardware and partly in software in the operating system kernel, in Sect. 2 we give an overview of the architecture and the operation of hardware commonly available on high-end PCs, whereas in Sect. 3 we describe the current implementation of the IP stack in the Linux kernel. In Sect. 4 we describe our experimental setup, the tests performed, and the results obtained. Finally, in Sect. 5 we conclude and give some directions for future work. 2 PC Architectural Overview A bare bones PC consists of three main building blocks: the central processing unit (CPU), random access memory (RAM), and peripherals, glued together by the chipset, which provides complex interconnection and control functions. As sketched in Fig. 1, the CPU communicates with the chipset through the system bus, also known as front side bus (FSB) in Intel s jargon. The RAM provides temporary data storage for the CPU as long as the system is on, and can be accessed by the memory controller integrated on the chipset through the memory bus (MB). The peripherals are connected to the chipset by the peripheral component interconnect (PCI) shared bus, which allows to expand the system with a huge number of devices, including, but not limited to, permanent data storage units, additional expansion buses, video adapter cards, sound cards, and NICs. All interconnections are bidirectional, but, unfortunately, use different parallelisms, protocols, and clock speeds, requiring the implementation of translation and adaption functions on the chipset. The following sections detail the operation of the CPU, the RAM the PCI bus, NICs and explain how the these components can be used to implement a software router. 2.1 CPU State-of-the-art CPU cores run at frequencies up to 3.8 GHz, whereas next-generation CPUs run at 4 GHz. The front side bus is 64-bit wide and runs at either 1 MHz or
3 Open-Source PC-Based Software Routers 355 CPU CHIPSET FSB MB MEMORY PCI BUS NIC 1 NIC NIC N Fig. 1. PC architectural overview. 133 MHz with quad pumped transfers, meaning that data are transferred at a speed four times higher than the nominal clock speed. Therefore, the peak transfer bandwidth achievablerangesbetween3.2 Gbyte/s and 4.2 Gbyte/s. Note that in Intel s commercial jargon, systems with FSBs clocked at 1 MHz and 133 MHz are marketed as running at 4 MHz and 533 MHz, because of quad pumping. High-end PCs are equipped with chipsets supporting multiple CPUs connected in a symmetric multiprocessing (SMP) architecture. Typical configurations comprise 2, 4, 8 or even 16 identical CPUs. 2.2 RAM The memory bus is usually 64-bit wide and runs at either 1 MHz or 133 MHz with double pumped transfers, meaning that data are transferred on both rising and falling clock edges. Thus, the peak transfer bandwidth available ranges between 1.6 Gbyte/s and 2.1 Gbyte/s, and, in Intel s jargon, the two solutions are named PC16 and PC21 double data rate (DDR) RAM. In high-end PCs the memory bandwidth is doubled bringing the bus width to 128 bits by installing memory banks in pairs. Note that this allows to match the memory bus peak bandwidth to that of the front side bus. 2.3 PCI Bus Depending on the PCI protocol version implemented on the chipset and the number of electrical paths connecting the components, the bandwidth available on the bus ranges from 1 Gbit/s for PCI 1., when operating at 33 MHz with 32-bit parallelism, to 2 Gbyte/s for PCI-X 266, when transferring 64 bits on both rising and falling edges of a double pumped 133 MHz clock. The PCI protocol is designed to efficiently transfer the contents of large blocks of contiguous memory locations between the peripherals and the RAM, without requiring CPU intervention. Data and address lines are time multiplexed, thereforeeach transaction starts with an addressing cycle, continues with the actual data transfer which may take several data cycles, and ends with a turnaround cycle, where all signal drivers are three-stated waiting for the next transaction to begin. Some more cycles may be wasted if the target device addressed by the transaction has a high initial latency and introduces several wait states. This implies that the throughput experienced by the actual data transfer increases as the burst length gets larger, because the almost constant-size protocol overhead becomes more and more negligible with respect to useful data.
4 356 Andrea Bianco et al. As the bus is shared, no more than one device can act as a bus-master at any given time; therefore, an arbiter is included in the chipset to regulate the access and fairly share the bandwidth among the peripherals. 2.4 NICs Gigabit Ethernet and Fast Ethernet NICs are high-performance PCI cards equipped with at least one direct memory access (DMA) engine that can operate as bus-masters to offload the CPU from performing back-and-forth bulk data transfers between their internal memory and the RAM. An adequate amount of on-card transmission (TX)/reception (RX) first-in first-out (FIFO) buffer memory is still needed to provide storage for data directed to (received from) the RAM. The most common operation mode for streaming data transfers is scatter-gather DMA, which allows to spread small buffers all over the available RAM rather then allocating a single large contiguous RAM region which may be difficult, if not impossible, to find because of memory fragmentation. During RAM-to-card transfers, the card fetches data gathering them from sparse RAM buffers; conversely, in the opposite direction, data originating from the card are scattered over available RAM buffers. The simplest way to implement scatter-gather DMA is with two linked lists, one for transmission which requires RAM-to-card transfers and the other for reception which triggers card-to-ram transfers. Each list element, dubbed descriptor, contains a pointer to the first location of the RAM buffer allocated by the operating system, the buffer size, a command to be executed by the card on the data, a status field detailing the result of such operation, and a pointer to the next descriptor in the list, possibly null if this is the last element. Alternatively, descriptors can be organized in two fixed-size arrays, managed by the card as circular buffers, named rings. The performance improvement granted by this solution is twofold: first, descriptors become smaller; second, descriptors on the same ring are contiguous and can be fetched in one burst, allowing for a higher PCI bus efficiency. During normal operation, the card i) fetches descriptors from both rings to determine which RAM buffers are available for reading/writing data and how the related data must be processed, ii) transfers the contents of the buffers, iii) performs the required operations, and iv) updates the status in the corresponding descriptors. Outgoing packets are read from buffers on the transmission ring, whereas incoming packets are written to buffers on the reception ring. Buffers pointed by descriptors are usually sized to fit both incoming and outgoing packets, even though, it is often possible to split outgoing packets among multiple buffers. Transmission stops whenever the transmission ring empties, whereas incoming packets are dropped by the card either when the reception ring fills up or when the on-card FIFO overruns because of prolonged PCI bus unavailability due to congestion. Each NIC is connected to one (possibly shared) hardware interrupt request (IRQs) line and collects in a status register information on TX/RX descriptor availability and on events needing attention from the operating system. It is then possible to selectively enable the generation of hardware IRQs to notify the CPU when a given bit in the status register is cleared/set to indicate an event, so that the operating system can take the appropriate action. Interrupts are usually generated when the reception ring is either
5 Open-Source PC-Based Software Routers 357 full or almost full, when the transmission ring is either empty or almost empty, and after every packet transmission/reception. In addition, it is usually possible to turn IRQ generation off altogether, leaving to the operating system the burden of periodicallypolling the hardware status register and react accordingly. More details on these packet reception schemes are provided later in the paper. 2.5 Putting All the Pieces Together The hardware available on a PC allows to implement a shared bus, shared memory router, where NICs receive and store packets in the main RAM, the CPU routes them to the correct output interface, and NICs fetch packets from the RAM and transmit them on the wire. Therefore, each packet travels twice on the PCI bus, halving the bandwidth effectively available for NIC-to-NIC packet flows. 3 Linux Network Stack Implementation The networking code in the Linux kernel is highly modular: the hardware-independent IP stack has a well defined application programming interface (API) toward the hardware-dependent device driver, which is the glue making the IP layer operate with the most diverse networking hardware. When a NIC is receiving traffic, the device driver pre-allocates packet buffers on the reception ring and, after they have been filled by the NIC with received packets, hands them to the IP layer. The IP layer examines each packet s destination address, determines the output interface, and invokes the device driver to enqueue the packet buffer on the transmission ring. Finally, after the NIC has sent a packet, the device driver unlinks the packet buffer from the transmission ring. The following sections discuss briefly the operations performed by the memory management subsystem, the IP layer, and detail how the network stack is invoked upon packet reception. 3.1 Memory Management In the standard Linux network stack implementation, buffer management is performed resorting to the operating system general-purpose memory management system, which requires CPU expensive operations. Some time can be saved if the buffer deallocation function is modified so as to store unused packet buffers on a recycling list in order to speed up subsequent allocations, allowing the device driver to turn to the slower general-purpose memory allocator only when the recycling list is empty. This has been implemented in a patch [6] for 2.6 kernels, referred to as buffer recycling patch in the reminder of the paper, which adds buffer recycling functionalities to the e1 driver for Intel Gigabit Ethernet NICs. As of today, the buffer recycling patch has not been officially included in the kernel source, but it could be easily integrated in the core networking system code, making it available for all network device drivers without any modification to their source code.
6 358 Andrea Bianco et al. 3.2 IP Layer The Linux kernel networking code implements a standard RFC 1812 [7] router. After a few sanity checks such as IP header checksum verification, packets that are not addressed to the router are processed by the routing function which determines the IP address of the next router to which they must be forwarded, and the output interface on which they must be enqueued for transmission. The kernel implements an efficient routing cache based on a hash table with collision lists; the number of hash entries is determined as a function of the RAM available when the networking code is initialized at boot time. The route for outgoing packets is first looked up in the routing cache by a fast hash algorithm, and, in case of miss, the whole routing table stored in the forwarding information base (FIB) is searched by a (slower) longest prefix matching algorithm. Next, the time-to-live (TTL) is decremented, the header checksum is updated and the packet is enqueued for transmission in the RAM on the drop-tail TX queue associated with the correct output interface. Then, whenever new free descriptors become available, packets are transferred from the output TX queue to the transmission ring of the corresponding NIC. The maximum number of packets that can be stored in the output TX queue is limited and can be easily modified at runtime; the default maximum length for current Linux implementations is 1 packets. Note that, for efficiency s sake, whenever it is possible, packet transfers inside the kernel networking code are performed by moving pointers to packet buffers, rather than actually copying buffers contents. For instance, packet forwarding is implemented unlinking the pointer to a buffer containing received packets from the reception ring, handing it to the IP layer for routing, linking it to the output TX queue, and moving it to the NIC transmission ring before processing the next pointer. This is commonly referred to as zero-copy operation. 3.3 Stack Activation Methods Interrupt. NICs notify the operating system of packet reception events by generating hardware IRQs for the CPU. As shown in Fig. 2, the CPU invokes the driver hardware IRQ handler which acknowledges the NIC request, transfers all packets currently available on the reception ring to the kernel backlog queue and schedules the network software-irq (softirq) handler for later execution. SoftIRQs are commonly used by many Unix flavors for deferring to a more appropriate time the execution of complex operations that have a lower priority than hardware IRQs and that cannot be safely carried out by the IRQ handler, because they might originate race conditions, rendering kernel data structures inconsistent. The network softirq handler extracts packets from the backlog queue, and hands them to the IP layer for processing as described in Sect There is a limit on the maximum number of packets that can be stored in the backlog queue by the IRQ handler so as to upper bound the time the CPU spends for processing packets. When the backlog queue is full, the hardware IRQ handler just removes incoming packets from the reception ring and drops them. In current Linux implementations, the default size of the backlog queue is 3 packets.
7 Open-Source PC-Based Software Routers 359 RX RING Hardware IRQ Software IRQ TX RING Backlog Queue CHECKSUM ROUTING FORWARDING Tx Queue Addr Lookup TTL decrease Checksum Update Receiver Transmitter Fig. 2. Operation of the interrupt-driven network stack. Under heavy reception load, a lot of hardware IRQs are generated from NICs. The backlog queue fills quickly and all CPU cycles are wasted extracting packets from the reception ring just for dropping them after realizing that the backlog queue is full. As a consequence, the softirq handler, having lower priority than the hardware IRQ handler, never gets a chance of draining packets from the backlog queue, practically zeroing the forwarding throughput. This phenomenon was first described in [8] and dubbed receive livelock. Hardware IRQs are also used to notify the operating system of the transmission of packets enqueued on the transmission ring so that the driver can free the corresponding buffers and move new packets from the TX queue to the transmission ring. Interrupt Moderation Most modern NICs provide interrupt moderation or interrupt coalescing mechanisms (see, for example, [9]) to reduce the number of IRQs generated when receiving packets. In this case, interrupts are generated only after a batch of packets has been transmitted/received, or after a timeout from the last IRQ generated has expired, whichever comes first. This allows to relieve the CPU from IRQ storms generated during high traffic load, improving the forwarding rate. NAPI. Receive livelock can be easily avoided by disabling IRQ generation on all NICs and letting the operating system decide when to poll the NIC hardware status register to determine whether new packets have been received. The NIC polling frequency is determined by the operating system and, as a consequence, a polling-driven stack may increase the packet forwarding latency under light traffic load. The key idea introduced in [8] and implemented in the Linux network stack in [1] with the name new API (NAPI), is to combine the robustness at high load of a pollingdriven stack with the responsiveness at low load of an interrupt-driven stack. This can be easily achieved by enabling IRQ status notification on all NICs as in an interrupt-activated stack. The driver IRQ handler is modified so that, when invoked after a packet reception event, it enables polling mode for the originating NIC by switching IRQ generation off and by adding that NIC to the NAPI polling list. It then schedules the network softirq for execution as usual. As shown in Fig. 3, a new function poll is added to the NIC driver to i) remove packets from the reception ring, ii) hand them to the IP layer for processing as described in Sect. 3.2, iii) refill the reception ring with empty packet buffers, iv) detach from the
8 36 Andrea Bianco et al. RX RING Poll TX RING CHECKSUM ROUTING FORWARDING Tx queue Addr Lookup TTL decrease Checksum Update Receiver Fig. 3. Operation of the NAPI network stack. Transmitter transmission ring and free packets buffers after their content has been sent on the wire. The poll function never removes more than a quota Q of packets per invocation from the NIC reception ring. The network softirq is modified so as to run poll on all interfaces on the polling list in a round-robin fashion to enforce fairness. No more than a budget B of packets can be extracted from NIC reception rings in a single invocation of the network softirq, in order to limit the time the CPU spends for processing packets. This algorithm produces a max-min fair share of packet rates among the NICs on the polling list. Whenever poll extracts less than Q packets from a NIC reception ring, it reverts such NIC to interrupt mode by removing it from the polling list and re-enabling IRQ notification. The default values for B and Q in current Linux implementations are, respectively, 3 and 64. Currently, not all NIC drivers are NAPI aware, but it is easy to write the NAPI poll handler by just borrowing code from the hardware IRQ handler. 4 Performance Evaluation In Sect. 4.1, we describe the testbed setup we used and report some preliminary results from experiments on the NIC maximum reception and transmission rate, which motivated the adoption of a commercial router tester for subsequent tests. Many metrics can be considered when evaluating the forwarding performance of a router: for instance, the RFC 2544 [11] defines both steady-state indices such as the maximum lossless forwarding rate, the packet loss rate, the packet delay and the packet jitter, as well as transient quantities such as the maximum-length packet burst that can be forwarded at full speed by the router without losses. In this paper, however, the different configurations were compared in terms of the steady-state saturation forwarding throughput obtained when all router ports are offered the maximum possible load. We considered both unidirectional flows, where each router port, at any given time, only receives or transmits data, as well as the bidirectional case, where all ports send and receive packets at the same time. All the results reported are the average of five 3-second runs of each test. The IP routing table used in all tests is minimal and only contains routes to the class-c subnetworks reachable from each port. As a consequence, the number of IP destination addresses to which the router-tester sends packets on each subnetwork is always less than 255, so that the routing cache never overflows and the routing overhead is marginal.
9 Open-Source PC-Based Software Routers Testbed Setup The router tested is based on a high-end PC with a SuperMicro X5DPE-G2 mainboard equipped with one 2.8 GHz Intel Xeon processor and 1 Gbyte of PC16 DDR RAM consisting of two interleaved banks, so as to bring the memory bus transfer rate to 3.2 Gbyte/s. Almost all experiments were performed running Linux , except for buffer recycling tests, which were run on a patched kernel. No major changes occurred in the networking code between kernel version 2.4 and 2.6. The only modification needed to make a fair performance comparison between 2.6 and 2.4 kernels is to lower the clock interrupt frequency from 1 Hz (default for 2.6 kernels) to 1 Hz (default for 2.4 kernels). Although Fast and Gigabit Ethernet NICs offer a raw rate of 1 Mbit/s and 1 Gbit/s, respectively, the data throughput at IP layer actually achievable may be much lower because of physical and data-link layer overhead, due to Ethernet overhead. Indeed, besides MAC addresses, protocol type and CRC, also the initial 8-bytes trailer and the final 12-byte minimum inter-packet gap, must be taken into account. Carried payload ranges from a 46-bytes minimum size up to 15-bytes of maximum size. As a consequence, Gigabit (Fast) Ethernet NICs running at full speed must handle a packet rate ranging from (8 127)to (148 89)packets/s as the payload size decreases from 15 byte to 46 byte. Most of the results presented in this section were obtained for minimum-size Ethernet frames because they expose the effect of the per-packet processing overhead. However, we also ran a few tests for frame sizes up to the maximum, in order to check that both the PCI bus and the memory subsystem could withstand the increased bandwidth demand. A number of tests were performed on Gigabit Ethernet NICs produced by Intel, 3Com (equipped with a Broadcom chipset), D-Link and SysKonnect, using open-source software generators (see [12] for a good survey) operating either in user- or in kernelspace. We compared rude [13], which operates in user-space, with udpgen [14] and packetgen [15], that, instead, live in kernel-space. The aim was to assess the maximum transmission/reception rate of each NIC-driver pair, when only one NIC was active and no packet forwarding was taking place. In order to allow for a fair comparison and to avoid a state-space explosion we left all driver parameters to their default values. The highest generation rate of 65 minimum-size Ethernet frames per second (corresponding to almost 5 Mbit/s) was achieved by packetgen on Intel PRO 1 Gigabit Ethernet NICs running with the Intel e1 driver [16] version As it was not possible to generate 64-byte Ethernet frames at full speed on any of the off-the-shelf NIC we considered, we ran all subsequent tests on an Agilent N2X RouterTester 9 [17], equipped with 2 Gigabit Ethernet and 16 Fast Ethernet ports, that can transmit and receive at full rate even 64-byte Ethernet frames. The maximum reception rate of the different NICs was also evaluated, when only one NIC was active and packet forwarding was disabled, by generating 64-byte Ethernet frames with the RouterTester, and counting the packets received by the router with udpcount [14]. Again, the best results were obtained with the e1 driver and Intel PRO 1 NICs, which were able to receive a little bit more than 1 packets/s
10 362 Andrea Bianco et al. on an IRQ stack and about 1 1 packets/s on a NAPI stack. Given the superior performance of Intel NICs, all tests in the next two sections were performed equipping the router with seven Intel PRO 1 MT dual port Gigabit Ethernet NICs running at either 1 Gbit/s or 1Mbit/s. All driver parameters were left to their default values, except for interrupt moderation which was disabled when NAPI was used. From the packet reception and transmission rates measured when forwarding was disabled, it is possible to extrapolate that, very likely, in a bidirectional two-port scenario, a router will not be able to forward more than 65 packets/s each way, because of the NIC s transmission rate limit. 4.2 Two-Port Configuration We first considered the simplest unidirectional case, where packets are generated from the tester, received by the router from one NIC, and sent back to the tester through the other NIC. In Fig. 4 we plot the forwarding rate achieved for minimum-size Ethernet frames by IRQ, IRQ moderated, and NAPI activated stacks under unidirectional traffic, as a function of the offered load. Both IRQ and IRQ moderated stacks suffer from receive livelock: when the offered load becomes greater than 23 packets/s, or 5 packets/s, respectively, the throughput quickly drops to zero. Only NAPI is able to sustain a constant forwarding rate of 51 packets/s (corresponding to 34 Mbit/s) under high load. A more accurate analysis of the latter case shows that all packet drops occur on the reception ring rather than from the RX queue. Such forwarding rate is more than reasonable, because a back-of-the-envelope calculation indicates that the per-packet overhead is around 2 µs or about 55 clock cycles. On the other hand, a 2.8 GHz CPU for forwarding packets/s would have to take less than 2 clock cycles (corresponding to approximatively 7 ns) per packet. Given the superior performance of NAPI with respect to other packet forwarding schemes, in the remainder of the paper, we will consider only results obtained with NAPI. It is now interesting to repeat the last test for different Ethernet payload sizes to assess whether the forwarding rate limitation observed in Fig. 4 depends on the perpacket processing overhead or on a more unlikely PCI bandwidth bottleneck NAPI IRQ Moderation IRQ Forwarding Rate [Mbit/s] 1.4e+6 1.2e+6 1e Theoretical Limit [packets/s] Measured Throughput [packets/s] Theoretical Limit [Gbit/s] Measured Throughput [Gbit/s] Forwarding Rate [Gbit/s] e+6 1.2e+6 1.4e+6 Offered load [packets/s] Ethernet Payload Size [byte] Fig. 4. Comparison of the router forwarding rate under unidirectional traffic for an IRQ, an IRQ moderated and a NAPI stack. Fig. 5. Comparison of the router saturation forwarding rate for a NAPI stack under unidirectional traffic and different IP packet sizes.
11 Open-Source PC-Based Software Routers 363 In Fig. 5, we report in both packets/s and Mbit/s the forwarding rate we measured (empty markers) and the value the forwarding rate would have taken in absence of packet drops (filled markers) versus the Ethernet payload size, under NAPI. For 64- and 128-byte payloads the forwarding rate is most likely limited to about 5 packets/s by the per-packet CPU processing overhead. Conversely, for payloads of 512 byte or more, it is possible to reach 1 Gbit/s, because the corresponding packet rate is low enough and the PCI bus is not a bottleneck. The result for 256-byte frames is difficult to explain and may be related to some PCI-X performance impairment. Indeed, in [18], the authors, using a PCI protocol analyzer, show that the bus efficiency for bursts of 256 byte or less is pretty low. Since the PCI bus seems not to be a bottleneck for minimum-size packet transfers, in Fig. 6 we compare the aggregated forwarding rate of unidirectional and bidirectional flows plotted versus the aggregated offered load. Notice that, for bidirectional traffic, the forwarding rate improves from 51 packets/s to 62 packets/s, corresponding to approximatively 4 Mbit/s. This happens because, at high offered load under bidirectional traffic, the NAPI poll function, when invoked, services both the reception and the transmission ring of each NIC it processes, greatly reducing the number of IRQs generated with respect to the unidirectional case, where only one NIC receives packets in polling mode and the other one sends them in IRQ mode. Indeed, measurements performed when the aggregated offered load is around 1 packets/s show that the transmitting NIC generates, under unidirectional traffic, 27 times as many interrupts than in the bidirectional case. The curves in Fig. 7 show that the buffer recycling optimization improves the forwarding rate of a bidirectional flow of 64-byte Ethernet frames to 73 packets/s, roughly corresponding to 5 Mbit/s. Measurements on the router reveal that, after an initial transient phase when all buffers are allocated from the general-purpose memory allocator, in stationary conditions all buffers are allocated from the recycling list, which contains around 6 buffers, occupying approximatively 1.2 Mbyte of RAM. All tests in the following section were performed on a Linux kernel and, therefore, could not take advantage of the buffering recycling patch. 8 7 NAPI Unidirectional NAPI Bidirectional NAPI + BR NAPI Forwarding Rate [Mbit/s] Forwarding Rate [Mbit/s] e+6 1.2e+6 1.4e+6 Offered load [packets/s] Fig. 6. Comparison of the router forwarding rate achieved by unidirectional and bidirectional traffic flows for a NAPI stack e+6 1.2e+6 1.4e+6 Offered load [packets/s] Fig. 7. Comparison of the effect of the buffer recycling (BR) patch on the forwarding rate under bidirectional traffic for a NAPI stack.
12 364 Andrea Bianco et al. 4.3 Multi-port Configurations In this section we consider both a one-to-one traffic scenario, where all packets arriving at one input port are addressed to a different output port, so that no output port gets packets from more than one input port, as well as a uniform traffic pattern where packets received by one NIC are spread over all the remaining ports uniformly. We first consider a router with two ports running at 1 Gbit/s and two ports running at 1 Mbit/s, under one-to-one unidirectional traffic. The offered load is distributed according to a 1:1 ratio between the ports running at 1 Gbit/s and the ports running at 1 Mbit/s,and varied from to 1% of the full line rate. The quota Q and the budget B are set to their default values of 64 and 3. Figure 8 shows the total and perflow forwarding rate versus the aggregated load offered to the router. The forwarding rate for the 1 Mbit/s flow increases steadily, stealing resources from the 1 Gbit/s flow according to a max-min fair policy, when the router bandwidth is saturated, and the aggregated forwarding rate keeps constant. This behavior can be easily altered to implement other fairness models just changing the quota assigned to each port. Figure 9 shows the results obtained in the same scenario when the quota Q was set to 27 for ports running at 1 Gbit/s and to 27 for ports running at 1 Mbit/s. In this way, poll can extract from the former 1 times as many packets than from the latter and, assigning more resources to more loaded ports, aggregated performance is improved. In Fig. 1 we plot the aggregated forwarding rate versus the aggregated offered load for 6, 1 and 14 ports running at 1 Mbit/s under bidirectional one-to-one traffic. There is a slight decrease in the saturation forwarding rate as the number of ports receiving traffic increases, which may be due to the greater overhead incurred by the NAPI poll handler when switching among different ports. In Fig. 11 we compare the forwarding rate for the one-to-one and the uniform traffic pattern when 14 ports are running at 1 Mbit/s. Again, we observe a small difference in the forwarding rate achieved in the two scenarios, which is probably due to a major processing overhead incurred by the latter. This may depend on the fact that, under uniform traffic, packets consecutively extracted from the reception ring of one port are headed for different IP subnetworks and Mbit/s + 1 Gbit/s Flows 1 Gbit/s Flow 1 Mbit/s Flow Forwarding Rate [Mbit/s] Mbit/s + 1 Gbit/s Flows 1 Gbit/s Flow 1 Mbit/s Flow Forwarding Rate [Mbit/s] e+6 1.5e+6 Offered load [packets/s] e+6 1.5e+6 Offered load [packets/s] Fig. 8. Max-min fair behavior of two unidirectional traffic flows coming from ports running at different speed under NAPI. Fig. 9. Impact of different per-port quota setting on the fair share of two unidirectional traffic flows.
13 Open-Source PC-Based Software Routers ports 1 ports 14 ports Forwarding Bandwidth [Mbit/s] One-to-one Traffic Uniform Traffic Forwarding Bandwidth [Mbit/s] Offered load [packets/s] e+6 1.2e+6 1.4e+6 Offered load [packets/s] Fig. 1. Forwarding performance for one-toone bidirectional traffic versus number of 1 Mbit/s ports. Fig. 11. Forwarding performance comparison between one-to-one and uniform bidirectional traffic with 14 1 Mbit/s ports. must be spread among different TX queues, contrarily to what happens under one-toone traffic, where all packets are forwarded to the same TX queue. 5 Conclusions and Future Work In this paper we evaluated the viability of building a high-performance IP router out of common PC hardware and the Linux open-source operating system. We ran a number of experiments to assess the saturation forwarding rate in different scenarios, completely ignoring all issues related to the control plane. We showed that a software router based on a high-end off-the-shelf PC is able to forward up to 6 packets/s, when considering minimum-size Ethernet frames, and to reach 1 Gbit/s when larger frame sizes are considered. Configurations with up to 14 ports can be easily and inexpensively built at the price of a small decrease in the forwarding rate. A number of tricks, such as packet buffer recycling, and NAPI quota tuning are also available to improve the throughput and alter the fairness among different traffic flows. In the future we plan to compare the routing performance of Click and FreeBSD with that of Linux. Provided that the major bottleneck in the systems seems to be the per-packet processing overhead introduced by the CPU, we are also profiling the Linux kernel networking code so as to identify the most CPU intensive operations and implement them on custom NICs enhanced with field programmable gate arrays (FPGAs). Acknowledgment We would like to thank M.L.N.P.P. Prashant for running the tests on different packet sizes and the experiments for router configurations with more than 6 ports, and Robert Birke for modifying udpcount to run on top of NAPI and providing the results on the NIC reception rates. We would also like to thank the partners of the Euro project for the useful discussions, and the anonymous reviewers for helping to improve the paper.
14 366 Andrea Bianco et al. References 1. Torvalds, L.: Linux. (URL: 2. Kohler, E., Morris, R., Chen, B., Jannotti, J.: The click modular router. ACM Transactions on Computer Systems 18 (2) FreeBSD. (URL: 4. Handley, M., Hodson, O., Kohler, E.: Xorp: An open platform for network research. In: Proceedings of the 1st Workshop on Hot Topics in Networks, Princeton, NJ, USA (22) 5. GNU: Zebra. (URL: 6. Olsson, R.: skb recycling patch. (URL: ftp://robur.slu.se/pub/linux/ net-development/skb recycling) 7. Baker, F.: RFC 1812, requirements for IP version 4 routers. URL: ftp://ftp.rfc-editor.org/in-notes/rfc1812.txt (June 1995) 8. Mogul, J.C., Ramakrishnan, K.K.: Eliminating receive livelock in an interrupt-driven kernel. ACM Transactions on Computer Systems 15 (1997) Intel: Interrupt moderation using Intel Gigabit Ethernet controllers (Application Note 45). URL: 1. Salim, J.H., Olsson, R., Kuznetsov, A.: Beyond softnet. In: Proceedings of the 5th Annual Linux Showcase & Conference (ALS 21), Oakland, CA, USA (21) 11. Bradner, S., McQuaid, J.: RFC 2544, benchmarking methodology for network interconnect devices. URL: ftp://ftp.rfc-editor.org/in-notes/rfc2544.txt (March 1999) 12. Zander, S.: Traffic generator overview. (URL: sebastian.zander/private/trafficgen.html) 13. Laine, J.: Rude/Crude. (URL: Zander, S.: UDPgen. (URL: udpgen) 15. Olsson, R.: Linux kernel packet generator for performance evaluation. (URL: /usr/src/linux-2.4/net/core/pktgen.c) 16. Intel: Intel PRO/1/1/1/1GbE linux driver. (URL: Agilent: N2X routertester 9. (URL: Brink, P., Castelino, M., Meng, D., Rawal, C., Tadepalli, H.: Network processing performance metrics for IA- and IXP-based systems. Intel Technology Journal 7 (23)
Scalable Layer-2/Layer-3 Multistage Switching Architectures for Software Routers
Scalable Layer-2/Layer-3 Multistage Switching Architectures for Software Routers Andrea Bianco, Jorge M. Finochietto, Giulio Galante, Marco Mellia, Davide Mazzucchi, Fabio Neri, Dipartimento di Elettronica,
Analyzing and Optimizing the Linux Networking Stack
Analyzing and Optimizing the Linux Networking Stack Raffaele Bolla*, Roberto Bruschi*, Andrea Ranieri*, Gioele Traverso * Department of Communications, Computer and Systems Science (DIST) University of
OpenFlow Switching: Data Plane Performance
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 21 proceedings OpenFlow : Data Plane Performance Andrea Bianco,
RFC 2544 Performance Evaluation for a Linux Based Open Router
RFC 2544 Performance Evaluation for a Linux Based Open Router Raffaele Bolla, Roberto Bruschi DIST - Department of Communications, Computer and Systems Science University of Genoa Via Opera Pia 13, 16145
Sockets vs. RDMA Interface over 10-Gigabit Networks: An In-depth Analysis of the Memory Traffic Bottleneck
Sockets vs. RDMA Interface over 1-Gigabit Networks: An In-depth Analysis of the Memory Traffic Bottleneck Pavan Balaji Hemal V. Shah D. K. Panda Network Based Computing Lab Computer Science and Engineering
Collecting Packet Traces at High Speed
Collecting Packet Traces at High Speed Gorka Aguirre Cascallana Universidad Pública de Navarra Depto. de Automatica y Computacion 31006 Pamplona, Spain [email protected] Eduardo Magaña Lizarrondo
Performance of Software Switching
Performance of Software Switching Based on papers in IEEE HPSR 2011 and IFIP/ACM Performance 2011 Nuutti Varis, Jukka Manner Department of Communications and Networking (COMNET) Agenda Motivation Performance
Intel DPDK Boosts Server Appliance Performance White Paper
Intel DPDK Boosts Server Appliance Performance Intel DPDK Boosts Server Appliance Performance Introduction As network speeds increase to 40G and above, both in the enterprise and data center, the bottlenecks
D1.2 Network Load Balancing
D1. Network Load Balancing Ronald van der Pol, Freek Dijkstra, Igor Idziejczak, and Mark Meijerink SARA Computing and Networking Services, Science Park 11, 9 XG Amsterdam, The Netherlands June [email protected],[email protected],
Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build 164009
Performance Study Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build 164009 Introduction With more and more mission critical networking intensive workloads being virtualized
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
The Performance Analysis of Linux Networking Packet Receiving
The Performance Analysis of Linux Networking Packet Receiving Wenji Wu, Matt Crawford Fermilab CHEP 2006 [email protected], [email protected] Topics Background Problems Linux Packet Receiving Process NIC &
Performance Evaluation of Linux Bridge
Performance Evaluation of Linux Bridge James T. Yu School of Computer Science, Telecommunications, and Information System (CTI) DePaul University ABSTRACT This paper studies a unique network feature, Ethernet
Wire-speed Packet Capture and Transmission
Wire-speed Packet Capture and Transmission Luca Deri Packet Capture: Open Issues Monitoring low speed (100 Mbit) networks is already possible using commodity hardware and tools based on libpcap.
Router Architectures
Router Architectures An overview of router architectures. Introduction What is a Packet Switch? Basic Architectural Components Some Example Packet Switches The Evolution of IP Routers 2 1 Router Components
Evaluation of Switching Performance of a Virtual Software Router
Evaluation of Switching Performance of a Virtual Roberto Rojas-Cessa, Khondaker M. Salehin, and Komlan Egoh Abstract s are an alternative low-cost and moderate-performance router solutions implemented
Effects of Interrupt Coalescence on Network Measurements
Effects of Interrupt Coalescence on Network Measurements Ravi Prasad, Manish Jain, and Constantinos Dovrolis College of Computing, Georgia Tech., USA ravi,jain,[email protected] Abstract. Several
ncap: Wire-speed Packet Capture and Transmission
ncap: Wire-speed Packet Capture and Transmission L. Deri ntop.org Pisa Italy [email protected] Abstract With the increasing network speed, it is no longer possible to capture and transmit network packets at
High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features
UDC 621.395.31:681.3 High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features VTsuneo Katsuyama VAkira Hakata VMasafumi Katoh VAkira Takeyama (Manuscript received February 27, 2001)
Building High-Performance iscsi SAN Configurations. An Alacritech and McDATA Technical Note
Building High-Performance iscsi SAN Configurations An Alacritech and McDATA Technical Note Building High-Performance iscsi SAN Configurations An Alacritech and McDATA Technical Note Internet SCSI (iscsi)
The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
Gigabit Ethernet Design
Gigabit Ethernet Design Laura Jeanne Knapp Network Consultant 1-919-254-8801 [email protected] www.lauraknapp.com Tom Hadley Network Consultant 1-919-301-3052 [email protected] HSEdes_ 010 ed and
PCI Express* Ethernet Networking
White Paper Intel PRO Network Adapters Network Performance Network Connectivity Express* Ethernet Networking Express*, a new third-generation input/output (I/O) standard, allows enhanced Ethernet network
TCP Offload Engines. As network interconnect speeds advance to Gigabit. Introduction to
Introduction to TCP Offload Engines By implementing a TCP Offload Engine (TOE) in high-speed computing environments, administrators can help relieve network bottlenecks and improve application performance.
The Bus (PCI and PCI-Express)
4 Jan, 2008 The Bus (PCI and PCI-Express) The CPU, memory, disks, and all the other devices in a computer have to be able to communicate and exchange data. The technology that connects them is called the
Networking Driver Performance and Measurement - e1000 A Case Study
Networking Driver Performance and Measurement - e1000 A Case Study John A. Ronciak Intel Corporation [email protected] Ganesh Venkatesan Intel Corporation [email protected] Jesse Brandeburg
VMWARE WHITE PAPER 1
1 VMWARE WHITE PAPER Introduction This paper outlines the considerations that affect network throughput. The paper examines the applications deployed on top of a virtual infrastructure and discusses the
Welcome to the Dawn of Open-Source Networking. Linux IP Routers Bob Gilligan [email protected]
Welcome to the Dawn of Open-Source Networking. Linux IP Routers Bob Gilligan [email protected] Outline About Vyatta: Open source project, and software product Areas we re working on or interested in
Linux Software Router: Data Plane Optimization and Performance Evaluation
6 JOURNAL OF NETWORKS, VOL. 2, NO. 3, JUNE 27 Linux Software Router: Data Plane Optimization and Performance Evaluation Raffaele Bolla and Roberto Bruschi DIST - Department of Communications, Computer
Accelerating High-Speed Networking with Intel I/O Acceleration Technology
White Paper Intel I/O Acceleration Technology Accelerating High-Speed Networking with Intel I/O Acceleration Technology The emergence of multi-gigabit Ethernet allows data centers to adapt to the increasing
Intel Data Direct I/O Technology (Intel DDIO): A Primer >
Intel Data Direct I/O Technology (Intel DDIO): A Primer > Technical Brief February 2012 Revision 1.0 Legal Statements INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
- An Essential Building Block for Stable and Reliable Compute Clusters
Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative
This topic lists the key mechanisms use to implement QoS in an IP network.
IP QoS Mechanisms QoS Mechanisms This topic lists the key mechanisms use to implement QoS in an IP network. QoS Mechanisms Classification: Each class-oriented QoS mechanism has to support some type of
EVALUATING THE NETWORKING PERFORMANCE OF LINUX-BASED HOME ROUTER PLATFORMS FOR MULTIMEDIA SERVICES. Ingo Kofler, Robert Kuschnig, Hermann Hellwagner
EVALUATING THE NETWORKING PERFORMANCE OF LINUX-BASED HOME ROUTER PLATFORMS FOR MULTIMEDIA SERVICES Ingo Kofler, Robert Kuschnig, Hermann Hellwagner Institute of Information Technology (ITEC) Alpen-Adria-Universität
Open Flow Controller and Switch Datasheet
Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013 Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development
OpenFlow with Intel 82599. Voravit Tanyingyong, Markus Hidell, Peter Sjödin
OpenFlow with Intel 82599 Voravit Tanyingyong, Markus Hidell, Peter Sjödin Outline Background Goal Design Experiment and Evaluation Conclusion OpenFlow SW HW Open up commercial network hardware for experiment
Network Performance Optimisation and Load Balancing. Wulf Thannhaeuser
Network Performance Optimisation and Load Balancing Wulf Thannhaeuser 1 Network Performance Optimisation 2 Network Optimisation: Where? Fixed latency 4.0 µs Variable latency
Challenges in high speed packet processing
Challenges in high speed packet processing Denis Salopek University of Zagreb, Faculty of Electrical Engineering and Computing, Croatia [email protected] Abstract With billions of packets traveling
Optimizing TCP Forwarding
Optimizing TCP Forwarding Vsevolod V. Panteleenko and Vincent W. Freeh TR-2-3 Department of Computer Science and Engineering University of Notre Dame Notre Dame, IN 46556 {vvp, vin}@cse.nd.edu Abstract
Necessary Functions of a Multi-Stage Software Router
SNMP Management in a Distributed Software Router Architecture Andrea Bianco, Robert Birke, Fikru Getachew Debele, Luca Giraudo Dip. di Elettronica, Politecnico di Torino, Italy, Email: {last name}@tlc.polito.it
Comparing and Improving Current Packet Capturing Solutions based on Commodity Hardware
Comparing and Improving Current Packet Capturing Solutions based on Commodity Hardware Lothar Braun, Alexander Didebulidze, Nils Kammenhuber, Georg Carle Technische Universität München Institute for Informatics
HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring
CESNET Technical Report 2/2014 HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring VIKTOR PUš, LUKÁš KEKELY, MARTIN ŠPINLER, VÁCLAV HUMMEL, JAN PALIČKA Received 3. 10. 2014 Abstract
CHAPTER 3 STATIC ROUTING
CHAPTER 3 STATIC ROUTING This chapter addresses the end-to-end delivery service of IP and explains how IP routers and hosts handle IP datagrams. The first section discusses how datagrams are forwarded
Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU
Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU Savita Shiwani Computer Science,Gyan Vihar University, Rajasthan, India G.N. Purohit AIM & ACT, Banasthali University, Banasthali,
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski [email protected] 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
Network Simulation Traffic, Paths and Impairment
Network Simulation Traffic, Paths and Impairment Summary Network simulation software and hardware appliances can emulate networks and network hardware. Wide Area Network (WAN) emulation, by simulating
Requirements of Voice in an IP Internetwork
Requirements of Voice in an IP Internetwork Real-Time Voice in a Best-Effort IP Internetwork This topic lists problems associated with implementation of real-time voice traffic in a best-effort IP internetwork.
OpenFlow Based Load Balancing
OpenFlow Based Load Balancing Hardeep Uppal and Dane Brandon University of Washington CSE561: Networking Project Report Abstract: In today s high-traffic internet, it is often desirable to have multiple
Three Key Design Considerations of IP Video Surveillance Systems
Three Key Design Considerations of IP Video Surveillance Systems 2012 Moxa Inc. All rights reserved. Three Key Design Considerations of IP Video Surveillance Systems Copyright Notice 2012 Moxa Inc. All
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking Burjiz Soorty School of Computing and Mathematical Sciences Auckland University of Technology Auckland, New Zealand
How To Test A Microsoft Vxworks Vx Works 2.2.2 (Vxworks) And Vxwork 2.4.2-2.4 (Vkworks) (Powerpc) (Vzworks)
DSS NETWORKS, INC. The Gigabit Experts GigMAC PMC/PMC-X and PCI/PCI-X Cards GigPMCX-Switch Cards GigPCI-Express Switch Cards GigCPCI-3U Card Family Release Notes OEM Developer Kit and Drivers Document
MLPPP Deployment Using the PA-MC-T3-EC and PA-MC-2T3-EC
MLPPP Deployment Using the PA-MC-T3-EC and PA-MC-2T3-EC Overview Summary The new enhanced-capability port adapters are targeted to replace the following Cisco port adapters: 1-port T3 Serial Port Adapter
Design Issues in a Bare PC Web Server
Design Issues in a Bare PC Web Server Long He, Ramesh K. Karne, Alexander L. Wijesinha, Sandeep Girumala, and Gholam H. Khaksari Department of Computer & Information Sciences, Towson University, 78 York
Windows Server Performance Monitoring
Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly
Open-source routing at 10Gb/s
Open-source routing at Gb/s Olof Hagsand, Robert Olsson and Bengt Gördén, Royal Institute of Technology (KTH), Sweden Email: {olofh, gorden}@kth.se Uppsala University, Uppsala, Sweden Email: [email protected]
Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago
Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University
How To Improve Performance On A Linux Based Router
Linux Based Router Over 10GE LAN Cheng Cui, Chui-hui Chiu, and Lin Xue Department of Computer Science Louisiana State University, LA USA Abstract High speed routing with 10Gbps link speed is still very
Enhance Service Delivery and Accelerate Financial Applications with Consolidated Market Data
White Paper Enhance Service Delivery and Accelerate Financial Applications with Consolidated Market Data What You Will Learn Financial market technology is advancing at a rapid pace. The integration of
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging In some markets and scenarios where competitive advantage is all about speed, speed is measured in micro- and even nano-seconds.
基 於 SDN 與 可 程 式 化 硬 體 架 構 之 雲 端 網 路 系 統 交 換 器
基 於 SDN 與 可 程 式 化 硬 體 架 構 之 雲 端 網 路 系 統 交 換 器 楊 竹 星 教 授 國 立 成 功 大 學 電 機 工 程 學 系 Outline Introduction OpenFlow NetFPGA OpenFlow Switch on NetFPGA Development Cases Conclusion 2 Introduction With the proposal
A Dell Technical White Paper Dell PowerConnect Team
Flow Control and Network Performance A Dell Technical White Paper Dell PowerConnect Team THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL ERRORS AND TECHNICAL INACCURACIES.
Putting it on the NIC: A Case Study on application offloading to a Network Interface Card (NIC)
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE CCNC 2006 proceedings. Putting it on the NIC: A Case Study on application
Evaluation Report: Emulex OCe14102 10GbE and OCe14401 40GbE Adapter Comparison with Intel X710 10GbE and XL710 40GbE Adapters
Evaluation Report: Emulex OCe14102 10GbE and OCe14401 40GbE Adapter Comparison with Intel X710 10GbE and XL710 40GbE Adapters Evaluation report prepared under contract with Emulex Executive Summary As
SIDN Server Measurements
SIDN Server Measurements Yuri Schaeffer 1, NLnet Labs NLnet Labs document 2010-003 July 19, 2010 1 Introduction For future capacity planning SIDN would like to have an insight on the required resources
Optimizing Network Virtualization in Xen
Optimizing Network Virtualization in Xen Aravind Menon EPFL, Lausanne [email protected] Alan L. Cox Rice University, Houston [email protected] Willy Zwaenepoel EPFL, Lausanne [email protected]
Transport Layer Protocols
Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements
How To Monitor And Test An Ethernet Network On A Computer Or Network Card
3. MONITORING AND TESTING THE ETHERNET NETWORK 3.1 Introduction The following parameters are covered by the Ethernet performance metrics: Latency (delay) the amount of time required for a frame to travel
Latency on a Switched Ethernet Network
Application Note 8 Latency on a Switched Ethernet Network Introduction: This document serves to explain the sources of latency on a switched Ethernet network and describe how to calculate cumulative latency
Boosting Data Transfer with TCP Offload Engine Technology
Boosting Data Transfer with TCP Offload Engine Technology on Ninth-Generation Dell PowerEdge Servers TCP/IP Offload Engine () technology makes its debut in the ninth generation of Dell PowerEdge servers,
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
Oracle Database Scalability in VMware ESX VMware ESX 3.5
Performance Study Oracle Database Scalability in VMware ESX VMware ESX 3.5 Database applications running on individual physical servers represent a large consolidation opportunity. However enterprises
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
LCMON Network Traffic Analysis
LCMON Network Traffic Analysis Adam Black Centre for Advanced Internet Architectures, Technical Report 79A Swinburne University of Technology Melbourne, Australia [email protected] Abstract The Swinburne
Performance Comparison of Fujitsu PRIMERGY and PRIMEPOWER Servers
WHITE PAPER FUJITSU PRIMERGY AND PRIMEPOWER SERVERS Performance Comparison of Fujitsu PRIMERGY and PRIMEPOWER Servers CHALLENGE Replace a Fujitsu PRIMEPOWER 2500 partition with a lower cost solution that
Per-Flow Queuing Allot's Approach to Bandwidth Management
White Paper Per-Flow Queuing Allot's Approach to Bandwidth Management Allot Communications, July 2006. All Rights Reserved. Table of Contents Executive Overview... 3 Understanding TCP/IP... 4 What is Bandwidth
High-Density Network Flow Monitoring
Petr Velan [email protected] High-Density Network Flow Monitoring IM2015 12 May 2015, Ottawa Motivation What is high-density flow monitoring? Monitor high traffic in as little rack units as possible
Packet Capture in 10-Gigabit Ethernet Environments Using Contemporary Commodity Hardware
Packet Capture in 1-Gigabit Ethernet Environments Using Contemporary Commodity Hardware Fabian Schneider Jörg Wallerich Anja Feldmann {fabian,joerg,anja}@net.t-labs.tu-berlin.de Technische Universtität
Improving the Performance of Passive Network Monitoring Applications with Memory Locality Enhancements
Improving the Performance of Passive Network Monitoring Applications with Memory Locality Enhancements Antonis Papadogiannakis a,, Giorgos Vasiliadis a, Demetres Antoniades a, Michalis Polychronakis b,
Getting the most TCP/IP from your Embedded Processor
Getting the most TCP/IP from your Embedded Processor Overview Introduction to TCP/IP Protocol Suite Embedded TCP/IP Applications TCP Termination Challenges TCP Acceleration Techniques 2 Getting the most
Application Note. Windows 2000/XP TCP Tuning for High Bandwidth Networks. mguard smart mguard PCI mguard blade
Application Note Windows 2000/XP TCP Tuning for High Bandwidth Networks mguard smart mguard PCI mguard blade mguard industrial mguard delta Innominate Security Technologies AG Albert-Einstein-Str. 14 12489
Chapter 11 I/O Management and Disk Scheduling
Operatin g Systems: Internals and Design Principle s Chapter 11 I/O Management and Disk Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles An artifact can
An enhanced TCP mechanism Fast-TCP in IP networks with wireless links
Wireless Networks 6 (2000) 375 379 375 An enhanced TCP mechanism Fast-TCP in IP networks with wireless links Jian Ma a, Jussi Ruutu b and Jing Wu c a Nokia China R&D Center, No. 10, He Ping Li Dong Jie,
GigE Vision cameras and network performance
GigE Vision cameras and network performance by Jan Becvar - Leutron Vision http://www.leutron.com 1 Table of content Abstract...2 Basic terms...2 From trigger to the processed image...4 Usual system configurations...4
High-Density Network Flow Monitoring
High-Density Network Flow Monitoring Petr Velan CESNET, z.s.p.o. Zikova 4, 160 00 Praha 6, Czech Republic [email protected] Viktor Puš CESNET, z.s.p.o. Zikova 4, 160 00 Praha 6, Czech Republic [email protected]
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University Napatech - Sharkfest 2009 1 Presentation Overview About Napatech
Monitoring high-speed networks using ntop. Luca Deri <[email protected]>
Monitoring high-speed networks using ntop Luca Deri 1 Project History Started in 1997 as monitoring application for the Univ. of Pisa 1998: First public release v 0.4 (GPL2) 1999-2002:
Virtualization: TCP/IP Performance Management in a Virtualized Environment Orlando Share Session 9308
Virtualization: TCP/IP Performance Management in a Virtualized Environment Orlando Share Session 9308 Laura Knapp WW Business Consultant [email protected] Applied Expert Systems, Inc. 2011 1 Background
Communicating with devices
Introduction to I/O Where does the data for our CPU and memory come from or go to? Computers communicate with the outside world via I/O devices. Input devices supply computers with data to operate on.
