价值 1k 嵌入式面试题-计算机网络 OSI

开门见山
请讲下 OSI 各层协议的主要功能?
常见问题
- 回答不系统
- 回答不确切
- 无法和实际网络协议做关联对应
答题思路
-
OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型
-
OSI 包含 7 层,每一层负责特定的网络功能
-
OSI 模型由国际标准化组织在 1984 年开发,到现在已经成为计算机互联通信的架构模型
-
OSI 模型将整个网络传输任务划分为 7 个更小的、易于管理的子任务,每一层负责一个具体的任务
-
每一层都是独立的,这样每一层都可以独立的处理对应的任务
OSI 模型的特点:

-
OSI 模型主要两个大层:上层和底层
-
OSI 模型上层主要处理应用相关的事务,通常由软件实现;应用层是离终端用户最近的一层,终端用户和应用层和软件应用进行交互,上一层协议会引用毗邻的下一层协议
-
OSI 模型底层协议主要处理数据传输事务,数据链路层和物理层由软、硬件实现,物理层是 OSI 模型的最底层也是距离物理媒介最近的层。物理层主要负责将信息放到物理媒介上
OSI 共有 7 层,每层负责不同的功能,7 层分别为:
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层

1 物理层

-
物理层的主要功能是将比特位从一个节点传输到另一个节点
-
物理层是 OSI 模型最低层协议
-
物理层负责物理连接的建立和维护
-
物理层指定了机械、电气以及接口规范
物理层具体功能:
-
连接配置: 物理层定义了两个或者多个设备物理上如何连接起来.
-
数据传输: 物理层定义了网络中两个设备间的传输类型:单工、半双工、全双工.
-
网络拓扑: 物理层定义了网络设备布置方式.
-
信号: 理层定义了用于传输信息的信号类型.
2 数据链路层

- 数据链路层负责数据帧的无差错传输
- 数据链路层定义了网络传输中的数据格式
- 数据链路层为两个或多个设备提供了可靠、高效的通信方式
- 数据链路层主要负责一个局部网络中设备的唯一标识
- 数据链路层包含两个子层:
- 逻辑链路控制层 LLC
-
LLC 负责将网络层数据包传输给接收者的网络层
-
LLC 通过数据包 header 标识网络层协议的地址
-
LLC 提供流控
-
- 媒体访问控制层 MAC
-
MAC 层介于是 LLC 和物理层之间
-
MAC 层用于在网络中传输数据包
-
- 逻辑链路控制层 LLC
数据链路层主要功能:
-
数据帧封装: 数据链路层将物理原始比特转换成数据包分组(数据帧),并在收尾增加帧头和帧尾,帧头包含了源头和目的地的物理地址.

-
物理地址表示: 数据链路层在帧头中添加了目的地的地址,数据帧会被发送给地址表示的计算机.
-
流控: 流控是数据链路层的主要功能,流控是一种收发双方为确保传输数据完整、不破损而维护的一套数据率调整技术,通过流控能够保证处理能力强的一方的发送速率不会超过处理能力弱的一方的数据率.
-
错误控制: 错误控制是通过循环冗余校验 CRC 实现的,CRC 校验值在每次数据包交给物理层前计算并放入帧尾中,如果发生错误,接收者就可以告知发送者数据帧错误需要重传.
-
访问控制: 当多个设备连接到一个网络上时,数据链路层协议会决定在给定时间内哪个设备具有媒介的控制权.
3 网络层

-
网络层是 OSI 第三层协议,用来管理设备地址、跟踪设备网络状态
-
网络层决定了数据从源头计算机到目的计算机的最佳路径,主要根据网络环境、服务优先级、以及其他因素
-
网络层负责数据的路由转发,最终的数据包会交给数据链路层
-
这里需要提到的是,路由器就是典型的三层设备,提供网间的路由服务
-
用于路由网络数据的协议就成为网络层协议,比如 IP 协议、Ipv6 协议
网络层主要功能:
-
网络互联: 网络互联是网络层协议主要职责,网络层协议为设备间的连接抽象了一个逻辑连接.
-
寻址: 网络层在数据帧头和尾增加了源和目的地的地址,这样就可以用来识别网络上的设备.
-
路由: 路由是网络层的主要功能,路由决定了源和目的地间的最佳路径,其实网络互联也是通过路由实现.
-
打包: 网络层接收上层的数据包并把它转换成网络层数据包,整个功能由 IP 协议实现.
4 传输层

