"copy into peer's" "encrypt in place" +------------------+ "send buffer" +---------------+ "(no copy)" +---------------+ | "receive buffer" +----------------->| "send buffer" +------------------>| "encrypted" | | | | | | "send buffer" | +------------------+ +---------------+ +---------------+ ^ | | "read() from file" "write() to socket" | | "(copy)" "user space" "(copy)" | - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - | "kernel space" | | v +-------+-------------+ +-----------------+ | "kernel page cache" | | "socket kernel" | | | | "buffer" | +---------------------+ +-----------------+