【备战面试】每日10道面试题打卡-Day5

news2024/11/25 8:17:46

本篇总结的是计算机网络知识相关的面试题,后续也会更新其他相关内容

文章目录

  • 1、计算机网络的各层协议及作用是什么?
  • 2、简述一下DNS的工作流程
  • 3、TCP与UDP有什么区别?
  • 4、TCP协议如何保证可靠传输
  • 5、拥塞控制机制是什么?
  • 6、HTTP 与 HTTPS 的区别是什么?
  • 7、什么是对称加密与非对称加密
  • 8、常用的HTTP状态码有哪些?
  • 9、常见的请求类型有哪些?
  • 10、GET和POST区别有哪些?


1、计算机网络的各层协议及作用是什么?

答:计算机网络体系分为三种,七层模型、五层模型和TCP/IP四层模型,在面试中我们一般回答出五层模型就可以了。如下:
在这里插入图片描述

应用层

  • 应用层的任务是通过应用进程之间的交互来完成特定的网络作用,常见的应用层协议域名系统DNSHTTP协议等。

传输层

  • 传输层的主要作用是负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP用户数据协议UDP

网络层

  • 网络层的主要作用是选择合适的网间路由和交换结点,确保数据及时送达。常见的协议IP协议

数据链路层

  • 数据链路层的作用是在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。 常见的协议SDLCHDLCPPP等。

物理层

  • 物理层的主要作用是实现相邻计算机结点之间比特流的透明传输,并尽量屏蔽掉具体传输介质和物理设备的差异。

2、简述一下DNS的工作流程

答:DNS的主要工作就是将域名解析为对应的IP地址,在域名输入到浏览器中,会发生:

  1. 本地主机的操作系统会先检查自己本地的hosts文件是否有这个域名的映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts文件中没有,则查询本地DNS解析器缓存,如果有,则完成域名解析。
  3. 如果本地DNS解析器缓存中没有,则去查找**本地DNS服务器,**如果查到,完成解析。
  4. 如果没有,则本地服务器会向根域名服务器发起查询请求。根域名服务器会告诉本地域名服务器去查询哪个顶级域名服务器。
  5. 本地域名服务器向顶级域名服务器发起查询请求,顶级域名服务器会告诉本地域名服务器去查找哪个权限域名服务器。
  6. 本地域名服务器向权限域名服务器发起查询请求,权限域名服务器告诉本地域名服务器域名所对应的IP地址。
  7. 本地域名服务器告诉主机域名所对应的IP地址。

主机 -> 本地的hosts文件 -> 本地DNS解析器缓存 -> 本地DNS服务器
本地DNS服务器 -> 根域名服务器 -> 顶级域名服务器 -> 权限域名服务器 -> 主机

3、TCP与UDP有什么区别?

答:区别如下:
在这里插入图片描述

4、TCP协议如何保证可靠传输

答:TCP协议主要有校验和序列号超时重传流量控制拥塞避免等方法。

校验和

  • 在发送算和接收端分别计算数据的校验和,如果两者不一致,则说明数据在传输过程中出现了差错,TCP将丢弃和不确认此报文段。

序列号

  • TCP会对每一个发送的字节进行编号,接收方接到数据后,会对发送方发送确认应答(ACK报文),并且这个ACK报文中带有相应的确认编号,告诉发送方,下一次发送的数据从编号多少开始发。
  • 如果发送方发送相同的数据,接收端也可以通过序列号判断出,直接将数据丢弃。

超时重传

  • 在上面说了序列号的作用,但如果发送方在发送数据后一段时间内(可以设置重传计时器规定这段时间)没有收到确认序号ACK,那么发送方就会重新发送数据。这里发送方没有收到ACK可以分两种情况:
    • 如果是发送方发送的数据包丢失了,接收方收到发送方重新发送的数据包后会马上给发送方发送ACK;
    • 如果是接收方之前接收到了发送方发送的数据包,而返回给发送方的ACK丢失了,这种情况,发送方重传后,接收方会直接丢弃发送方重传的数据包,然后再次发送ACK响应报文。
  • 如果数据被重发之后还是没有收到接收方的确认应答,则进行再次发送。此时,等待确认应答的时间将会以2倍、4倍的指数函数延长,直到最后关闭连接。

