A method comprising: establishing a transmission control protocol, TCP, connection between a source and a destination based on a TCP source port number and a TCP destination port number; generating a TCP shim header comprising the TCP source port number and the TCP destination port number; generating a plurality of TCP headers comprising a plurality of proxy port numbers and a shim port number that indicates the TCP shim header; and transmitting a plurality of packets comprising the plurality of TCP headers and the TCP shim header, wherein packets in the plurality of packets are routed along different paths between the source and the destination based on the plurality of proxy port numbers, wherein establishing the TCP connection comprises establishing a TCP connection represented by a four-tuple comprising a source Internet protocol, IP, address, a destination IP address, the TCP source port number, and the TCP destination port number, wherein establishing the TCP connection comprises transmitting a first packet from the source to the destination, the first packet comprising the TCP shim header and a first TCP header comprising a first proxy port number and the shim port number, wherein establishing the TCP connection comprises receiving a second packet at the source from the destination, the second packet comprising the TCP shim header and a second TCP header comprising a second port number selected by the destination and the shim port number. establishing a transmission control protocol, TCP, connection between a source and a destination based on a TCP source port number and a TCP destination port number; generating a TCP shim header comprising the TCP source port number and the TCP destination port number; generating a plurality of TCP headers comprising a plurality of proxy port numbers and a shim port number that indicates the TCP shim header; and transmitting a plurality of packets comprising the plurality of TCP headers and the TCP shim header, wherein packets in the plurality of packets are routed along different paths between the source and the destination based on the plurality of proxy port numbers, wherein establishing the TCP connection comprises establishing a TCP connection represented by a four-tuple comprising a source Internet protocol, IP, address, a destination IP address, the TCP source port number, and the TCP destination port number, wherein establishing the TCP connection comprises transmitting a first packet from the source to the destination, the first packet comprising the TCP shim header and a first TCP header comprising a first proxy port number and the shim port number, wherein establishing the TCP connection comprises receiving a second packet at the source from the destination, the second packet comprising the TCP shim header and a second TCP header comprising a second port number selected by the destination and the shim port number. wherein packets in the plurality of packets are routed along different paths between the source and the destination based on the plurality of proxy port numbers, wherein establishing the TCP connection comprises establishing a TCP connection represented by a four-tuple comprising a source Internet protocol, IP, address, a destination IP address, the TCP source port number, and the TCP destination port number, wherein establishing the TCP connection comprises transmitting a first packet from the source to the destination, the first packet comprising the TCP shim header and a first TCP header comprising a first proxy port number and the shim port number, wherein establishing the TCP connection comprises receiving a second packet at the source from the destination, the second packet comprising the TCP shim header and a second TCP header comprising a second port number selected by the destination and the shim port number.