常见面试题之计算机网络

news2024/12/23 18:27:00

1. OSI 五层模型(或七层模型)是什么,每一层的作用是什么

  1. 应用层:又可细分为应用层、表示层、会话层。其中应用层主要做的工作就是为应用程序提供服务,常见的协议为 HTTP、HTTPS、DNS等;表示层主要做的工作就是数据格式转化、加密;会话层主要做的工作就是建立、管理和维护会话。总体来看应用层主要负责的工作有两点,1. 考虑在客户端和服务端之间要传输哪些信息;2. 传输的信息是以什么样的格式来组织的;
  2. 传输层:主要的工作就是负责管理端到端之间数据的连接,常见的协议有TCP、UDP协议;
  3. 网络层:主要的工作就是负责路由选择和地址映射,常见的协议有IP、ICMP协议;
  4. 数据链路层:主要的工作就是负责建立逻辑连接,进行硬件地址寻址、差错校验等,常见的协议为以太网协议;
  5. 物理层:主要的工作是建立、维护和断开物理连接;

2. 说一下什么是封装和复用

可以查看我的另一篇博客:封装和复用

3. 说一说TCP协议中的机制(比如确认应答机制、三次握手和四次挥手等)

可以查看我的另一篇博客:TCP/IP协议

4. HTTP和HTTPS协议的区别

HTTP是超文本传输协议,它在传输信息的时候,是明文的格式,一些隐私信息就很容易泄露;

HTTPS是超文本传输安全协议,这个安全协议指的就是SSL,通过SSL对信息进行加密,确保信息不会被第三方截取 ,也就是在应用层和传输层之间加上SSL安全协议;

相同点:都是用于在客户端和服务器之间传输数据的协议;

不同点:

  1. HTTP是超文本传输协议,信息是明文传输,HTTPS对应信息进行了SSL安全协议的加密;

  2. HTTP连接的端口号默认是80,HTTPS连接的端口号默认是443;

  3. HTTP的连接是无状态的,而HTTPS协议由HTTP+SSL协议构建加密传输、身份认证的网络协议,比如HTTP协议安全;

5. HTTPS的连接工作流程

主要从3个方面来考虑,加密、认证、完整性保护

  1. 客户端先给服务器发送一个连接的请求SYN;

  2. 服务器收到客户端的连接请求后,就会生成一个非对称秘钥(公钥和私钥),公钥用来发送给客户端对客户端产生的对称秘钥进行加密,私钥用于接收解密获取对称秘钥;

  3. 服务器向客户端发送安全证书,安全证书中包含服务器生成的公钥;

  4. 客户端收到安全证书后,对安全证书进行验证和解密,然后随机生成一个对称秘钥;

  5. 客户端将生成的对称秘钥通过服务器的公钥加密,发送给服务器;

  6. 服务器收到加密的对称秘钥,使用自己的私钥对其进行解密;

  7. 双发都收到了对称秘钥,就可以对信息进行加密,相互通信,保证信息安全;

  8. 握手完成后,客户端和服务器之间的通信将使用共享的密钥进行加密和解密。

6. HTTP的长链接和短链接:

  • HTTP长链接(Keep-Alive): HTTP/1.1引入了长连接,也称为持久连接。长连接允许客户端和服务器在一次TCP连接上进行多次HTTP请求和响应,减少了连接的建立和断开开销,提高了性能。

  • HTTP短链接: 在HTTP/1.0中,每个HTTP请求都需要建立一个新的TCP连接,然后立即关闭。这种方式被称为短链接,因为每次请求都需要重新建立连接,效率较低。

7. DNS 是什么

