什么是namespace?
namespace是命名空间,哪命名空间又是什么?
又是怎么做到的隔离?
初接触这些概念让人整的很懵,以为是很高深的东西,整明白了,其实就简单的很。
本文结合linux内核报文的发送流程带你感知一下namespace的长相,弄懂网络的namespace了,其它几种namespace自然就也懂了,毕竟几种namespace都是同类物种。
首先,我们看一下应用程序发送一个tcp报文的简易流程,如下图:
上图的函数调用过程就叫网络协议栈(只是发送过程,当然还有接收过程就不列了)。
在遥远的远古时代(大概是2004年前,内核版本2.6x的样子),那个时候大家都是吃大锅饭滴,所有人共用资源,比如进程A、进程B、进程C、进程D、进程E五个共用上图中的eth0网卡发报文。