计算机网络知识汇总(超详细整理)_计算机网络全局理解-优快云博客
1. 信息头管理器
accept : 客户端可接受的响应类型
accept-language : 客户端可接受的语言
authorization : 是 HTTP 请求头中用于身份验证的关键字段,它携带客户端(如浏览器或应用)的凭证信息,以便服务器验证请求者的身份
cache-control :Cache-Control 参数用于控制缓存的行为
content-type : 声明请求或响应中传输的数据格式
user-agent : 参数用于标识发起请求的客户端类型,如浏览器或应用程序
2. OSI 7层模型
OSI的全称是开放式系统互连参考模型(Open System Interconnection Reference Model)
OSI 模型分为 7 层,从顶层到底层分别是:
应用层(Application Layer):提供具体的网络服务,如文件传输、邮件发送等
表示层(Presentation Layer):处理数据的编码和解码,确保数据能够被应用程序正确理解。
会话层(Session Layer):管理会话的建立和终止,确保多个应用程序能够同时进行通信。
传输层(Transport Layer):确保数据的可靠传输,提供错误检测和数据重传功能。
网络层(Network Layer):负责数据的路由和传输,确定数据从一个网络传输到另一个网络的路径。
数据链路层(Data Link Layer):处理数据帧的传输和错误检测。
物理层: 处理数据在物理介质上的传输
http : hypertext transfer protocol 超文本传输协议
ftp : file transfer protocol 文件传输协议
smtp : SMTP(Simple Mail Transfer Protocol)是电子邮件传输的标准协议,负责将邮件从发送方传输到接收方的邮件服务器
3.tcp/ip四层模型
应用层:
- 功能:提供具体的网络服务,处理用户数据,实现用户与网络的接口。
- 协议:HTTP、FTP、SMTP、Telnet等。
- 作用:用户通过应用程序与网络通信,例如浏览网页、发送电子邮件等
传输层:
- 功能:确保数据的可靠传输,提供数据的错误检测和重传机制。
- 协议:TCP(传输控制协议)和UDP(用户数据报协议)。
- 作用:TCP提供可靠性,适用于需要连接的应用(如WWW、电子邮件),而UDP提供无连接性,适用于实时应用(如视频会议、在线游戏)
互联网层:
- 功能:处理数据在网络中的路由和传输,确定数据从一个网络传输到另一个网络的路径。
- 协议:IP(Internet Protocol)。
- 作用:IP协议负责数据包的路由和转发,确保数据能够通过多个网络段正确到达目标设备。
网络接口层:
- 功能:处理数据在物理介质上的传输,确保数据能够通过网络设备(如路由器、交换机)正确传递。
- 协议:以太网(Ethernet)、Wi-Fi(802.11)等。
- 作用:网络接口层负责数据的帧传输和错误检测,确保数据能够在物理网络中正确传输。
4.ip地址
https://zhuanlan.zhihu.com/p/665674973
- IP 地址由网络号(网段地址)和主机号(主机地址)两部分组成
网络号是设备所在区域的一种标识,网络号相同的设备位于同一个网段内,网络号不同的设备通过路由器实现通信。主机号是在同一个网段中不同设备的标识,不允许同一个网段内出现重复的主机号
- IP 地址分为四类,分别是 A 类、 B 类、 C 类、 D 类(还有一个保留的 E 类)
A 类地址
A 类 IP 地址是首位以“ 0 ”开头的地址。从第 1 位到第 8 位是它的网络号,网络号的范围是 0 ~ 127 。其中 0 和 127 被保留,因此有 126 个可用的 A 类地址
B 类地址
B 类 IP 地址是前两位以“ 10 ”开头的地址。从第 1 位到第 16 位是它的网络号,网络号的范围是 128.0 ~ 191.255 。其中 128.0 和 191.255 属于保留地址,因此有 16382 个可用的 B 类地址
C 类地址
C 类 IP 地址是前三位以“ 110 ”开头的地址。从第 1 位到第 24 位是它的网络号,网络号的范围是 192.0.0 ~ 223.255.255
D 类地址
D 类 IP 地址是前四位以“ 1110 ”开头的地址。从第 1 位到第 32 位是它的网络号,网络号的范围是 224.0.0.0 ~ 239.255.255.255 。D 类地址没有主机号,用于组播
E类地址(还未使用)
网段地址和广播地址
当主机号全为 0 时,表示的是网段信息,非主机地址。
当主机号全为 1 时是广播地址,也不是主机地址。因此在分配 IP 地址过程中,需要排除这两个地址
广播地址:IP 地址中的主机号全部为 1 的就是广播地址,它是向同一个网段中的所有主机发送数据包
IP 组播
组播用于将包发送给特定组内的所有主机
组播使用 D 类地址。因此 IP 地址前四位是“ 1110 ”开头的,就是组播地址。剩下的 28 位就是组播的组编号
5. 子网掩码
6.DHCP 动态主机配置协议
DHCP ( Dynamic Host Configuration Protocol)的作用
- 自动分配IP地址:DHCP服务器根据请求动态分配IP地址,减少手动配置的工作量。
- 配置网络参数:提供包括子网掩码、默认网关、DNS服务器等其他网络参数的设置。
- 支持移动设备:允许移动设备(如笔记本电脑)在不同子网之间自动获取IP地址和配置信息
7.ARP地址解析协议
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。
通过目的IP地址解析获取MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的
注:因为下层协议是通过MAC地址来确定各自身份的,所以下层发送必须要MAC地址
8.NAT Network Address Translation 网络地址转换
NAT(Network Address Translation,网络地址转换)用于解决IPv4地址不足的问题,是一种将私有(保留)地址转化为公有IP地址的转换技术
私有IP地址:
A类地址:10.0.0.0–10.255.255.255
B类地址:172.16.0.0–172.31.255.555
C类地址:192.168.0.0–192.168.255.255
NAT 的优点
-
节省公有IP地址:允许多个设备共享一个公有IP地址。
-
增强安全性:隐藏内部网络结构,减少外部攻击风险。
-
简化网络管理:内部网络可以使用私有IP地址,无需申请大量公有IP
9. ICMP 互联网控制报文协议
- ICMP(Internet Control Message Protocol,互联网控制报文协议)是TCP/IP协议族中的一个重要协议,主要用于在IP网络中传递控制消息和错误报告。它通常用于网络诊断和故障排除,常见的工具如
ping
和traceroute
就是基于ICMP实现的
- ICMP报文类型
ICMP 差错报告报文:终点不可达:不可达主机、不可达网络,无效端口、协议
ICMP 询问报文:回送请求/回答 (ping使用)
-
ICMP的应用
Ping:
-
ping
命令通过发送ICMP回显请求报文并等待回显应答,测试主机之间的连通性和延迟。
Traceroute:
-
traceroute
通过发送TTL递增的数据包,利用ICMP超时消息和目标不可达消息,追踪数据包从源到目的地的路径
10. 套接字
设想在应用程序和网络之间存在一扇“门”:
需要发送报文时:发送进程将报文推到门外
门外的运输设施(因特网)将报文送到接收进程的门口
需要接收报文时:接收进程打开门,即可收到报文
在TCP/IP网络中,这扇“门”称为套接字(socket),是应用层和传输层的接口,也是应用程序和网络之间的API
11.UDP
User Datagram Protocol,用户数据报协议
udp的特点
-
无连接:
-
通信前不需要建立连接,直接发送数据。
-
-
不可靠:
-
不保证数据包的顺序、可靠性或完整性。如果数据包丢失或损坏,UDP 不会重传。
-
-
轻量级:
-
头部开销小(仅 8 字节),传输效率高。
-
-
支持广播和多播:
-
UDP 可以向多个目标主机发送数据包(广播或多播)。
-
-
实时性:
-
适用于对延迟敏感的应用(如视频流、在线游戏)
-
12.TCP
参考:https://zhuanlan.zhihu.com/p/541688783
Transmission Control Protocol,传输控制协议
tcp的特点
-
面向连接:
-
通信前需要建立连接(三次握手),通信结束后需要断开连接(四次挥手)。
-
-
可靠性:
-
通过确认机制、重传机制、校验和等保证数据的可靠传输。
-
-
数据顺序:
-
保证数据按发送顺序到达接收方。
-
-
流量控制:
-
通过滑动窗口机制控制发送方的发送速率,避免接收方缓冲区溢出。
-
-
拥塞控制:
-
通过拥塞窗口和算法(如慢启动、拥塞避免)避免网络拥塞。
-
-
全双工通信:
-
支持双向数据传输
-
13. UDP和TCP的区别
14.DNS域名系统
参考链接:一文彻底了解DNS协议工作原理,恐怕没有比这更通俗易懂的了吧?_dns协议原理-优快云博客
- 域名系统(DNS,Domain Name System)是互联网重要的基础设施之一,向所有需要域名解析的应用提供服务,主要负责将可读性好的域名映射成IP地址,它将人类可读的域名(如
www.example.com
)转换为机器可读的 IP 地址(如192.0.2.1
),以便设备能够相互通信
16.常用端口号
20/21 - FTP(文件传输协议) | File Transfer "文件分两段传(20数据+21命令)
22 - ssh 运维人员远程管理服务器
23 - Telnet(远程登录协议)
25 - SMTP(简单邮件传输协议) |
80 - HTTP(超文本传输协议)
443 - HTTPS(安全的超文本传输协议)
3306 - MySQL数据库
8080 - HTTP备用端口
17. 三次握手,四次挥手
18. http 和https的区别
HTTP(全称:HyperText Transfer Protocol,超文本传输协议) 【它是从 Web 服务器传输超文本标记语言(HTML)到本地浏览器的传送协议】 和HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议)都是互联网中用于数据传输的协议
ssl : secure sockets layer 安全套接字层, 是一种标准安全协议,用于在网络通信中建立Web浏览器和Web服务器之间的加密链接
tls : transport layer security 传输层安全 ,将SSL3.0协议规范进行了标准化
HTTPS=HTTP+TLS
20. 路由器和交换机的区别
工作层次和功能:
- 路由器工作在OSI的第三层(网络层),主要负责连接不同的网络,进行数据包的路由选择和路径管理。路由器通过IP地址进行路由决策,能够处理不同子网之间的通信,并提供防火墙服务,确保网络间的安全通信。
- 交换机则工作在OSI模型的第二层(数据链路层),主要负责在局域网内进行数据的转发和交换。交换机通过MAC地址进行数据帧的转发,能够简化网络配置,提高内部传输效率,但无法处理不同子网之间的通信
数据转发方式:
- 路由器基于IP地址进行路由选择和数据包处理,涉及到更多的协议信息,可能会带来更高的延迟。路由器适合连接不同的网络或互联网,处理网络间的流量。
- 交换机基于MAC地址进行硬件转发,通常提供低延迟和高带宽,适合处理内部流量,特别是在高流量的本地网络环境中
应用场景:
- 路由器主要用于连接不同的网络或子网,实现网络间的数据传输和路由选择。在家庭网络中,路由器通常连接宽带接入设备(如ADSL调制解调器或光纤猫)和局域网内的设备,使局域网内的设备能够访问互联网。在企业中,路由器用于连接企业网络与外部网络(如互联网),执行路由、NAT(网络地址转换)和防火墙功能。
- 交换机主要用于构建局域网(LAN),连接多个设备,实现设备之间的通信和数据共享。交换机通常用于企业内部网络,连接工作站、打印机和服务器,提供高速的局域网数据传输。在数据中心内,交换机用于连接服务器和存储设备,处理大量内部数据流量。
21.常用的网络命令
ping: 当软件出现网络问题时,比如登录不上,首先应该确认是否是所在电脑的网络或者远端服务器的网络出现问题了
可以使用ping指令,加上一个-t的参数,比如ping 172.16.72.136 -t,查看连续的ping包,看网络是否存在明显的抖动或延迟
ipconfig命令: ipconfig命令主要用来查看网卡的配置信息,比如IP地址,子网掩码和默认网关等
netstat命令:netstat命令用来查看本机的网络连接与端口占用情况
列出所有端口 (包括监听和未监听的) netstat
列出所有端口 netstat -a
列出所有 tcp 端口 netstat -at
- 列出所有 udp 端口 netstat -au
route相关命令:route相关命令主要用来查看路由表信息,添加策略路由等。route print命令是将Windows系统中的路由表打印出来
tracert命令 : 该命令可以追踪访问目标地址所经历的路径
windows中使用tracert ; linux中用traceroute
telnet: Telecommunication Network , 通过 Telnet,用户可以从本地计算机远程登录到另一台网络设备
Telnet 命令用于连接远程服务器的指定 IP 地址和端口号
telnet [远程主机IP] [端口号]
curl
:模拟HTTP请求(如curl -v http://example.com
)
22.五层协议
应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
任务是选择合适的网间路由和交换节点,从而确保计算机通信的数据及时传送,配套使用的有如下三个协议:
- 地址解析协议 ARP
- 网际控制报文协议 ICMP
- 网际组管理协议 IGMP
数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异 。物理层上传送的数据单位是比特
根据信息在传输线上的传输方向,可以分为如下三种通信方式:
- 单工通信:单向传输
- 半双工通信:双向交替传输
- 全双工通信:双向同时传输
23.http
http概念
超文本传输协议,明文传输,端口号为80 ;
无状态:默认不记录请求间的状态
HTTP 请求与响应结构
HTTP 请求报文示例 GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html
-
请求行:
方法 + 路径 + HTTP 版本
(如GET /index.html HTTP/1.1
)。 -
请求头(Headers):附加信息(如
Host
,User-Agent
,Cookie
)。 -
请求体(Body):POST/PUT 请求时携带数据(如表单或 JSON)
HTTP 响应报文示例
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234<!DOCTYPE html><html>...</html>
1. 状态行(Status Line)
-
HTTP 版本:如
HTTP/1.1
或HTTP/2
。 -
状态码(Status Code):三位数字,表示请求的处理结果,例如:
-
200 OK
(成功) -
404 Not Found
(资源未找到) -
500 Internal Server Error
(服务器内部错误)
-
-
状态文本(Reason Phrase):对状态码的简短描述,如
OK
、Not Found
2. 响应头(Response Headers)
包含服务器返回的元信息,以键值对形式表示。常见头字段包括:
-
通用头(General Headers):
-
Cache-Control
:缓存控制(如no-cache
)。 -
Connection
:连接管理(如keep-alive
)。
-
-
响应头(Response Headers):
-
Server
:服务器信息(如Apache/2.4.1
)。 -
Content-Type
:响应体的媒体类型(如text/html; charset=UTF-8
)。 -
Content-Length
:响应体的字节长度。 -
Set-Cookie
:设置客户端的 Cookie。
-
-
自定义头:如
X-Powered-By
(标识服务器技术)
3. 响应体(Response Body)
-
包含服务器返回的实际数据,格式由
Content-Type
决定:-
HTML 页面(
text/html
)。 -
JSON 数据(
application/json
)。 -
二进制文件(如图片、视频)。
-
-
某些响应可能无响应体(如
204 No Content)
http方法
方法 | 作用 | 是否幂等 | 示例场景 |
---|---|---|---|
GET | 获取资源 | 是 | 加载网页、查询数据 |
POST | 提交数据(创建/更新) | 否 | 提交表单、上传文件 |
PUT | 替换整个资源 | 是 | 更新用户信息(全量替换) |
DELETE | 删除资源 | 是 | 删除文章 |
PATCH | 部分更新资源 | 否 | 修改用户头像 |
HEAD | 获取响应头(无 Body) | 是 | 检查资源是否存在 |
http响应码
http的工作过程
0: 用户在浏览器输入url
6.关闭连接:四次挥手(TCP 连接关闭)
24. get 和 post的不同
1. 作用不同
GET
用于获取资源,一般是查询,而 POST
用于传输实体主体,一般是提交
2. 参数不同
GET 和 POST 的请求都能使用额外参数,但 GET 的参数以查询字符串出现在 URL 中,不会对服务器中的内容产生作用,但 POST 的参数存储在实体主体中。但是 POST 的安全性也不能说很高,我们仍然可以用抓包工具来进行查看。另一方面,URL 只支持 ASCII,因此 GET 的参数中若有中文等字符时需要先进行编码,但是 POST 的参数支持标准字符集
3.安全性
- GET 更不安全:
- 参数暴露在 URL 中,可能被中间人攻击(MITM)、网络监控或恶意软件窃取。
- 例如:用户通过 GET 请求提交密码,密码会直接显示在 URL 中,非常危险。
- POST 相对安全:
- 参数在请求体中,不直接显示在 URL 中,降低了数据被直接拦截和读取的风险
4.幂等性
幂等的 HTTP 方法,同样的请求被执行一次和被连续执行多次的效果是一样的,服务器的状态也一样,即幂等的方法不具有副作用,因此所有安全的方法也都是幂等的。
一般来说,GET、HEAD、PUT、DELETE
等方法都是幂等的,但 POST
不是
5.可缓存
若要对响应进行缓存,则应该满足一下条件:
请求报文的 HTTP 方法本身是可缓存的,包括 GET、HEAD,但是 PUT、DELETE 不可缓存,POST 在默认是不可缓存的;
响应报文的状态码是可缓存的,包括:200、203、204、206、300、301、404、405、410、411、501;
响应报文的 Cache-Control 首部字段未指定则不进行缓存;
6.数据长度方面
get受到url长度限制,一般不超过2048个字符;post没有长度限制,可传输大数据
25. Session 和 Cookie 的定义
1. 什么是 cookie
cookie 是由 Web 服务器保存在用户浏览器上的小文件(key-value 格式),包含用户相关信息。客户端向服务器发起请求,若服务器需要记录该用户状态,则使用 response 向客户端浏览器颁发一个 cookie。客户端浏览器将 cookie 保存起来,当浏览器再请求该网站时,浏览器将请求的网址连同该 cookie 一起提交给服务器,服务器检查该 cookie,以此来确认用户身份
定义
-
Cookie 是由服务器通过 HTTP 响应头
Set-Cookie
发送给浏览器的一小段数据(通常不超过 4KB)。 -
浏览器在后续请求中自动携带 Cookie(通过
Cookie
请求头)。 -
存储在客户端(浏览器)
特点
-
自动管理:浏览器自动存储和发送 Cookie。
-
有域限制:Cookie 只能被同源(Same Origin)或符合
Domain
/Path
规则的请求携带。 -
可设置过期时间:
-
会话 Cookie(Session Cookie):浏览器关闭后失效。
-
持久 Cookie(Persistent Cookie):设置
Expires
或Max-Age
,长期有效。
-
用途
-
存储会话 ID(Session ID),用于 Session 管理。
-
存储用户偏好(如语言、主题)。
-
跟踪用户行为(如广告跟踪)
2.什么是 session
session 依赖于 cookie 实现,session 是服务端对象。session 浏览器和服务器会话过程中,服务器分配的一块存储空间。服务器默认为浏览器在 cookie 中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid,服务器将根据 sessionid 获取出会话中存储的信息,然后确认会话的身份信息。
定义
-
Session 是服务器端存储的用户会话数据(如用户登录状态)。
-
Session ID 通常存储在 Cookie 中(如
session_id=abc123
)。 -
存储在服务器端(内存、数据库、Redis)
特点
-
依赖 Cookie:Session 机制通常需要 Cookie 存储 Session ID。
-
服务器有状态:服务器需要存储和管理 Session 数据。
-
安全性较高:Session 数据不直接暴露给客户端
流程
-
用户登录 → 服务器生成 Session 数据(如
{user_id: 123}
)并存储。 -
服务器返回
Set-Cookie: session_id=abc123
。 -
浏览器后续请求携带
Cookie: session_id=abc123
。 -
服务器根据
session_id
查找 Session 数据,验证用户身份
问题
-
扩展性差:服务器需要存储所有 Session,不适合分布式系统。
-
CSRF 攻击风险:如果 Session ID 被窃取,攻击者可伪造请求
3. Token(令牌,如 JWT)
定义
-
Token 是一种无状态的身份验证机制,通常采用 JWT(JSON Web Token) 格式。
-
存储在客户端(LocalStorage、Cookie 或内存)。
-
服务器不存储 Token,仅验证其有效性。
特点
-
无状态(Stateless):服务器不需要存储 Token,适合微服务架构。
-
可自包含:JWT 的
Payload
可存储用户信息(如{user_id: 123}
)。 -
可跨域使用:适合 API 和移动端认证。
流程
-
用户登录 → 服务器生成 Token(如 JWT)并返回。
-
客户端存储 Token(LocalStorage 或 Cookie)。
-
后续请求在
Authorization: Bearer <token>
头中携带 Token。 -
服务器验证 Token 签名,解析用户信息。
Token 的常见形式
-
JWT(JSON Web Token):
Header.Payload.Signature
结构,可自验证。 -
OAuth2 Token:用于第三方授权(如 Google/Facebook 登录)。
-
API Key:简单的静态 Token(如
api_key=xyz
)。
优点
-
适合分布式系统:无需服务器存储 Session。
-
可跨域/跨服务使用:适合微服务和移动端。
-
减少数据库查询:JWT 可自解析,无需查库。
缺点
-
Token 无法主动失效:除非使用黑名单机制(如 Redis)。
-
LocalStorage 存储有 XSS 风险:建议用
HttpOnly Cookie
存储
3. Session 和 Cookie 的区别
存储空间:单个 cookie 所保存的数据不能超过 4k,许多浏览器都会限制一个站点最多能保存的 cookie 数(一般是 20),但是 session 没有该限制;
占用服务器资源:session 一定时间保存在服务器上,当访问增多时,占用服务器性能,考虑到服务器性能方面,应当使用 cookie;
存储位置与安全性:cookie 数据放在客户端,容易被盗用,安全性较差,session 数据放在服务器上,安全性相对较高;
生命周期也有差异:cookie可以设置过期时间,长期有效;session一般依赖于会话,浏览器关闭或者会话超时就失效了
三者的核心区别
特性 | Cookie | Session | Token(如 JWT) |
---|---|---|---|
存储位置 | 浏览器 | 服务器(如 Redis) | 客户端(LocalStorage/Cookie) |
是否依赖 HTTP | 是(自动携带) | 是(依赖 Cookie) | 否(可手动携带) |
服务器状态 | 无状态 | 有状态 | 无状态 |
安全性 | 有 CSRF 风险 | 依赖 Session ID 安全性 | 需防 XSS/Token 泄露 |
扩展性 | 适合简单场景 | 不适合分布式系统 | 适合微服务/跨域 |
过期控制 | 可设置 Expires | 服务器控制 | Token 自带过期时间 |
典型用途 | 会话管理、用户偏好 | 传统 Web 登录 | API 认证、移动端 |
简单版本:
26.分布式的概念
分布式系统是通过将任务和数据分散到多个计算机上协同工作,来实现更高效、更可靠的服务
26. TCP 连接为什么不是 2 次,而是 3 次?
-
网络延迟导致混乱:如果客户端发的连接请求(
SYN
)卡在网络里,超时后客户端重发新的SYN
,但旧的SYN
之后突然到达服务器,服务器会误以为是新连接,直接建立并等待通信,但客户端根本不知道这个旧请求,导致服务器白白浪费资源。 -
服务器不确定客户端是否在线:如果服务器回应(
SYN-ACK
)后,客户端没收到,服务器以为连接已建立,但客户端根本没准备好,之后发的数据全丢
27. 发出 4 次挥手的确认报文后为什么要等 2MSL 的时间才能释放 TCP 连接?
同样是出于考虑丢包问题,若第四次挥手的报文丢失,服务器未确认 Ack 报文就会重发第三次挥手的报文,若报文一来一去的最常时间就是 2 MSL,所以需要等这么长时间来确认服务端确实已经收到
-
MSL(Maximum Segment Lifetime,最大报文段生存时间)是指一个 TCP 报文段在网络中存活的最长时间。
-
MSL 的具体值取决于实现,通常为 30 秒到 2 分钟。在 Linux 系统中,默认的 MSL 是 60 秒
28.什么是幂等
幂等是指对同一个操作重复执行多次锁产生的结果和执行一次产生的结果相同
测试幂等性的方法是重复执行操作,观察结果和系统状态是否一致
29. 为什么https需要ca证书
1. 因为http是明文传输
2. http在传输的数据在传输过程中容易遭到篡改
3.http无法验证网站的身份
HTTPS 需要 CA (证书颁发机构) 证书的核心原因是为了解决身份认证和安全密钥交换问题,确保通信双方的可信性和数据的机密性
实际的通信过程:
-
网站提供证书:服务器将CA签名的证书发给浏览器
-
浏览器验证:
-
是否受信任CA签发(查看"签发机构")
-
证书是否在有效期内
-
域名是否匹配(比如访问
bank.com
却收到hacker.com
的证书)
-
-
建立安全连接:验证通过后,用证书中的公钥加密通信
HTTPS的数据传输过程可以简单概括为:
建立TCP连接:客户端和服务器之间通过TCP建立连接。
SSL/TLS握手:客户端和服务器之间进行SSL/TLS握手,协商加密算法、生成密钥等操作,确保双方能够安全地进行通信。
安全数据传输:经过SSL/TLS握手成功后,客户端和服务器之间的数据传输就变成了加密的,保证了数据的安全性。
终止连接:数据传输完成后,TCP连接被终止。
30.如何排查“网络不可达”问题?
-
Ping测试:检查IP是否可达(
ping 8.8.8.8
)。 -
Telnet/NC:检查端口是否开放(
telnet example.com 80
)。 -
Traceroute:定位网络断点(
tracert example.com
)。 -
抓包分析:用Wireshark分析TCP握手是否成功
31.如何测试API的网络超时?
-
工具模拟:
-
Postman:设置请求超时时间。
-
Python:
requests.get(url, timeout=3)
。
-
-
场景覆盖:
-
弱网测试(Chrome DevTools模拟慢速网络)。
-
服务端未响应时客户端是否正确处理(如提示“网络超时”)
-
32. 访问网页速度慢可能是哪些原因?
1. 检查本地网络,查看网络带宽被占用
2. 服务器网络慢,可以用过ping命令查看服务器网络,服务器处理逻辑比较复杂
3.查看网站本身的设计,网页上传了包含了比较大的图片
deepseek 上获取测试人员的常问网络知识
序号 | 问题 | 答案 |
---|---|---|
10 | 什么是负载均衡? | 负载均衡是将网络流量分配到多个服务器上,以提高系统性能和可靠性。 |