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

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

Top 50 Software Engineering Interview Questions and Answers - GeeksforGeeks

开门见山

请讲下 OSI 各层协议的主要功能?

常见问题

  1. 回答不系统
  2. 回答不确切
  3. 无法和实际网络协议做关联对应

答题思路

  • OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型

  • OSI 包含 7 层,每一层负责特定的网络功能

  • OSI 模型由国际标准化组织在 1984 年开发,到现在已经成为计算机互联通信的架构模型

  • OSI 模型将整个网络传输任务划分为 7 个更小的、易于管理的子任务,每一层负责一个具体的任务

  • 每一层都是独立的,这样每一层都可以独立的处理对应的任务

OSI 模型的特点:

OSI Model

  • OSI 模型主要两个大层:上层和底层

  • OSI 模型上层主要处理应用相关的事务,通常由软件实现;应用层是离终端用户最近的一层,终端用户和应用层和软件应用进行交互,上一层协议会引用毗邻的下一层协议

  • OSI 模型底层协议主要处理数据传输事务,数据链路层和物理层由软、硬件实现,物理层是 OSI 模型的最底层也是距离物理媒介最近的层。物理层主要负责将信息放到物理媒介上

OSI 共有 7 层,每层负责不同的功能,7 层分别为:

  1. 物理层
  2. 数据链路层
  3. 网络层
  4. 传输层
  5. 会话层
  6. 表示层
  7. 应用层

OSI Model

1 物理层

OSI Model

  • 物理层的主要功能是将比特位从一个节点传输到另一个节点

  • 物理层是 OSI 模型最低层协议

  • 物理层负责物理连接的建立和维护

  • 物理层指定了机械、电气以及接口规范

物理层具体功能:

  • 连接配置: 物理层定义了两个或者多个设备物理上如何连接起来.

  • 数据传输: 物理层定义了网络中两个设备间的传输类型:单工、半双工、全双工.

  • 网络拓扑: 物理层定义了网络设备布置方式.

  • 信号: 理层定义了用于传输信息的信号类型.

2 数据链路层

OSI Model

  • 数据链路层负责数据帧的无差错传输
  • 数据链路层定义了网络传输中的数据格式
  • 数据链路层为两个或多个设备提供了可靠、高效的通信方式
  • 数据链路层主要负责一个局部网络中设备的唯一标识
  • 数据链路层包含两个子层:
    • 逻辑链路控制层 LLC
      • LLC 负责将网络层数据包传输给接收者的网络层

      • LLC 通过数据包 header 标识网络层协议的地址

      • LLC 提供流控

    • 媒体访问控制层 MAC
      • MAC 层介于是 LLC 和物理层之间

      • MAC 层用于在网络中传输数据包

数据链路层主要功能:

  • 数据帧封装: 数据链路层将物理原始比特转换成数据包分组(数据帧),并在收尾增加帧头和帧尾,帧头包含了源头和目的地的物理地址.

OSI Model

  • 物理地址表示: 数据链路层在帧头中添加了目的地的地址,数据帧会被发送给地址表示的计算机.

  • 流控: 流控是数据链路层的主要功能,流控是一种收发双方为确保传输数据完整、不破损而维护的一套数据率调整技术,通过流控能够保证处理能力强的一方的发送速率不会超过处理能力弱的一方的数据率.

  • 错误控制: 错误控制是通过循环冗余校验 CRC 实现的,CRC 校验值在每次数据包交给物理层前计算并放入帧尾中,如果发生错误,接收者就可以告知发送者数据帧错误需要重传.

  • 访问控制: 当多个设备连接到一个网络上时,数据链路层协议会决定在给定时间内哪个设备具有媒介的控制权.

3 网络层

OSI Model

  • 网络层是 OSI 第三层协议,用来管理设备地址、跟踪设备网络状态

  • 网络层决定了数据从源头计算机到目的计算机的最佳路径,主要根据网络环境、服务优先级、以及其他因素

  • 网络层负责数据的路由转发,最终的数据包会交给数据链路层

  • 这里需要提到的是,路由器就是典型的三层设备,提供网间的路由服务

  • 用于路由网络数据的协议就成为网络层协议,比如 IP 协议、Ipv6 协议

