52 Linux网络虚拟化(上):信息是如何通过网络传输被另一个程序接收到的?
你好,我是周志明。从这节课开始,我会用两讲的时间带你学习虚拟化网络方面的知识点。
如果不加任何限定,“虚拟化网络”其实是一项内容十分丰富,研究历史十分悠久的计算机技术,它完全不依附于虚拟化容器,而是作为计算机科学中一门独立的分支。像是网络运营商经常提起的“网络功能虚拟化”(Network Function Virtualization,NFV),还有网络设备商和网络管理软件提供商经常提起的“软件定义网络”(Software Defined Networking,SDN)等等,这些都属于虚拟化网络的范畴。
不过,对于我们这样普通的软件开发者来说,一般没有什么必要去完全理解和掌握虚拟化网络,因为这需要储备大量开发中不常用到的专业知识,而且还会消耗大量的时间成本。
所以在课程里,我们讨论的虚拟化网络是狭义的,它特指“如何基于Linux系统的网络虚拟化技术来实现的容器间网络通信”,更通俗一点说,就是只关注那些为了相互隔离的Linux网络名称空间可以相互通信,而设计出来的虚拟化网络设施。
另外我还要说明的是,在这个语境中的“虚拟化网络”就是直接为容器服务的,说它是依附于容器而存在的也完全可行。所以为了避免混淆,我在课程中会尽量回避“虚拟化网络”这个范畴过大的概念,而是会以“容器间网络”和“Linux网络虚拟化”为题来展开讲解。