[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ 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

Reviews

R. Clayton

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, providing a convenient and perhaps enlightening higher-level interface to the combined package, and protecting the package users and the network system from each other. NetDev is a software package designed to deal with the first and perhaps some of the second of these three problems. This paper provides a quick run-through of NetDev highlights, starting with motivation (sections 1 through 3). Section 4 describes the Java version of NetDev, including generous amounts of example code, and ends with some issues related to the C++ version of NetDev. Sections 5 through 7 describe some exemplary, implemented, and proposed NetDev projects. Readers unfamiliar with unifying and integrating network service interfaces in a programming language will find this paper to be a useful overview. Those familiar with such facilities may find this paper helpful as a quick, basic description of NetDev's capabilities and as a pointer to the NetDev Web site for more information and the NetDev system. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

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 06 Jan 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media