The general idea of Listen is to monitor TCP flows, and to draw conclusions about the state of a route from this information. The forward and reverse routing paths between two end-hosts can be different. Thus we may observe packets that flow in only one direction. We say that a TCP flow is complete if we observe a SYN packet followed by a DATA packet, and we say that it is incomplete if we observe only a SYN packet and no DATA packet over a period of 2 minutes (which is longer than the SYN timeout period).
Consider that a router receives a route announcement for a prefix and wishes to verify whether prefix is reachable via the advertised route. In the simplest case, a router concludes that the prefix is reachable if it observes at least one complete TCP flow. On the other hand, the router cannot blindly conclude that a route is unreachable if it does not observe any complete connection. Incomplete connections can arise due to reasons other than just reachability problems. These include: (a) non-live destination hosts; (b) route changes during the connection setup of a single flow i.e. SYN and DATA packets traverse different routes. (c) port scanners generating SYN packets.
Under the assumption that port scanners are not present, detecting reachability problems would be easy. To deal with non-live destinations, a router should notice multiple incomplete connections to different distinct destination addresses (for a reasonable choice of ). The problem of route changes can be avoided by observing flows over a minimum time period . Hence, a router can conclude that a prefix is unreachable if during a period it does not observe a complete TCP flow where is defined as the maximum between: (a) the time taken to observe or more incomplete TCP flows with different destinations within prefix ; (b) a predefined time period .
The basic probing mechanism described above suffers from two forms of classification errors: (a) false negatives; (b) false positives. A false negative arises when a router infers a reachable prefix as being unreachable due to incomplete connections. A false positive arises when an unreachable prefix is inferred as being reachable. A malicious end-host can create false positives by generating bogus TCP connections with SYN and DATA packets without receiving ACKs. In Section 6.2, we show how to choose the parameters and to reduce the chances of incomplete connections causing false negatives.