DNS:是一种域名解析的协议,用于将直接可读(比较有标识)的域名转化为计算机可以识别的IP地址。流程是:

  1. 域名查询请求:当用户在Web浏览器中输入一个域名的时候,先在本地的DNS缓存中查找对应的IP地址,如果找不到,就发送一个DNS查询的请求给本地的DNS服务器。

  2. 本地DNS服务器查询:在接收到查询请求后,他先查看自己的缓存,如果找到对应的IP地址,就返回给客户端,否则就发起迭代查询

  3. 迭代查询:本地DNS服务向根域名服务发送查询请求,根域名服务器返回指向顶级域名服务器的地址。

  4. 顶级域名服务器查询:本地DNS服务器再次发送查询请求给顶级域名服务器,该服务器返回指向目标域名服务器的地址。

  5. 目标域名服务器查询:最终,本地DNS服务器将查询发送给目标域名服务器,目标域名服务器返回域名对应的IP地址。

8. FTP 是什么

FTP:是一种文件传输的协议,它允许用户从一个计算机(FTP客户端)到另一个计算机(FTP)服务器传输文件。流程是:

  1. 建立连接:FTP使用TCP协议,在客户端和服务器之间建立双向连接。默认情况下,FTP服务器监听端口21,客户端使用端口20和服务器进行数据传输。

  2. 用户认证:一旦连接建立,客户端需要提供用户名和密码进行认证,以便访问FTP服务器。这通常是通过FTP客户端软件完成的。

  3. 访问目录:一旦认证成功,客户端可以访问服务器上的文件系统。FTP支持各种命令,允许客户端列出目录内容、切换目录、创建目录、删除文件等。

  4. 上传文件:客户端可以使用FTP命令将文件从本地计算机上传到服务器。通常使用PUT命令来执行此操作。客户端指定要上传的本地文件路径和服务器上的目标路径。

  5. 下载文件:客户端可以使用FTP命令从服务器下载文件。通常使用GET命令来执行此操作。客户端指定要下载的服务器文件路径和本地保存的目标路径。

  6. 被动模式和主动模式:FTP可以在被动模式(PASV)和主动模式(PORT)之间进行切换,以适应不同的网络配置。在被动模式下,客户端在随机端口上等待服务器的连接,而在主动模式下,客户端在随机端口上连接服务器。

  7. 传输模式:FTP支持两种传输模式,二进制传输和ASCII传输。二进制传输用于非文本文件,而ASCII传输用于文本文件。用户可以根据需要选择传输模式。

  8. 断点续传:FTP允许客户端在传输中断后恢复传输,从上次中断的地方继续。这对于大文件的传输非常有用。

  9. 关闭连接:一旦文件传输完成或会话结束,客户端可以发送QUIT命令,以关闭与服务器的连接。

9. ARP 是什么

ARP:是一种用于将IP地址转化为MAC地址的一种协议,方便在网络上进行通信。流程为: ARP解析是在本地网络中进行的,主要用于确认通信双方的MAC地址,以便在链路层进行通信。

  1. 主机A发送ARP请求:当主机A需要与主机B通信时,它首先检查本地ARP缓存以查找主机B的MAC地址。如果缓存中没有,主机A将发送一个ARP请求广播,包含主机B的IP地址。

  2. ARP请求广播:ARP请求广播会传播到本地网络上的所有主机。只有主机B会响应这个请求,因为它知道自己的IP地址与请求中的IP地址匹配。

  3. 主机B响应ARP请求:主机B收到ARP请求后,它将发送一个ARP响应包含自己的MAC地址。这个响应直接发送给主机A,而不是广播。

  4. 主机A更新ARP缓存:主机A收到主机B的响应后,它会将主机B的IP地址与MAC地址映射存储到本地ARP缓存中,以便以后的通信。

  5. 通信建立:现在,主机A知道了主机B的MAC地址,可以使用它来构建数据帧,并将数据帧发送到主机B,建立通信连接。

10. 一个完整的HTTP请求和响应需要包含哪些信息

请求:请求行(请求类型、URL、HTTP版本)、请求头、请求数据

响应:状态行(协议版本号、状态码、状态消息)、响应头、响应体

