Programming the Network with Perl: A Book Review

 in
Clear writing and useful examples characterize this book for non-Perl experts looking to manipulate networks.

Title: Programming the Network with PerlAuthor: Paul BarryPublisher: John Wiley & Sons, Ltd.URL: glasnost.itcarlow.ie/~pnb/index.html

The focus of Programming the Network with Perl, by Paul Barry, is the network infrastructure: packets and protocols. Perl is the tool that he uses to illustrate and manipulate the network.

Mr. Barry is a lecturer on Computer Networking at the Institute of Technology, Carlow in Ireland. His book is based upon his experiences using Perl to teach students how to program and debug network communications. He uses Perl for this so that students can devote more time to understanding the network instead of working to understand a difficult programming language.

The book consists of six chapters and five appendices. Each chapter starts by explaining the purpose of the material that will be presented. Then a sample application is presented and refined as the chapter progresses with an explanation of why each change was made. Each chapter ends with a list of web and print resources for further study and a set of exercises to test the reader's understanding of the chapter.

The applications in the book make use of several Perl modules available from CPAN as the underpinnings for network manipulation. You don't have to be a Perl expert to use this book, however. This first chapter offers a brief but useful introduction to Perl for non-Perl programmers. In addition, the programs in the book showcase useful code, such as writing to a log file and forking a process.

The second chapter covers installing the Perl modules required to work with network packets and then explains how to build a network sniffer. The sniffer application undergoes several refinements until it becomes a full-fledged network diagnostic and logging tool.

The next two chapters cover network programming with sockets and common protocols. Example programs illustrate the differences between sending data with UDP and TCP transport mechanisms. Other programs make use of the HTTP, SMTP, NNTP and Telnet protocols.

Chapter 5 deals with using Perl to manage network devices with ICMP (Internet Control Message Protocol) and SNMP(Simple Network Management Protocol). The bulk of the chapter discusses SNMP and using Perl's Net::SNMP module.

In the final chapter Mobile Agents are discussed. Mobile Agents are a combination of program and state data that can move to a machine over the network, execute on that machine and then move again. This is different than the typical client-server method, where a program runs on one machine and requests data from other machines.

My few complaints with the book really don't have anything to do with the material itself. Mr. Barry provides short instructions for downloading and installing Perl modules by hand, but he doesn't mention using Perl's CPAN module to do this automatically. I had difficulty installing the modules by hand on my machine, but I was able to get everything installed using the CPAN module. Offering this method as well in the book might help other people.

I also had some difficulty matching the sample programs downloaded from the author's web site with the programs presented in the text. In the book the program listings are broken up by text, which can make them difficult to enter. Perhaps a single program listing with a caption that matches the filenames of the downloaded programs, or at least a standard header comment in the listings supplying the program name, would help.

Programming the Network with Perl is meant to teach a programmer how to program network applications and understand the underlying network transport mechanisms. Perl is the tool by which this is accomplished. Mr. Barry provides plenty of clear explanation for each topic that he covers.

Ralph Krause (www.netperson.net/~rkrause) is a writer, computer programmer and webmaster who lives in Michigan. He has been tinkering with computers for the past 20 years and with Linux for over three years.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: Programming the Network with Perl: A Book Review

Anonymous's picture

How does it compare to the book from L.D. Stein, "Network programming in Perl"?

Re: Comparing Books

barryp's picture

A (short) interview with Paul Barry is here, and this question comes up.

Compared to L. Stein's book??

barryp's picture

Please see the discussion on this very topic on the use.perl.org website. Thanks.

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState