In response to the increasing cost and performance demands associated with the growing development of the Internet and the continuous emergence of new standards in the networking industry, alternative strategies to application-specific solutions have to beconsidered. Network Processors are specialized programmable engines, optimized for communication tasks, able to provide high throughput while performing advanced networking functions such as error recovery, quality of service, encryption, dynamic routing and bandwidth management. Compared to old approaches in networking products design like high- performance CPU or ASIC, Network Processors combine wire-speed processing capabilities with a high flexibility to support full customization to various applications and protocols. This leading advantage make Network Processors naturally emerge as the implementation platform of choice for next generation networkingproducts. In this presentation, we'll first go over a general description of Network Processors, explaining the types of communication tasks handled by these devices. We will then detail the data flow through a Network Processor. Finally, we will characterize some aspects of a generic efficient architecture and introduce the solution currently implemented by several students in EE104 and by students completing their senior and master's project.