// Simple TCP connection without any data transfer // Arnaud Schils and Olivier Bonaventure, 2014 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 //TCP three-way handshake +0 < S 0:0(0) win 4000 +0 > S. 0:0(0) ack 1 <...> +.1 < . 1:1(0) ack 1 win 4000 +0 accept(3, ..., ...) = 4 // write ten bytes +0 write(4, ..., 10)=10 +0 > P. 1:11(10) ack 1 +.1 < . 1:1(0) ack 11 win 4000 // read two bytes +.1 < P. 1:3(2) ack 11 win 4000 +0 > . 11:11(0) ack 3 +.2 read(4,...,1000)=2 //Packetdrill closes connection gracefully +0 < F. 3:3(0) ack 11 win 4000 +0 > . 11:11(0) ack 4 //Kernel closes connection gracefully +0 close(4) = 0 +0 > F. 11:11(0) ack 4 +0 < . 4:4(0) ack 12 win 4000