流量控制

  • 如果发送端发送的数据太快,接收端来不及接收就会出现丢包问题。为了解决这个问题,TCP协议利用了滑动窗口进行了流量控制。
  • 在TCP首部有一个16位字段大小的窗口,窗口的大小就是接收端接收数据缓冲区的剩余大小。
    • 接收端会在收到数据包后发送ACK报文时,将自己的窗口大小填入ACK中。
    • 发送方会根据ACK报文中的窗口大小进而控制发送速度。如果窗口大小为零,发送方会停止发送数据。

拥塞控制

  • 如果网络出现拥塞,则会产生丢包等问题,这时发送方会将丢失的数据包继续重传,网络拥塞会更加严重,所以在网络出现拥塞时应注意控制发送方的发送数据,降低整个网络的拥塞程度。
  • 拥塞控制主要有四部分组成:慢开始、拥塞避免、快重传、快恢复。

5、拥塞控制机制是什么?

答:在拥塞控制中发送方会维护一个拥塞窗口的状态变量,它和流量控制的滑动窗口是不一样的,滑动窗口是根据接收方数据缓冲区大小确定的,而拥塞窗口是根据网络的拥塞情况动态确定的

拥塞控制主要有四部分组成:慢开始、拥塞避免、快重传、快恢复。

在这里插入图片描述
慢开始

  • 为了避免一开始发送大量的数据而产生网络阻塞,会先初始化cwnd为1,当收到ACK后到下一个传输轮次,cwnd为2,以此类推成指数形式增长

拥塞避免

  • 因为cwnd的数量在慢开始是指数增长的,为了防止cwnd数量过大而导致网络阻塞,会设置一个慢开始的门限值ssthresh,当cwnd>=ssthresh时,进入到拥塞避免阶段,cwnd每个传输轮次加1。
  • 但网络出现超时,会将门限值ssthresh变为出现超时cwnd数值的一半,cwnd重新设置为1,如上图,在第12轮出现超时后,cwnd变为1,ssthresh变为12。

快重传

  • 在网络中如果出现超时或者阻塞,则按慢开始和拥塞避免算法进行调整。但如果只是丢失某一个报文段,则使用快重传算法。如下图:

  • 在这里插入图片描述

  • 但是根据快重传算法,要求在这种情况下,需要快速向发送端发送M2的确认报文,在发送方收到三个M2的确认报文后,无需等待重传计时器所设置的时间,可直接进行M3的重传,这就是快重传。

快恢复

  • 当发送收到三个重复的ACK,会进行快重传和快恢复。
  • 快恢复是指将ssthresh设置为发生快重传时的cwnd数量的一半,而cwnd不是设置为1而是设置为为门限值ssthresh,并开始拥塞避免阶段。

一般来说发送方真实的发送窗口为滑动窗口和拥塞窗口中的最小值。

6、HTTP 与 HTTPS 的区别是什么?

答:

在这里插入图片描述

7、什么是对称加密与非对称加密

答:

对称加密

  • 对称加密指加密和解密使用同一密钥
    • 优点是运算速度快。
    • 缺点是如何安全将密钥传输给另一方。
  • 常见的对称加密算法有DESAES等等。

非对称加密

  • 非对称加密指的是加密和解密使用不同的密钥,一把公开的公钥,一把私有的私钥。公钥加密的信息只有私钥才能解密,私钥加密的信息只有公钥才能解密。
    • 优点解决了对称加密中存在的问题。
    • 缺点是运算速度较慢。
  • 常见的非对称加密算法有RSADSAECC等等。

非对称加密的工作流程:

  1. A生成一对非对称密钥,将公钥向所有人公开,
  2. B拿到A的公钥后使用A的公钥对信息加密后发送给A,经过加密的信息只有A手中的私钥能解密。
  3. 这样B可以通过这种方式将自己的公钥加密后发送给A,两方建立起通信,可以通过对方的公钥加密要发送的信息,接收方用自己的私钥解密信息。

8、常用的HTTP状态码有哪些?

答:常见的状态码有五种,分别是:

