计算机网络之---OSI七层模型
为什么会有七层模型
OSI七层模型的出现源于计算机网络技术的发展需求,主要解决以下几个问题:
-
标准化与互操作性
随着计算机网络的快速发展,不同厂商、不同技术之间的设备和系统需要能够无缝通信。而不同厂商在网络硬件、软件、协议等方面存在差异,导致不同系统之间的互操作性问题。OSI七层模型提供了一个统一的框架,确保不同设备和系统可以按照标准化的方式进行通信和互操作。 -
简化网络设计与管理
在没有明确分层的情况下,网络协议和技术的发展会变得越来越复杂。将网络通信过程分为不同的层次,每一层独立负责特定的任务,简化了设计和开发过程。每一层的功能都可以独立发展和更新,互不干扰,提高了灵活性和可维护性。 -
层次化的故障排除与问题定位
分层的模型使得网络故障排除变得更加清晰和系统化。在网络发生问题时,可以通过逐层排查,确定是物理层、传输层、应用层等哪一层出现问题,从而快速定位并解决问题。 -
促进技术和协议的独立发展
OSI七层模型允许不同层次的技术和协议独立发展和演化。例如,物理层可以根据不同的物理介质(如光纤、铜线、无线等)设计,而不需要影响上层的协议。传输层可以独立设计,如TCP和UDP的区别。这样的分层设计提高了协议的灵活性和可扩展性。 -
提高网络通信的兼容性
OSI模型让不同网络协议和技术能够通过标准化接口和方法互相兼容。例如,基于不同协议的应用程序能够通过标准接口与网络通信,应用层协议(如HTTP)与传输层协议(如TCP)可以通过标准化的方式进行交互,而无需关心底层实现细节。
七层模型都是什么
1. 物理层(Physical Layer)
物理层负责数据在物理介质上的传输。它定义了设备之间的电气、机械、流程和功能特性。其主要任务是将比特流(0和1)从发送端传输到接收端。
主要内容:
- 电气特性:例如电压、电流、信号的频率等。
- 物理介质:如双绞线、光纤、电缆、无线电波等。
- 连接器和接口:如RJ-45接口、USB接口、光纤接口等。
- 传输速率:数据传输的速率,例如100Mbps、1Gbps等。
协议与标准:
- Ethernet(以太网)
- IEEE 802.3
- Wi-Fi(无线局域网)
2. 数据链路层(Data Link Layer)
数据链路层负责将物理层传输过来的原始比特流打包成数据帧,并通过链路的可靠传输来确保数据正确传递。它还负责错误检测和纠正、帧同步、流量控制等。
主要内容:
- 帧的构建与解构:将数据包封装成帧,包含源地址、目的地址、校验信息等。
- 错误检测与纠正:例如通过校验和(CRC)检测和纠正传输中的错误。
- 访问控制:确保多个设备在共享媒介上能够有序地发送数据,例如Ethernet中的CSMA/CD(载波侦听多路访问/碰撞检测)。
协议与标准:
- Ethernet(以太网)
- PPP(点对点协议)
- HDLC(高级数据链路控制)
- ATM(异步传输模式)
3. 网络层(Network Layer)
网络层负责在不同网络之间进行数据包转发,提供逻辑地址(如IP地址)与路由功能。它确保数据能够从源设备传输到目标设备,可能经过多个中转节点(如路由器)。
主要内容:
- 路由选择:选择数据传输的最佳路径,使用路由算法进行路径选择。
- IP地址分配与寻址:每个设备需要一个唯一的IP地址,网络层通过IP地址来识别和定位设备。
- 数据包分段与重组:如果数据包过大,网络层会进行分段,接收端则会进行重组。
协议与标准:
- IP(互联网协议)
- ICMP(Internet Control Message Protocol)
- ARP(Address Resolution Protocol)
- RIP、OSPF、BGP(路由协议)
4. 传输层(Transport Layer)
传输层负责提供端到端的通信,确保数据的可靠传输。它处理数据的流量控制、错误检测与重传等问题,确保应用层的数据完整性和顺序。
主要内容:
- 端到端的通信:从源设备到目标设备的通信,确保两个应用程序之间的数据交换可靠、顺序。
- 流量控制:控制数据的传输速率,避免网络拥堵。
- 错误检测与纠正:通过校验和等技术确保数据的完整性。
- 连接管理:如连接的建立、维护和断开。
协议与标准:
- TCP(Transmission Control Protocol):面向连接、可靠的数据传输协议。
- UDP(User Datagram Protocol):无连接、不可靠的传输协议,适用于实时应用。
5. 会话层(Session Layer)
会话层负责建立、管理和终止会话(通信会话)。它控制对话的开始、持续和结束。该层还负责数据的同步、恢复等功能。
主要内容:
- 会话管理:如建立、管理和终止会话连接。
- 对话控制:全双工、半双工或单工通信的控制。
- 数据同步:确保数据交换的顺利进行,适时恢复会话中的断开部分。
协议与标准:
- NetBIOS(网络基本输入输出系统)
- RPC(远程过程调用)
- SMB(服务器消息块)
6. 表示层(Presentation Layer)
表示层负责数据格式的转换和加密、解密。它确保应用层的数据以标准化的方式进行传输,处理不同计算机间数据表示的兼容问题。
主要内容:
- 数据格式转换:如ASCII与EBCDIC之间的转换、图像格式转换(JPEG、PNG、GIF等)。
- 数据压缩:减少数据传输的大小。
- 加密与解密:提供数据加密和解密功能,以保障数据传输的安全性。
协议与标准:
- SSL/TLS(安全套接字层/传输层安全协议)
- JPEG、GIF、PNG(图像格式)
- MPEG(视频格式)
7. 应用层(Application Layer)
应用层是OSI模型的最上层,负责为用户提供网络服务和应用程序接口。它直接与用户的应用程序交互,提供各种服务,如文件传输、电子邮件、网页浏览等。
主要内容:
- 用户接口:应用程序与用户交互的界面。
- 协议服务:提供特定应用所需的协议支持,如HTTP、FTP、SMTP等。
- 数据处理与展示:将传输的数据处理成用户可理解的形式。
协议与标准:
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- SMTP(简单邮件传输协议)
- DNS(域名系统)
相关文章:
计算机网络之---OSI七层模型
为什么会有七层模型 OSI七层模型的出现源于计算机网络技术的发展需求,主要解决以下几个问题: 标准化与互操作性 随着计算机网络的快速发展,不同厂商、不同技术之间的设备和系统需要能够无缝通信。而不同厂商在网络硬件、软件、协议等方面存在…...
mysql的mvcc理解
人阅读 一、说到mvcc就少不了事务隔离级别(大白话解释) 序列化(SERIALIZABLE):事务之间完全隔离,当成一个序列,一个一个执行。 1 可重复读(REPEATABLE READ)ÿ…...
leetcode 面试经典 150 题:两数之和
链接两数之和题序号1题型数组解题方法1. 哈希表,2. 暴力法难度简单熟练度✅✅✅✅✅ 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输…...
nexus搭建maven私服
说到maven私服每个公司都有,比如我上一篇文章介绍的自定义日志starter,就可以上传到maven私服供大家使用,每次更新只需deploy一下就行,以下就是本人搭建私服的步骤 使用docker安装nexus #拉取镜像 docker pull sonatype/nexus3:…...
理解 Tomcat 架构
前言 Tomcat 是一个轻量级的 Web 容器,被广泛应用于 Java Web 开发中。通过它,我们可以轻松地部署和运行 Web 应用。在本文中,我们将深入分析 Tomcat 的核心架构,同时结合一段代码,手动实现一个简化的 Tomcat 服务&am…...
python3GUI--大屏可视化-传染病督导平台 By:PyQt5
文章目录 一.前言二.预览三.软件组成&开发心得1.样式&使用方法2.左侧表格实现3.设计4.学习5.体验效果 四.代码分享1.环形渐变进度组件2.自定义图片的背景组件 五.总结 大小:60.9 M,软件…...
如何选择适合的证件照制作软件,让您的照片制作更轻松
在当今数字化的时代,制作证件照不再需要专门前往照相馆。选择一款合适的证件照制作软件,您可以在家中轻松完成标准证件照的拍摄与制作。然而,面对市面上琳琅满目的软件,找到最适合您需求的软件并不简单。本文将为您详细介绍选择证…...
工作效率提升:使用Anaconda Prompt 创建虚拟环境总结
目录 完整顺序命令流程(直接照着改就行)详细步骤解析(想要详细解析的看过来)1. 创建一个用于存储 Conda 环境的目录(可选)2. 创建新的 Conda 虚拟环境并指定路径3. 激活新创建的环境4. 安装 Jupyter Notebo…...
Python自动化实战 —— 使用Selenium进行Web自动化
为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应…...
【前端】【HTML】入门基础知识
参考视频:【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一、基本结构 二、基本标签 <h1>:一级标题,通常用于页面的主标题,字体较大且醒目。 <h2>:二级标题,用于副标题或主要章节标…...
PHP获取局域网ip(192.168)
有时候,程序中,需要获取本机内网ip的情况,经过各种资料查找,最终确定一下代码: //获取内网ipfunction getLocalIP() {exec("ipconfig /all",$arr);$res mb_convert_encoding($arr, UTF-8, GBK);$ip ;fore…...
点击底部的 tabBar 属于 wx.switchTab 跳转方式,目标页面的 onLoad 不会触发(除非是第一次加载)
文章目录 1. tabBar 的跳转方式2. tabBar 跳转的特点3. 你的配置分析4. 生命周期触发情况5. 总结 很多人不明白什么是第一次加载,两种情况讨论,第一种情况假设我是开发者,第一次加载就是指点击微信开发者工具上边的编译按钮,每点击…...
基于PLC的酒店热水供应控制系统设计
摘 要 酒店的热水量需求比较大,热水加热消耗能源比较多,为了实现清洁能源加热实现热水供应,系统设计以太阳能作为主要能源来源,以电加热作为辅助能源来源进行系统的设计.通过集热器、储水箱、循环泵等设备组成酒店热水供水系统。通过控制温度传感器的信号,实现恒温…...
博客内所有项目均可在面包多平台进行购买
本人已入住面包多平台:我的 - 面包多 已有资料:...
《Mcal》--MCU模块
一、MCU模块的主要功能 控制系统时钟的产生。控制系统通用模块,该模块会涉及到Adc、Ftm等外设的配置。控制外设时钟。控制MCU运行的模式。初始化定义RAM Section。 比较重要的是时钟的配置。 二、系统时钟的配置 1、芯片时钟树 要想弄明白时钟配置,需…...
C语言:枚举类型
一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中: 星期一到星期日是有限的7天,可以一一列举 ;性别有:男、女、保密,也可以一一列举 ;月份有12个月&#x…...
spring boot 多数据源集成mysql、postgresql、phoenix、doris等
如何搭建多数据源项目只要以下简单几步; 一. 创建核心在config.datasource文件夹里 二. 引入相对应的jar包 三. 创建数据库连接配置 四. 写逻辑代码进行验证 1.DataSource package com.irootech.config.datasource;import java.lang.annotation.*;Target({ElementType.MET…...
USB基础 -- USB 控制传输(Control Transfer)的重传机制
USB 控制传输(Control Transfer)的重传机制 1. 控制传输的事务结构 控制传输分为三个阶段,每个阶段都有自己的事务,并可能触发重传机制: 设置阶段(Setup Stage):主机发送 8 字节的…...
云计算基础,虚拟化原理
文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟(Emulation)方式半虚拟化…...
浮点数在C语言开发中为什么不精确?
在C语言开发中,浮点数的精度问题是一个常见的陷阱,尤其是对于刚接触编程的开发者来说,可能会对浮点数的行为感到困惑。为什么0.1 0.2不等于0.3?为什么浮点数计算会出现微小误差?本文将从计算机底层原理出发࿰…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