11. 一次完整的HTTP请求所经历几个步骤?

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

  1. 建立TCP连接
  2. Web浏览器向Web服务器发送请求行
  3. Web浏览器发送请求头
  4. Web服务器应答
  5. Web服务器发送应答头
  6. Web服务器向浏览器发送数据
  7. Web服务器关闭TCP连接

12. 响应状态码

  • 1xx: 指示信息--表示请求已接收,继续处理;
  • 2xx: 成功--表示请求已被成功接收、理解、接受;
  • 3xx: 重定向--要完成请求必须进行更进一步的操作;
  • 4xx: 客户端错误--请求有语法错误或请求无法实现;
  • 5xx: 服务器端错误--服务器未能实现合法的请求;

常见的状态码:

  1. 200 OK //客户端请求成功
  2. 400 Bad Request //客户端请求有语法错误,不能被服务器所理解
  3. 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  4. 403 Forbidden //服务器收到请求,但是拒绝提供服务
  5. 404 Not Found //请求资源不存在,eg:输入了错误的URL
  6. 500 Internal Server Error //服务器发生不可预期的错误
  7. 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

13. HTTP 请求的类型

  1. get:请求指定的页面信息,并返回实体主体。
  2. head: 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
  3. post:请求可能会导致新的资源的建立和/或已有资源的修改。
  4. put:从客户端向服务器传送的数据取代指定的文档的内容。
  5. delete:请求服务器删除指定的页面。
  6. connect:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  7. options:允许客户端查看服务器的性能。
  8. trace:回显服务器收到的请求,主要用于测试或诊断。

14. get和 post 的区别

  1. 目的:get请求用于从服务器获取资源,多次请求不会对服务器产品副作用;post 请求用于向服务器提交数据,多次请求可能会对服务器产生副作用。

  2. 数据传递方式:get请求是通过url查询参数进行的,数据在url上,而且有长度限制;post请求数据传递是通过http请求体进行的,数据是不可见的(相对的)

  3. 安全性:get数据附在url中,所以浏览器、服务器等会把数据保存下来,不适合传输敏感信息;post请求数据传递时在请求体中,所以相对更安全。

  4. 缓存:get请求通过会被浏览器缓存,比如请求相同url时;post请求通常不会被浏览器缓存。

  5. 使用场景:get请求一般用户获取数据的场景;post请求一般用户向服务器提交数据。

15.TCP和UDP的区别?

UDP:无连接、不可靠传输、面向数据报、半双工;

TCP:有连接、可靠传输、面向字节流、全双工;

适用场景:

TCP适用于对于效率要求相对较低 ,但准确性相对较高的场景:比如网页浏览器、文件传输;

UDP适用于对于效率要求高,但准确性相对较低的场景;比如音频流和视频流;

16. UDP不连接为什么可以发送数据

UDP不需要在通信前建立连接,因此它可以立即发送数据。UDP的无连接性使其更加简单和高效,适用于实时应用和多播通信等场景。UDP数据包包含目标主机的IP地址和端口信息,使得它可以直接将数据发送给目标主机,而不需要建立复杂的连接和状态跟踪。

17. TCP与UDP首部开销分别是多少?

TCP首部开销比较大,20个字节;UDP首部开销小,8个字节;

18. cookie和session的区别

  1. 存储位置不同:Cookie可以存储在浏览器或者本地,Session只能存在服务器;
  2. 存储的数据类型不同:session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象;
  3. 安全性不同:Session比Cookie更具有安全性(Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击);
  4. 对服务器压力不同:Session占用服务器性能,Session过多,增加服务器压力;
  5. 存储容量大小不同:cookie存储的容量一般不超过4k,session存储容量大小没限制;
  6. 存储有效性不同:cookie可以长期存储,只要不超过设置的过期时间,可以一直存储。
    session在超过一定的操作时间(通常为30分钟)后会失效;

19. DHCP协议是什么

DHCP是动态主机配置协议,主要是用于集中对用户IP地址进行动态管理和配置的协议,DHCP采用C/S(客户端/服务器)通信模式,协议报文基于UDP的方式进行交互,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。DHCP实现了网络参数配置的自动化,降低了客户端的配置和维护成本。

