Figura 38 Incoterm de exportación de ACAF GROUP S.A.C.
6.9. Presupuesto de Ingresos
The 2ACK scheme is a network-layer technique to detect misbehaving links and to mitigate their effects. It can be implemented as an add-on to existing routing protocols for MANETs, such as DSR. The 2ACK scheme detects misbehavior through the use of a new type of acknowledgment packet, termed 2ACK. A 2ACK packet is assigned a fixed route of two
S ... ... D
Data traffic direction
N1 N2 N3
2ACK:N3−N2−N1
Figure 5.1: The 2ACK Scheme
hops (three nodes), in the opposite direction of the data traffic route.
Figure 5.1 illustrates the operation of the 2ACK scheme. Suppose that N1, N2, and N3
are three consecutive nodes (triplet) along a route. The route from a source node, S, to a destination node, D, is generated in the Route Discovery phase of the DSR protocol. When N1 sends a data packet to N2 and N2 forwards it to N3, it is unclear to N1 whether N3
receives the data packet successfully or not. Such an ambiguity exists even when there are no misbehaving nodes. The problem becomes much more severe in open MANETs with potential misbehaving nodes.
The 2ACK scheme requires an explicit acknowledgment to be sent by N3 to notify N1 of
its successful reception of a data packet: when nodeN3 receives the data packet successfully,
it sends out a 2ACK packet over two hops to N1 (i.e., the opposite direction of the routing
path as shown), with the ID of the corresponding data packet. The triplet [N1 →N2 →N3] is
derived from the route of the original data traffic. Such a triplet is used byN1 to monitor the
link N2 →N3. For convenience of presentation, we term N1 in the triplet [N1 →N2 → N3]
as the 2ACK packet receiver or the observing node and N3 as the 2ACK packet sender.
Such a 2ACK transmission takes place for every set of triplets along the route. Therefore, only the first router from the source will not serve as a 2ACK packet sender. The last router just before the destination and the destination will not serve as 2ACK receivers.1
1
The 2ACK packet is different from the selective acknowledgement (SACK) [25] in TCP. The SACK packets are used by the TCP data receiver to acknowledge non-contiguous blocks of data that are not covered by the Cumulative Acknowledgement field. A 2ACK packet, on the other hand, acknowledges the received data packet. In addition, the SACK packets are sent by the data traffic receiver, but the 2ACK packets are sent by the third node in every set of triplets along the traffic route.
Next Hop Receiver
Second Hop Packets 2ACK packets List of data Receiver Transmitted Missed packet IDs
LIST
N2 N3 Cpkts Cmis
Figure 5.2: Data structure maintained by the observing node
To detect misbehavior, the 2ACK packet sender maintains a list of IDs of data packets that have been sent out but have not been acknowledged. For example, after N1 sends a
data packet on a particular path, say, [N1 → N2 → N3] in Fig. 5.1, it adds the data ID
to LIST (refer to Fig. 5.2, which illustrates the data structure maintained by the observing node), i.e., on its list corresponding toN2 →N3. A counter of forwarded data packets, Cpkts,
is incremented simultaneously.
At N1, each ID will stay on the list for τ seconds, the timeout for 2ACK reception. If
a 2ACK packet corresponding to this ID arrives before the timer expires, the ID will be removed from the list. Otherwise, the ID will be removed at the end of its timeout interval and a counter calledCmis will be incremented.
When N3 receives a data packet, it determines whether it needs to send a 2ACK packet
to N1. In order to reduce additional routing overhead caused by the 2ACK scheme, only
a fraction of the data packets will be acknowledged via 2ACK packets. Such a fraction is termed the acknowledgment ratio, Rack. By varying Rack, we can dynamically tune the
overhead of 2ACK packet transmissions.
Node N1 observes the behavior of link N2 → N3 for a period of time termedTobs. At the
end of the observation period,N1 calculates the ratio of missing 2ACK packets asCmis/Cpkts
and compares it with a threshold Rmis. If the ratio is greater than Rmis, link N2 → N3 is
declared misbehaving and N1 sends out an RERR (or the misbehavior report) packet. The
data structure of RERR is shown in Fig. 5.3. Since only a fraction of the received data packets are acknowledged, Rmis should satisfy Rmis > 1−Rack in order to eliminate false
Error Type
2ACK Report
Misbehavior (Misbehaving report sender) S
Report receiver Misbeheving Link
Reserved Destination Type−specific information Type
error source address Salvage
len Option Opt data
N1 N2−> N3
Figure 5.3: Data structure of the RERR packet (the misbehavior report)
Each node receiving or overhearing such an RERR marks the link N2 → N3 as misbe-
having and adds to the blacklist of such misbehaving links that it maintains. When a node starts its own data traffic later, it will avoid using such misbehaving links as a part of its route.
The 2ACK scheme can be summarized in the pseudo-code provided in Appendix for the 2ACK packet sender side (N3) and the observing node side (N1).