高骞网络基础篇的核心在于掌握TCP/IP协议栈与HTTP交互逻辑,这是构建稳定Web应用的地基。
很多初学者在接触网络编程时,容易陷入“调通接口就万事大吉”的误区,这种认知偏差导致在排查线上故障时,面对丢包、延迟或连接重置束手无策,网络并非黑盒,而是一套严密的逻辑体系,理解数据如何在物理线路、链路层、网络层、传输层和应用层之间流转,是区分初级开发者与资深工程师的分水岭。
网络分层模型:从物理信号到应用数据
理解网络的基础,首先要拆解OSI七层模型或更实用的TCP/IP四层模型,不要死记硬背,要结合数据封包的过程来理解。
数据是如何“打包”旅行的
当你发送一个HTTP请求时,数据并不是直接变成比特流发送的,它经历了一系列的封装过程。
应用层:数据的语义
这是开发者最熟悉的层面,HTTP、HTTPS、FTP、SSH等协议定义了我们如何交换数据,浏览器与服务器之间的对话,遵循的是HTTP/1.1或HTTP/2规范。
传输层:端到端的可靠性
这一层负责将应用层的数据段可靠地传输到目标主机,核心协议是TCP和UDP。
TCP(传输控制协议):面向连接,提供可靠传输,它通过三次握手建立连接,通过序列号确认数据完整性,通过滑动窗口控制流量。
UDP(用户数据报协议):无连接,不可靠但速度快,适用于视频流、在线游戏等对实时性要求高、允许少量丢包的场景。
网络层:路由与寻址
IP协议位于此层,它负责给每台设备分配唯一的IP地址,并决定数据包从源到目的地的最佳路径,路由器工作在这一层,根据IP头部信息进行转发。
链路层与物理层:最后一公里
MAC地址在此层起作用,负责同一局域网内的设备通信,物理层则将电信号或光信号转换为比特流。
业内专家指出,理解分层模型有助于快速定位故障,如果Ping不通,问题可能在网络层或以下;如果HTTP返回404,问题在应用层。
核心协议深度解析:TCP与HTTP
在实际开发中,TCP和HTTP是最常打交道的两个协议,深入理解它们的机制,能解决80%的网络相关问题。
TCP三次握手与四次挥手
TCP连接的建立和断开是网络编程的基础。


-
三次握手:
- 客户端发送SYN包,进入SYN_SENT状态。
- 服务器回复SYN+ACK包,进入SYN_RCVD状态。
- 客户端发送ACK包,连接建立,进入ESTABLISHED状态。
为什么要三次?为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
-
四次挥手:
- 客户端发送FIN包,进入FIN_WAIT_1状态。
- 服务器回复ACK包,进入CLOSE_WAIT状态,此时客户端到服务器的连接关闭,但服务器到客户端的连接仍可能保持。
- 服务器发送FIN+ACK包,进入LAST_ACK状态。
- 客户端回复ACK包,进入TIME_WAIT状态,等待2MSL后关闭,服务器收到ACK后立即关闭。
TIME_WAIT状态的存在是为了确保最后一个ACK能到达服务器,并防止旧连接的数据包干扰新连接。
HTTP状态码与请求方法
HTTP是无状态的协议,每次请求都是独立的。
- GET:获取资源,参数在URL中,不安全,有长度限制。
- POST:提交数据,参数在Body中,相对安全,无长度限制。
- PUT:更新资源,全量替换。
- DELETE:删除资源。
常见的状态码:
- 200 OK:请求成功。
- 301/302:重定向。
- 401 Unauthorized:未授权。
- 403 Forbidden:禁止访问。
- 404 Not Found:资源不存在。
- 500 Internal Server Error:服务器内部错误。
性能优化与故障排查实战
理论最终要服务于实践,在真实环境中,我们更关心如何让网络更快、更稳。
DNS解析过程详解
当你输入域名时,浏览器不会直接找到服务器,而是先进行DNS解析。
- 浏览器缓存:检查本地是否有IP记录。
- 系统缓存:检查操作系统缓存。
- 路由器缓存:检查本地路由器缓存。
- ISP DNS:查询互联网服务提供商的DNS服务器。
- 根域名服务器:查询顶级域(如.com)。
- 权威域名服务器:查询具体域名的IP。
这个过程通常很快,但如果DNS服务器响应慢,会导致页面加载延迟,使用