20. socket是什么

socket 是应用层与传输层的一个抽象,将复杂的TCP/IP协议隐藏在socket接口后,只对应用层暴露简单的接口。在设计模式中,Socket其实就是一个门面模式。

socket是一种特殊的文件,它也有文件描述符,进程可以打开一个socket,并且像处理文件一样对它进行read()和write()操作,而不关心数据是怎么在网络上传输的。

21. 网络中进程之间如何通信?

本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:

  • 消息传递(管道、命名管道FIFO、消息队列)
  • 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)
  • 共享内存(匿名的和具名的)
  • 远程过程调用(Solaris门和Sun RPC)

要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。

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

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

相关文章

PXE自动化安装操作系统

一、PXE基本介绍 PXE,全名Pre-boot Execution Environment,预启动执行环境; 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统; 由Intel和Systemsoft公司于1999年9月…

通过一篇文章让你了解什么是函数栈帧

函数栈帧的创建和销毁 前言一、什么是函数栈帧二、 理解函数栈帧能解决什么问题三、 函数栈帧的创建和销毁解析3.1 什么是栈3.2 认识相关寄存器和汇编指令相关寄存器eaxebxebpespeip 相关汇编命令 3.3 解析函数栈帧的创建和销毁3.3.1 预备知识3.3.2 函数的调用堆栈3.3.4 准备环…

*Javaweb -- MyBatis*

一:介绍: 1.MyBatis是一个优秀的 ①持久层 ②框架,用于简化JDBC的开发! ①:JAVAEE有三层的结构:表现层, 业务层, 持久层. 表现层代表的是页面的展示,业务层则指的是对于相关逻辑的处理, 而持久层, 指的则是对于数据进行持久化,保存在数据库当中. 持久层具体的来说就是负责…

宏碁又遭网络袭击,菲律宾分公司大量数据被盗

近日,宏碁(Acer)菲律宾公司方面证实,管理该公司员工考勤数据的第三方供应商遭遇网络攻击,部分员工数据被盗。 宏碁,中国台湾计算机硬件和电子产品制造商,以其电脑产品极具性价比而闻名。 据悉&a…

生成式AI来袭,FOSS全闪对象存储应时而生

AI大模型正飞速跃进,从引领文本生成革命的ChatGPT到开创文生视频新纪元的Sora,多模态交互技术连续迭代,促进了智算中心的快速落地。在这一过程中,算力的迅猛增长对存储系统提出了更高的要求和挑战。为满足这些日益增长的需求&…

3_springboot_shiro_jwt_多端认证鉴权_Redis缓存管理器.md

1. 什么是Shiro缓存管理器 上一章节分析完了Realm是怎么运作的,自定义的Realm该如何写,需要注意什么。本章来关注Realm中的一个话题,缓存。再看看 AuthorizingRealm 类继承关系 其中抽象类 CachingRealm ,表示这个Realm是带缓存…

【Linux】Centos7上安装MySQL5.7

目录 1.下载安装包2. 上传安装包3.将 mysql 解压到/usr/local/4.重命名5.创建mysql用户及用户组6. 进入 mysql 目录修改权限7. 安装依赖库8. 执行安装脚本9. 复制启动脚本到资源目录10. 拷贝 my.cnf,并赋予权限11. 配置环境变量12. 启动 mysqld13. 登录 MySQL&#…

深度解析:如何运用山海鲸可视化软件制作高效销售数据看板

在数字化时代,数据可视化已经成为企业决策和运营的重要工具。作为一名长期使用山海鲸可视化软件的资深用户,我深知其在制作销售数据可视化看板方面的优势。今天,我想分享一些我在使用山海鲸可视化软件制作销售数据可视化看板过程中的经验和感…

探索:C++继承中虚表与虚基表的内存存储

探讨:菱形虚拟继承的虚基表和虚表 在继承和多态里,总是能听到虚表、虚基表这样的词汇,没有洞悉其根本的人很容易将它们混淆,因此,我们对这两个“虚”“表”进行实践,来更好地理解它们。 通俗些说&#xf…