在这里插入图片描述

  1. 第一种是以1开头的状态码,这种状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。
  2. 第二种是以2开头的状态码,这种状态码表示服务器成功处理了客户端的请求 ,常见的有两个:
    • 「200 OK」:这是最常见的成功状态码,如果不是头部请求,服务器返回的响应头都会有 body 数据。
    • 「204 No Content」:与200相同,只不过服务器返回的响应头中没有 body 数据。
  3. 第三种是以3开头的状态码,这种状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向,常见的有两个:
    • 「301 Moved Permanently」:表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
    • 「302 Found」:表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。
  4. 第四种是以4开头的状态码,这种状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义,常见的有四个:
    • 「400 Bad Request」:表示客户端请求的报文有错误。
    • 「401 Unauthorized」:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用。
    • 「403 Forbidden」:表示服务器禁止访问资源,并不是客户端的请求出错。
    • 「404 Not Found」:表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。(输入了错误的URL)。
  5. 第五种是以5开头的状态码,这种状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。
    • 「500 Internal Server Error」:服务器发生不可预期的错误,与 400 类似,服务器具体发生了什么错误,我们并不知道。
    • 「501 Not Implemented」:表示客户端请求的功能还不支持
    • 「502 Bad Gateway」:通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。
    • 「503 Service Unavailable」:表示服务器当前很忙,暂时无法响应客户端

9、常见的请求类型有哪些?

答:如下:

在这里插入图片描述
为了方便记忆,可以将PUTDELETEPOSTGET理解为客户端对服务端的增删改查。

  • PUT:上传文件,向服务器添加数据,可以看作增
  • DELETE:删除文件
  • POST:传输数据,向服务器提交数据,对服务器数据进行更新。
  • GET:获取资源,查询服务器资源。

10、GET和POST区别有哪些?

答:从以下四个方面讲:

作用

  • GET用于获取资源,POST用于传输实体主体

参数位置

  • GET的参数放在URL中,POST的参数存储在实体主体中,并且GET方法提交的请求的URL中的数据最多是2048字节,POST请求没有大小限制

安全性

  • GET方法因为参数放在URL中,GET安全性相对于POST较差一些

幂等性

  • GET方法是具有幂等性的,而POST方法不具有幂等性。这里幂等性指客户端连续发出多次请求,收到的结果都是一样的.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

朋友去华为面试,轻松拿到26K的Offer,羡慕了......

最近有朋友去华为面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

应用层与传输层~

文章目录应用层自定义应用层协议什么是自定义应用层协议自定义方式运输层运输层概述运输层特点运输层协议UDP协议UDP的特点UDP首部格式校验规则TCP协议TCP的特点TCP协议段格式TCP的性质确认序号超时重传连接管理三次握手四次挥手TCP的状态滑动窗口流量控制拥塞控制延迟应答捎带…

linux笔记(10):ubuntu环境下,基于SDL2运行lvgl+ffmpeg播放mp4

文章目录1.ubuntu安装ffmpeg1.1 源码安装1.1 克隆ffmpeg源码1.2 配置编译条件,编译,安装1.2 直接安装依赖包2.下载lvgl源码2.1 测试原始代码2.2 运行lv_example_ffmpeg_2()例程2.2.1 配置 LV_USE_FFMPEG 为 12.2.2 lv_example_ffmpeg_2()替换lv_demo_wid…

C++核心知识(二)—— 类和对象(类的封装)、对象的构造和析构(浅拷贝、深拷贝、explicit、动态分配内存)

