计算机网络面试八股文攻略(一) —— OSI 七层模型

一、简述

本系列将对面试中与计算机网络相关的知识进行讲解与分析。
本篇为 OSI 七层网络模型的相关知识。

二、概念

OSI 七层网络模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
也可以被细化为 TCP \ IP 五层模型和四层模型。但后两者都是基于先者产生的,所以,优先从泛化的讲起。

如图所示
这七层分别为

  • 应用层
  • 表示层
  • 会话层
  • 运输层
  • 网络层
  • 数据链路层
  • 物理层

这七层功能主要是将数据层层打包,最后实现整个数据交互的流程。
那么,这七层究竟是如何打包的呢?

三、模型细节

出于方便记忆的考虑。我将从下到上讲这七层模型,按照信息被打包传递的逻辑进行讲解。

1. 物理层

他可以看做实际的数据传输线。作用主要是实现计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。说人话就是让上面的数据层不用管数据是用啥传输的了,物理层会负责的。

2. 数据链路层

主要负责物理寻址与封装 IP 数据报。
物理层已经解决了如何发的问题。数据链路层就负责解决从哪发到哪的问题,即,确定发送点的位置和接受点的位置。
以及他还会将网络层传下来的 IP 数据报组装成帧,用于在物理层发送。

2.1 相关协议

从这层开始,就有一些比较重要的协议需要了解了。
这层主要关注两个协议,ARP 和 RARP
ARP 协议 又称 地址解析协议。负责将 IP (逻辑)地址转换成 MAC (物理)地址。因为数据链路层的工作就是将网络层传下来的逻辑地址转换成物理层能使用的物理地址。
而这种地址转换有两种方法。

  • 静态映射:
    创建一张 ARP 表记录 IP 和对应的 MAC 地址。将这张表存储在每台机器上。因为逻辑地址不长变,但物理地址可能经常变。所以要定期更新,变换对应的物理地址。
  • 动态映射:
    就是通过 ARP协议,通过对 IP 地址获得对应的 MAC 地址。具体方法是将 IP 地址进行广播,对应的主机就会返回消息,获得对应的物理地址。这个对应关系会进行缓存,可以用于加快反应并减少资源。

RARP协议 又称反向地址解析协议。做的工作就和 ARP 协议相反了。负责将 MAC 地址转换成对应的 IP 地址。方法类似,不再复述。

3. 网络层

负责选择合适的网间路由和交换结点, 确保数据及时传送。
主要使用的是 IP 协议,所以分组的数据叫 IP 数据报。

IP 协议 很关键,是整个TCP/IP协议族的核心,也是构成互联网的基础。
给上层提供了无状态,无连接,不可靠的服务。

  • 无状态:IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送,传输,和接收都是相互独立的,没有上下文关系的。
  • 无连接:IP通信双方都不长久地维持对方的任何信息。这样,上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
  • 不可靠:IP协议不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力(best effort)。 很多种情况都能导致IP数据报发送失败。

IP 协议的具体流程:基于 IP 协议,主机收到 IP 数据报时,会校验并解析数据报的头部,看看这个数据报是否是发给本机的,是就放到输入队列等待处理。否就进行转发。转发的下一跳是哪个物理机则是基于路由表。因为地址会更新,所以路由表也会根据路由协议或 route 命令更新路由,确保数据报转发正常。

说到 IP ,那么必然要了解 IPV4 和 IPV6。这两个都是 IP 协议,但是版本不一样。但区别不止于此。主要有以下几点

  • 协议地址:
    1. 地址长度不一致:IPV4只有 32 位的地址长度,而 IPV6 有 128 位地址长度,能涵盖的网络地址远远大于 IPV4
    2. 地址表达方式不一致:V4 是十进制表示的二进制数,V6是十六进制表示的二进制数
    3. 地址配置方式不一致:V4 可以通过手动配置,也可通过 DHCP(动态主机配置协议:应用层)进行设置。但 V6 只能基于 DHCP 或 ICMPV6 (Internet 控制消息协议)进行自动配置
  • 地址解析协议:
    V4 使用的是ARP 协议进行映射。而 V6 使用 NDP (邻居发现协议:网络层)进行替代。NDP 会进行 IP 地址转换,路由的维护和使用。

IPV6 的优点:

  • IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为232;而IPv6中IP地址的长度为128,即最大地址个数为2128。与32位地址空间相比,其地址空间增加了2128-232个。
  • IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类的原则,这使得路由器能在路由表中用一条记录表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  • IPv6加入了对自动配置的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  • IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
  • 允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
  • 更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。

4. 传输层

负责向两台主机进程之间的通信提供通用的数据传输服务。应用程序利用该服务传送应用层报文。
在该层运行的协议就是 TCP 和 UDP。本文只对这两个协议进行基础的概念讲解,将在下一篇文章中进行具体分析。
TCP:传输控制协议。提供面向连接的,可靠的数据传输服务。
UDP:用户数据协议。提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)

