计算机专业课面试常见问题-计算机网络篇
目录
1. 计算机网络分为哪 5 层?
2. TCP 协议简述?
3. TCP 和 UDP 的区别?->不同的应用场景?
4. 从浏览器输入网址到显示页面的经历的过程?
5. 计算机网络每层有哪些协议?
6. TCP 的三次握手和四次挥手过程?
三次握手(TCP Three-Way Handshake)
四次挥手(TCP Four-Way Handshake)
7. 流量控制和拥塞控制的概念?
8. 简述 DNS 协议?
9. 简述 DNS 域名解析的过程?
10. 简述 HTTP 协议?
11.说明 CSMA/CD 与 CSMA/CA 的区别?
12.谈谈ip与MAC地址
13. 谈谈你对ip地址分类的理解
1. 计算机网络分为哪 5 层?
计算机网络五层结构是指物理层、数据链路层、网络层、传输层、应用层。
(1)应用层
专门针对某些应用提供服务。
(2)传输层
网络层只把数据送到主机,但不会送到进程。传输层负责进程与进程之间的传输,所以也称为端到端传送。
(3)网络层
根据包里面的目的地址,进行路由选择,决定要往哪个方向传输。
(4)数据链路层
通过物理网络传送包,这里的包是通过网络层交过来的数据报。
(5)物理层
通过线路传送原始的比特流。
2. TCP 协议简述?
TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,用于在计算机网络中实现端到端的数据传输。以下是TCP协议的简要描述:
TCP协议提供了可靠的数据传输服务,通过三次握手建立连接,确保数据能够按顺序到达目标,并检测和纠正丢失或损坏的数据。它通过使用序号、确认和超时重传等机制来实现数据的可靠性。
此外,TCP还提供了拥塞控制机制,通过动态调整发送数据的速率,避免网络拥塞,确保网络的稳定性和效率。
总之,TCP协议通过连接建立、可靠性保证和拥塞控制,为应用程序提供了一个可靠的数据传输通道,是互联网上应用最广泛的传输层协议之一。
3. TCP 和 UDP 的区别?->不同的应用场景?
|
| TCP | UDP |
| 是否连接 | 面向连接 | 无连接 |
| 是否可靠 | 可靠传输,使用流量控制和拥塞控制 | 不可靠传输,不使用流量控制和拥塞控制 |
| 连接对象个数 | 只能是一对一通信 | 支持一对一、一对多、多对一和多对多的交互通信 |
| 传输方式 | 面向字节流 | 面向报文 |
| 首部开销 | 首部开销较大 | 首部开销小 |
| 使用场景 | 适用于要求可靠传输的应用,例如文件传输 | 适用于实时应用(视频会议、直播、语音通话) |
4. 从浏览器输入网址到显示页面的经历的过程?
当用户在浏览器中输入网址并按下回车键后,浏览器会执行以下步骤来获取并显示网页:
-
DNS解析: 浏览器首先会检查自身的缓存,看是否有该网址对应的IP地址。如果缓存中没有,浏览器会向本地操作系统的DNS解析器发起请求,请求解析该域名(比如www.example.com)对应的IP地址。
-
建立TCP连接: 一旦浏览器获取到目标服务器的IP地址,它会通过TCP协议向目标服务器发起连接请求。这个过程涉及到TCP的三次握手,确保浏览器和服务器之间建立可靠的连接。
-
发送HTTP请求: 一旦TCP连接建立成功,浏览器会通过该连接向服务器发送一个HTTP请求。该请求中包含了浏览器想要获取的资源(比如HTML文件、图片、CSS文件等)的详细信息,如请求方法(GET、POST等)、请求头、请求体等。
-
服务器处理请求并返回HTTP响应: 服务器收到浏览器发送的请求后,会根据请求的内容进行处理。服务器可能会请求其他服务器获取需要的资源(如数据库服务器),然后将响应的数据发送回浏览器。
-
浏览器接收响应: 浏览器接收到来自服务器的HTTP响应后,会先检查状态码(比如200表示成功,404表示未找到等)。如果响应是一个HTML文件,则浏览器会开始解析HTML文件,并根据HTML文件中的链接继续获取其他嵌入资源(如图片、CSS、JavaScript文件等)。
-
渲染页面: 浏览器根据收到的HTML、CSS和JavaScript等文件开始渲染页面。它会根据HTML结构构建DOM树,根据CSS样式构建渲染树,然后将它们结合起来,显示在用户界面上。JavaScript脚本可能会在这个过程中修改DOM树或者进行其他的动态操作。
-
完成页面加载: 当浏览器完成所有资源的下载和页面的渲染后,页面就会完全展示给用户。此时用户可以与页面进行交互,如点击链接、填写表单等。
这些步骤描述了从用户输入网址到浏览器显示页面的整个过程,涵盖了网络通信、协议解析、资源获取和页面渲染等关键步骤。
5. 计算机网络每层有哪些协议?
| 层名称 | 协议 |
| 应用层 | 建立在 TCP 上:HTTP、FTP、SMTP、TELNET |
|
| 建立在 UDP 上:DNS、DHCP、TFTP |
| 传输层 | TCP、UDP |
| 网络层 | IP、ICMP、IGMP |
| 数据链路层 | ARP、RARP |
| 物理层 | ISO2210、IEEE802 |
6. TCP 的三次握手和四次挥手过程?
TCP的三次握手(Three-Way Handshake)和四次挥手(Four-Way Handshake)是在建立和终止TCP连接时所涉及的重要过程。这些过程确保了数据传输的可靠性和顺序性。
三次握手(TCP Three-Way Handshake)
三次握手是TCP连接建立过程中的步骤,确保通信双方的初始化序列号(Sequence Number)和确认序号(Acknowledgment Number)的同步。
-
第一步:客户端向服务器发送连接请求
- 客户端(Client)首先发送一个SYN(同步)标志位置为1的TCP报文段,指定自己的初始化序列号(ISN)。
-
第二步:服务器响应并确认连接请求
- 服务器(Server)收到客户端的SYN报文段后,会确认客户端的SYN(ACK)标志位置为1,同时也会设置自己的初始化序列号(ISN)。服务器还会在响应中包含一个确认序号(Acknowledgment Number),确认客户端的序列号加1。
-
第三步:客户端确认服务器的响应
- 客户端收到服务器的SYN/ACK报文段后,会向服务器发送一个确认报文段,确认收到服务器的响应。客户端将确认序号设置为服务器的序列号加1。
完成了以上三步,TCP连接就建立起来了,通信双方可以开始传输数据。
四次挥手(TCP Four-Way Handshake)
四次挥手是TCP连接终止的过程,确保双方都知道连接已经关闭。
-
第一步:客户端发送连接释放(FIN)报文
- 客户端希望关闭连接时,会向服务器发送一个FIN标志置为1的报文段,表示数据传输已经完成。
-
第二步:服务器收到关闭请求
- 服务器接收到客户端的FIN报文后,会发送一个ACK确认报文,确认收到了客户端的关闭请求。此时服务器进入CLOSE_WAIT状态,等待自己的数据发送完毕。
-
第三步:服务器发送连接释放(FIN)报文
- 服务器在所有数据发送完毕后,会发送一个FIN标志置为1的报文段给客户端,表示服务器也准备关闭连接。
-
第四步:客户端确认服务器的关闭请求
- 客户端收到服务器的FIN报文后,会发送一个ACK确认报文,确认收到了服务器的关闭请求。客户端进入TIME_WAIT状态,等待可能出现的延迟数据报文。
完成了以上四步,TCP连接就彻底关闭了,双方完成了连接的释放,释放资源。
这些过程保证了数据的可靠传输和连接的正确释放,是TCP协议中非常重要的部分。
为什么是三次握手而不是两次?
TCP协议采用三次握手而不是两次握手的主要原因是为了确保连接的可靠性和正确性,特别是在面对网络中可能存在的延迟、丢包和重复数据包的情况下。让我们来看为什么两次握手是不够的:
确认双方的接收能力和发送能力: 在TCP的三次握手中,第三次握手的ACK确认不仅仅是对服务端的SYN报文的回复,还承载了客户端对服务端初始序列号的确认。这确保了客户端和服务端都能发送和接收数据,从而建立了双向的通信。
避免旧连接的影响: 如果只进行两次握手,客户端发送SYN报文并等待服务端的ACK,此时可能发生网络延迟导致客户端的SYN报文丢失。如果服务端在这段时间内收到了旧连接的延迟数据包,并且服务端在此时发送了一个对应新连接的ACK报文,客户端可能会在收到这个报文时误以为连接已经建立。
序列号的同步: 三次握手中的第三次握手,服务端发送ACK报文并且包含新的序列号,客户端确认了这个序列号,这使得双方的序列号是同步的。
7. 流量控制和拥塞控制的概念?
流量控制:解决的是发送方和接收方速率不匹配的问题;拥塞控制解决的是避免网络资源被耗尽的问题。流量控制是通过滑动窗口来实现的;拥塞控制是通过拥塞窗口来实现的。
拥塞控制:作用于网络,防止过多的数据注入到网络中,避免出现网络负载过大的情况;常用的方法包括:慢开始、拥塞避免、快重传、快恢复。
8. 简述 DNS 协议?
DNS 协议是基于 UDP 的应用层协议,它的功能是根据用户输入的域名,解析出该域名对应的 IP 地址,从而给客户端进行访问。
9. 简述 DNS 域名解析的过程?
输入域名后,先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据;如果没有, 就向上级域名服务器进行查找, 依次类推;多回溯到根域名服务器,肯定能找到这个域名的 IP 地址;域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程
DNS(Domain Name System,域名系统)是互联网中用于将域名(如www.example.com)转换为对应的IP地址(如192.0.2.1)的系统。域名解析的过程如下:
用户输入域名: 用户在浏览器中输入一个域名,比如www.example.com。
本地域名解析器查询: 操作系统会首先查询本地域名解析器(通常是本地的DNS缓存或者本地的DNS服务器)。如果缓存中已经有了对应域名的IP地址,解析过程就可以直接结束,否则进入下一步。
递归查询开始: 如果本地解析器没有找到所需的域名解析记录,它会向根域名服务器发起递归查询。根域名服务器是全球DNS系统的最顶层,负责指导查询流向。
根域名服务器返回顶级域名服务器地址: 根域名服务器收到请求后,会返回一个包含所查询域名的顶级域(比如.com)的权威域名服务器的地址。
顶级域名服务器查询: 本地解析器再次向顶级域名服务器发起查询请求,询问包含所需域名的下一级域名服务器(如example.com)的地址。
权威域名服务器查询: 顶级域名服务器会将本次查询重定向到负责管理所需域名的权威域名服务器(例如example.com的权威域名服务器)。
获取目标域名的IP地址: 最后,本地解析器向权威域名服务器发起查询请求,获取所需域名对应的IP地址记录。
返回IP地址给客户端: 一旦本地解析器收到了IP地址记录,它会将这个IP地址返回给操作系统,然后操作系统将其提供给应用程序(如浏览器),使得应用程序可以发起网络连接。
缓存结果: 解析器通常会在本地缓存获取到的IP地址和相应的TTL(生存时间),以便将来更快地响应类似的查询请求。
这个过程确保了域名能够正确地转换为相应的IP地址,使得用户能够通过域名访问到目标服务器上的网站或其他网络服务。
10. 简述 HTTP 协议?
HTTP 协议是超文本传输协议。它是基于 TCP 协议的应用层传输协议,规定了客户端和服务器端进行之间信息传递的一种规范,是二者共同遵守的协议。
11.说明 CSMA/CD 与 CSMA/CA 的区别?
1.含义不同
CSMA/CD:载波侦听多路访问/冲突检测
CSMA/CA:载波侦听多路访问/冲突避免
2.适用的场景不同
CSMA/CD 主要适用于有线以太网
CSMA/CA 主要适用于无线以太网
3.应对冲突的策略不同
CSMA/CD 关键在于冲突的检测
在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
在发送数据时,要边发边检测,如果检测到了冲突,就退避随机的一段时间。
CSMA/CA 关键在于冲突的避免
它不是在发送过程中去监听是否发生了冲突,而是事先就要设法避免冲突的发生。
当一个主机要发送消息之前,首先要监听信道。如果信道为空,首先要等待一个帧间间隔时间,之后再次监听信道,如果还为空,那么再开始一个随机退避过程。之后再次监听,如果还为空,那么就开始发送数据。
如果上面的过程中出现信道为忙的情况,那么就终止等待过程,一直等到信道为空之后,再重新执行上面的过程。
12.谈谈ip与MAC地址
IP地址(Internet Protocol Address)和MAC地址(Media Access Control Address)是在计算机网络中用于标识和定位设备的两种不同类型的地址。
IP地址:
定义: IP地址是网络层(第三层)使用的地址,用于在互联网上唯一标识一个设备或网络接口。
功能: IP地址使得设备能够在互联网上相互通信,类似于邮政地址在现实生活中的作用。
格式: IPv4地址由32位二进制数字组成,通常以点分十进制(如192.0.2.1)表示。IPv6地址由128位二进制数字组成,通常以冒号分隔的十六进制表示(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
主要特点包括:
分配:由网络管理员或Internet服务提供商分配。
动态分配:可以是静态的(固定不变)或动态的(根据需要变化)。
路由:用于在网络中寻址和路由数据包。
MAC地址:
定义: MAC地址是数据链路层(第二层)使用的地址,用于在局域网中唯一标识一个设备。
功能: MAC地址是设备出厂时固化在网卡上的,用于在局域网内识别和定位设备。
格式: MAC地址通常由48位二进制数字组成,分为6组十六进制数(如00:1A:2B:3C:4D:5E)。
主要特点包括:
唯一性:每个网卡的MAC地址全球唯一,由IEEE管理。
不变性:一般情况下,MAC地址在设备出厂时确定,并且通常不会更改(尽管某些情况下可以进行修改)。
用途:用于在局域网中唯一标识设备,不直接用于Internet路由。
总结:
IP地址用于全球互联网,是逻辑上的地址,通过路由器进行跨网络通信。
MAC地址用于局域网内,是物理上的地址,用于直接在网络中传递数据帧。
13. 谈谈你对ip地址分类的理解
分类是为了有效管理和分配IP地址,以支持不同规模和需求的网络。A类地址适用于大型网络,B类和C类地址则适用于中等和小型网络,而D类和E类地址则用于特定的多播和实验性目的。这种分类体现了早期互联网发展时对地址资源的合理利用和分配。
end

好想摆烂
相关文章:
计算机专业课面试常见问题-计算机网络篇
目录 1. 计算机网络分为哪 5 层? 2. TCP 协议简述? 3. TCP 和 UDP 的区别?->不同的应用场景? 4. 从浏览器输入网址到显示页…...
HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑
使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…...
微信换手机号了怎么绑定新手机号?
微信换手机号了怎么绑定新手机号? 1、在手机上找到并打开微信; 2、打开微信后,点击底部我的,并进入微信设置; 3、在微信设置账号与安全内,找到手机号并点击进入; 4、选择更换手机号,…...
64.WEB渗透测试-信息收集- WAF、框架组件识别(4)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:63.WEB渗透测试-信息收集- WAF、框架组件识别(3)-CSDN博客 我们在…...
java.lang.LinkageError: 链接错误的正确解决方法,亲测有效,嘿嘿,有效
文章目录 问题分析报错原因解决思路解决方法(含代码示例)1. 检查类加载器2. 避免在运行时修改类定义3. 更新或修复 JVM4. 检查应用程序的依赖使用 Maven 检查依赖项使用 Gradle 检查依赖项 java.lang.LinkageError 是 Java 虚拟机在尝试链接类定义时发生…...
python最基础
基本的类 python最基础、最常用的类主要有int整形,float浮点型,str字符串,list列表,dict字典,set集合,tuple元组等等。int整形、float浮点型一般用于给变量赋值,tuple元组属于不可变对象&#…...
Python学习路线图(2024最新版)
这是我最开始学Python时的一套学习路线,从入门到上手。(不敢说精通,哈哈~) 一、Python基础知识、变量、数据类型 二、Python条件结构、循环结构 三、Python函数 四、字符串 五、列表与元组 六、字典与集合 最后再送给大家一套免费…...
66、基于长短期记忆 (LSTM) 网络对序列数据进行分类
1、基于长短期记忆 (LSTM) 网络对序列数据进行分类的原理及流程 基于长短期记忆(LSTM)网络对序列数据进行分类是一种常见的深度学习任务,适用于处理具有时间或序列关系的数据。下面是在Matlab中使用LSTM网络对序列数据进行分类的基本原理和流…...
RabbitMQ消息可靠性等机制详解(精细版三)
目录 七 RabbitMQ的其他操作 7.1 消息的可靠性(发送可靠) 7.1.1 confim机制(保证发送可靠) 7.1.2 Return机制(保证发送可靠) 7.1.3 编写配置文件 7.1.4 开启Confirm和Return 7.2 手动Ack(保证接收可靠) 7.2.1 添加配置文件 7.2.2 手动ack 7.3 避免消息重复消费 7.3.…...
88888
49615...
深度学习之激活函数
激活函数的公式根据不同的函数类型而有所不同。以下是一些常见的激活函数及其数学公式: Sigmoid函数: 公式:f(x)特性:输出范围在0到1之间,常用于二分类问题,将输出转换为概率值。但存在梯度消失问题&#…...
OpenStack开源虚拟化平台(一)
目录 一、OpenStack背景介绍(一)OpenStack是什么(二)OpenStack的主要服务 二、计算服务Nova(一)Nova组件介绍(二)Libvirt简介(三)Nova中的RabbitMQ解析 OpenS…...
C++ | Leetcode C++题解之第207题课程表
题目: 题解: class Solution { private:vector<vector<int>> edges;vector<int> indeg;public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {edges.resize(numCourses);indeg.resize(numCo…...
vue3中的自定义指令
全局自定义指令 假设我们要创建一个全局指令v-highlight,用于高亮显示元素。这个指令将接受一个颜色参数,并有一个可选的修饰符bold来决定是否加粗文本。 首先,在创建Vue应用时定义这个指令:(这里可以将指令抽离成单…...
Postman接口测试工具的原理及应用详解(一)
本系列文章简介: 在当今软件开发的世界中,接口测试作为保证软件质量的重要一环,其重要性不言而喻。随着前后端分离开发模式的普及,接口测试已成为连接前后端开发的桥梁,确保前后端之间的数据交互准确无误。在这样的背景…...
C++ initializer_list类型推导
目录 initializer_list C自动类型推断 auto typeid decltype initializer_list<T> C支持统一初始化{ },出现了一个新的类型initializer_list<T>,一切类型都可以用列表初始化。提供了一种更加灵活、安全和明确的方式来初始化对象。 class…...
造一个交互式3D火山数据可视化
本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 Plotly.js 创建交互式 3D 火山数据可视化 应用场景 本代码用于将火山数据库中的数据可视化,展示火山的高度、类型和状态。可用于地质学研究、教育和数据探索。 基本功能 该代码使用 Plotly…...
【网络安全】一文带你了解什么是【CSRF攻击】
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种网络攻击方式,它利用已认证用户在受信任网站上的身份,诱使用户在不知情的情况下执行恶意操作。具体来说,攻击者通过各种方式(如发送恶意链…...
短视频电商源码如何选择
在数字时代的浪潮下,短视频电商以其直观、生动、互动性强的特点,迅速崛起成为电商行业的一股新势力。对于有志于进军短视频电商领域的创业者来说,选择一款合适的短视频电商源码至关重要。本文将从多个角度探讨如何选择短视频电商源码…...
444444
356前期...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
