Abstract—A new network application programming framework,
called Sttyciar, is designed and implemented. Sttyciar is
developed to be re-usable and easily extensible, wrapping the
procedural pcap library to provide an intuitive object-oriented
interface to the receiving and transmitting functionality of
network interfaces attached to a host computer. The framework’s
layered architecture, which includes features such as buffering
and statistic calculation, is detailed and a performance analysis
on its capabilities is carried out. The framework is shown to be
capable of operating with a throughput in excess of 100 Mbps,
but this performance is dependent on the speed and architecture
of the computer. The use of multi-threading and Sttyciar’s ability
to scale to processors with multiple cores is also outlined.
Potential performance and structure improvements are identified
but the framework is found to be suitable to support applications
operating in live networking environments.
Index Terms—networking, object-oriented programming
I. INTRODUCTION
Many object-oriented (OO) languages use sockets to provide
software developers with the ability to produce distributed or
network-aware applications. However, sockets limit access to
only the transport layer of the Transmission Control Protocol/Internet
Protocol (TCP/IP) stack. For most applications
this is adequate, especially since the purpose of the transport
layer is to support the application layer which does not need
to know the details of how packets traverse the network – a
logical end-to-end relationship is all that is required.
In certain cases where software developers require access
to lower TCP/IP layers, transport layer access is not adequate.
For example, firewall software tools which inspect data-link
layer frames and the headers and payload contained in them
need direct access to packets as they are delivered to a network
interface card and need to be able to send packets out another
interface once inspected.
An OO application programming interface (API) can benefit
software developers by presenting a uniform interface into
the lower layers of the TCP/IP stack across different operating
systems (OS). The fact that data is encapsulated and
decapsulated from various packet structures as it traverses
these lower layers, means that the TCP/IP stack lends itself
very well to being represented using OO concepts. Network
interface hardware, addresses and the encapsulation of packets
can be represented in a software environment with classes