Rekindling network protocol innovation with user-level stacks