1. A method of traversing a network address translator, the method comprising: sending a request, by a first device, to connect to a second device; assuming a role of a listener by the first device in response to finding that a first network address translator (NAT) device connected to the first device is less restrictive than a second NAT device connected to the second device; in response to assuming the role of the listener by the first device, instructing the first NAT device to send first connection attributes associated with the first device to the second device prior to receiving second connection attributes associated with the second device from the second device, and instructing the first NAT device not to block the first device from receiving the second connection attributes from the second device; receiving the second connection attributes associated with the second device via the first NAT device; and instructing the first NAT device to establish a connection with the second device based on the first connection attributes and the second connection attributes, wherein the second connection attributes include a lower bound and an upper bound, the lower bound being a connection attribute through which a first transmission of a series of transmissions takes place and the upper bound being a connection attribute allotted for a last transmission of the series of transmissions.