网络层主要功能:

  • 网络互联: 网络互联是网络层协议主要职责,网络层协议为设备间的连接抽象了一个逻辑连接.

  • 寻址: 网络层在数据帧头和尾增加了源和目的地的地址,这样就可以用来识别网络上的设备.

  • 路由: 路由是网络层的主要功能,路由决定了源和目的地间的最佳路径,其实网络互联也是通过路由实现.

  • 打包: 网络层接收上层的数据包并把它转换成网络层数据包,整个功能由 IP 协议实现.

4 传输层

OSI Model

  • 传输层是第四层协议,它保证了消息以指定的顺序传输并且不会有少发或者多发

  • 传输层的主要职责是将数据完整的发送到对端

  • 传输层从上层接收数据并将其转换为更小的分片

  • 传输层可以被称作点到点传输,它提供了点-点之间的数据的可靠传输

传输层的两种协议:

  • 传输控制协议 TCP
    • TCP 是让网络间各个系统实现通信功能的标准协议

    • TCP 在主机之间建立和维护连接

    • 当数据通过 TCP 连接发送时,TCP 协议会将数据分割为更小的单位(分片,segment),每个分片由各种路径发送到网络上,并以不同的顺序到达目的计算机。TCP 协议会重新整理数据包顺序,然后交给接收端

  • 用户数据报协议
    • 用户数据报协议 UDP 也是一种传输层协议

    • UDP 是一种不可靠传输,接收者在接到数据包后并不会发送应答数据包,发送者也不会等待应答。

传输层的主要功能:

  • 端口地址: 计算机上同时会有多个程序同时运行,这就导致了其实并不是一台计算机和另一台计算机通信,而是一个程序和另一个程序通信。传输层在包头增加了识别程序的地址,即端口号,网络层的职责是将消息从一台计算机传输到另一台计算机,而传输层是将消息传递到对应的程序.

  • 分包和重组: 当传输层从上层接收到消息时,首先会将其分割称为多个分片,每个分片会分配一个序列号来唯一标识该分片。当消息到达目的地后,传输层会根据序列号重新将消息组包

  • 连接控制: 传输层提供了两种服务,一种是面向连接的服务,另一种是面向非连接的服务;无连接服务将每个分片是做一个数据包,每个数据包在网络中独立路由,而面向连接的服务会在发送数据包前和目标机器的传输层建立连接,所有数据包使用相同的路由方式发送.

  • 流控: 传输层也负责流控,但是它侧重的是端到端而不是特定的某一条链路.

  • 错误控制 传输层也负责错误控制,错误控制也是端到端,传输层发送端必须保证消息没有没有任何差错被发送到对端.

5 会话层

OSI Model

  • 会话层用于对通信设备间的交互进行建立、维护、同步

会话层的主要功能:

  • 对话控制: 会话层充当了一个对话控制器,在两个通信程序间创建一个全双工或半双工的会话.

  • 同步: 会话层在传输数据时会增加一些检查点,如果传输数据过程中出现错误,那么传输会从上一个检查点继续进行,整个过程我们称为同步和恢复.

6 表示层

OSI Model

  • 表示层关心的主要是通信系统间交互信息的语法和语义.

  • 表示层充当网络的数据转换器.

  • 表示层操作系统上的一部分,用来将一种表示形式转换为另一种表示形式.

  • 表示层也被称为语法层.

表示层的主要功能:

  • 转换: 两个系统上的程序通过字符、数字等交互信息,不同的计算机采用不同的编码方式,表示层主要保持多个编码方法间的互操作性,将发送端的数据格式转换成通用格式,然后再将通用格式转换为目标系统的数据格式.

  • 加密: 加密主要用来维护隐私性,加密是一个将发送信息转换为另一种形式然后再发送到网络上的一种形式.

  • 压缩: 数据压缩通过对数据进行压缩减少传输的数据量,数据压缩在文本、音视频多多媒体应用中非常关键.

7 应用层

OSI Model

  • 应用层是面向用户、应用程序来访问网络服务的服务窗口

  • 应用层主要处理网络透明性和资源分配等.

  • 应用层并不是一个应用程序,而是扮演应用层功能的角色.

  • 应用层为终端用户提供网络服务.

应用层的主要功能:

  • 文件传输、访问、管理(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:此参数设置图像的垂直偏移。正值创建到底部的偏移量&#xff…...

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 }).…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...