As the popularity of container technology grows, many applications are being
developed, deployed and managed as groups of containers that communicate
among each other to deliver the desired service to users.  However, current
container networking solutions have either poor performance or poor portability,
which undermines the advantages of containerization.  In this paper, we propose
FreeFlow, a container networking solution which achieves both high performance
and good portability. FreeFlow leverages two insights: first, in most container
deployments a central entity (i.e. the orchestrator) exists that is fully aware
of the location of each container. Second, strict isolation is unnecessary
among containers belonging to the same application. Leveraging these two
observations allows FreeFlow to use a variety of technologies such as shared
memory and RDMA to improve network performance (higher throughput, lower
latency, and less CPU overhead), while maintaining full portability — and do
all this in a manner that is completely transparent to application developers.