1. A method of sending data through a network from a first computing device to a second computing device, the computing devices adhering to a packet-based network protocol, the method comprising:
establishing a connection between the first computing device and the second computing device for a session according to the network protocol;
defining a packet header template having a plurality of static fields filled with static values valid for all packets sent during the session and variable fields that can acquire packet-dependent values for different packets sent during a session;
creating a packet header based on the header template by defining, in a central processing unit, at least one value of a variable field and by reusing the static values for the static fields;
pre-pending the packet header to payload data to form a packet; and
sending the packet to the second computing device.
2. The method of claim 1, wherein the network comprises a wireless network.
3. The method of claim 1, wherein the protocol comprises TCPIP and wherein a variable field of the header includes a value of a sequence number identifying the packet within a sequence of a plurality of packets sent during the session.
4. The method of claim 1, wherein the protocol comprises TCPIP and wherein a variable field of the header includes a value of an acknowledgement number for the packet, the acknowledgement number corresponding to a value of a sequence number of an acknowledgement packet that the first computing device expects to receive from the second computing device in response to the sending of the packet to the second computing device.
5. The method of claim 1, wherein the protocol comprises TCPIP and wherein the static fields include a source field, a destination field, and a window size field, wherein the variable fields include a checksum field, and the method further comprising performing a checksum analysis on the packet and adding the result of the checksum analysis to the checksum field.
6. The method of claim 1, wherein the protocol comprises TCPIP and further comprising exporting from a cache the at least one value of a variable field defined by the central processing unit to a memory to associate the at least one value with the static values for the packet header.
7. A method of sending a plurality of data packets through a network from a first computing device to a second computing device, the computing devices adhering to a TCPIP protocol, the method comprising:
establishing a connection with the second computing device for a session according to the network protocol;
defining a packet header template having static fields filled with static values valid for all packets sent during the session and variable fields that can acquire packet-dependent values for different packets of the plurality of data packets sent during a session, wherein the variable fields include a sequence number field and an acknowledgement number field;
assigning sequence number values with a central processing unit to the sequence number fields of the header template for each of the plurality of packets;
assigning acknowledgement number values with the central processing unit to the acknowledgement number fields of the header template for each of the plurality of packets;
pre-pending packet header templates to payload data to form the plurality of packets; and
sending data packets to the second computing device.
8. The method of claim 7, further comprising:
storing at least some data packets in a buffer;
receiving acknowledgement packets from the second computing device;
determining whether a received acknowledgement packet includes an acknowledgement number that precedes the sequence number of the most recently sent packet, and if it does, resending at least one previously-sent data packet.
9. The method of claim 7, wherein the network is a wireless network.
10. The method of claim 7, further comprising, after appending the header template to the data payload and before sending the packet, copying the packet directly to from an application space buffer to a network interface device.
11. The method of claim 7, wherein the first computing device is a settop gateway and the second computing device is a settop client, and wherein both computing devices are located within the same building.
12. The method of claim 7, wherein the static fields comprise a source field, a destination field, a window size field, wherein the variable fields include a checksum field, and the method further comprising:
performing a checksum analysis on packets of the plurality of packets; and
adding the result of the checksum analysis to the checksum field.
13. The method of claim 7, wherein the protocol comprises TCPIP and further comprising exporting from a cache the at least one value of a variable field defined by the central processing unit to a memory to associate the at least one value with the static values for the packet header.
14. A computing-device for sending a plurality of data packets through a network from a first computing device to a second computing device, the computing devices adhering to a TCPIP protocol, the computing-device comprising:
a central processing unit;
a network interface device; and
a memory for storing computer-executable instructions for:
causing the network interface device to establish a connection with the second computing device for a session according to the protocol;
causing the central processing unit to define a packet header template and store the header template in memory, the packet header template has having static fields filled with static values valid for all packets sent during the session and variable fields that can acquire packet-dependent values for different packets of the plurality of data packets sent during a session, wherein the variable fields include a sequence number field and an acknowledgement number;
causing the central processing unit to assign sequence number values to the sequence number fields of the header template for each of the plurality of packets;
causing the central processing unit to assign acknowledgement number values to the acknowledgement number fields of the header template for each of the plurality of packets;
causing the central processing unit to pre-pend packet header templates to payload data to form the plurality of packets; and
causing the network interface device to send data packets to the second computing device.
15. The computing-device of claim 14, wherein the memory further comprises computer-executable instructions for:
causing the central processing unit to store at least some data packets in a buffer;
causing the network interface device to process the reception of acknowledgement packets from the second computing device; and
causing the central processing unit to determine whether a received acknowledgement packet includes an acknowledgement number that precedes the sequence number of the most recently sent packet, and if it does, to resend at least one previously-sent data packet.
16. The computing-device of claim 14, wherein the network is a wireless network.
17. The computing-device of claim 14, wherein the central processing unit, the memory, and the network interface device are located within a system on a chip.
18. The computing-device of claim 14, wherein the memory further comprises computer-executable instructions for causing the central processing unit to, after appending the header template to the data payload and before sending the packet, copy the packet directly to from an application space buffer to the network interface device.
19. The computing-device of claim 14, wherein the computing device is a settop gateway and the second computing device is a settop client, and wherein both computing devices are located within the same building.
20. The computing-device of claim 14, wherein the static fields comprise a source field, a destination field, a window size field, wherein the variable fields include a checksum field, and wherein the memory further comprises computer-executable instructions for causing the central processing unit to:
perform a checksum analysis on packets of the plurality of packets; and
add the result of the checksum analysis to the checksum field.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of shutting down ventilation in rooms of a multi-unit building, comprising:
detecting a shutdown code;
generating a command in response to the shutdown code;
receiving the command at gateway devices associated with the rooms;
transmitting the commands from the gateway devices;
receiving the commands at room environmental control devices associated with the rooms; and
processing the command at the room environmental control devices to effect a shutdown of ventilation generated by room environmental devices associated with the room environmental control devices.
2. The method of claim 1, wherein said detecting the shutdown code comprises reading the shutdown code from a key card at an electronic door lock.
3. The method of claim 2, wherein said detecting the shutdown code further comprises transmitting the shutdown code from the electronic lock to one of the gateway devices and transmitting the shutdown code from one of the gateway devices to a server.
4. The method of claim 3, wherein said generating the command in response to the shutdown code comprises generating the command at the server and transmitting the command to the gateway devices.
5. The method of claim 1, further comprising receiving the command at a central ventilation controller and processing the command at the central ventilation controller to effect a shutdown of a main ventilation system of the multi-unit building.
6. The method of claim 1, further comprising receiving the commands at in-room communication devices and alerting in-room occupants of the shutdown by way of the in-room communication devices.
7. A method of shutting down a service in rooms of a multi-unit building, comprising:
inserting a card key into any of a plurality of electronic door locks of the multi-unit building, the card key including a shutdown code;
detecting the shutdown code at the electronic lock and generating a signal in response;
receiving the signal at a first gateway device associated with the electronic lock;
transmitting the signal from the first gateway device to a central server of the multi-unit building;
generating a shutdown command at the server and transmitting the command to gateway devices associated with the rooms of the multi-unit building; and
effecting a shutdown of the service in the rooms of the multi-unit building in response to receiving the shutdown command at the gateway devices.
8. The method of claim 7, wherein said effecting the shutdown comprises:
transmitting the shutdown command from the gateway devices to control devices associated with the rooms and associated with operation of the service; and
processing the shutdown command at the control devices to shutdown the service.
9. The method of claim 7, wherein said service comprises at least one of room environmental controls, television, internet, and open window treatments.
10. The method of claim 8, further comprising transmitting the shutdown command from the gateway devices to in-room communication devices and alerting in-room occupants of the shutdown by way of the in-room communication devices.
11. The method of claim 7, further comprising the server transmitting a signal external to the multi-unit building in response to the shutdown command.
12. The method of claim 11, wherein the external signal is transmitted in response to the shutdown command by a router to the internet, to other multi-unit buildings, or to emergency response personnel.
13. The method of claim 7, wherein, in response to receiving the signal from the gateway device, the central server generates a building-wide shutdown command for effecting the shutdown of the service throughout the multi-unit building.
14. A system for shutting down a service in rooms of a multi-unit building, the system comprising:
a key card including a shutdown command;
electronic locks associated with the rooms of the multi-unit building and configured to read the shutdown code and further configured to transmit a signal in response to the shutdown code;
gateway devices associated with the rooms and configured to receive the signal from the electronic locks and further configured to transmit the signal;
a central server in communication with the gateway devices and configured to receive the signal and generate a shutdown command in response to the signal;
wherein the gateway devices are disposed to effect a shutdown of the service in the rooms of the multi-unit building in response to the shutdown command.
15. The system of claim 14, further comprising service control devices associated with the rooms of the multi-unit building, wherein the server is configured to send the shutdown command to the gateway devices for transmission to the service control devices, wherein the service control devices are configured to process the shutdown command to effect the shutdown of the service.
16. The system of claim 14, wherein the server is further configured to send a building-wide shutdown command in response to the signal to effect the shutdown of the service throughout the multi-unit building.
17. The system of claim 14, wherein the service comprises at least one of room environmental controls, television, internet, and open window treatments.
18. The system of claim 16, wherein the room environmental controls comprise at least one of a Fan Coil Unit, a Heating Ventilation and Air Conditioning system, a Packaged Terminal Air Conditioner, and an Energy Management System.
19. The system of claim 14, further comprising communication devices disposed in the rooms of the multi-unit building in communication with the gateway devices, wherein the gateway devices are configured to send a shutdown command to the communication devices, and wherein, in response to the shutdown command, the communication devices alert in-room occupants of the shutdown.
20. The system of claim 14, wherein the service comprises air ventilation within the rooms of the multi-unit building, the system further comprising energy management control devices disposed in the rooms, wherein the gateway devices are disposed to transmit the shutdown command to the energy management control devices which are configured to process the command and effect a shutdown of the room ventilation.