skip to main content
10.1145/1095714.1095742acmconferencesArticle/Chapter ViewAbstractPublication PagesiteConference Proceedingsconference-collections
Article

NetDev: an object-oriented framework enabling network programming for students and researchers

Published: 20 October 2005 Publication History

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

[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]
Nichols, B., Butlar, D., Farrell, J. Pthreads Programming: A Posix Standard for Better Multiprocessing, O'Reilly and Associates, 1996.]]
[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]
Schiffman, M. Building Open Source Network Security Tools: Components and Techniques. Wiley Publishing Inc., Indianapolis, IN, 2003.]]
[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.]]

Cited By

View all
  • (2009)Sttyciar: A low-level object-oriented network programming frameworkAFRICON 200910.1109/AFRCON.2009.5308176(1-5)Online publication date: Sep-2009

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGITE '05: Proceedings of the 6th conference on Information technology education
October 2005
402 pages
ISBN:1595932526
DOI:10.1145/1095714
  • General Chair:
  • Rob Friedman
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 October 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. OSI model
  2. class library
  3. object oriented
  4. packet

Qualifiers

  • Article

Conference

SIGITE05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 176 of 429 submissions, 41%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2009)Sttyciar: A low-level object-oriented network programming frameworkAFRICON 200910.1109/AFRCON.2009.5308176(1-5)Online publication date: Sep-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media