A network controller of a wired network for facilitating roaming of a mobile wireless communications device between access points, the network controller being configured to facilitate wireless communications between the wireless communications device and a network device (206a, 206b) coupled to the wired network, the access points being configured for communications with the wireless communications device over a wireless network; the network controller comprising a network interface for communications over the wired network and a data processing system in communication with the network interface and having a protocol stack; the network interface being configured for communication with the access points over the wired network; the data processing system further comprising: an address cache having an entry for the wireless communications device; and means for updating the entry on the address cache based on a boot number and an address of the wireless communications device received from a current one of the access points, the boot number uniquely assigned to the current one of the access points, wherein the protocol stack comprises: (i) a first protocol layer configured to maintain a first virtual circuit between the network controller and the network device (206a, 206b); (ii) a second protocol layer configured to maintain a second virtual circuit between the network controller and the current one of the access points; and (iii) a third protocol layer in communication with the first and second protocol layers and configured to bridge communication between the virtual circuits, the first protocol layer comprising: means for reformatting message data from the wireless communications device into a format suitable for a destination network device (206a, 206b), and means for formatting a response message data from the destination network device (206a, 206b) in a format suitable for the wireless communications device, the formatted response message data being directed to an appropriate access point based on information on the address cache. an address cache having an entry for the wireless communications device; and means for updating the entry on the address cache based on a boot number and an address of the wireless communications device received from a current one of the access points, the boot number uniquely assigned to the current one of the access points, (i) a first protocol layer configured to maintain a first virtual circuit between the network controller and the network device (206a, 206b); (ii) a second protocol layer configured to maintain a second virtual circuit between the network controller and the current one of the access points; and (iii) a third protocol layer in communication with the first and second protocol layers and configured to bridge communication between the virtual circuits, means for reformatting message data from the wireless communications device into a format suitable for a destination network device (206a, 206b), and means for formatting a response message data from the destination network device (206a, 206b) in a format suitable for the wireless communications device, the formatted response message data being directed to an appropriate access point based on information on the address cache.