5. 会话层

负责建立、管理和终止表示层实体之间的通信会话。该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
三次握手和四次回收就发生在本层。RPC 调用也在本层进行。还有HTTPs 的加密协议:SSL(安全套接字层协议)和 TLS(传输层安全协议)也在这一层。

三次握手:

过程:

  • 一次握手:客户端发送带有 SYN =1 的数据包到服务端
  • 二次握手:服务端发送带有 SYN/ACK (SYN为新值,ACK 为 SYN值+1)标志的数据包到客户端
  • 三次握手:客户端发送带有带有 ACK (ACK 为 SYN值+1)标志的数据包到服务端

为什么要三次握手呢?

是为了确保双方的发送和接受都是正常的。
第一次握手:Client 什么都不能确认;Server 确认了对方发送正常,自己接收正常
第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常
第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常

为什么要传回 SYN?

为了告诉发送端,我接收到的信息确实就是你所发送的信号了。

为啥还要传 ACK?

接收方到发送方的通道还需要 ACK 信号来进行验证

四次挥手

过程:

  • 一次挥手:客户端发送一个 FIN,用来关闭客户端到服务器的数据传送
  • 二次挥手:服务器收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号
  • 三次挥手:服务器关闭与客户端的连接,发送一个FIN给客户端
  • 四次挥手:客户端发回 ACK 报文确认,并将确认序号设置为收到序号加1

为什么要四次挥手呢

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

为何要等待 2MSL(最大报文生存时间)

客户端发送 ACK 报文后,要等待 2MSL 时间,确定服务端收到了所以没发送确认报文

SSL 与 TLS

这是俩加密方法,是 HTTP 与 HTTPs 的区别之一,具体不在这详述了,请听下文分解。

6. 表示层

使通信的应用程序能够解释交换数据的含义。提供的服务主要包括数据压缩,数据加密以及数据描述。这使得应用程序不必担心在各台计算机中表示和存储的内部格式差异。

7. 应用层

由程序员写的应用软件实现,比如需要传输什么内容,怎么传等等。作用是通过应用程序间的交互来完成特定的网络应用。该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。

主要存在的协议为 DNS,HTTP,SMTP。

  • DNS:域名交换系统。负责将域名转化为 IP
  • HTTP:超文本传输协议。指定了客户端能给服务端发送怎样的消息。得到怎样的响应
  • SMTP:电子邮件传输协议。一种提供可靠且有效的电子邮件传输的协议。建立于 FTP 文件传输服务之上。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5396.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

A Causal Debiasing Framework for Unsupervised Salient Object Detection

