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

[ 计算机网络 ] 深入理解OSI七层模型

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨

🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖

🎉希望我们在一篇篇的文章中能够共同进步!!!

🌈个人主页:AUGENSTERN_dc

🔥个人专栏:C语言 |Java | 数据结构 | 算法 | MySQL | RabbitMQ | Redis

⭐个人格言:

一重山有一重山的错落,我有我的平仄

一笔锋有一笔锋的着墨,我有我的舍得


目录

1. OSI七层模型

1.1 OSI七层模型

1.2 为什么要分成七个层次?

1.3 各层分别的职责:

1.3.1 应用层

1.3.1.1 主要功能: 

1.3.1.2 常见应用层的协议:

 1.3.1.3 总结

1.3.2 表示层

1.3.2.1 主要功能:

1.3.2.2 常见表示层协议:

1.3.2.3  总结

1.3.3 会话层

1.3.3.1 主要功能

1.3.3.2 常见会话层协议

1.3.3.3 总结

1.3.4 传输层

1.3.5 网络层

1.3.5.1 主要功能: 

1.3.5.2 常用协议: 

1.3.5.3 总结:

1.3.6 数据链路层

1.3.6.1 主要功能: 

1.3.6.2 常见协议

1.3.6.3 总结: 

1.3.7 物理层

1.3.7.1 主要功能: 

1.3.7.2 常见协议: 

1.3.7.3 总结: 


1. OSI七层模型

1.1 OSI七层模型

OSI(Open Systems Interconnection)七层模型是一个概念性的网络通信模型,将网络通信过程分为七个层次,每一层负责特定的功能。OSI模型的主要目的是提供一个标准化的框架,以便不同厂商的设备和软件能够互操作。

1.2 为什么要分成七个层次?

说到分层,我们可以联想一下平时我们开发一个SpringBoot后台程序时的分层,我们往往会按照每一层做不同的事情的原则,将系统分为三层(若系统复杂,则会有更多的层级) :

<1> Controller (负责前后端的数据交互)

<2> Service (负责业务操作逻辑)

<3> Repository (负责与数据库进行交互)

复杂的系统需要进行分层,因为每一层都需要专注于一类事情,就像设计模式中的 <单一责任原则>

网络分层的原理也是一样,每一层只专注于做一件事情

话说回来,我认为分层的原因主要有三点:

1. 各层之间需要相互独立: 各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。

2. 提高了灵活性和可替换性:每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。并且,每一层都可以根据需要进行修改或替换,而不会影响到整个网络的结构。这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。

3. 大问题化小分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义.

1.3 各层分别的职责:

在OSI七层模型中,每一层的模型都会对上一层的数据进行封装(除了物理层外,物理层对数据进行转换而不是封装)

接下来我们简单介绍一下,每一层的不同的职责

1.3.1 应用层

将用户上传的数据发送给表示层做处理,或接收表示层传来的数据展示给用户

1.3.1.1 主要功能: 

<1> 提供用户接口: 应用层为用户提供直接的交互界面,使得用户能够方便的使用各种网络服务

<2> 数据格式化: 应用层负责将用户数据转换为合适的网络传输格式,以及将接受到的数据解析为用户可以理解的格式

<3> 提供网络服务: 应用层提供了多种网络服务,满足用户的不同需求

1.3.1.2 常见应用层的协议:

<1> HTTP/HTTPS

<2> SMTP/POP3/IMAP

<3> FTP/SFTP

<4> DNS

 1.3.1.3 总结

总的来说,应用层主要是用来服务于用户,与用户直接进行交互的,同时应用层是通过调用下层提供的服务来实现其功能

1.3.2 表示层

表示层会对来自于应用层的数据进行封装,传输给会话层,或接收会话层的数据,解封后传输给应用层

1.3.2.1 主要功能:

<1> 数据表示和转换: 表示层负责将数据转换为适合网络传输的格式,以及将接收到的数据转换为应用程序可以理解的格式。

例如:将ASCII转换为Unicode编码格式,将图像音频等转换成合适的传输形式

