def synchronize_simultaneous(self, node_ip):
        """
        Because adjacent mappings for certain NAT types can
        be stolen by other connections, the purpose of this
        function is to ensure the last connection by a passive
        simultaneous node is recent compared to the time for
        a candidate to increase the chance that the precited
        mappings remain active for the TCP hole punching
        attempt.
        """

        for candidate in self.factory.candidates[node_ip]:
            # Only if candidate is connected.
            if not candidate["con"].connected:
                continue

            # Synchronise simultaneous node.
            if candidate["time"] -\
                    self.factory.nodes["simultaneous"][node_ip]["time"] >\
                    self.challege_timeout:
                msg = "RECONNECT"
                self.factory.nodes["simultaneous"][node_ip]["con"].\
                    send_line(msg)
                return

        self.cleanup_candidates(node_ip)
        self.propogate_candidates(node_ip)