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

计算机网络之---OSI七层模型

为什么会有七层模型

OSI七层模型的出现源于计算机网络技术的发展需求,主要解决以下几个问题:

  1. 标准化与互操作性
    随着计算机网络的快速发展,不同厂商、不同技术之间的设备和系统需要能够无缝通信。而不同厂商在网络硬件、软件、协议等方面存在差异,导致不同系统之间的互操作性问题。OSI七层模型提供了一个统一的框架,确保不同设备和系统可以按照标准化的方式进行通信和互操作。

  2. 简化网络设计与管理
    在没有明确分层的情况下,网络协议和技术的发展会变得越来越复杂。将网络通信过程分为不同的层次,每一层独立负责特定的任务,简化了设计和开发过程。每一层的功能都可以独立发展和更新,互不干扰,提高了灵活性和可维护性。

  3. 层次化的故障排除与问题定位
    分层的模型使得网络故障排除变得更加清晰和系统化。在网络发生问题时,可以通过逐层排查,确定是物理层、传输层、应用层等哪一层出现问题,从而快速定位并解决问题。

  4. 促进技术和协议的独立发展
    OSI七层模型允许不同层次的技术和协议独立发展和演化。例如,物理层可以根据不同的物理介质(如光纤、铜线、无线等)设计,而不需要影响上层的协议。传输层可以独立设计,如TCP和UDP的区别。这样的分层设计提高了协议的灵活性和可扩展性。

  5. 提高网络通信的兼容性
    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)&#xff…...

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】入门基础知识

参考视频&#xff1a;【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一、基本结构 二、基本标签 <h1>&#xff1a;一级标题&#xff0c;通常用于页面的主标题&#xff0c;字体较大且醒目。 <h2>&#xff1a;二级标题&#xff0c;用于副标题或主要章节标…...

PHP获取局域网ip(192.168)

有时候&#xff0c;程序中&#xff0c;需要获取本机内网ip的情况&#xff0c;经过各种资料查找&#xff0c;最终确定一下代码&#xff1a; //获取内网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. 总结 很多人不明白什么是第一次加载&#xff0c;两种情况讨论&#xff0c;第一种情况假设我是开发者&#xff0c;第一次加载就是指点击微信开发者工具上边的编译按钮&#xff0c;每点击…...

基于PLC的酒店热水供应控制系统设计

摘 要 酒店的热水量需求比较大,热水加热消耗能源比较多,为了实现清洁能源加热实现热水供应,系统设计以太阳能作为主要能源来源,以电加热作为辅助能源来源进行系统的设计.通过集热器、储水箱、循环泵等设备组成酒店热水供水系统。通过控制温度传感器的信号&#xff0c;实现恒温…...

博客内所有项目均可在面包多平台进行购买

本人已入住面包多平台&#xff1a;我的 - 面包多 已有资料&#xff1a;...

《Mcal》--MCU模块

一、MCU模块的主要功能 控制系统时钟的产生。控制系统通用模块&#xff0c;该模块会涉及到Adc、Ftm等外设的配置。控制外设时钟。控制MCU运行的模式。初始化定义RAM Section。 比较重要的是时钟的配置。 二、系统时钟的配置 1、芯片时钟树 要想弄明白时钟配置&#xff0c;需…...

C语言:枚举类型

一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中&#xff1a; 星期一到星期日是有限的7天&#xff0c;可以一一列举 &#xff1b;性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举 &#xff1b;月份有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 控制传输&#xff08;Control Transfer&#xff09;的重传机制 1. 控制传输的事务结构 控制传输分为三个阶段&#xff0c;每个阶段都有自己的事务&#xff0c;并可能触发重传机制&#xff1a; 设置阶段&#xff08;Setup Stage&#xff09;&#xff1a;主机发送 8 字节的…...

云计算基础,虚拟化原理

文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟&#xff08;Emulation&#xff09;方式半虚拟化…...

浮点数在C语言开发中为什么不精确?

在C语言开发中&#xff0c;浮点数的精度问题是一个常见的陷阱&#xff0c;尤其是对于刚接触编程的开发者来说&#xff0c;可能会对浮点数的行为感到困惑。为什么0.1 0.2不等于0.3&#xff1f;为什么浮点数计算会出现微小误差&#xff1f;本文将从计算机底层原理出发&#xff0…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...