nslookup或dig命令可以手动测试DNS解析时间。
HTTPS与SSL/TLS握手
HTTP明文传输不安全,HTTPS通过SSL/TLS加密。
- 非对称加密:用于交换密钥,公钥加密,私钥解密。
- 对称加密:用于传输数据,效率高,但密钥分发困难。
握手过程大致如下:
- 客户端发送支持的加密套件列表。
- 服务器选择加密套件,并发送证书(包含公钥)。
- 客户端验证证书合法性(信任链、有效期等)。
- 客户端生成预主密钥,用服务器公钥加密后发送。
- 服务器用私钥解密,得到预主密钥。
- 双方根据预主密钥生成会话密钥,用于后续对称加密通信。
证书验证是关键环节,如果证书过期、域名不匹配或信任链断裂,浏览器会拦截请求。
常见网络问题与解决方案
在实际工作中,你会遇到各种网络问题,以下是几种典型场景及应对策略。
CORS跨域问题
浏览器出于安全考虑,禁止跨域请求,解决CORS问题通常有两种方式:
- 后端配置:在响应头中添加
Access-Control-Allow-Origin。 - 代理转发:开发环境下使用Webpack或Vite代理,将请求转发到后端。
连接超时与重试机制
网络是不稳定的,设置合理的超时时间和重试机制至关重要。
- 超时设置:连接超时(Connect Timeout)和读取超时(Read Timeout)应分开设置。
- 重试策略:使用指数退避算法,避免重试风暴。
负载均衡与健康检查
高并发场景下,单台服务器无法承受压力,负载均衡器(如Nginx、LVS)将流量分发到多台后端服务器。
- 轮询:平均分配。
- 加权轮询:根据服务器性能分配权重。
- 最少连接:分配给当前连接数最少的服务器。
健康检查确保只有健康的服务器接收流量,如果某台服务器响应超时,负载均衡器会将其剔除。
高骞网络基础篇:关键知识点总结


为了帮助你更好地记忆和应用,以下是核心知识点的对比总结。
| 协议/概念 | 层级 | 主要功能 | 特点 |
|---|---|---|---|
| TCP | 传输层 | 可靠传输 | 面向连接,流量控制,拥塞控制 |
| UDP | 传输层 | 快速传输 | 无连接,不可靠,低延迟 |
| IP | 网络层 | 路由寻址 | 无连接,尽力而为 |
| HTTP | 应用层 | 数据交换 | 无状态,基于请求-响应 |
| HTTPS | 应用层 | 安全数据交换 | 基于TLS/SSL加密 |
行业共识认为,掌握这些基础知识,能让你在面对复杂网络问题时,具备独立的分析和解决能力。
高骞网络基础篇常见问题解答
为什么TCP连接需要三次握手而不是两次?
两次握手无法防止已失效的连接请求报文段突然又传送到了服务端,从而导致服务端错误地建立连接,三次握手确保了双方都确认了发送和接收能力正常,并且序列号同步。
HTTP和HTTPS的主要区别是什么?
HTTP是明文传输,HTTPS是加密传输,HTTPS使用SSL/TLS协议,提供数据加密、身份验证和数据完整性保护,HTTPS默认端口是443,HTTP是80。
如何排查DNS解析慢的问题?
可以使用nslookup或dig命令测试DNS解析时间,如果解析慢,可以尝试更换公共DNS服务器,如Google的8.8.8.8或Cloudflare的1.1.1.1,检查本地hosts文件是否有冲突记录,以及路由器DNS设置是否正确。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/292611.html