【计算机网络---OSI七层模型】
一、OSI的基本概念及原则
OSI是Open System Interconnect的缩写,意为开放式系统互联。各个层次的划分遵循以下原则:
1. 同一层的各网络节点都有相同的层次结构,具有同样的功能;
2. 同一节点的内相邻层之间通过接口进行通信;
3. 七层结构的每一层使用下一层提供的服务,并且向上一层提供服务;
4. 不同节点的同等层按照协议实现对等层之间的通信。
二、OSI七层模型各层功能概述
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
应用层(Application) | 应用层 | HTTP、TFTP、FTP、NFS、WAIS、SMIP |
表示层(Presentation) | Telnet、Rlogin、SNMP、Gopher | |
会话层(Session) | SMTP、DNS | |
传输层(Transport) | 传输层 | TCP、UDP |
网络层(Network) | 网络层 | IP、ICMP、ARP、RARP、AKP、UUCP |
数据链路层(Data Link) | 数据链路层 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP |
物理层(Physical) | IEEE 802.1A、IEEE 802.2到IEEE 802.11 |
第一层:物理层
在OSI参考模型中,物理层是参考模型的最低层,也是OSI模型的第一层。
物理层的主要功能:
利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。
第二层:数据链路层
数据链路层是OSI模型的第二层,负责建立和管理节点间的链路。在计算机网络中,由于各种干扰的存在,物理链路是不可靠的。
数据链路层的主要功能:
在物理层提供的比特流的基础上,通过差错控制、流量控制等方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
第三层:网络层
网络层是OSI模型的第三层,是其中最复杂的一层,也是通信子网的最高一层,在下两层的基础上向资源子网提供服务。
网络层的主要功能:
在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点),从而向传输层提供最基本的端到端的数据传输服务。具体来说,数据链路层的数据在网络层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。数据链路层和网络层的区别为:数据链路层的目的是解决同一网络内节点之间的通信,而网络层主要解决不同子网之间的通信。
第四层:传输层
OSI模型下面三层的任务是数据通信,上面三层的任务是数据处理,而传输层作为OSI的第四层,提供建立、维护和拆除传输连接的功能,起到了承上启下的作用。
传输层的主要功能:
向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
第五层:会话层
会话层是OSI模型的第五层,是用户应用程序和网络之间的接口。
会话层的主要功能:
组织和协调两个会话进程之间的通信,并对数据交换进行管理。当建立会话时,用户必须提供他们想要连接的远程地址,而这些地址与MAC地址或网络层的逻辑地址不同,它们是为用户专门设计得,更便于用户记忆。域名就是一种网络上使用的远程地址。会话层的具体功能如下:
- 会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换;
- 会话流量控制:提供会话流量控制和交叉会话的功能;
- 寻址:使用远程地址建立会话;
- 出错控制:从逻辑上将会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并纠正错误。
第六层:表示层
表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。
表示层的主要功能:
处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:
- 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异;
- 数据的编码:处理字符集和数字的转换;
- 压缩和解压缩:为了减少数据的传输量,表示层还负责数据的压缩与恢复;
- 数据的加密与解密:可以提高网络的安全性。
第七层:应用层
应用层是OSI模型的最高层,是计算机用户,以及各种应用程序和网络之间的接口。
应用层的主要功能:
直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,应用层还负责协调各个应用程序间的工作,其具体功能如下:
- 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系;
- 实现各种服务:应用层具有的各种应用程序可以完成和实现用户请求的各种服务。
三、OSI七层模型举例
举例:以A公司向B公司发送一次商业报价单为例。
分析如下:
- 应用层:A公司相当于实际的电脑用户,要发送的商业报价单相当于应用层提供的一种网络服务,当然,A公司也可以选择其他服务,比如发送一份商业合同、发送一份询价单等;
- 表示层:由于A公司和B公司是不同国家的公司,他们之间协商统一用英语作为交流语言,所以此时A公司的文秘(表示层)将从上级(应用层)获取到的商业报价单的语言翻译为英语,同时为了防止被别的公司盗取机密信息,A公司的文秘还会对这份报价单进行一些加密处理。这就是表示层的作用,将应用层的数据转换翻译。
- 会话层:A公司外联部同事(会话层)掌握着其他许多公司的联系方式,他们负责管理本公司与外界许多公司的联系会话。当外联部同事拿到文秘(表示层)转换为英文的商业报价单后,首先要找到所要联系的B公司的地址信息,并附上自己的地址和联系方式,然后将报价单放进信封准备寄出。等B公司确认接收到报价单后,外联部的同事才去办其他事情,继而终止此次会话。
- 传输层:传输层就相当于A公司中负责收发邮件的人,A公司自己的投递员负责将上一层(会话层)要寄出的资料投递到快递公司或邮局。
- 网络层:网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说深圳发往北京的顺丰快递,首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。其中每个集散中心都相当于网络中的一个IP节点。
- 数据链路层:相当于顺丰快递内部为了保证效率和质量的一种内部操作。
- 物理层:快递寄送过程中的交通工具就相当于物理层,例如飞机、火车、汽车等。
四、OSI七层模型总结
OSI七层模型 | 关键词 |
应用层 | 产生网络流量的程序 |
表示层 | 传输之前是否进行加密或压缩处理 |
会话层 | 查看会话、查木马netstat-n |
传输层 | 可靠传输、流量控制、不可靠传输 |
网络层 | 负责选择最佳路径、规划IP地址 |
数据链路层 | 数据帧的开始和结束、透明传输、差错校验 |
物理层 | 接口标准、电器标准、如何更快传输数据 |
五、相关概念解释
5.1、比特流
比特流是指由比特(bit,即二进制位)组成的数据流,它是计算机中处理和传输数据的最基本形式。比特流由0和1两种二进制数字组成,用来表示数据、指令或控制信息。比特流通常是以电信号或电磁波的形式在计算机网络中传输,以便在不同的计算机和设备之间进行数据交换。
比特流的底层原理:
- 信号传输:在计算机中,比特流通常是以电信号或电磁波的形式进行传输。例如:通过网线传输的比特流就是通过电信号的形式进行传输的。在信号传输的过程中,需要考虑电磁干扰、传输距离等因素,以保证信号的质量和可靠性。
- 数据表示:计算机中的数据是以二进制形式进行表示的,比特流是由0和1组成的二进制数字序列。每8位二进制数字组成一个字节,不同的字节可以表示不同的数据类型,如整数、字符、浮点数等。
- 码制:为了提高数据的传输效率和可靠性,比特流通常需要进行码制转换。例如:在数字通信中,可以使用调制技术将比特流转换为模拟信号进行传输,以便在不同的信号媒介上进行传输。另外,还以使用压缩算法对比特流进行压缩,以减少数据传输的时间和宽带需求。
5.2、点到点、端到端
点到点服务 | 端到端服务 | |
主要使用层 | 数据链路层 | 传输层 |
概念 | 数据链路层只负责直接相连的两个节点之间的通信,一个节点的数据链路层接受网络层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个节点 | 端到端,即为发送端到接收端。端到端通信建立在点到点通信的基础上,是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,完成应用程序(进程)之间的通信 |
优点 | 发送端设备送出数据后,它的任务就已经完成了,不需要参与整个传输过程,不会浪费发送端设备的资源;即使接收端设备关机或故障,点到点传输也可以采用存储转发技术进行缓冲 | 链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发,因此传输延迟小 |
缺点 | 发送端送出数据后,不知道接收端能否收到或者何时收到数据 | 直到接收端收到数据为止,发送端的设备要全程参与,如果整个传输过程的延迟很长,那么对发送端的设备会造成很大的浪费;且若接收设备关机或故障,端到端传输不可能实现 |
相关文章:
【计算机网络---OSI七层模型】
一、OSI的基本概念及原则 OSI是Open System Interconnect的缩写,意为开放式系统互联。各个层次的划分遵循以下原则: 1. 同一层的各网络节点都有相同的层次结构,具有同样的功能; 2. 同一节点的内相邻层之间通过接口进行通信&…...

