ACM Home Page
Please provide us with feedback. Feedback
NetDev: an object-oriented framework enabling network programming for students and researchers
Full text PdfPdf (218 KB)
Source Conference On Information Technology Education (formerly CITC) archive
Proceedings of the 6th conference on Information technology education table of contents
Newark, NJ, USA
SESSION: Strategies for teaching network programming table of contents
Pages: 113 - 119  
Year of Publication: 2005
ISBN:1-59593-252-6
Author
Peter H. Lutz  Rochester Institute of Technology, Rochester, NY
Sponsors
ACM: Association for Computing Machinery
SIGITE: ACM Special Interest Group on Information Technology Education
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 15,   Citation Count: 0
Additional Information:

abstract   references   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1095714.1095742
What is a DOI?

ABSTRACT

Pursuing network programming requires breaking through the barrier that most operating systems present at the transport layer. The reasons for the existence of this barrier are both security and convenience. The data link and network layers provide services such as address resolution and routing to the end user. In addition, users programming at these layers can easily spoof addresses, presenting a security risk.For the teacher and researcher, this barrier quickly becomes problematic. Networking students are familiar with the concepts at the lower layers and have a natural curiosity about the software that operates at those layers. Research into lower layer protocols necessitates pealing away the existing layers to replace them with experimental software. Implementing security software depends upon being able to intercept and sometimes inject packets at a low level in the hierarchy.An object-oriented framework for pursuing network programming at all layers above layer 1 is presented. This framework is realized as an open source project[5], providing an object-oriented class library that allows capturing packets at the lowest layers and injecting arbitrary packets into the network. It also includes a library of classes to model various protocol headers. Each class in this library includes the ability to parse a captured packet as well as build a packet from its component fields. This package has been implemented both in Java, using the JNI [14], and in C++.Uses for this framework are discussed, including a summary of a two M.S. projects that have been completed. Current work includes the development of ARP caching and basic routing table maintenance and manipulation. In addition, a number of packet editors exist that allow students to hand-craft packets for injection into the network. Future areas of exploration are outlined.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Ballard, D. Network Monitor. Unpublished M.S. Project Report, 2004.
 
2
Fernando, A., Kummerfeld, B., Fekete, A., and Hitchens, M. A New Dynamic Architecture for an Active Network, Presented at 3rd Workshop on Open Architectures and Network Programming (OPENARCH), (Tel Aviv, Israel, 2000).
 
3
Ibragimov, D. Java Programming Language API for Active Networks. Unpublished M.S. Project Report, 2004.
 
4
International Standards Organization. Information Technology - Open Systems Interconnection - Basic Reference Model - The Basic Model,.ISO/IEC 7498-1, 1994.
 
5
Lutz, P. Network Development Software. 2005, http://netdev.it.rit.edu.
 
6
McCanne, S., Leres, C., Jacobsen, V. Pcap - Packet Capture Library. August 1996, ftp://ftp.ee.lbl.gov/libpcap.tar.Z.
 
7
Mockapetris, J. Domain Names - Implementation and Specification. IETF RFC 1035, November 1987.
 
8
Myers, J. and Rose, M. Post Office Protocol - Version 3. IETF RFC 1939, May 1996.
 
9
 
10
Noer, G. Cygwin: A Free Win32 Porting Layer for Unix Applications. USENIX Windows NT Workshop Proceedings. (Seattle, WA, USA, August 1998).
 
11
Risso, F., Delgioanni, L., Varenni, G., Viano, P., Pai, N. WinPcap: The Free Packet Capture Library for Windows. 2005, http://www.winpcap.org/default.htm.
 
12
Schiffman, M. libnet - Network Packet Library. 2002, http://packetfactory.net/libnet.
 
13
 
14
Sun. Java Native Interface: Programmer's Guide and Specification. 2003, http://java.sun.com/docs/books/jni/.
 
15
Troll Tech. Qt 3.3 Whitepaper. http://www.trolltech.com/pdf/whitepapers/qt33-whitepaper-us.pdf.
 
16
Walker, B. OpenSSI Linux Cluster Project. 2003, http://openssi.org/ssiintro.pdf.
 
17
Wetherall, D., Guttag, J. and Tennenhouse, D. ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols. In Proceedings of the 1st Workshop on Open Architectures and Network Programming (OPENARCH), (San Francisco, CA, USA, April 1998), 117--129.


REVIEW

"R. Clayton : Reviewer"

Providing nonkernel code with direct access to the network below the transport layer raises a number of problems. Three of these problems involve organizing the separate subtransport reading and writing facilities into a coherent package, providin  more...