当前位置: 首页 > article >正文

网络工程师 (23)OSI模型层次结构

 前言

       OSI(Open System Interconnect)模型,即开放式系统互联模型,是一个完整的、完善的宏观模型,它将计算机网络体系结构划分为7层。

OSI七层模型

1. 物理层(Physical Layer)

功能:负责定义物理连接和传输介质的特性,如电缆的规范、传输速率等,确保数字数据能够在不同的物理媒介上流动。具体功能包括为数据端设备提供数据通路、传输数据,以及比特传输、物理拓扑定义、信号传输等。

特点:定义传输媒体的特性,如电气特性、机械特性、光学特性等。利用传输介质为数据链路层提供物理连接,用于计算机之间的数据传输。负责0、1比特流(0/1序列)与电压的高低、光的闪灭之间的转换。

常见设备:中继器、网线、集线器等。

协议:RS-232、RS-449、IEEE802.2到IEEE802.11等。

2. 数据链路层(Data Link Layer)

功能:负责在相邻节点之间传送数据帧,处理物理层的错误,并确保数据的可靠传输。具体功能包括帧封装、物理寻址(即MAC地址寻址)、流量控制、错误检测与纠正等。

特点:将物理层提供的原始比特流组织成有序的帧,以便它们能够在相邻的设备之间可靠地传输。

子层:包括MAC子层(负责介质访问控制)和LLC子层(提供逻辑链路控制)。

常见设备:网桥、交换机等。

协议:以太网协议、点对点协议(PPP)、高级数据链路控制(HDLC)等。

3. 网络层(Network Layer)

功能:负责在整个网络中寻址和路由数据包,实现不同网络之间的通信。具体功能包括逻辑寻址(即IP地址寻址)、分组传输、路由选择等。

特点:使用IP地址来定位不同设备,并决定最佳的数据传输路径。

常见设备:路由器等。

协议:IP协议(包括IPv4和IPv6)、路由信息协议(RIP)、开放最短路径优先(OSPF)等。

4. 传输层(Transport Layer)

功能:提供端到端的通信,负责数据的分段、流量控制和错误修复。具体功能包括端到端通信、错误检测与纠正、流量控制、可靠性传输等。

特点:管理数据的分段、流量控制和错误修复,确保数据在端到端的通信中安全可靠。

协议:传输控制协议(TCP)和用户数据报协议(UDP)等。

5. 会话层(Session Layer)

功能:负责建立、管理和终止进程之间的通信会话。具体功能包括会话建立与维护、数据同步、对话控制等。

特点:扮演协调员的角色,确保不同应用之间能够进行有效的通信。

协议:远程过程调用(RPC)、NetBIOS等。

6. 表示层(Presentation Layer)

功能:处理数据的格式问题,确保一个系统的应用层能理解另一个系统发送过来的数据。具体功能包括数据格式转换、加密和解密、数据压缩等。

特点:类似于翻译官,负责数据的语法、语义和编码转换。

协议:Telnet、SNMP等。

常见现象:URL加密、口令加密、图片编解码等。

7. 应用层(Application Layer)

功能:提供特定的应用程序协议和服务,如HTTP、FTP等,是网络用户与应用程序之间的接口。具体功能包括网络服务提供、人机交互等。

特点:包含各种应用程序,直接为端点用户提供服务,提供各类应用过程的接口和用户接口。

协议:HTTP、FTP、SMTP等。

总结 

       OSI模型的每一层都通过接口与相邻的层次进行通信,确保了数据的正确传输和处理。同时,该模型的设计使得不同层次的协议可以独立开发和修改,而不会影响其他层次,从而提高了网络系统的灵活性和可扩展性。

 结语    

我们都在犯同一个错误

和喜欢的人吵架

和陌生人讲心里话

!!!


http://www.kler.cn/a/537384.html

相关文章:

  • 浅谈 HashMap 的扩容过程和 put 过程
  • 在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?
  • osclass增加支持webp格式
  • 完美解决phpstudy安装后mysql无法启动
  • 995. K连续位的最小翻转次数
  • JavaScript 中的 CSS 与页面响应式设计
  • 使用Django Rest Framework构建API
  • Ubuntu MKL(Intel Math Kernel Library)
  • 使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置
  • Maven 插件与目标(Goals)
  • VSCode使用总结
  • 探讨如何在AS上构建webrtc(2)从sdk/android/Build.gn开始
  • SpringBoot3 + Jedis5 + Redis集群 如何通过scan方法分页获取所有keys
  • 【大数据技术】Kafka实时分析用户行为日志(python+zookeeper+kafka)
  • VsCode创建VUE项目
  • 数据库操作与数据管理——Rust 与 SQLite 的集成
  • csv-parser在C++17下from_chars函数问题
  • 【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程
  • Git命令缩写配置(git命令设置别名)
  • DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*
  • enableEdgeToEdge
  • 深度分析:网站快速收录与网站内容多样性的关系
  • java程序员面试自身优缺点,详细说明
  • Git命令的复习
  • SpringAI系列 - 使用LangGPT编写高质量的Prompt
  • NodeList 对象