<2> 数据加密和解密: 表示层提供数据加密和解密服务,确保数据在传输过程中的安全性和隐私性。

例如在HTTP的基础上,通过SSL/TLS协议对数据进行加密,确保数据在传输过程中不被窃取或篡改

<3> 数据压缩和解压缩: 表示层提供数据压缩和解压缩服务,减少数据传输的大小,提高传输效率。

例如: 将文件压缩成ZIP文件进行传输,压缩文件大小,提高传输效率

1.3.2.2 常见表示层协议:

SSL/TLS(Secure Sockets Layer/Transport Layer Security)

1.3.2.3  总结

表示层主要负责处理应用层数据的表示,转换,加密和压缩,确保数据在不同的系统之间能够正确的理解和处理

1.3.3 会话层

会话层接收表示层的数据并进行封装,发送给传输层,或接收传输层的数据解封发送给表示层

1.3.3.1 主要功能

<1> 建立会话: 会话层负责在通信双方之间建立会话

<2> 管理会话: 会话层负责管理会话的整个生命周期,包括数据传输、会话恢复和会话终止。

<3> 同步和检查点: 会话层在数据传输过程中设置同步点和检查点,确保数据的完整性和一致性。

<4> 对话控制: 会话层支持双向通信,并可以控制会话的方向。

1.3.3.2 常见会话层协议

<1> RPC (Remote Procedure Call)

<2> NetBIOS (Network Basic Input/Output System)

<3> SMB(Server Message Block)

1.3.3.3 总结

会话层主要负责管理和协调通信双方之间的会话,通过各种协议实现其功能,确保数据在会话期间正确、有序地传输。

1.3.4 传输层

传输层的主要职责是提供端到端的可靠或不可靠数据传输服务,确保数据能够在网络中正确、完整地传输。

1.3.4.1 主要功能

<1> 端到端的通信: 传输层负责在源主机和目标主机之间建立和管理端到端的通信。

<2> 可靠传输: 传输层提供可靠的数据传输服务,确保数据能够完整、无误地到达目的地。

<3> 不可靠传输: 传输层也提供不可靠的数据传输服务,不保证数据的可靠传输,但提供快速传输。

<4> 多任务管理: 传输层可以同时管理多个应用程序的通信,每个应用程序使用不同的端口号。

1.3.4.2 常见协议

<1> TCP (Transmission Control Protocol)

<2> UDP(User Datagram Protocol)

1.3.4.3 总结

传输层通过TCP和UDP两种协议实现其功能,确保数据能够在网络中正确、完整地传输。

1.3.5 网络层

1.3.5.1 主要功能: 

<1> 路由选择: 网络层负责选择最佳路径,将数据报从源主机传输到目标主机。

<2> 逻辑地址处理: 网络层使用逻辑地址(如IP地址)来标识网络中的设备。IP地址是网络层的核心,用于路由选择和数据报的传输。

<3> 数据报传输: 网络层将传输层的数据(如TCP段或UDP数据报)封装成网络层的数据报(如IP数据报),接收方的网络层将接收到的数据报解封装,提取出传输层的数据并传递给上层。

<4> 错误检测: 网络层在数据报中添加校验和,用于检测数据在传输过程中是否发生错误。如果检测到错误,网络层会丢弃错误的数据报,由传输层负责重传。

1.3.5.2 常用协议: 

<1> IP(Internet Protocol)IP是网络层的核心协议,负责将数据报从源主机传输到目标主机。

<2> ICMP(Internet Control Message Protocol):ICMP用于发送错误消息和控制消息,帮助网络层更好地管理数据报的传输。

<3> IGMP(Internet Group Management Protocol):IGMP用于管理多播组成员关系,支持多播通信。

1.3.5.3 总结:

网络层通过IP协议、ICMP协议等实现其功能,确保数据能够在复杂的网络环境中高效、可靠地传输。

1.3.6 数据链路层

1.3.6.1 主要功能: 