背景知识 显著性检测 简单就是使用图像处理技术和计算机视觉算法来定位图片中最“显著”的区域。显著区域就是指图片中引人注目的区域或比较重要的区域,例如人眼在观看一幅图片时会首先关注的区域。 chatGPT4的回答 计算机视觉中的显著性检测(Visual…

从事6个月软件测试,目前只会功能测试迷茫了...

前言 (来自一位粉丝的投稿)来这个公司大半年,现在主要做的是类似于淘宝的购物商城,以前也做应用系统什么的,可是感觉公司的软件测试岗位都是不着边的,因为做的都是功能测试,来了这么久,没接触过技术性的东…

美丽苏大,清华博士,年轻硕导,招收研究生了!

Datawhale学术 导师:张正超,苏州大学,Datawhale成员导师信息本人于2022年取得清华大学博士学位,目前是苏州大学计算机科学与技术学院的硕士生导师,2023年可招收计算机科学与技术、软件工程、人工智能及大数据技术与工程…

微服务保护Sentinel一站式学习

微服务保护Sentinel 雪崩问题 解决雪崩问题的四种常见方式: 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。如果设置一秒钟没响应返回,即1s释放连接,这1s中有好多个请求…

BOSS直拒、失联招聘,消失的“金三银四”,失业的测试人出路在哪里?

裁员潮涌,经济严冬。最近很多测试人过得并不好,行业缩水对测试岗位影响很直接干脆,究其原因还是测试门槛在IT行业较低,同质化测试人员比较多。但实际上成为一位好测试却有着较高的门槛,一名优秀的测试应当对产品的深层…

Stable Diffusion 视频和图片帧互换以及AI动画帧生成

Stable Diffusion 只做AI动画是基于把原有视频按照帧进行提取之后对每一帧的图像进行标准化流程操作,中间可以掺杂Controlnet对人物进行控制,使用关键词对画面进行控制,但是很多小伙伴不太会掌握一些编辑视频软件或者python的操作导致视频转帧…

Java 深入理解Servlet

动态资源与静态资源区别 servlet三及相关接口简介servet 执行过程servlet路径映射servlet生命周期(重点) --理解(重点)Servlet自动加载Servlet线程安全Servlet相关接口详解ServletContext对象 --知识点 一、Web项目结构 |- WebRoot : web应用的根目录…

【linux】常用命令大全(入门必备)

这篇文章涵盖了linux中常用的所有指令,欢迎大家阅读查询。(如有不正确的地方,各位大佬可以在评论区指出,我会及时进行更正)。 文章目录登录远程服务器ssh添加删除用户当前路径pwd列出文件目录ls进入cdtreewhoami创建文件touch创建目录mkdir删…

【C语言学习】循环结构和选择结构

C语言中有三大结构,分别是顺序结构、选择结构和循环结构(分支结构): C语言顺序结构就是让程序按照从头到尾的顺序依次执行每一条C语言代码,不重复执行任何代码,也不跳过任何代码。 C语言选择结构也称分支结…

都说IT行业饱和了,2023年成为程序员还有发展前景吗?

程序员饱和了吗?初级码农肯定是算饱和了,因为大部分的互联网企业开始提高招聘要求了,比如技能要求、两三年工作经验、项目经验、软实力等,是按照中级开发人员的标准来的。所以干程序员还是有发展前景的,你的技能达标了…

Linux常用命令——locate命令

在线Linux命令查询工具 locate 比 find 好用的文件查找工具 补充说明 locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案…

虹科喜报 | 虹科技术工程师【国内首批】拿下Redis认证开发者证书!

要说虹科数据库技术工程师有多强悍,认证考试2022年12月上线,次年2月就以全国首批速度强势通过考试,并于两周后正式收到【Redis认证开发人员】证书! 虹科小云忍不住浅浅炫耀一下: 或许大家对Redis企业版数据库认证开发…

前端面试题之html css篇

文章目录1.什么是盒模型2.行内元素有哪些&#xff1f;块级元素有哪些&#xff1f; 空(void)元素有那些&#xff1f;行内元素和块级元素有什么区别&#xff1f;3.简述src和href的区别4.什么是css Hack5.什么叫优雅降级和渐进增强6.px和em的区别7.HTML5 为什么只写< !DOCTYPE …

[linux虚拟机]网络连接的三种模式和重要文件夹

桥接模式: 虚拟系统可以和外部系统通讯,但容易造成IP冲突NAT模式,网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突主机模式:独立的系统 /bin [常用] (/usr/bin 、 /usr/local/bin) 是 Binary 的缩写, 这个目录存放着最经常使用的命令/sbin (/usr/sbin 、 /usr/loca…

2023年非业绩亏损ST股票投资策略研究报告

第一章 ST 股票概况 ST 股票是指中国股市上的一种特殊类型的股票&#xff0c;全称为“特别处理股票”&#xff0c;简称为 ST 股票。1998年4月22日&#xff0c;沪深证券交易所宣布将对财务状况和其他财务状况异常的上市公司的股票交易进行特别处理&#xff0c;由于“特别处理”…

VirtualBox安装centos宿主机与虚拟机网络互通、多个虚拟机之间网络互通、虚拟机可上外网

一&#xff0c;虚拟机的网络配置连接方式 选择 桥接网卡&#xff0c;界面名称 选择 当前宿主机能上网的网卡我现在电脑当前能上网的 网络名称是Remote NDIS .... &#xff0c;所以上面的界面名称选它&#xff1a;修改之后&#xff0c;重启centos虚拟机二&#xff0c;配置虚拟机…

代码随想录算法训练营第五十六天|583.两个字符串的删除操作、72.编辑距离

day56 2023/03/28 一、两个字符串的删除操作 给定两个单词 word1 和 word2&#xff0c;找到使得 word1 和 word2 相同所需的最小步数&#xff0c;每步可以删除任意一个字符串中的一个字符。 示例&#xff1a; 输入: "sea", "eat"输出: 2解释: 第一步将…

企业数字化中,BI 有何价值

在近些年的时间里&#xff0c;相关的数字化技术、理念、应用扩散到各行各业&#xff0c;让整个社会开始进行深层次的改变&#xff0c;也让城市建设这种传统的基础建设开始融合数字化&#xff0c;并利用数据结合数据中心、城市大脑等构建新型基础建设模式。 数据在这些年的时间…

AD83584D数字音频放大器

AD83584D是一款数字音频放大器&#xff0c;能够将25W&#xff08;BTL&#xff09;的功率分别驱动到一对8Ω负载扬声器&#xff0c;并将50W&#xff08;PBTL&#xff09;的功率驱动到一个4Ω负载扬声器。在24V电源下工作&#xff0c;无需外部散热器或风扇即可播放音乐。AD83584D…

第16章_多版本并发控制

第16章_多版本并发控制 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目…