一、什么是OSI七层参考模型
OSI概念:Open System Interconnect开放系统互联参考模型,是由ISO(国际标准化组织)定义的,它是个灵活的、稳健的和可互操作的模型,并不是协议,而是个伟大的模型。通常用来分析和设计网络体系结构。
OSI模型的目的:规范不同系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。
OSI模型分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
(计算机有七层,路由器有下面三层,交换机有下面两层,网线只有一层)
二、OSI每一个Layer的定义和用途
应用层:各种程序协议
表示层:数据和信息的语法转换内码,数据解码和编码,压缩解压,加密解密
会话层:为通信双方制定通信方式,并创建、注销会话,负责建立、管理和终止表示层实体之间的会话连接,在设备或节点间提供会话控制,在系统间协调通信过程
传输层:提供可靠或不可靠的端到端传输
网络层:逻辑寻址、路由选择
数据链路层:将数据封装成帧;提供节点到节点方式的传输;差错检测
物理层:在媒介上传输比特流,提供机械的和电气的规约
OSI参考模型特点:
1、每层都有自己的功能集
2、层与层之间相互独立又相互依靠
3、上层依赖于下层,下层为上层提供服务
应用层协议:HTTP(80)、FTP(20\21)、SMTP(25)、POP3(110)、Telnet(23)、DNS(53) ()内为对应传输层端口号
表示层标准:ASCII、JPEG
会话层:负责建立、管理和终止表示层实体之间的会话连接,在设备或节点间提供会话控制,在系统间协调通信过程
传输层:将来自上层的应用程序进行分段和重组,并将它们组合为同样的数据流形式,提供端到端的数据传输服务,工作在传输层的协议(TCP、UDP)
网络层:
1)定义了逻辑地址(三层地址)、负责将分组数据从源端传输到目的端、路由选择、维护路由
2)设备:路由器,路由器可以隔绝广播、组播,寻址和数据转发,最优路径选择,流量管理,广域网(WAN)连接,路由器的一个接口是一个广播域,路由器寻址时,目的地址非常关键
3)逻辑地址:IP地址,32bits,用于在一个IP网络中标示一个节点或者一个设备的接口,同时也用于数据包在网络中寻址
4)路由:设备查看包头中目的地址,在路由器路由表中查找,按照匹配的表项转发或丢弃
数据链路层:
1)在不可靠的物理链路上,提供可靠的数据传输服务,把帧从一跳(节点)移动到另一跳(节点)、组帧、物理编址、流量控制、差错控制、接入控制
2)在物理层基础上向网络层提供服务
3)局域网的数据链路层协议有以太网、令牌环网等
4)广域网数据链路层协议有PPP、HDLC、Frame Relay等
5)以太网二层逻辑地址:MAC地址,48bits,一般出厂时烧录在网卡中,前24bits为厂商标示,需要去IEEE购买或申请,后24bits可以厂商自己分配,全球唯一
6)MAC地址随全球唯一,但工作范围只在数据链路层,只在LAN中
7)如下图,A和B在LAN1,C在LAN2,两者通过路由器连接,A和B之间通信需要知道B的IP和MAC地址,但A和C通信,只需要知道C的IP地址,此时的目的MAC为标红路由器的接口MAC地址
8)PC上cmd: ipconfig /all 可以查询到网卡详细的IP和MAC配置
9)设备:交换机,交换机每个端口是一个冲突域,整台交换机是一个广播域,基于MAC地址寻址
物理层:
1)物理层标准规定了信号、连接器和电缆要求
2)接口及连接器
3)设备:Hub集线器,整台设备在同一个冲突域,整台设备在同一个广播域,设备共享带宽
OSI优点:
1)将网络的通信过程划分为小一些,简单一些的部件,因此有助于各个部件的开发、设计和故障排除
2)通过网络组件的标准化,允许多个供应商进行开发
3)通过定义在模型的每一层实现什么功能,鼓励产业标准化
4)允许各种类型的网络硬件和软件互相通信
5)防止对某一层所做的改动影响到其他层,有利于开发
三、如何使用OSI参考模型分析网络通信过程
通信过程
1)B有web服务,A作为Client去访问B,使用HTTP协议;A传输过程中,传输层会给报文加上信封,如源端口号和目的端口,网络层加信封,如源、目的IP地址,数据链路层加信封,如源、网关MAC地址;
2)加信封的行为叫做封装,封装数据的头部;
3)路由器首先查看最外的封装,数据链路层(二层头部)、然后是三层头部、四层头部;当它发现二层头部的目的MAC是自己的接口时,路由器会继续查看三层头部,它发现目的IP不是自己的接口,而是PC B的接口,这时它不会继续往里拆信封了,而是会给这个报文加上一个新的二层信封,更新源MAC地址为路由器自己的接口MAC,目的MAC地址为 PC B 的MAC,然后还原到数据链路层转发出去
4)PC B 也是依次拆封,发现二层目的MAC是自己,继续拆,目的IP也是自己,会继续看四层头部,目的端口号是80端口,80端口开放给Http进程,将协议包发送给http对应进程去处理;
数据包的命名
1)PDU(Protocol Data Unit)协议数据单元
2)4层-段,3层-包,2层-帧,1层-bit,每一层数据都有不同的命名