哪些行业实操会用到PMP的知识?

首先说项目管理适合那些行业。 项目管理覆盖的行业可以说非常广了,就我知道的,医疗啊,互联网啊,机械啊,建筑啊,金融啊,汽车啊,零售啊、广告啊等各行各业都是需要项目管理人员的。 …

H5简约星空旋转引导页源码

源码名称:H5简约星空旋转引导页 源码介绍:一款带有星空旋转背景特效的源码,带有四个按钮 需求环境:H5 下载地址: https://www.changyouzuhao.cn/11655.html

32x4点阵式LCD驱动芯片/抗干扰段码屏驱动/仪器仪表液晶驱动IC- VK1C21A/B SSOP48/LQFP48 COG

产品型号:VK1C21A/B 产品品牌:永嘉微电/VINKA 封装形式:SSOP48/LQFP48 可定制裸片:DICE(COB邦定片);COG(邦定玻璃用) 工程服务,技术支持! 概述: VK1C21A/B是一个点阵式存储映射…

一个简单的微信小程序表单提交样式模板

没什么东西&#xff0c;只是方便自己直接复制使用 .wxml <view class"box"><form bindsubmit"formSubmit"><view class"form-item"><text class"head">姓名&#xff1a;</text><input class"…

目标跟踪SORT算法原理浅析

SORT算法 Simple Online and Realtime Tracking(SORT)是一个非常简单、有效、实用的多目标跟踪算法。在SORT中&#xff0c;仅仅通过IOU来进行匹配虽然速度非常快&#xff0c;但是ID switch依然非常严重。 SORT最大特点是基于Faster RCNN的目标检测方法&#xff0c;并利用卡尔…

阿里又又发布了一个“AI神器”

阿里给“打工”朋友送上“节日礼物” 六一儿童节当天&#xff0c;阿里就给所有“打工”的大朋友送上了一份“节日礼物” 6月1日上午&#xff0c;阿里云发布了面向音视频内容的AI新品“通义听悟”&#xff0c;并正式公测 通义千问、通义听悟 这哥俩现在所处环境不同&#xff0…

Midjourney封禁Stability AI:恶意爬取数据,致服务器瘫痪24小时

这两家 AI 图像生成公司之间发生什么事了。虽然 AI 生图领域&#xff0c;看似百花齐放&#xff0c;但论资排辈&#xff0c;Midjourney、Stability AI 还是很受用户欢迎的。 Midjourney 把 Stability AI 拉入黑名单了&#xff0c;禁止后者所有员工使用其软件&#xff0c;直至另…

本地mysql5.7以上版本配置及my.ini

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

R语言系列4——R语言统计分析基础

目录 写在开头1. 描述性统计分析1.1 描述性统计分析的定义与重要性1.2 R语言中的描述性统计分析功能1.3 常用的描述性统计量及其在R中的计算方法1.4 使用R语言进行描述性统计分析的实际示例1.5 描述性统计分析的局限性和应用注意事项 2. 假设检验基础2.1. 假设检验的基本原理和…

自动驾驶---Motion Planning之构建SLT Driving Corridor

1 背景 在上篇博客《自动驾驶---Motion Planning之Speed Boundary》中,主要介绍了Apollo中Speed Boundary的一些内容,可以构造ST图得到边界信息,最后结合粗糙的速度曲线和路径曲线,即可使用优化的方法求解得到最终的轨迹信息(s,s,s,l,l,l)。 本篇博客笔者主要介绍近…

Qt中QCheckBox的三种状态设置

首先启用QCheckbox的tristate属性 //启用QCheckBox的tristate属性&#xff0c;使checkbox有三种状态。例&#xff1a; questionCheckBox->setTristate(true);//使用setCheckState(Qt::CheckState state)函数设置checkbox当前的状态。例&#xff1a; //Qt::CheckState是枚举…