-
传输层是第四层协议,它保证了消息以指定的顺序传输并且不会有少发或者多发
-
传输层的主要职责是将数据完整的发送到对端
-
传输层从上层接收数据并将其转换为更小的分片
-
传输层可以被称作点到点传输,它提供了点-点之间的数据的可靠传输
传输层的两种协议:
- 传输控制协议 TCP
-
TCP 是让网络间各个系统实现通信功能的标准协议
-
TCP 在主机之间建立和维护连接
-
当数据通过 TCP 连接发送时,TCP 协议会将数据分割为更小的单位(分片,segment),每个分片由各种路径发送到网络上,并以不同的顺序到达目的计算机。TCP 协议会重新整理数据包顺序,然后交给接收端
-
- 用户数据报协议
-
用户数据报协议 UDP 也是一种传输层协议
-
UDP 是一种不可靠传输,接收者在接到数据包后并不会发送应答数据包,发送者也不会等待应答。
-
传输层的主要功能:
-
端口地址: 计算机上同时会有多个程序同时运行,这就导致了其实并不是一台计算机和另一台计算机通信,而是一个程序和另一个程序通信。传输层在包头增加了识别程序的地址,即端口号,网络层的职责是将消息从一台计算机传输到另一台计算机,而传输层是将消息传递到对应的程序.
-
分包和重组: 当传输层从上层接收到消息时,首先会将其分割称为多个分片,每个分片会分配一个序列号来唯一标识该分片。当消息到达目的地后,传输层会根据序列号重新将消息组包
-
连接控制: 传输层提供了两种服务,一种是面向连接的服务,另一种是面向非连接的服务;无连接服务将每个分片是做一个数据包,每个数据包在网络中独立路由,而面向连接的服务会在发送数据包前和目标机器的传输层建立连接,所有数据包使用相同的路由方式发送.
-
流控: 传输层也负责流控,但是它侧重的是端到端而不是特定的某一条链路.
-
错误控制 传输层也负责错误控制,错误控制也是端到端,传输层发送端必须保证消息没有没有任何差错被发送到对端.
5 会话层

- 会话层用于对通信设备间的交互进行建立、维护、同步
会话层的主要功能:
-
对话控制: 会话层充当了一个对话控制器,在两个通信程序间创建一个全双工或半双工的会话.
-
同步: 会话层在传输数据时会增加一些检查点,如果传输数据过程中出现错误,那么传输会从上一个检查点继续进行,整个过程我们称为同步和恢复.
6 表示层

-
表示层关心的主要是通信系统间交互信息的语法和语义.
-
表示层充当网络的数据转换器.
-
表示层操作系统上的一部分,用来将一种表示形式转换为另一种表示形式.
-
表示层也被称为语法层.
表示层的主要功能:
-
转换: 两个系统上的程序通过字符、数字等交互信息,不同的计算机采用不同的编码方式,表示层主要保持多个编码方法间的互操作性,将发送端的数据格式转换成通用格式,然后再将通用格式转换为目标系统的数据格式.
-
加密: 加密主要用来维护隐私性,加密是一个将发送信息转换为另一种形式然后再发送到网络上的一种形式.
-
压缩: 数据压缩通过对数据进行压缩减少传输的数据量,数据压缩在文本、音视频多多媒体应用中非常关键.
7 应用层