Error updating database. Cause: org.apache.shiro.UnavailableSecurity
mybtisplus查看MetaObjectHandler是否有自定义获取用户信息填充用户的方法...

【网络安全】本地文件包含及远程文件包含漏洞详解
一、文件包含漏洞概述 1.1 什么是文件包含 开发人员将需要重复调用的函数写入一个文件,对该文件进行包含时产生的操作。这样编写代码能减少冗余,降低代码后期维护难度。 保证网站整体风格统一:导航栏、底部footer栏等,把这些不…...
redis启动的三种方式
默认启动: # 默认的启动指令 redis-server 默认启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL C则Redis停止。不推荐使用。 //查看云服务器是否安装过redis redis-server -v//检查安装目录 which redis-server//查看redis进…...

手机怎么远程控制电脑屏幕?手机远程控制电脑方法分享
手机与电脑之间的互联互通变得越来越便捷。 无论是工作还是学习,有时我们需要在手机上远程控制电脑屏幕,以完成一些复杂的操作或查看电脑上的文件。 本文将详细介绍几种实用的手机远程控制电脑屏幕的方法,帮助读者轻松实现这一目标。 一、使…...
NET的全称、主要功能以及在计算机网络中的作用?
.NET是一个广泛的、全方位的平台,应用于开发网站、应用程式、网页应用程式和网络服务。以下是.NET的全称、主要功能以及在计算机网络中的作用: .NET的全称 .NET的全称实际上是Microsoft .NET Framework。它是微软公司推出的一种面向网络的开发框架&…...

