写这个系列,是为了总结一下计算机网络的基础模型。肯定难以面面俱到,但是我能想到的重点一定会总结在这个系列的博文中。此外,如果从物理层一点点总结到应用层,未免也太教科书了,我相信任何一本教科书写的都要比我好,因此这个系列除了真正的底层知识,还有许多现实中的例子。我的技术栈是java,一些例子会用到java,但是也有些东西必须用C语言写,以后再说。
网络模型
关于计算机网络的模型,有多种多样的说法。像OSI的七层模型,TCP/IP的四层模型和五层抽象模型。它们之间的差别就是:
- OSI模型:详细,理论完整。复杂不实用
- TCP/IP:简单,实用但是理论构建不清晰,不适合完整学习。
- 五层抽象模型:综合了二者优点,但是同样也不是真实使用的模型。
这个系列文章自顶向下讲解计算机网络模型。
OSI七层模型
- 物理层:物理层并不是物理媒介,比如光缆,双绞线等,这些物理媒介不属于物理层。物理层实际上指的是在物理媒介传输的数据,而非承载这些数据的物理媒介。比特流就是物理层要考虑的东西。也有人把物理媒介称为“第零层”。
- 数据链路层:数据从主机A到主机B,往往不是直接相连的,可能中间隔着主机C和主机D。数据怎么在这一段段链路上工作,递交自己的数据,就需要数据链路层的帮助。该层规定了两个链路节点间数据的传输方式。比如用什么协议,什么样的报文等等。
- 网络层:它管理一个区域内的主机相互交流。
- 运输层:主机之上有应用,两个应用之间的通信与数据传输,是运输层决定的。
- 会话层:如何维持网络的连接,如何恢复。
- 表示层:进行编码转换。如AMD处理器和Intel处理器架构不同,所用的编码格式也可能不同。表示层解决这个问题。
- 应用层:通过特定应用进程间的交流完成网络应用。注意,运输层保障的是数据传输的方法,而应用层是数据传输的格式。
TCP/IP四层模型
抽象五层模型
自顶向下
其实了解了OSI的七层模型,剩下两种就不用再说什么了。我们从应用层到物理层依次来复习网络传输的模型。