计算机专业课面试常见问题-计算机网络篇

目录

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. 从浏览器输入网址到显示页面的经历的过程?                           

当用户在浏览器中输入网址并按下回车键后,浏览器会执行以下步骤来获取并显示网页:

  1. DNS解析: 浏览器首先会检查自身的缓存,看是否有该网址对应的IP地址。如果缓存中没有,浏览器会向本地操作系统的DNS解析器发起请求,请求解析该域名(比如www.example.com)对应的IP地址。

  2. 建立TCP连接: 一旦浏览器获取到目标服务器的IP地址,它会通过TCP协议向目标服务器发起连接请求。这个过程涉及到TCP的三次握手,确保浏览器和服务器之间建立可靠的连接。

  3. 发送HTTP请求: 一旦TCP连接建立成功,浏览器会通过该连接向服务器发送一个HTTP请求。该请求中包含了浏览器想要获取的资源(比如HTML文件、图片、CSS文件等)的详细信息,如请求方法(GET、POST等)、请求头、请求体等。

  4. 服务器处理请求并返回HTTP响应: 服务器收到浏览器发送的请求后,会根据请求的内容进行处理。服务器可能会请求其他服务器获取需要的资源(如数据库服务器),然后将响应的数据发送回浏览器。

  5. 浏览器接收响应: 浏览器接收到来自服务器的HTTP响应后,会先检查状态码(比如200表示成功,404表示未找到等)。如果响应是一个HTML文件,则浏览器会开始解析HTML文件,并根据HTML文件中的链接继续获取其他嵌入资源(如图片、CSS、JavaScript文件等)。

  6. 渲染页面: 浏览器根据收到的HTML、CSS和JavaScript等文件开始渲染页面。它会根据HTML结构构建DOM树,根据CSS样式构建渲染树,然后将它们结合起来,显示在用户界面上。JavaScript脚本可能会在这个过程中修改DOM树或者进行其他的动态操作。

  7. 完成页面加载: 当浏览器完成所有资源的下载和页面的渲染后,页面就会完全展示给用户。此时用户可以与页面进行交互,如点击链接、填写表单等。

这些步骤描述了从用户输入网址到浏览器显示页面的整个过程,涵盖了网络通信、协议解析、资源获取和页面渲染等关键步骤。

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)的同步。

  1. 第一步:客户端向服务器发送连接请求

    • 客户端(Client)首先发送一个SYN(同步)标志位置为1的TCP报文段,指定自己的初始化序列号(ISN)。
  2. 第二步:服务器响应并确认连接请求

    • 服务器(Server)收到客户端的SYN报文段后,会确认客户端的SYN(ACK)标志位置为1,同时也会设置自己的初始化序列号(ISN)。服务器还会在响应中包含一个确认序号(Acknowledgment Number),确认客户端的序列号加1。
  3. 第三步:客户端确认服务器的响应

    • 客户端收到服务器的SYN/ACK报文段后,会向服务器发送一个确认报文段,确认收到服务器的响应。客户端将确认序号设置为服务器的序列号加1。

完成了以上三步,TCP连接就建立起来了,通信双方可以开始传输数据。

四次挥手(TCP Four-Way Handshake)

四次挥手是TCP连接终止的过程,确保双方都知道连接已经关闭。

  1. 第一步:客户端发送连接释放(FIN)报文

    • 客户端希望关闭连接时,会向服务器发送一个FIN标志置为1的报文段,表示数据传输已经完成。
  2. 第二步:服务器收到关闭请求

    • 服务器接收到客户端的FIN报文后,会发送一个ACK确认报文,确认收到了客户端的关闭请求。此时服务器进入CLOSE_WAIT状态,等待自己的数据发送完毕。
  3. 第三步:服务器发送连接释放(FIN)报文

    • 服务器在所有数据发送完毕后,会发送一个FIN标志置为1的报文段给客户端,表示服务器也准备关闭连接。
  4. 第四步:客户端确认服务器的关闭请求

    • 客户端收到服务器的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

好想摆烂 

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

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

相关文章

ES6深潜指南:解锁JavaScript类与继承的高级技巧,让您的代码更加优雅

前言 随着前端技术的迅猛发展,JavaScript已经成为构建现代Web应用不可或缺的编程语言。ES6(ECMAScript 2015)引入了许多期待已久的特性,其中类(Classes)和继承机制的引入,极大地增强了JavaScrip…

基于 elementUI / elementUI plus,实现 主要色(主题色)的一件换色(换肤)

一、效果图 二、方法 改变elementUI 的主要色 --el-color-primary 为自己选择的颜色,核心代码如下: // 处理主题样式 export function handleThemeStyle(theme) {document.documentElement.style.setProperty(--el-color-primary, theme) } 三、全部代…

OutOfMemoryError能被catch(Exception)捕获吗?

背景 写了一个 Kafka 消费者程序,Kafka 集群中数据量过大时,消费线程无故退出了,日志打印了心跳 OOM 异常信息: 但是消费线程里面的 run 方法里面明明包含了 catch (Exception e) ,结尾信息没有打印异常,…

2024全网最全面及最新且最为详细的网络安全技巧四 之 sql注入以及mysql绕过技巧 (2)———— 作者:LJS

目录 4.5 DNS记录类型介绍(A记录、MX记录、NS记录等,TXT,CNAME,PTR) 4.5.1 DNS 4.5.2 A记录 4.5.3NS记录 4.5.4 MX记录 4.5.5 CNAME记录 4.5.6 TXT记录 4.5.7 泛域名与泛解析 4.5.8域名绑定 4.5.9 域名转向 4.6 Mysql报错注入之floor报错详解…

