Internet Applications Module Documentation¶
The goal of this module is to hold all the Internet-specific applications, and most notably some very specific applications (e.g., ping) or daemons (e.g., radvd). Other non-Internet-specific applications such as packet generators are contained in other modules.
The source code for the new module lives in the directory src/internet-apps
.
Each application has its own goals, limitations and scope, which are briefly explained in the following.
All the applications are extensively used in the top-level examples
directories. The users are encouraged to check the scripts therein to have a
clear overview of the various options and usage tricks.
V4Ping¶
This app mimics a “ping” (ICMP Echo) using IPv4. The application allows the following attributes to be set:
Remote address
Verbose mode
Packet size (default 56 bytes)
Packet interval (default 1 second)
Moreover, the user can access the measured RTT value (as a Traced Source).
Ping6¶
This app mimics a “ping” (ICMP Echo) using IPv6. The application allows the following attributes to be set:
Remote address
Local address (sender address)
Packet size (default 56 bytes)
Packet interval (default 1 second)
Max number of packets to send
Radvd¶
This app mimics a “RADVD” daemon. I.e., the daemon responsible for IPv6 routers advertisements. All the IPv6 routers should have a RADVD daemon installed.
The configuration of the Radvd application mimics the one of the radvd Linux program.
DHCPv4¶
The ns-3 implementation of Dynamic Host Configuration Protocol (DHCP) follows the specifications of RFC 2131 and RFC 2132.
The source code for DHCP is located in src/internet-apps/model
and consists of the
following 6 files:
dhcp-server.h,
dhcp-server.cc,
dhcp-client.h,
dhcp-client.cc,
dhcp-header.h and
dhcp-header.cc
Helpers¶
The following two files have been added to src/internet-apps/helper
for DHCP:
dhcp-helper.h and
dhcp-helper.cc
Tests¶
The tests for DHCP can be found at src/internet-apps/test/dhcp-test.cc
Examples¶
The examples for DHCP can be found at src/internet-apps/examples/dhcp-example.cc
Scope and Limitations¶
The server should be provided with a network address, mask and a range of address for the pool. One client application can be installed on only one netdevice in a node, and can configure address for only that netdevice.
The following five basic DHCP messages are supported:
DHCP DISCOVER
DHCP OFFER
DHCP REQUEST
DHCP ACK
DHCP NACK
Also, the following eight options of BootP are supported:
1 (Mask)
50 (Requested Address)
51 (Address Lease Time)
53 (DHCP message type)
54 (DHCP server identifier)
58 (Address renew time)
59 (Address rebind time)
255 (end)
The client identifier option (61) can be implemented in near future.
In the current implementation, a DHCP client can obtain IPv4 address dynamically from the DHCP server, and can renew it within a lease time period.
Multiple DHCP servers can be configured, but the implementation does not support the use of a DHCP Relay yet.