In this section, we discuss some important security issues and the overhead of ROAM. We then discuss the possibility of using ROAM to exchange only control information, while data packets are forwarded via IP. Finally, we discuss the possibility to replace the ROAM proxy with a NAT-like solution, and some deployment issues.
Eavesdropping. As discussed in Section 4.2.2,
supports multicast by allowing any host in the network to add a
trigger with the same identifier as another host's trigger. However,
this allows any host to eavesdrop on another host's communications
if it knows that host's trigger.
To avoid this problem, uses public key cryptography to protect
against eavesdropping [6]. When initiating a
connection,
encrypts its private trigger
under the public
key of
, before sending it to
via
's public trigger
.
Since
's private trigger is encrypted, a malicious user
cannot
impersonate
even if it inserts a trigger
into
. A potential disadvantage of this technique is it assumes
the existence of a Public Key Infrastructure.10
An alternative solution would be to use an EXCLUSIVE_ID flag in the trigger headers to preclude other hosts from inserting triggers with the same identifier. Since private triggers are assumed to be secret, they do not need to have the EXCLUSIVE_ID flag set. This allows applications to use the multicast functionality via private triggers (see Section 4.2.2).
Although setting the EXCLUSIVE_ID flag ensures that no one can eavesdrop on communication destined to a public trigger, an attacker can wait for a host to fail to refresh its public trigger, and insert its own trigger with the same identifier. As a result, all packets destined to that identifier will be received by the attacker. This attack is similar to hijacking a DNS entry. If an end-host wants to eliminate this attack, it may use again cryptography to avoid impersonation by an attacker.
Overhead.
Table 2 lists the overhead of various routing
schemes.
A standard web browser
using IP and TCP or an IP telephony application using IP, UDP, and RTP
has a total header size of 40 bytes. Mobile IP needs 20 additional
bytes for IP in IP encapsulation. The size of header in the
current implementation is 48 bytes (of which 32 bytes is the
ID). The proxy header has a minimum size of one byte (see
Figure 7). The encapsulating IP and UDP headers
total 28 bytes. Thus, the ROAM total header size is 28 (encapsulating
packet) + 1 (proxy) + 48 (
header) + 40 (original packet) = 117. When
private IDs are piggybacked in data packets (typically
only in the beginning of a connection), the overhead increases by
another 32 bytes.
However, header compression can
reduce packet header overhead by a factor of 5 [35].
If we compress the 89
bytes of header after the encapsulating header (which must
remain uncompressed to route through the Internet), then we reduce the
total header size to an average of 45.8 bytes. This only requires
modifications to the proxy and server software.
Table 2 shows that even for a 32 byte IP telephony payload, the ROAM compressed header overhead is only 18% greater than that of standard TCP/IP. On a hypothetical 5ms latency, 32Kb/s link, the net difference in transmission delay is 5%. This overhead decreases as packet sizes, latencies, and bandwidths increase.
Another source of overhead is the user level proxy which causes each packet to traverse the OS-user level boundary twice. This can reduce the maximum throughput that can be achieved by the end host. However, that maximum is unlikely to be reached even in a relatively high bandwidth wireless network like 802.11b (11Mb/s). If this becomes an issue, the proxy can be eliminated at the cost of implementing its functionality in the kernel.
Control plane indirection. We assume that all packets are
transmitted via . For most applications we expect the indirection
overhead to be acceptable, but there might be applications for which
achieving the highest possible throughput and lowest latency is
critical. For those applications, one can implement a solution
similar to TCP Migrate, where
is used only to exchange the new IP
addresses when end-hosts move. In comparison to the basic TCP Migrate
solution, such an approach would allow simultaneous mobility and would
avoid overloading the DNS.
Home proxy. We assume that each end-host runs a ROAM proxy. In some cases, the robustness and efficiency this provides may not be worth the management and deployment costs. For example, during initial deployment, few of a MH's CHs will have ROAM proxies. An alternative is to deploy a home proxy for a MH that implements the functionality of the ROAM proxy for all of its non-ROAM CHs. This home proxy is analogous to the HA in MIP in that it is only used for hosts that cannot use a more efficient routing method.
Deployment issues. Our initial design assumes that ROAM uses a
shared overlay infrastructure (). The most likely deployment
strategy of such an infrastructure is still unclear. Options include a
single provider for-profit service (like content distribution
networks), a multi-provider for-profit service (like ISPs), and a
cooperatively managed nonprofit infrastructure (like Gnutella). While
full deployment is always hard to achieve, our solution is
incrementally deployable; if the efficiency and robustness are not a
concern, then it could start as a single server. Moreover, it does
not require the cooperation of ISPs, so third parties can provide this
service.