本文讲一点网络知识,架构师和开发工程师还是需要了解一些网络知识的,尤其分布式系统和云计算已经非常流行的今天,对网络的使用和规划越来越重要。
1.OSI网络模型
OSI网络参考模型是ISO的建议,它是为了使各层上的协议国际标准化而发展起来的。OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model)。这一参考模型共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
2.TCP/IP网络模型
TCP/IP模型是首先由ARPANET所使用的网络体系结构。TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。这个体系结构在它的两个主要协议出现以后被称为TCP/IP参考模型(TCP/IP Reference Model)。这一网络协议共分为四层:网络访问层、互联网层、传输层和应用层。
3.两种网络模型的关系
TCP/IP协议并不完全符合OSI的七层参考模型。OSI是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了4层(也有说5层)的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
OSI网络模型与TCP/IP网络模型的对应关系如下图:
ISO模型只是提供了一个参考,并不是具体实现,目前我们使用最多的实现其实是TCP/IP协议族。但是对于TCP/IP,除了表示层和会话层没有体现,其它几层和ISO基本是对应的,从这个角度讲ISO模型还是有参考意义的。在这七层中网络层、链路层、物理层属于低三层,其余属于高四层,传输层以下才是真正通过网络传输数据的层面。对于物理层,主要定义的是各种传输介质的信号传输方式,这一层只是机械的传输,不涉及数据包选路逻辑,链路层(L2层)和网络层(L3层)才是我们要理解的地方。通常说的二层网络和三层网络指的就是链路层(L2层)和网络层(L3层)。二层网络仅仅通过MAC寻址即可实现通讯,但仅仅是同一个冲突域内;三层网络需要通过IP路由实现跨网段的通讯,可以跨多个冲突域。