-
应用层是面向用户、应用程序来访问网络服务的服务窗口
-
应用层主要处理网络透明性和资源分配等.
-
应用层并不是一个应用程序,而是扮演应用层功能的角色.
-
应用层为终端用户提供网络服务.
应用层的主要功能:
-
文件传输、访问、管理(FTAM): 应用层允许用户访问远程计算机上的文件,从远程计算机下载文件以及对远程文件进行管理
-
邮件服务: 应用层提供邮件转发和存储服务.
-
目录服务: An application provides the distributed database sources and is used to provide that global information about various objects应用程序提供分布式数据资源,用来提供不同对象的全局信息.
以上内容,根据重要程度需要依次了解网络层、传输层、数据链路层和物理层,进一步的可以和 TCP/IP 模型对接起来~
相关文章:
价值 1k 嵌入式面试题-计算机网络 OSI
开门见山 请讲下 OSI 各层协议的主要功能? 常见问题 回答不系统回答不确切无法和实际网络协议做关联对应 答题思路 OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型 OSI 包含 7 层,每一层负责特…...
spring boot去除get post空格
1.用ControllerAdvice处理 package com.wangzs.handler;import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer; import org.springframewo…...
设计模式四:单例模式(Singleton)
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。 通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。 单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一…...
《水经注地图服务》发布的影像数据如何在OsgEarth中调用
OsgEarth 是一个用于OpenSceneGraph (OSG)的可扩展地形渲染工具包,它是一个开源、高性能、3D 图形工具包。 只需创建一个简单的 XML 文件,将其指向您的图像、高程和矢量数据,将其加载到您最喜欢的 OSG 应用程序中,然后开始&#…...
css滤镜:drop-shadow
一、用法 drop-shadow( offset-x offset-y blur-radius spread-radius color ) offset-x:此参数设置图像的水平偏移。正值将创建右侧的偏移量,负值将创建左侧的偏移量。offset-y:此参数设置图像的垂直偏移。正值创建到底部的偏移量ÿ…...
java ThreadLocal
private ThreadLocal threadLocal new ThreadLocal(); threadLocal.set(0); (int) threadLocal.get(); 上面三行代码分别是定义、赋值和取值。 介绍: 我们只需要实例化对象一次,并且也不需要知道它是被哪个线程实例化。虽然所有的线程都能访问到这个T…...
MySQL高级篇第6章(索引的数据结构)
文章目录 1、为什么使用索引2、索引及其优缺点3、InnoDB中索引的推演4、MyISAM中的索引方案5、索引的代价6、MySQL数据结构选择的合理性 1、为什么使用索引 假如给数据使用 二叉树 这样的数据结构进行存储,如下图所示 2、索引及其优缺点 3、InnoDB中索引的推演 4、M…...
Unity 性能优化三:动画模块、物理模块
目录 动画模块 Mecanim 模块 1.1 Animator active的数量 1.1.1 Culling Mode 1.1.2 Optimize Gameobject 1.1.3 Apply Root Motion 1.1.4 Compute Skinning 1.1.5 Animator Initialize 1.2 Legacy动画 物理模块 2.1 物理更新次数 2.1 减少不必要的Collision 2.5 A…...
延迟函数
Destory函数: public static void Destroy(Object obj, [DefaultValue("0.0F")] float t); Invoke函数: public void Invoke(string methodName, float time); 挂个空物体测试一下: public class DelayTest : MonoBehaviour {…...
IBM报告:2023数据泄露平均成本将达到445万美元
7月24日,IBM发布年度《数据泄露成本报告》显示,2023年全球数据泄露的平均成本达到445万美元,创该报告有史以来最高纪录,较过去3年均值增长了15%。同一时期,检测安全漏洞和漏洞恶化带来的安全成本上升了42&a…...
20.3 HTML 表格
1. table表格 table标签是HTML中用来创建表格的元素. table标签通常包含以下子标签: - th标签: 表示表格的表头单元格(table header), 用于描述列的标题. - tr标签: 表示表格的行(table row). - td标签: 表示表格的单元格(table data), 通常位于tr标签内, 用于放置单元格中的…...
flutter项目运行时一直卡在Running Gradle task ‘assembleDebug‘解决办法
1.修改项目中的android/build.gradle,将google(),mavenCentral()替换为下面的代码 maven { url https://maven.aliyun.com/repository/central/ }maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repos…...
“深入理解Spring Boot:从入门到精通“
标题:深入理解Spring Boot:从入门到精通 摘要: Spring Boot是一款用于简化Spring应用开发的框架,它提供了一系列的开箱即用的功能和自动化配置,使得开发者能够快速构建、部署和运行Spring应用。本文将从入门到精通&am…...
IP 工具
什么是IP 工具 IP 工具是用于轻松扫描和排除网络 IP 地址空间故障的网络工程工具。IP 工具使网络管理员能够审核、跟踪和监视 IP 地址、子网以及使用 IP 的设备和主机的性能。这个全面的网络工程工具集包括高级 IP 工具,如 Ping、系统资源管理器、MAC 地址解析器和…...
Linux - 进程概念(进程状态、优先级)
1.进程状态 操作系统中进程有多种状态模型 三态模型 进程状态分为 就绪态,执行态,阻塞态。 就绪(Ready)状态:指进程已处于准备好运行的状态,即进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立…...
k8s概念-deployment
deployment用于部署无状态应用 Deployment集成了上线部署、滚动升级、创建副本、回滚等功能 Deployment里包含并使用了ReplicaSet Replicaset 通过改变Pod副本数量实现Pod的扩容和缩容 参考文档 https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/ …...
Flutter 调试工具篇 | 壹 - 使用 Flutter Inspector 分析界面
theme: cyanosis 1. 前言 很多朋友可能在布局过程中、或者组件使用过程中,会遇到诸如颜色、尺寸、约束、定位等问题,可能会让你抓耳挠腮。俗话说,磨刀不误砍柴工,会使用工具是非常重要的,其实 Flutter 提供了强大的调试…...
什么是云原生和 CNCF?
一、CNCF简介 CNCF:全称Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年 12 月 11 日,是一个开源软件基金会,它致力于云原生(Cloud Native)技术的普及和可持续…...
数据结构——单链表
无头单向非循环链表的建立 前言——什么链表链表形象图链表分类 一、Single_linked_list.h头文件的建立二、Single_linked_list.c功能函数的定义Single_linked_list_test.c主函数的定义四、代码运行测试五、Single_linked_list完整代码演示:总结 前言——什么链表 链…...
微信小程序手写签字版
在这里插入图片描述 wxml 请在下面的白框中签名 重置 提交 # js Page({ data: { signPath: [], cardNo: , preX: , preY: , }, onLoad(options) { this.setData({ cardNo: options.cardNo }) wx.createSelectorQuery().select(#myCanvas).fields({ node: true, size: true }).…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
