// Test reorder pkts received out of order, receiver sending correct ACK. // Establish a connection. 0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 +0 bind(3, ..., ...) = 0 +0 listen(3, 1) = 0 +0 < S 0:0(0) win 32792 +0 > S. 0:0(0) ack 1 <...> +.1 < . 1:1(0) ack 1 win 32792 +0 accept(3, ..., ...) = 4 // receive 3 pkts out of order +0 < . 1:1001(1000) ack 1 win 32792 +0 > . 1:1(0) ack 1001 +0 < . 2001:3001(1000) ack 1 win 32792 +0 > . 1:1(0) ack 1001 +0.1 < . 1001:2001(1000) ack 1 win 32792 // reorder pkts and ack them +0.1 ~ +0.2 > . 1:1(0) ack 3001 // read received data +0 read(4, ..., 3000) = 3000