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

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



开门见山

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

常见问题

1.回答不系统

2.回答不确切

3.无法和实际网络协议做关联对应

答题思路

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

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

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

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

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

OSI 模型的特点:

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


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


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


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


1.物理层

2.数据链路层

3.网络层

4.传输层

5.会话层

6.表示层

7.应用层



1 物理层


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


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


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


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


物理层具体功能:


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


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


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


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

2 数据链路层


数据链路层负责数据帧的无差错传输

数据链路层定义了网络传输中的数据格式

数据链路层为两个或多个设备提供了可靠、高效的通信方式

数据链路层主要负责一个局部网络中设备的唯一标识

数据链路层包含两个子层:

逻辑链路控制层 LLC

LLC 负责将网络层数据包传输给接收者的网络层


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


LLC 提供流控


媒体访问控制层 MAC

MAC 层介于是 LLC 和物理层之间


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


数据链路层主要功能:


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


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


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


错误控制: 错误控制是通过循环冗余校验 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 模型对接起来~



相关文章
|
28天前
|
C语言
经典面试题:嵌入式系统中经常要用到无限循环,怎么样用C编写死循环呢
在嵌入式系统开发中,无限循环常用于持续运行特定任务或监听事件。使用C语言实现死循环很简单,可以通过`while(1)`或`for(;;)`的结构来编写。例如:`while (1) { /* 循环体代码 */ }`,这种写法明确简洁,适用于需要持续执行的任务或等待中断的场景。
|
3月前
|
缓存 网络协议 算法
这些年背过的面试题——网络和操作系统基础篇
本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?一文带你详细了解,欢迎收藏!
|
3月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
81 2
|
3月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
80 2
|
4月前
|
网络架构
OSI网络七层模型
OSI网络七层模型
114 9
|
4月前
|
网络协议 程序员 定位技术
学习网络的第一步:全面解析OSI与TCP/IP模型
**网络基础知识概览:** 探索网络通信的关键模型——OSI七层模型和TCP/IP五层模型。OSI模型(物理、数据链路、网络、传输、会话、表示、应用层)提供理论框架,而TCP/IP模型(物理、数据链路、网络、传输、应用层)更为实际,合并了会话、表示和应用层。两者帮助理解数据在网络中的传输过程,为网络设计和管理提供理论支持。了解这些模型,如同在复杂的网络世界中持有了地图。
88 2
|
5月前
|
缓存 JSON 网络协议
Android面试题:App性能优化之电量优化和网络优化
这篇文章讨论了Android应用的电量和网络优化。电量优化涉及Doze和Standby模式,其中应用可能需要通过用户白名单或电池广播来适应限制。Battery Historian和Android Studio的Energy Profile是电量分析工具。建议减少不必要的操作,延迟非关键任务,合并网络请求。网络优化包括HTTPDNS减少DNS解析延迟,Keep-Alive复用连接,HTTP/2实现多路复用,以及使用protobuf和gzip压缩数据。其他策略如使用WebP图像格式,按网络质量提供不同分辨率的图片,以及启用HTTP缓存也是有效手段。
82 9
|
5月前
|
缓存 网络协议 安全
Android网络面试题之Http基础和Http1.0的特点
**HTTP基础:GET和POST关键差异在于参数传递方式(GET在URL,POST在请求体),安全性(POST更安全),数据大小限制(POST无限制,GET有限制),速度(GET较快)及用途(GET用于获取,POST用于提交)。面试中常强调POST的安全性、数据量、数据类型支持及速度。HTTP 1.0引入了POST和HEAD方法,支持多种数据格式和缓存,但每个请求需新建TCP连接。**
49 5
|
5月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
62 2
|
5月前
|
缓存 网络协议 Android开发
Android网络面试题之Http1.1和Http2.0
HTTP/1.1 引入持久连接和管道机制提升效率,支持分块传输编码和更多请求方式如PUT、PATCH。Host字段指定服务器域名,RANGE用于断点续传。HTTP/2变为二进制协议,实现多工处理,头信息压缩和服务器推送,减少延迟并优化资源加载。HTTP不断发展,从早期的简单传输到后来的高效交互。
61 0
Android网络面试题之Http1.1和Http2.0