1.Introduction
本篇文章的初衷是在做Android网络开发时经常接触各种协议,比如HTTP、XMPP、HLS、RTSP、TCP等协议,对网络的模型和层次有个直观的了解可以做到心中有数。OSI参考模型是七层,TCP/IP模型是四层,计算机网络(谢希仁版)按照五层来给我们讲授。在阿尔卡特-朗讯实习的时候,经常听到“层二”、“层三”的概念,比如“层二交换机”、“层三交换机”等,读研的时候导师跟我们讲他关注物理层以上的东西。各种模型,各种层,我已傻傻分不清楚。那么现实的计算机网络模型到底是几层?今天的《走进网络模型》让我们来一探究竟。
2.OSI Model
首先介绍一个大而全的模型OSI。OSI的全称是Open Systems Interconnect,也就是开放的互联系统,由ISO于1984年发布的,注意OSI是计算机网络模型,ISO是一个组织,iOS是苹果的手机操作系统_。由于计算机网络太复杂了,这个模型将计算机网络分成7个层次来简化复杂的任务,每个层次负责不同的功能。至于为什么分成了7个层,鬼才知道,或许是ISO的这帮家伙看完龙珠之后拍板决定的吧,电影中集齐7个龙珠就可以召唤神龙,神龙可以帮你实现任何愿望,但是ISO的愿望并没有实现,现实的网络中并没有采用这个模型,而是采用了TCP/IP模型。
OSI模型的各个层次的作用不再赘述,相关的书籍非常多,七层网络模型如下图所示:
3.TCP/IP Model
OSI七层模型太过细化,有一定的参考意义,但实现起来比较繁琐,相比较而言,TCP/IP模型比较简洁,具有较强的实际应用价值。TCP/IP将计算机网络分成了四个层次,分别是网络接口层(又称链路层)、网络层、传输层、应用层,如下图所示:
4.教学中的五层模型
《计算机网络》谢希仁版,结合OSI的7层模型和TCP/IP的4层模型,将计算机网络按照5层的模型来给我们讲授,分别是物理层、数据链路层、网络层、传输层和应用层,如下图所示:
5.Conclusion
在《计算机网路》教材的注解中,明确说明了5层模型只是为了方便介绍计算机网络原理而设计的,而在实际应用中还是TCP/IP四层模型。那么为什么还会在工作或者与人交谈中听到“数据链路层”、“层二交换机”、“物理层”等TCP/IP模型中并不存在的层呢?虽然实际应用中是四层TCP/IP模型,借助5层模型,即将TCP/IP的网络接口层拆分成物理层和数据链路层,某些情况下可以将问题描述的更加清晰,比如当听到“层二交换机”时,我们就可以知道描述的是只有交换功能的交换机,而不是“层三交换机”,所谓层三交换机就是指工作在网络层的交换机,层三的交换机不但拥有交换功能还有路由功能。对于Android网络开发而言,对网络层以下的东西就很少关注了,熟悉网络层以上的内容就可以了。