【Mac】王国保卫战:起源 for mac(塔防策略游戏)游戏介绍和安装教程

游戏介绍 《王国保卫战:起源》(Kingdom: Origins)是一款策略塔防游戏,其核心玩法融合了塔防、策略管理和资源管理元素。游戏的主要目标是在一个开放的像素化世界中建立和管理自己的王国,并抵御夜晚来袭的怪物入侵。 …

v0.9.6 开源跨平台个人知识管理工具 TidGi-Desktop

在这个信息爆炸的时代,知识管理变得尤为重要。太记(TidGi),一款基于太微(TiddlyWiki)的知识管理桌面应用,正是为了满足人们对信息整理、知识管理和个人隐私保护的需求而设计的。它不仅能够帮助用户高效地管理和整理信息,还能够自动…

go中的方法 func-----数据类型

本文是java学习者学go种产生的容易记混点的笔记,所以有其他编译语言的基础更好 go的方法有点像js 基础 func main() {fmt.Println("Starting")var p *string new(string)*p "hello world"demo : "demo"fmt.Println(*&demo) //这样既然也…

【文献及模型、制图分享】汾河流域新型城镇化与生态韧性耦合协调时空演变及协调影响力研究

公众号新功能 目前公众号新增以下等功能 1、处理GIS出图、Python制图、区位图、土地利用现状图、土地利用动态度和重心迁移图等等 2、核密度分析、网络od分析、地形分析、空间分析等等 3、地理加权回归、地理探测器、生态环境质量指数、地理加权回归模型影响因素分析、计算…

mysql查询2个日期之间的数据,表字段只有年和月,无日期字段查询的解决

1.核心mysql查询 SELECT * FROM 表名 WHERE CONCAT(year, -, LPAD(month, 2, 0)) > 2022-02-08 AND CONCAT(year, -, LPAD(month, 2, 0)) < 2024-06-06;2.表结构 CREATE TABLE ys_datezzq (id int(10) NOT NULL AUTO_INCREMENT,bid int(10) NOT NULL DEFAULT 0 COMMEN…

使用单调队列求滑动窗口最大值

单调队列&#xff1a;队列元素之间的关系具有单调性&#xff08;从队首到队尾单调递增/递减&#xff09;&#xff0c;队首与队尾进行插入与删除操作&#xff0c;使队列保持单调递增/递减&#xff0c;由双端队列deque实现。 通过例题对单调队列进行分析掌握&#xff1a; 使用单…

力扣随机一题 6/26 哈希表 数组 思维

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 题目一&#xff1a; 2869.收集元素的最少操作次数【简单】 题目&#xff…

深度学习31-33

1.负采样方案 &#xff08;1&#xff09;为0是负样本&#xff0c;负样本是认为构造出来的。正样本是有上下文关系 负采样的target是1&#xff0c;说明output word 在input word之后。 2.简介与安装 &#xff08;1&#xff09;caffe:比较经常用于图像识别&#xff0c;有卷积网…

Yolo v5实现细节(2)

Yolo v5代码实现细节 IOU系列损失 在之前的yolo v3中我们使用的定位损失主要使用的是差值平方的形式&#xff0c;通过预测边界框的参数和真实边界框的参数来进行计算求解的。 定位损失 L loc ( t , g ) ∑ i ∈ pos ( σ ( t x i ) − g ^ x i ) 2 ( σ ( t y i ) − g ^ …

云服务器部署LNMP Web环境教程合集(多版linux系统安装方法)

LNMP环境包括Linux、Nginx、MySQL和PHP&#xff0c;Nginx是一款小巧而高效的Web服务器软件&#xff0c;使用阿里云服务器搭建LNMP Web网站环境很简单&#xff0c;支持多种LNMP环境部署教程&#xff0c;可使用ROS模板部署、LNMP镜像以及基于不同Linux操作系统手动部署LNMP全流程…

MySQL进阶——触发器

目录 1介绍 2语法 3案例 3.1 insert插入数据类型 3.2 update修改数据类型 3.3 delete删除数据类型 4视图/存储过程/触发器—小结 1介绍 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义…

字节发布Depth Anything V2深度模型,比 Depth Anything V1 更精细的细节。

欢迎点击关注下方公众号并加入官方读者交流群&#xff0c;一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、Stable Diffusion、Sora等相关技术&#xff0c;欢迎一起交流学习&#x1f497;&#xff5e; 字节发布Depth Anything V2深度模型。比 Depth Anything V1…

idea使用maven打包报错GBK不可映射字符

方法一&#xff1a;设置环境变量 打开“控制面板” > “系统和安全” > “系统”。点击“高级系统设置”。在“系统属性”窗口中&#xff0c;点击“环境变量”。在“系统变量”部分&#xff0c;点击“新建”&#xff0c;创建一个新的变量&#xff1a; 变量名&#xff1a;…

4.任务调度

1.基本知识 2.任务的状态 FreeRTOS中任务共存在4种状态&#xff1a;Running 运行态 当任务处于实际运行状态称之为运行态&#xff0c;即CPU的使用权被这个任务占用&#xff08;同一时间仅一个任务处于运行态&#xff09;。Ready 就绪态 处于就绪态的任务是指那些能够运行&…

单片机学习记录

一&#xff0c;单片机及开发板介绍 1&#xff0c;基本介绍 单片机&#xff0c;英文Micro Controller Unit&#xff0c;简称MCU内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(…

1.x86游戏实战-认识CE

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提取码&#xff1a;6tw3 复…