OSI参考模型

本文介绍了OSI七层结构,强调下层为上层提供服务,同层协议的水平交互。通信过程分为上面四层的端到端及下面三层的点到点。详细阐述了各层的功能,如应用层的文件传输、电子邮件和万维网,传输层的TCP与UDP,以及网络层的IP协议等。同时提到了5层参考模型,将网络层和数据链路层合为一层。

OSI7层结构

OSI7层
下层为上层提供服务,上层使用下层的服务。接口是服务的入口。水平方向同层的是协议。

OSI参考模型通信过程

通信过程

上面4层端到端,下面3层点到点。

  • 应用层:所有能和用户交互并产生网络流量的程序。文件传输(FTP),电子邮件(SMTP),万维网(HTTP)。
  • 表示层:用于处理两个通信系统中交换信息的表示方法。1,数据格式变换。2,数据加密解密。3,数据压缩和回复。
  • 会话层:向表示层实体/用户进程,提供建立连接,并在连接上有序的传输数据。会话也是建立同步。1,建立,管理,终止会话。2,使用校验点可以使会话在通信失效时从校验点继续恢复通信。ADSP,ASP。
  • 传输层:负责主机中两个进程的通信,即端到端的通信。传输单位是报文段和用户数据报。1,可靠传输或不可靠传输。2,差错控制。3,流量控制。4,复用分用。TCP,UDP协议。无连接
  • 网络层:主要任务是把分组从源端传到数据端,为分组交换网上的不同主机提供通信服务。IP,IPX,ICMP。。。。无连接和面向连接
  • 数据链路层:主要把网络层传下来的数据报组装成帧。传输单位是。定义帧的开始和结束。差错控制,帧错+位错。流量控制。访问,接入控制
  • 物理层:在物理介质上实现比特流的透明传输。

<

### OSI参考模型概述 OSI(Open Systems Interconnection)参考模型是一种理论化的网络架构设计框架,用于描述计算机网络中不同层次的功能和交互方式。该模型分为七个独立的层次,每一层都有明确的功能和服务定义[^1]。 #### 结构 OSI参考模型按照自底向上的顺序划分为以下七层: 1. **物理层 (Layer 1)** 物理层负责建立、维护和终止设备间的物理连接。它将二进制数据流转换为电信号或其他形式的信号以便在网络介质上传输。典型设备包括网卡、网线、光纤、集线器和中继器等[^4]。 2. **数据链路层 (Layer 2)** 数据链路层的主要职责是建立逻辑连接、执行硬件地址寻址以及检测和纠正传输过程中发生的错误。这一层还涉及帧同步机制,并通过MAC地址来唯一标识每张网卡。常见设备有交换机和网桥[^4]。 3. **网络层 (Layer 3)** 网络层的核心任务是对数据包进行路由选择,从而实现跨多个网络的数据传递。此层引入了IP地址的概念来进行节点定位,并支持分组转发功能。路由器是最典型的第三层设备[^4]。 4. **传输层 (Layer 4)** 传输层提供了可靠的端到端通信服务,确保消息能够无误地从发送方到达接收方。具体操作包括分割高层数据形成段落、附加源与目标端口号标记、实施流量控制及差错检验等。TCP和UDP协议分别代表面向连接和非连接类型的传输方法[^4]。 5. **会话层 (Layer 5)** 会话层管理应用程序之间的对话流程,例如创建、维持和结束会话链接。此外,它可以协调双方的操作状态,在必要时中断或恢复通讯过程。实例应用像远程登录系统SSH或者即时通讯工具QQ均依赖于本层的支持[^4]。 6. **表示层 (Layer 6)** 表示层关注如何表达信息内容的形式标准化问题,比如字符编码、数据压缩算法的选择以及加密解密手段的应用等方面的工作都在这里完成。这使得来自不同类型平台的信息可以互相理解[^3]。 7. **应用层 (Layer 7)** 应用层直接面对最终用户的各类需求,提供广泛的业务接口和支持环境。常见的互联网协议如HTTP/HTTPS, FTP, SMTP, DNS等等皆位于第七层之上运行[^4]。 #### 功能 每个层次实现了特定范围内的功能性要求,并向上一层交付相应的服务能力。这种模块化的设计理念有助于简化复杂的整体解决方案分解成若干相对简单的部分加以解决[^3]。 #### 应用 尽管OSI模型本身并不强制规定具体的实现细节,但它作为一个通用的标准框架被广泛应用于评估现有技术和指导新开发项目之中。实际上很多现代网络协议并非严格遵循OSI七层划分法而是有所调整优化后的版本,比如著名的TCP/IP四层体系结构就融合了一些原本分开考虑的因素以提高效率降低复杂度[^2]。 ```python # 示例代码展示了一个简单模拟OSI模型各层工作的Python脚本片段 class Layer: def __init__(self,name): self.name = name def process(self,data): print(f"{self.name} processing {data}") def osi_simulation(data): layers = [ Layer('Physical'), Layer('Data Link'), Layer('Network'), Layer('Transport'), Layer('Session'), Layer('Presentation'), Layer('Application') ] for layer in reversed(layers): # 自顶向下封装数据 data = f"<{layer.name}>{data}</{layer.name}>" processed_data = "" for layer in layers: # 自底向上解析数据 layer.process(processed_data) start_tag = f"<{layer.name}>" end_tag = f"</{layer.name}>" if processed_data.startswith(start_tag) and processed_data.endswith(end_tag): processed_data = processed_data[len(start_tag):-len(end_tag)] if __name__ == "__main__": initial_payload="Hello World!" osi_simulation(initial_payload) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值