Parallel Programming for an Internet Device

Devices that connect the worldwide network of unique addressed devices to local networks are known as devices at the edge of the network. More generally, you can create subnetworks yourself that have devices on their edges to hook to other subnetworks. Devices at the edge of the network perform sophisticated processing in order to handle the packets coming in over the different subnetworks they aggregate. Examples of edge devices are appliances at the frontend of a data center that perform functions such as XML acceleration, load balancing, or other content processing, as well as devices at the entry point of an enterprise that perform security-related functions such as firewalls, intrusion detection, and virus checking. Designing network-edge software is very complex today and consumes nontrivial processing power. With the advent of multiple-core processors, we can address the processing needed with a hybrid model of both parallel packet processing and pipelined packet processing. We illustrate the latter with a Threading Building Blocks example. For the sake of the example, we will assume a small network (Figure 11-19) such as you might find in a home or small business, and we will have only special processing for file transfer protocol (FTP) packets. This simplified example will allow us to discuss all the key points of how to use Threading Building Blocks, and you can extend it to process many more types of packets.

The packet processing ...

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.