i3 can contact the first hop i3 server through TCP or UDP. Suppose UDP is used. To insert a trigger, a trigger-insert message is sent to the first hop i3 server. The trigger-insert-success or trigger-insert-failure message will be sent back by the i3 server responsible for storing the trigger, based on the Chord routing protocol. This i3 server may be different from the first hop server we initially sent the trigger-insert message to. A restrictive firewall may block the incoming trigger-insert-success and trigger-insert-failure UDP packets. To avoid this problem, use TCP to contact the first hop i3 server. TCP ensures that all replies come back through the first hop server. However, using TCP makes us lose the mobility functionality provided by i3. Mobility is probably of not much concern to a fixed machine located behind a NAT.