A method for facilitating data communication comprising: receiving, at a first network node device , via a local network interface , a first tunnel data packet encapsulating a first payload according to a first tunneling protocol , a second tunnel data packet encapsulating a second payload according to the first tunneling protocol , and a third tunnel data packet encapsulating a third payload according to a second tunneling protocol that is different than the first tunneling protocol ; identifying a first tunnel session associated with the first tunnel data packet and a second tunnel session associated with the third tunnel data packet that is different than the first tunnel session; generating and maintaining a first packet context for the first tunnel session based on at least the received first tunnel data packet , and a second packet context for the second tunnel session based on at least the received third tunnel data packet ; determining, based on at least the first packet context and the second tunnel data packet , that the second tunnel data packet is for the first tunnel session; in response to the determination that the second tunnel data packet is for the first tunnel session, de-encapsulating the second payload from the second tunnel data packet in accordance with the first tunneling protocol ; in response to the determination that the third tunnel data packet is for the second tunnel session, de-encapsulating the third payload from the third tunnel data packet in accordance with the second tunneling protocol ; and submitting the second payload and the third payload to a common acceleration and optimization processor of the first network node device . receiving, at a first network node device , via a local network interface , a first tunnel data packet encapsulating a first payload according to a first tunneling protocol , a second tunnel data packet encapsulating a second payload according to the first tunneling protocol , and a third tunnel data packet encapsulating a third payload according to a second tunneling protocol that is different than the first tunneling protocol ; identifying a first tunnel session associated with the first tunnel data packet and a second tunnel session associated with the third tunnel data packet that is different than the first tunnel session; generating and maintaining a first packet context for the first tunnel session based on at least the received first tunnel data packet , and a second packet context for the second tunnel session based on at least the received third tunnel data packet ; determining, based on at least the first packet context and the second tunnel data packet , that the second tunnel data packet is for the first tunnel session; in response to the determination that the second tunnel data packet is for the first tunnel session, de-encapsulating the second payload from the second tunnel data packet in accordance with the first tunneling protocol ; in response to the determination that the third tunnel data packet is for the second tunnel session, de-encapsulating the third payload from the third tunnel data packet in accordance with the second tunneling protocol ; and submitting the second payload and the third payload to a common acceleration and optimization processor of the first network node device . <EOS>