A method of managing connections in a communication network comprising a first entity, a second entity, a third entity that is intermediate to the first entity and the second entity, and a fourth entity, wherein the method is implemented by an operating system kernel module running on a processing system at the fourth entity, the method comprising: receiving, at a first hook in a pre-routing or input chain of a networking subsystem of the operating system running on the processing system, a first packet that is, or is a copy of, a packet sent from a transport layer protocol first socket at the first entity in the communication network to the second entity in the communication network; receiving, at the first hook, a second packet that is, or is a copy of, a packet sent from a transport layer protocol second socket at the second entity to the first entity in response to the second entity receiving the packet or a copy of the packet sent from the transport layer protocol first socket, wherein the first packet and the second packet are received from the third entity; using the first packet and the second packet in a process to establish a transport layer protocol third socket and a transport layer protocol fourth socket at the fourth entity in the communication network, wherein the transport layer protocol third socket is for communicating with the transport layer protocol first socket at the first entity and the transport layer protocol fourth socket is for communicating with the transport layer protocol second socket at the second entity; establishing header field re-valuing information based at least in part on first header field value information obtained from the first packet and/or second header field value information obtained from the second packet; re-valuing one or more header field values in a first subsequent received packet, the first subsequent packet received subsequent to the first and second packets, the re-valuing being based on the header field re-valuing information, the re-valuing being subsequent to the first subsequent packet being output from the transport layer protocol third socket or the transport layer protocol fourth socket, wherein the first subsequent packet is received at a second hook in a post-routing chain or output chain of the networking subsystem of the operating system prior to the re-valuing of the one or more header field values in the first subsequent received packet and wherein the re-valuing of the one or more header field values in the first subsequent received packet comprises re-sequencing one or more packet numbers. receiving, at a first hook in a pre-routing or input chain of a networking subsystem of the operating system running on the processing system, a first packet that is, or is a copy of, a packet sent from a transport layer protocol first socket at the first entity in the communication network to the second entity in the communication network; receiving, at the first hook, a second packet that is, or is a copy of, a packet sent from a transport layer protocol second socket at the second entity to the first entity in response to the second entity receiving the packet or a copy of the packet sent from the transport layer protocol first socket, wherein the first packet and the second packet are received from the third entity; using the first packet and the second packet in a process to establish a transport layer protocol third socket and a transport layer protocol fourth socket at the fourth entity in the communication network, wherein the transport layer protocol third socket is for communicating with the transport layer protocol first socket at the first entity and the transport layer protocol fourth socket is for communicating with the transport layer protocol second socket at the second entity; establishing header field re-valuing information based at least in part on first header field value information obtained from the first packet and/or second header field value information obtained from the second packet; re-valuing one or more header field values in a first subsequent received packet, the first subsequent packet received subsequent to the first and second packets, the re-valuing being based on the header field re-valuing information, the re-valuing being subsequent to the first subsequent packet being output from the transport layer protocol third socket or the transport layer protocol fourth socket, wherein the first subsequent packet is received at a second hook in a post-routing chain or output chain of the networking subsystem of the operating system prior to the re-valuing of the one or more header field values in the first subsequent received packet and wherein the re-valuing of the one or more header field values in the first subsequent received packet comprises re-sequencing one or more packet numbers.