Andrei Vagin, Mike Rapoport and Pavel Emelyanov
Hands on
Tutorial
Since version 3.5 Linux kernel has support for so called TCP connection repair. This mode was implemented as a part of more general effort to support checkpoint-restore for Linux containers. Yet, TCP Repair has its own value and can be used for advanced load balancing and migration of a service between different containers. We are going to start with presenting a simple example to TCP Repair usage. We'll walk through the example and show how it is possible to create a two sockets that are already connected to each other without the need to create a server socket and to call listen(). Then we'll demonstrate the CRIU's libsoccr that allows checkpoint and restore of an active TCP connection. We are going to show how libsoccr[1] implements dumping state of an active TCP connection and how it can restore this state. We are going to conclude with a demo the illustrates how a container with active ssh connection is checkpointed on one host and restored on another host and the connection remains live after the restore. https://criu.org/Main_Page