计算机网络面经

1.ISO七层协议,以及协议当中的内容

物理层负责传输原始的比特流,定义电压、接口、线缆标准等物理介质相关内容,只关注 0 和 1 的传输,不关心数据格式。

数据链路层将物理层接收到的信号组成帧,通过 MAC 地址进行局域网内通信,实现差错检测、流量控制,确保帧可靠传输。

网络层负责对数据包进行路由选择和逻辑寻址,通过 IP 地址找到目标主机,决定数据传输的最佳路径,实现不同网络之间的通信。

传输层负责端到端的数据传输,提供可靠或不可靠的传输服务,主要包含 TCP 和 UDP 协议,进行分段、重组、流量控制和差错恢复。

会话层负责建立、管理、终止应用程序之间的会话,维护通信双方的交互状态,进行会话同步与恢复。

表示层负责数据的格式转换、加密、解密、压缩、解压缩,确保发送方的数据能被接收方正确识别和解析。

应用层直接为应用程序提供服务,是用户接触最接近的一层,包含 HTTP、HTTPS、FTP、DNS、SMTP 等常见协议,负责实现具体的业务功能。

2.TCP/IP模型

TCP/IP 模型分为4 层

应用层、传输层、网络层、网络接口层

应用层负责业务数据,比如 HTTP、DNS、FTP 等;传输层负责端到端通信,主要有 TCP 和 UDP 两种协议;网络层负责寻址和路由,核心是 IP 协议;网络接口层负责物理传输,对应硬件和驱动相关的功能。

3.TCP和UDP的区别

  • TCP:面向连接、可靠、有序、有重传、流量控制、速度慢,适合文件传输、HTTP。

  • UDP:无连接、不可靠、速度快、不保证顺序,适合直播、视频、游戏。

一句话:TCP 可靠慢,UDP 快不可靠。

4.HTTP协议的无状态性

HTTP 是无状态协议,服务器不会记住上一次请求的用户信息,每次请求都是独立的。

需要通过 Cookie、Session、Token 来保持状态。

5.从浏览器当中输入url到内容显示这个过程当中发生了什么

浏览器解析 URL

DNS 域名解析成 IP

TCP 三次握手建立连接

HTTPS 进行 TLS 握手

发送 HTTP 请求

服务器处理并返回响应

浏览器解析渲染页面

TCP 四次挥手断开连接

6.HTTP版本问题

HTTP/1.0 采用短连接,每次请求都要重新建立 TCP 连接,效率较低;HTTP/1.1 默认使用长连接,支持管道化请求,但会出现队头阻塞,同一连接内请求必须串行;HTTP/2 采用二进制分帧、多路复用,多个请求可以在一个连接上并行传输,还支持头部压缩和服务器推送,大幅提升性能;HTTP/3 基于 QUIC 协议,底层使用 UDP,彻底解决了队头阻塞问题,连接建立更快,安全性和传输效率更高。

7.HTTP如何实现长连接,以及什么时候失效

长连接通过 Connection: keep-alive 实现,多个请求复用一个 TCP 连接。

失效场景:超时、客户端 / 服务器主动关闭、达到最大请求数、网络异常。

8.HTTP和HTTPS的区别

HTTP 明文传输的超文本传输协议,端口默认 80,数据在传输过程中容易被窃听、篡改和冒充,安全性差;

HTTPS 加密传输,端口 443,基于 TLS/SSL,有身份验证,防窃听、篡改、冒充。

9.数字签名

数字签名是用私钥加密摘要,接收方用公钥解密验证。

作用:防篡改、防抵赖、验证身份

10.DNS解析过程

DNS 解析负责将域名转换成 IP 地址,解析顺序依次是:先查浏览器缓存 ,没有再查系统 hosts 文件 和本地 DNS 缓存;如果都没有,就向本地 DNS 服务器 发起查询请求;本地 DNS 服务器会依次向根 DNS 服务器、顶级域名服务器、权威域名服务器查询,最终获取到目标 IP 并返回给浏览器,同时缓存结果方便下次查询。

11.webSocket和HTTP的区别和联系

WebSocket 和 HTTP 都基于 TCP 协议,都属于应用层协议。HTTP 是单向请求响应模式 ,只能客户端主动请求,服务器被动响应,是短连接或半长连接;WebSocket 是全双工通信,一次握手后建立持久连接,服务器可以主动向客户端推送数据,实时性极高,适合聊天、通知、大屏数据更新等场景,在握手阶段会使用 HTTP 协议进行升级。

12.WebSocket和Socket的区别和联系

Socket 并不是协议,而是传输层的编程接口 ,是对 TCP、UDP 的封装,用于实现进程间的网络通信;WebSocket 是应用层协议,基于 TCP,专门为 Web 场景设计,解决浏览器实时通信问题,需要借助 HTTP 完成握手,本质是建立在 Socket 接口之上的高层协议。

