Tuesday, October 7, 2008

ETX

This paper puts forth a relatively simple metric, and then measures it against the current metric, which is number of hops. It then discusses open issues.

The problem with number of hops is twofold: 1) links can be asymmetric, causing transmissions to work just fine in one direction, whereas ACKs in the other direction will not be received and 2) this metric chooses longer, less reliable links over shorter, more reliable links. To solve this, each link is given a reliability (which is directed, to avoid the asymmetry problem), which is based on the number of packets it receives from its neighbors within a certain window (ten seconds), with packets spaced at one per second. The likelihood that a packet will cross a certain link is the product of the reliabilities for each direction. The expected number of transmissions of a packet is therefore 1/(product of probabilities).

This metric is then used in both DSDV and DSR, and the results are compared. The main measure is goodput for point-to-point connections going at maximum speed. This is a somewhat troublesome metric, since TCP doesn't necessarily go at maximum speed (or UDP either for that matter), and there are usually multiple network users. Regardless, the result is that the ETX metric does not perform significantly worse than number of hops, and performs much better for some links for which number of hops got essentially 0 goodput.

There are several outstanding problems with ETX. First, the reliability of a given link for packets of the size sent to measure reliability is not necessarily the same for either larger or smaller packets. This causes ETX to overestimate the reliability for data paths, and underestimate reliability for ACK paths.

It might be possible to keep a histogram of reliability scores rather than a simple running average. Test packets could be of random length between the size of an ack and the max packet size. The histogram might then be used to determine transmission ratios for varying packet lengths. The histogram could be as simple as (small, medium, large).

No comments: