OSI/RM开放系统互联参考模型:7层模型

OSI模型的7层

从下到上,OSI模型的7层是:

  1. 物理层(Physical Layer):负责物理连接和数据传输,例如电缆、光纤、无线电波等。
  2. 数据链路层(Data Link Layer):负责节点之间的可靠传输,包括MAC地址的管理、错误检测和纠正。
  3. 网络层(Network Layer):负责数据包的路由和转发,包括IP地址的管理和路由选择。
  4. 传输层(Transport Layer):负责端到端的连接和数据传输的可靠性,例如TCP和UDP协议。
  5. 会话层(Session Layer):负责建立、管理和终止会话,控制会话的对话机制。
  6. 表示层(Presentation Layer):负责数据的格式化和转换,如加密、解密、压缩等。
  7. 应用层(Application Layer):直接面向用户,提供网络服务,如HTTP、FTP、SMTP等。

层与层之间的关系

OSI模型是一个逻辑上的分层模型,每一层都依赖于下层提供的服务,同时为上层提供服务。这种分层设计的主要目的是简化复杂的网络通信任务,使得每一层可以独立发展和优化。

  1. 服务(Service)

    每一层向上层提供特定的服务。例如:

  • 数据链路层向网络层提供可靠的节点间数据传输服务。
  • 传输层向会话层提供端到端的可靠数据传输服务。
  1. 接口(Interface)

    层与层之间通过接口进行通信。接口定义了相邻层之间如何交换信息,以及如何调用下层的服务。例如,网络层通过接口调用数据链路层的服务,以便在网络节点之间传输数据。

  2. 协议(Protocol)
    每一层都有自己的协议来实现该层的功能。例如:

  • 物理层使用物理协议来定义电压、电缆类型等。
  • 传输层使用TCP或UDP协议来管理数据传输的可靠性和顺序。

逻辑分层的理解

OSI模型中的分层是逻辑上的,即每一层的功能是通过抽象和逻辑来划分的,而不是物理上的划分。逻辑分层的好处包括:

  • 模块化设计:每一层可以独立开发和维护。
  • 互操作性:不同厂商的产品可以通过标准化的协议进行互操作。
  • 问题隔离:网络问题可以被隔离和定位到特定的层,便于故障排除。

层与层之间的关系如何产生?

  • 封装与解封装:每一层将数据封装在特定的协议头中,传递给下一层。例如,传输层将数据封装在TCP头中,再传递给网络层。解封装则是接收方将每一层的协议头逐层去除,还原原始数据。
  • 数据流动:数据从应用层开始,通过各层的封装传递到物理层,再通过物理媒介传输到接收方,接收方从物理层开始逐层解封装,最终将数据传递给应用层。

具体的例子

假设你在浏览网页:

  1. 应用层:浏览器(HTTP)发出请求。

  2. 表示层:数据可能被加密(SSL/TLS)。

  3. 会话层:建立会话(如果有)。

  4. 传输层:数据被分段(TCP),并附加序列号和校验和。

  5. 网络层:数据包被添加IP地址,决定路由路径。

  6. 数据链路层:数据帧添加MAC地址,决定如何传输到下一个节点。

  7. 物理层:通过电缆或无线信号传输数据。

    这样,数据从你的计算机通过网络传输到服务器,服务器处理请求后再通过相同的过程将响应数据传回你的计算机。

每层的具体实现

理解OSI模型的每一层具体是如何实现的,有助于更清楚地认识到计算机和网络设备是如何协同工作的.

  1. 物理层(Physical Layer)

    实现方式:

  • 硬件:包括电缆(如以太网电缆)、光纤、无线电发射器和接收器、网络接口卡(NIC)、集线器、交换机的物理端口等。
  • 示例设备:路由器、交换机、无线接入点、网卡等。
  1. 数据链路层(Data Link Layer)
    实现方式:
  • 硬件和固件:网卡驱动程序、网络交换机、桥接器、网络接口卡(NIC)的MAC地址管理。
  • 操作系统:数据链路层协议(如以太网协议、PPP)在操作系统中实现。
  • 示例设备:网络交换机、网桥、无线接入点。
  1. 网络层(Network Layer)
    实现方式:
  • 操作系统内核:IP协议栈、路由表管理。
  • 网络设备:路由器、三层交换机。
  • 软件:网络管理软件(如路由协议的实现软件:OSPF、BGP)。
  1. 传输层(Transport Layer)
    实现方式:
  • 操作系统内核:传输协议(如TCP、UDP)的实现。
  • 应用程序:使用传输层协议的API(如sockets)来建立端到端的连接。
  • 示例软件:Windows的Winsock、Linux的Socket API。
  1. 会话层(Session Layer)
    实现方式:
  • 操作系统和应用程序:会话管理协议的实现(如NetBIOS、RPC)。
  • 中间件:一些中间件平台(如CORBA、DCOM)提供会话层功能。
  • 示例软件:应用程序中的会话管理模块。
  1. 表示层(Presentation Layer)
    实现方式:
  • 应用程序:数据格式转换和加密/解密功能(如SSL/TLS、JPEG、MPEG)。
  • 库和框架:提供数据表示转换功能的库(如OpenSSL)。
  • 示例软件:SSL/TLS库、数据压缩和解压缩库。
  1. 应用层(Application Layer)
    实现方式:
  • 应用软件:直接面向用户的网络应用(如浏览器、邮件客户端、FTP客户端)。
  • 操作系统:提供应用层协议支持的服务(如HTTP、FTP、SMTP)。
  • 示例软件:Google Chrome浏览器、Mozilla Thunderbird邮件客户端、FileZilla FTP客户端。