【上一篇】C核心知识(一)—— C概述、C对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)【下一篇】C核心知识(三)—— 静态成员(变量、函数、const成员)、面向对象模型(this指针、常函数、常…

linux安装pycharm

linux安装pycharm1.下载相关软件包2. 安装步骤2.1 解压文件2.2 开启命令2.4 创建快捷方式官网链接 https://www.jetbrains.com/pycharm/download/#sectionlinux 1.下载相关软件包 找到自己下载的版本下载 2. 安装步骤 2.1 解压文件 进入压缩包路径 解压文件【我指定了解…

设计模式-第10章(建造者模式)

建造者模式建造者模式建造者模式解析建造者模式的基本代码结构建造者模式 建造者模式(Builder),将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示。 如果我们用了建造者模式,那么用户就只需指定…

欢乐消除开心假日协议解密

欢乐消除开心假日协议解密协/议/流/量/解/密分析欢乐消除开心假日这款游戏流量的协议加密方式。序欢乐消除开心假日是一款合成模拟家装的游戏,在这个游戏中,你将成为一位充满热情的设计师,与好友一起经营工作室。你需要根据客户的需求重新设计…

详解PyTorch Tensor 数据类型——张量

目录 张量 张量的结构 张量的创建 张量的操作 数学运算 逻辑运算 形状操作 索引和切片 张量的维度变换 常见的数据类型存储 附录PyTorch官方API中文文档 张量 在PyTorch中,张量(Tensor)是一种常见的数据类型,它是一个…

如何快速将多图片合并拼接成一张大图并保留原图质量 - 极速图片合成拼接器软件简介

在工作中我们有时需要把多张图片打印在一张纸上,那就必须手动排列和调整每张图片的大小,这可是一项费时费力的任务。 借助极速图片合成拼接器这款软件,终于可以快速自动解决这种任务啦! 它是一款可以自动一次性将多个图像文件合并…

Jenkins部署angular11自动打包

可能年纪大了,对于新东西的学习和接收有点慢,花了差不多一周的时间,终于把jenkins配置好了,可以自动打包,与手动打出来的一样,以后就解放双手了。#!/bin/bashnpm cache clean -fnpm -vnode -vnpm install n…

ubuntu 18.04.06LST安装R4.0+版本报错及解决过程

1. sudo apt-get update无法正常使用 错误:13 http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu bionic Release 404 Not Found [IP: 2620:2d:4000:1::3e 80] 解决措施:删除 webupd8team/sublime-text-3这个ppa文件。 sudo add-apt-repository --…

MySQL调优 - SQL查询深度分页问题

一、问题引入 例如当前存在一张表test_user,然后往这个表里面插入3百万的数据: CREATE TABLE test_user (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键id,user_id varchar(36) NOT NULL COMMENT 用户id,user_name varchar(30) NOT NULL COMMENT 用…

嵌入式学习笔记——寄存器开发STM32 GPIO口

寄存器开发STM32GPIO口前言认识GPIOGPIO是什么GPIO有什么用GPIO怎么用STM32上GPIO的命名以及数量GPIO口的框图(重点)输入框图解析三种输入模式GPIO输入时内部器件及其作用1.保护二极管2.上下拉电阻(可配置)3.施密特触发器4.输入数…

什么是CatGPT-使用效果如何-

个人使用效果,评分优,足以满足教学和填表。程序媛借助CatGPT(ChatGPT更佳),基本上可以秒杀不用此类工具的程序猿(男)!!!问:为什么使用AIGC能大幅度…

79、ClimateNeRF: Physically-based Neural Rendering for Extreme Climate Synthesis

简介主页物理模拟可以很好地预测天气影响。神经辐射场产生SOTA场景模型。ClimateNeRF 允许我们渲染真实的天气效果,包括雾霾、雪和洪水 ,结果可以通过有物理意义的变量来控制,比如水位 ,这允许人们可视化气候变化的结果将对他们产…

2022年MathorCup数学建模B题无人仓的搬运机器人调度问题解题全过程文档加程序

2022年第十二届MathorCup高校数学建模 B题 无人仓的搬运机器人调度问题 原题再现 本题考虑在无人仓内的仓库管理问题之一,搬运机器人 AGV 的调度问题。更多的背景介绍请参看附件-背景介绍。对于无人仓来说,仓库的地图模型可以简化为图的数据结构。 仓库…

面试常问【进程间通信】最详细解说

文章目录 目录 文章目录 一、进程间有哪几种的通信方式 1.为什么需要进程间通信? 2.进程通信的几种方式 3.进程间通信的目的 二、管道 1.匿名管道 2.命名管道 3.管道总结 三、消息队列 四、共享内存 1.共享内存的原理 2.共享内存的接口 1.创建共享内存 2.将共享内存附加到进程…

HBase---Hbase安装(单机版)

Hbase安装单机版 文章目录Hbase安装单机版Master/Slave架构安装步骤配置Hbase1.上传压缩包解压更名修改hbase-env.sh修改hbase-site.xml配置HBase环境变量配置Zookeeper复制配置文件修改zoo.cfg配置文件修改myid配置Zookeeper环境变量刷信息配置文件启动hbase步骤hbase shellMa…

BS系统中的安全方案(SSO和Oauth2认证,数据加密)

摘要用户用浏览器打开网站,DNS会根据域名找到相应的服务器IP给到浏览器,仅接着用户的浏览器会与服务器建立连接,通过网路上的各个设备(交换机、路由器、基站、光纤等),将服务器上的数据发送到用户的电脑上,在浏览器里呈…

运输层概述及web请求

运输层 运输层概述 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等)它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道; 根据需求不同,运输层提供两种运输协议 面向连…