LLM - 使用 HuggingFace + Ollama 部署最新大模型 (GGUF 格式 与 Llama 3.1)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/141028040 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Ollama…...

如何实现Redis和Mysql中数据双写一致性
在我们的实际开发中,我们用到了redis缓存一些常用的数据(如热点数据)用来提高系统的吞吐量。 但是不可以避免的出现了数据的修改场景,这就导致了数据库中的数据和Redis中出现不一致性的情况。如何保证数据一致性就显得非常重要了&…...

three.js 模型高亮效果实现说明(结合react)
three.js react 实现鼠标移入模型高亮选中效果 使用EffectComposer和其附加的渲染效果Passes(如RenderPass和OutlinePass)来实现高级渲染效果。首先创建EffectComposer实例,并添加RenderPass和OutlinePass,最后在渲染循环中调用…...

入营测评题解
第一题:first 第二题:chengji 打擂台,每个数跟当前最大、最小值比较,维护当前最值即可。 #include<bits/stdc.h> using lllong long; using namespace std;const int N1e610;int n; int x;//1e9, ll最大9e18 ll maxn0,minn…...

制造知识普及(十)-- 常见的工业软件介绍
「 1. ERP」 企业资源计划(enterprise resource planning,ERP)是制造企业的核心管理软件。ERP系统的基本思想是以销定产,协同管控企业的产、供、销、人、财、物等资源,帮助企业按照销售订单,基于产品的制造…...
Windows系统设置网络IPv4和IPv6优先访问级
Windows系统设置网络IPv4和IPv6优先访问级 资源宝整理分享:www.httple.net 在数字化的世界中,我们离不开互联网,而互联网协议(IP协议)则扮演着至关重要的角色。IPv4曾是互联网的主要标准,但随着IP地址枯竭问…...

yolov8 剪枝 - DepGraph
2024年8月5 5000张图片,2个类别。 yolov8n 初始: 185 layers, 3151904 parameters, 31936 gradients, 8.7 GFLOPs 经过三次finetune后: 185 layers, 2327024 parameters, 31936 gradients, 6.6 GFLOPs 经过第四次fintune后: …...

【网络】套接字socket编程预备知识
1.源IP地址和目的IP 计算机网络中的源地址和目的地址是用来标识网络中的不同主机的。 源地址是指发送数据包的主机的地址,而目的地址则是指接收数据包的主机的地址,在数据包传输过程中,每经过一个路中器感交换机,都会根据目的地址…...

【学习笔记】Day 8
写在开头: 最近老板突然提出一个全新的组会主题,是关于 “最近我犯的傻”,其目的在于提供乐子的同时引以为戒。本来我还在愁到底去哪里找干的啥事儿,结果今天直接拉了个大的。什么叫无心插柳柳成荫啊,悲。 一…...

springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
一、 背景 因为项目中需要使用word转pdf功能,因为转换速度原因,最后选用了libreoffice,原因及部署请参考 linux ubuntu环境安装libreoffice,word转pdf 远程调用的话可选docker部署,请看2.3.1 二、springboot整合libr…...

从入门到精通:大学生编程技能提升全攻略
文章目录 每日一句正能量前言编程语言选择编程语言选择:为新手导航Python:初学者的友好伙伴JavaScript:Web开发的核心Java:企业级应用的经典C:系统编程的基石Ruby:优雅高效的编程Swift:iOS开发的…...
C# .NET Framework的特殊委托
C# .NET Framework的特殊委托 .NET Framework中定义了几种特殊的委托类型,以简化委托的使用。以下是一些常用的特殊委托类型: Predicate<T> 这是一个返回布尔值的委托,接受一个类型为T的参数。常用于定义过滤条件。 using System; …...
C# 判断电脑是否联网
项目中连接webAPI需要判断是否联网,故找到这个方法,不需要引用任何dll,代码复制一下,直接使用。wininet.dll是系统自带的 public void Initial(){try{ if (IsNetworkConnected){SvMaster.Log.WriteInfo("网络…...
爬虫解析代码结构
在设计中加入一个顶层接口是有益的,特别是当您希望实现统一的接口来处理所有类型的排行榜数据时。这样做可以提供更好的灵活性和扩展性,同时保持代码的整洁和易于维护。 设计概述 接口: 定义一个 RankingDataCollector 接口,它定义了所有数…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...