具体实现的例子

浏览网页的例子:

  1. 应用层:你在Google Chrome浏览器中输入网址并点击回车。
  2. 表示层:浏览器可能使用SSL/TLS加密你的HTTP请求。
  3. 会话层:浏览器和服务器之间建立和维护一个会话(如果使用WebSockets,浏览器和服务器之间会有持续的会话)。
  4. 传输层:浏览器通过操作系统的TCP/IP栈发送HTTP请求,操作系统将数据分段、添加序列号和校验和。
  5. 网络层:操作系统的IP协议栈将数据包添加IP地址,决定路由路径,并通过网卡发送到网络。
  6. 数据链路层:网卡将数据帧添加MAC地址,并通过物理介质发送。
  7. 物理层:数据通过以太网电缆或无线信号传输到交换机,再到路由器,最终到达目标服务器。

示例

服务器处理浏览器的请求,并响应给浏览器的过程(7层模型过程)

服务器端处理浏览器请求的过程

  1. 物理层(Physical Layer)
    实现方式:
  • 硬件:服务器的网络接口卡(NIC)接收到通过物理介质(如电缆、光纤或无线信号)传输的数据。
  • 过程:网络接口卡(NIC)将接收到的电信号或光信号转换为二进制数据。
  1. 数据链路层(Data Link Layer)
    实现方式:
  • 硬件和固件:网卡驱动程序、交换机端口。
  • 过程:服务器的网卡根据帧的MAC地址确认该帧是发给自己的,并进行错误检测(如CRC检查)。然后将数据帧中的以太网帧头去掉,将剩余的数据传递给网络层。
  1. 网络层(Network Layer)
    实现方式:
  • 操作系统内核:IP协议栈、路由表管理。
  • 过程:服务器的IP协议栈检查数据包的IP地址,确认该数据包是发给服务器的。然后去掉IP包头,并将数据传递给传输层。
  1. 传输层(Transport Layer)
    实现方式:
  • 操作系统内核:传输协议(如TCP、UDP)的实现。
  • 过程:服务器的TCP/IP栈接收数据段,检查传输层头部信息(如端口号、序列号、校验和等)。如果是TCP连接,则确认序列号和应答号是否正确,然后重组数据段。最后,将数据段中的有效载荷传递给会话层或直接给应用层(如果会话层不存在)。
  1. 会话层(Session Layer)
    实现方式:
  • 操作系统和应用程序:会话管理协议的实现。
  • 过程:如果应用程序使用会话层协议(如NetBIOS、RPC),会话层会负责建立、管理和终止会话。它会确保数据流的正确同步和恢复。对于HTTP请求,这一层通常不直接显现,更多是由传输层和应用层处理。
  1. 表示层(Presentation Layer)
    实现方式:
  • 应用程序:数据格式转换和加密/解密功能。
  • 过程:服务器解密HTTP请求数据(如果使用SSL/TLS)。如果数据经过压缩、编码等,表示层将对数据进行解压缩、解码等处理。然后,将处理后的数据传递给应用层。
  1. 应用层(Application Layer)
    实现方式:
  • 应用软件:服务器端应用程序(如Web服务器)。
  • 过程:服务器端的Web服务器(如Apache、Nginx、IIS)接收HTTP请求。它解析HTTP请求头和请求体,根据请求的资源路径、请求方法等参数,调用相应的处理逻辑或脚本(如PHP、Python、Node.js等),生成HTTP响应。

生成响应并返回给客户端

  1. 应用层:Web服务器生成HTTP响应(包括状态码、响应头和响应体),将响应数据传递给表示层。
  2. 表示层:如果需要,表示层对响应数据进行编码、加密(如使用SSL/TLS)。
  3. 会话层:如果使用会话层协议,管理会话状态。
  4. 传输层:传输层将响应数据分段,添加TCP或UDP头部信息(如端口号、序列号等),传递给网络层。
  5. 网络层:网络层将数据段封装成IP数据包,添加IP头部信息(如源IP、目的IP地址),传递给数据链路层。
  6. 数据链路层:数据链路层将IP数据包封装成以太网帧,添加帧头(如源MAC、目的MAC地址),传递给物理层。
  7. 物理层:物理层将数据帧转换为电信号或光信号,通过物理介质(如电缆、光纤)发送回客户端。

整个过程在客户端和服务器之间反复进行,直到所有请求和响应数据都被完整传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值