学习计算机网络一定绕不开OSI七层模型,本节内容讲解OSI模型出现的原因及每层的作用,让web程序员对OSI模型有一个基本的认识以便学习计算机网络的其他内容
产生的原因
我们想一个场景,现在世界上还没有网络,但是咱们俩个各有一台计算机,你在北京我在上海,我们需要怎么做才能通过计算机实现信息的交互
两台计算机实现信息的交互并不是件容易的事,我们需要考虑很多问题
例如:
- ”hello“如何转码。
- 数据包要选择哪条线路
- 是用光信号传还是电信号传
- 网线的材质用什么
这些问题是需要多学科综合的问题,需要各专业领域的精英通力合作才能解决。
七层
我们对这些问题进行归类抽象就得到了OSI七层模型,每层之间相互独立,只需做好本层该做的工作,然后调用下层而无需关心下层的实现
七层模型分为
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
应用层(Application Layer)
只需关心业务逻辑,其余的都不需要关心。(微信,qq,浏览器,tomcat等都是应用层)
表示层
协商用于传输的数据格式,并转换数据格式。
数据发送端的应用层将数据给表现层,表现层按约定处理数据(如:压缩或加密数据)。数据接收端的表现层接受到数据后再按照约定处理好数据(如,解压缩或解密)后给应用层
会话层(Session Layer)
负责管理两个连网实体间的连接
连网实体:服务器到服务器,客户端到服务器等
连接:虚拟概念
会话层类似于我们打电话,A拨通B的电话,B接起来后,就产生了会话,之后就通过这个“会话”交流信息。
传输层(Transport Layer)
将数据从一个实体传输到另一个实体,但不负责数据传输方式。其中一个重要的功能是拆包封包。
功能:
- 数据拆分与重组
- 纠错
- 管理连接
- 流量控制
- 端口寻址
网络层(Network Layer)
负责把一个封包从一个ip地址传输到另一个ip地址。
网络层一个核心功能是路由,一台济南的计算机向南京的计算机发消息,数据包该选择哪条线路。这就是网络层的路由要处理的
数据链路层(Data Link Layer)
确保两个临近设备间的数据传输并隐藏底层实现。数据链路层支撑着网络层的功能
物理层(Physical Layer)
物理层是支持数据链路层的,数据链路层只需要关系,我要把数据从哪个设备传输到哪个设备,而不关系这两个设备直接是用,光纤,还是wifi。这就是物理层的指责。
OSI问题
分层臃肿,并不是每层都需要。会话层,表现层并不是都需要。所以应用层,会话层,表示层都可合并为应用层