13.HTTP的请求过程

HTTP 请求过程首先是客户端与服务器建立 TCP 连接;然后客户端发送请求报文,包括请求行、请求头和请求体;服务器接收并解析请求,处理业务逻辑,生成响应报文返回给客户端,包含状态码、响应头和响应体;客户端接收并解析响应数据;最后根据是否长连接决定保持或断开 TCP 连接。

14.forward和redirsct的区别

forward :转发,服务器内部跳转,地址栏不变,一次请求,可共享 request。

redirect :重定向,告诉浏览器重新请求,地址栏变,两次请求。

15.Session和Cookie、Token的区别

Cookie 是存储在客户端 的小型文本数据,由服务器生成并返回给浏览器,每次请求自动携带,明文存储,安全性较低,容量有限;Session 是存储在服务器端 的用户会话信息,通过 Cookie 携带 SessionID 来关联用户,依赖服务器存储,分布式场景下需要同步;Token 是客户端存储的加密字符串,包含用户信息和签名,服务器不需要存储会话,只需要验证签名即可,无状态、扩展性强,适合分布式、前后端分离和移动端项目。

16.TCP三次握手机制

TCP 三次握手用于可靠建立连接:第一次,客户端向服务器发送 SYN 包,请求建立连接;第二次,服务器收到后回复 SYN+ACK 包,同意连接并确认收到请求;第三次,客户端再发送 ACK 包,确认收到服务器的应答,双方正式进入连接建立状态,可以开始传输数据。

17.TCP四次挥手

TCP 四次挥手用于正常断开全双工连接:第一次,客户端发送 FIN 包,表示没有数据要发送,请求关闭发送方向;第二次,服务器回复 ACK 包,确认关闭请求,此时客户端到服务器方向关闭;第三次,服务器数据发送完毕后发送 FIN 包,请求关闭它的发送方向;第四次,客户端回复 ACK 包,确认关闭,等待一段时间后彻底断开连接。

18.TCP为什么是三次握手

使用三次握手是为了确认客户端和服务器的发送、接收能力都正常,并且同步双方的初始序列号。两次握手无法确认客户端的接收能力和服务器的发送能力正常,还可能因为网络延迟导致失效的连接请求到达服务器,造成服务器资源浪费,三次握手是保证可靠连接的最小次数。

19.为什么四次挥手

因为 TCP 是全双工通信,发送和接收是两个独立的通道,双方都可以主动关闭。客户端先关闭自己的发送通道,服务器确认;等服务器也发送完数据后再关闭它的发送通道,客户端再确认,所以需要四次交互,不能合并成三次。

20.TCP是如何保证可靠传输的

TCP 通过多种机制保证可靠传输:面向连接 ,通过三次握手和四次挥手管理连接;使用序列号和确认应答 ,保证数据按序到达;超时重传 ,未收到确认则重新发送数据;校验和 检测传输错误;流量控制 避免发送过快导致接收方溢出;拥塞控制 根据网络状况调整发送速度;同时自动去重,丢弃重复报文。

21.TCP的流量控制

流量控制是为了防止发送方发送速度过快,导致接收方处理不过来而丢包。接收方在应答报文里会告诉发送方自己的接收窗口大小,发送方根据这个窗口动态调整发送的数据量,确保发送速度不超过接收方的处理能力,实现发送速度和接收能力的匹配。

22.IPV4和IPV6

IPv4 是 32 位地址,总地址数量有限,需要 NAT 技术缓解地址不足问题,配置复杂,不支持自动配置,安全性和扩展能力较弱;IPv6 是 128 位地址,地址空间极大,几乎用不完,支持即插即用自动配置,头部结构更简洁,传输效率更高,原生支持加密和认证,安全性更强,是下一代互联网协议。

相关推荐
Wasim4045 小时前
QAM 调制原理流程
计算机网络·星座图·qam·通信原理·信号调制
尘世壹俗人6 小时前
知识点1--计算机网络基础
计算机网络·智能路由器
自在极意功。8 小时前
TCP三次握手与四次挥手
网络·网络协议·tcp/ip·计算机网络·三次握手·四次挥手
the sun3411 小时前
计算机网络:数据链路层协议
网络·网络协议·计算机网络
小涛不学习12 小时前
计算机网络核心知识总结(面试 + 基础原理全解析)
计算机网络·面试·职场和发展
小糖学代码13 小时前
计算机网络理论:1.概述
网络·计算机网络·智能路由器
Predestination王瀞潞1 天前
计科-计网6-网络层「整理」
网络·计算机网络·架构·计网
大地的一角1 天前
(Linux与计算机网络)应用层协议基础、守护进程化
计算机网络
Predestination王瀞潞1 天前
计科-计网8-计算题「整理」
网络·计算机网络·架构·智能路由器·计网