网络面试题(第一部分)

server/2025/2/7 14:09:05/

一、ARP工作原理

首先ARP工作在数据链路层,功能是将IP地址转换成MAC地址。例如主机A想向主机B发送消息,首先会查看自己ARP表中是否有主机B对应的MAC地址,如果有则按照ARP表中对应的MAC地址表发送,否则就以广播的形式发送数据包,来查询主机B的MAC地址。这个广播包包源IP地址、硬件地址、以及目的IP地址。收到这个广播包的人先查看目的IP是不是自己的IP如果不是就不理会,如果是就会向源地址发送自己MAC地址,主机A的ARP表就会记录这个MAC到自己的表中,如果一直没有回复则查询失败。

二、DNS工作原理

DNS功能是将域名转换成IP地址。用户A在浏览器输入域名,操作系统会先查看自己本地的DNS缓存,如果有则直接返回,否则会发送给本地的DNS服务器。本地的DNS服务器同样会先查看自己的缓存,如果有则直接返回,否则会向跟服务器发送递归查询。根域名服务器存储了顶级域名的DNS服务器信息,根域名返回顶级域的服务器IP地址。顶级域服务器记录个各个顶级域名,会将查到域名对应的IP返回给本地DNS服务器,本地DNS服务器会将IP地址缓存方便下次使用。

三、TCP三次握手四次挥手

三次握手:

客户端发送一个SYN数据包给服务端表示想要简历连接,客户端进入SYN_SEND状态。服务器接受到SYN数据包后回复一个SYN和ACK数据包给客户端,服务器进入SYN_RECV状态。客户端接收到SYN+ACK后回复一个ACK数据包,表示建立成功,客户端进入ESTABLISHED状态,表示双方可以传输数据。

四次挥手:

客户端不在想传输数据,会先发送一个带有FIN数据包给服务端,但是还能接受数据,客户端进入FIN_WAIT_1状态。服务端接收到客户端发送的FIN数据包会发送一个ACK给客户端,服务器进入CLOSE_WAIT状态,但是会继续发送数据。服务端传输完剩下的数据后会发送一个FIN数据包给客户端,服务器进入LAST_ACK状态。客户端接收到FIN包后会发送一个带有ACK标志的数据包给服务端,客户端进入TIME_WAIT状态,确保服务端收到ACK,最后断开连接。

四、TCP与UDP的区别

TCPUDP

连接

方式

面向连接,数据传输前先连接,通过三次握手面向无连接,可以直接发送数据包
可靠性可靠传输服务不可靠
速率速度较慢,延迟性较高,传输更加稳定速度快没有其他开销

头部

大小

头部大小为20或40字节头部为8字节

适用

场景

实用与可靠性要求较高的场景,邮件传输等实时性要求较高的场景,视频通话等

其他

特性

提供流量控制等机制最大努力交付

五、HTTP与HTTPS的区别

HTTP(超文本传输协议)HTTPS(安全超文本传输协议)
安全性明文传输,有安全风险加上SSL/TLS协议进行加密,安全性高

数据

传输

方式

默认使用80端口,无状态协议,请求独立默认使用443端口,有身份验证
证书不需要证书需要证书
性能性能交好相对较低
场景隐私保护较低的场景在线支付、用户登录等

 六、OSI参考模型和TCP/IP参考模型

OSI参考模型TCP/IP参考模型
会话层(RPC等)应用层
表示层(SSL/TLS等)
应用层(HTTP/FTP/DNS/SMTP)
传输层(TCP/UDP)传输层
网络层(IP/ICMP)网络
数据链路层(PPP)网络接口层
物理层

七、HTTPS常见状态码(部分)

2200请求成功、204成功不需要服务器返回
3301永久重定向、302临时重定向
4400客户端请求错误、401需要验证、403服务器拒绝、404找不到
5500服务器执行时发生错误、502服务器网关错误、503服务器维护

 


http://www.ppmy.cn/server/165691.html

相关文章

计算机网络之数据链路层(数据链路层的功能)

帧同步: 数据链路层将网络层传下来的数据报封装成帧,为了区分不同的帧,需要在每个帧的开头和结尾添加特殊的标记,以实现帧的定界和同步。这样,接收方就能准确地识别出一个帧的开始和结束。 差错控制: 在…

网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

一、前言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志(网络爬虫学习:应用selenium从搜…

处理数据及其选择关键列进行一次聚类

1. 数据加载与初步处理 # 文件路径 file_path ../data/all_database_result.csv# 读取CSV文件到DataFrame df pd.read_csv(file_path)# 选择特定的特征列 selected_features [Q10, Q12, Q13, Q14]# 缺失值处理:这里简单地删除含有任何缺失值的行 df.dropna(subse…

在 Linux 中,进程的状态 I 表示什么

在 Linux 中,进程的状态 I 表示 Idle(空闲)状态。进程处于 I 状态通常表示它处于 内核休眠 状态,即正在等待某些 I/O 操作或者资源。 不过,I 状态在进程列表中并不常见,它通常出现在 内核线程(…

通过docker安装部署deepseek以及python实现

前提条件 Docker 安装:确保你的系统已经安装并正确配置了 Docker。可以通过运行 docker --version 来验证 Docker 是否安装成功。 网络环境:保证设备有稳定的网络连接,以便拉取 Docker 镜像和模型文件。 步骤一:拉取 Ollama Docker 镜像 Ollama 可以帮助我们更方便地管理…

python学opencv|读取图像(五十七)使用cv2.bilateralFilter()函数实现图像像素双边滤波处理

【1】引言 前序学习过程中,已经掌握了对图像的基本滤波操作技巧,具体的图像滤波方式包括均值滤波、中值滤波和高斯滤波,相关文章链接有: python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素…

[c语言日寄]浮点数在内存中的储存

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

android 适配 api 35(android 15) 遇到的问题

首先升级 targetSdkVersion 和 compileSdkVersion 到 35,升级后发生的报错 一、 解决方案: 升级gradle 和gradle 插件版本 com.android.tools.build:gradle -> 8.3.0-alpha02 gradle-wrapper.properties : distributionUrl -> gradle-8.6-bin.zip https…