<1> 帧的封装与解封装: 数据链路层将网络层的数据(如IP数据报)封装成帧。帧是数据链路层的数据单元,包含帧头、数据部分和帧尾。

<2> 可靠传输: 数据链路层通过校验码(如CRC)检测传输过程中是否发生错误。某些数据链路层协议(如HDLC)可以纠正单比特错误。数据链路层可以通过确认应答(ACK)和超时重传机制确保数据的可靠传输。

<3> 介质访问控制: 数据链路层负责管理多个设备共享同一物理介质(如以太网电缆)时的访问控制。

<4> 流量控制: 数据链路层可以通过流量控制机制(如滑动窗口协议)控制发送方的数据流量,避免接收方缓冲区溢出

1.3.6.2 常见协议

<1> 以太网(Ethernet)

<2> Wi-Fi(IEEE 802.11)

<3> PPP(Point-to-Point Protocol)

1.3.6.3 总结: 

数据链路层主要负责将物理层传输的原始比特流封装成帧,并提供可靠的数据传输服务。

1.3.7 物理层

1.3.7.1 主要功能: 

<1> 物理连接: 物理层负责建立和维护物理连接,确保数据能够在物理介质上传输。

<2> 比特流传输: 物理层负责在物理介质上透明地传输原始的比特流。

<3> 信号编码: 物理层将数据编码为适合物理介质传输的信号。

1.3.7.2 常见协议: 

<1> 以太网(Ethernet)

<2> 光纤通信

<3> 无线通信

1.3.7.3 总结: 

物理层通过各种协议和标准(如以太网、光纤通信、无线通信)实现其功能,确保数据能够在物理介质上正确传输。

http://www.xdnf.cn/news/556885.html

相关文章:

  • 经验过程简介与suprema的集中(Guntuboyina理论统计学笔记)
  • QT高DPI支持
  • linux之 pcie MSI-X中断编程
  • 自动化测试核心知识梳理与 Java 代码详解
  • 基于正点原子阿波罗F429开发板的LWIP应用(3)——Netbiosns功能
  • 嵌入式培训之系统编程(一)标准IO、文件操作
  • Liquid Wire 柔性应变传感器:金属凝胶导体 | 仿生肌肉长度监测 | 高精度动作控制
  • 特定领域 RAG中细调嵌入模型能否提升效果?
  • IVX:重构 AI 原生开发范式,让模型调用成为指尖艺术​
  • PostgreSQL简单使用
  • 深入浅出人工智能:机器学习、深度学习、强化学习原理详解与对比!
  • 【深度学习-Day 14】从零搭建你的第一个神经网络:多层感知器(MLP)详解
  • 第六天的尝试
  • 服务器部署1Panel
  • 證券行業證券交易系統開發方案
  • 基于SpringBoot+Vue的学籍管理系统的设计与实现
  • Kubernetes在线练习平台深度对比:KillerCoda与Play with Kubernetes
  • 【开源工具】文件夹结构映射工具 | PyQt5实现多模式目录复制详解
  • 【鸿蒙开发】Hi3861学习笔记- MQTT通信
  • 统一端点管理(UEM):定义、优势与重要性
  • 从零开始:Python 从0到1轻松入门
  • 易路 AI 招聘:RPA+AI 颠覆传统插件模式,全流程自动化实现效率跃迁
  • 物业收费智能化:如何实现账单零差错自动生成?
  • SpringBean模块(三)具有生命周期管理能力的类(1)AutowireCapableBeanFactory
  • DOS常用命令及dos运行java
  • 协程+Flow:现代异步编程范式,替代RxJava的完整实践指南
  • NVIDIA Earth-2 AI 天气模型 DLI 课程:解锁全球风云的未来之匙
  • 4大AI智能体平台,你更适合哪一个呐?
  • 第六部分:第三节 - 路由与请求处理:解析顾客的点单细节
  • ⭐️白嫖的阿里云认证⭐️ 第二弹【课时3:大模型辅助内容生产场景】for 「大模型Clouder认证:利用大模型提升内容生产能力」