价值 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 模型对接起来~

相关推荐
程序猿进阶10 分钟前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
长风清留扬2 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
jiao_mrswang2 小时前
leetcode-18-四数之和
算法·leetcode·职场和发展
->yjy10 小时前
计算机网络(第一章)
网络·计算机网络·php
Swift社区11 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
摘星星ʕ•̫͡•ʔ11 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络
Dong雨12 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
周三有雨13 小时前
【面试题系列Vue07】Vuex是什么?使用Vuex的好处有哪些?
前端·vue.js·面试·typescript
爱米的前端小笔记13 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
好学近乎知o14 小时前
解决sql字符串
面试