A method of compressing data packet transmissions, comprising: gathering into a first set a plurality of contiguous data packets that are contiguous in a byte stream of a first single communication session between endpoints (102, 110) and that each include a header and a payload, the gathering comprising: determining whether any data packets of the first communication session between endpoints include a security header; if a data packet of the first communication session between endpoints includes a security header, then determining whether the data packet with the security header is an encrypted data packet or an authenticated data packet by attempting to validate the data packet using (322, 330) an assumed signature size; and if the data packet is determined to be an authenticated data packet, then including the data packet in the first set and if the data packet is determined to be an encrypted data packet, then forwarding the data packet through the first communication session between endpoints without compressing; grouping at least the payloads of the first set of contiguous data packets into at least one buffer; compressing as a single data set at least a plurality of the payloads of the at least one buffer to create a compressed data set; packetizing the compressed data set and headers of the contiguous data packets to form a second set of data packets, the second set of data packets having headers different from the headers of the first set; and transmitting the second set of data packets through a second single communication session between endpoints (104, 108). gathering into a first set a plurality of contiguous data packets that are contiguous in a byte stream of a first single communication session between endpoints (102, 110) and that each include a header and a payload, the gathering comprising: determining whether any data packets of the first communication session between endpoints include a security header; if a data packet of the first communication session between endpoints includes a security header, then determining whether the data packet with the security header is an encrypted data packet or an authenticated data packet by attempting to validate the data packet using (322, 330) an assumed signature size; and if the data packet is determined to be an authenticated data packet, then including the data packet in the first set and if the data packet is determined to be an encrypted data packet, then forwarding the data packet through the first communication session between endpoints without compressing; determining whether any data packets of the first communication session between endpoints include a security header; if a data packet of the first communication session between endpoints includes a security header, then determining whether the data packet with the security header is an encrypted data packet or an authenticated data packet by attempting to validate the data packet using (322, 330) an assumed signature size; and if the data packet is determined to be an authenticated data packet, then including the data packet in the first set and if the data packet is determined to be an encrypted data packet, then forwarding the data packet through the first communication session between endpoints without compressing; grouping at least the payloads of the first set of contiguous data packets into at least one buffer; compressing as a single data set at least a plurality of the payloads of the at least one buffer to create a compressed data set; packetizing the compressed data set and headers of the contiguous data packets to form a second set of data packets, the second set of data packets having headers different from the headers of the first set; and transmitting the second set of data packets through a second single communication session between endpoints (104, 108).