计算机网络核心知识总结(面试 + 基础原理全解析)

计算机网络是后端开发必须掌握的基础知识之一。无论是 Web 开发、分布式系统还是微服务架构,都离不开网络通信。

本文将系统整理计算机网络中的核心知识,包括:

  • 网络分层模型

  • TCP / UDP

  • HTTP / HTTPS

  • Socket 与 WebSocket

  • 三次握手四次挥手

  • 常见网络面试题


一、计算机网络分层模型

计算机网络最经典的模型有两个:

模型 层数
OSI七层模型 7层
TCP/IP模型 4层

1 OSI七层模型

OSI模型是理论模型:

层级 名称 作用
第7层 应用层 为应用程序提供网络服务
第6层 表示层 数据加密、压缩
第5层 会话层 建立、管理会话
第4层 传输层 端到端通信
第3层 网络层 路由选择
第2层 数据链路层 数据帧传输
第1层 物理层 比特流传输

2 TCP/IP四层模型(实际使用)

实际互联网使用的是 TCP/IP 模型:

层级 协议
应用层 HTTP、HTTPS、FTP、DNS
传输层 TCP、UDP
网络层 IP
网络接口层 Ethernet

关系如下:

复制代码
应用层        HTTP FTP DNS
传输层        TCP UDP
网络层        IP
数据链路层    Ethernet
物理层        网线

二、TCP 与 UDP

传输层最重要的两个协议:

  • TCP

  • UDP

1 TCP(传输控制协议)

特点:

  • 面向连接

  • 可靠传输

  • 有序传输

  • 有拥塞控制

  • 有流量控制

TCP适合:

  • Web

  • 文件传输

  • 邮件

  • 数据库通信

例如:

复制代码
HTTP
HTTPS
MySQL
FTP

2 UDP(用户数据报协议)

特点:

  • 无连接

  • 不可靠

  • 传输快

  • 不保证顺序

适合:

  • 视频直播

  • 语音通话

  • DNS

例如:

复制代码
DNS
视频直播
在线游戏

3 TCP vs UDP

特性 TCP UDP
是否连接 面向连接 无连接
可靠性 可靠 不可靠
速度 较慢
顺序 保证 不保证
应用 HTTP DNS

三、TCP 三次握手

TCP 建立连接需要 三次握手

过程:

复制代码
客户端            服务器

SYN  ----------->

      <-----------  SYN + ACK

ACK  ----------->

步骤:

第一次握手

客户端发送:

复制代码
SYN = 1
seq = x

表示请求建立连接。


第二次握手

服务器返回:

复制代码
SYN = 1
ACK = 1
seq = y
ack = x+1

表示:

  • 收到请求

  • 同意连接


第三次握手

客户端发送:

复制代码
ACK = 1
ack = y+1

连接建立成功。


为什么是三次?

原因:

防止 历史连接请求导致错误连接

如果只有两次:

旧的请求可能被服务器误认为新的连接。


四、TCP 四次挥手

TCP断开连接需要 四次挥手

复制代码
客户端              服务器

FIN ------------>

      <------------ ACK

      <------------ FIN

ACK ------------>

第一次挥手

客户端发送:

复制代码
FIN

表示我没有数据发送了。


第二次挥手

服务器回复:

复制代码
ACK

表示收到。


第三次挥手

服务器发送:

复制代码
FIN

表示服务器也没有数据发送。


第四次挥手

客户端回复:

复制代码
ACK

连接关闭。


五、HTTP 协议

HTTP 是 应用层协议

用于:

复制代码
浏览器 <-> 服务器

特点:

  • 无连接(HTTP1.0)

  • 无状态

  • 基于 TCP


HTTP请求结构

HTTP请求包含:

复制代码
请求行
请求头
请求体

示例:

复制代码
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Chrome

HTTP响应结构

复制代码
状态行
响应头
响应体

示例:

复制代码
HTTP/1.1 200 OK
Content-Type: text/html

六、HTTP 常见状态码

状态码 含义
200 请求成功
301 永久重定向
302 临时重定向
400 请求错误
401 未认证
403 禁止访问
404 资源不存在
500 服务器错误
502 网关错误
503 服务不可用

七、HTTP 与 HTTPS

HTTP:

复制代码
明文传输
不安全

HTTPS:

复制代码
HTTP + SSL/TLS
加密传输

HTTPS主要解决:

  • 数据加密

  • 身份认证

  • 数据完整性

HTTPS流程:

复制代码
客户端请求

↓

服务器返回证书

↓

客户端验证证书

↓

协商对称密钥

↓

加密通信

八、Socket 原理

Socket 是:

复制代码
网络通信的抽象接口

通信流程:

复制代码
客户端

Socket.connect()

↓

服务器

Socket.listen()
Socket.accept()

简单流程:

复制代码
客户端发送数据

↓

服务器接收数据

↓

服务器返回响应

Java示例:

客户端:

java 复制代码
Socket socket = new Socket("127.0.0.1",8080);
OutputStream os = socket.getOutputStream();
os.write("hello".getBytes());

服务器:

java 复制代码
ServerSocket server = new ServerSocket(8080);
Socket socket = server.accept();
InputStream is = socket.getInputStream();

九、WebSocket

HTTP 是:

复制代码
请求 -> 响应

而 WebSocket 是:

复制代码
长连接
双向通信

适用于:

  • 聊天系统

  • 实时消息

  • 实时数据

流程:

复制代码
HTTP握手

↓

升级协议

↓

WebSocket连接

优点:

  • 服务器可以主动推送数据

  • 实时性高

  • 减少HTTP请求


十、常见计算机网络面试题

1 TCP为什么需要三次握手?

防止历史连接请求造成错误连接。


2 TCP为什么四次挥手?

因为:

复制代码
发送数据
接收数据

是两个独立过程。


3 HTTP 是无状态的是什么意思?

服务器不会保存客户端的状态。

解决方案:

复制代码
Cookie
Session
Token

4 GET 和 POST 的区别

对比 GET POST
参数 URL 请求体
安全 较低 较高
长度 有限制 理论无限
缓存 可以 不可以

十一、总结

计算机网络核心知识:

复制代码
网络分层模型
TCP / UDP
三次握手
四次挥手
HTTP / HTTPS
Socket
WebSocket

对于后端开发来说,理解这些原理非常重要。

因为:

  • Web 请求本质是 HTTP

  • 微服务通信依赖 TCP

  • 实时系统依赖 WebSocket

掌握计算机网络,能够更好地理解整个互联网系统的运行机制。

相关推荐
程序员爱钓鱼2 小时前
Go静态资源嵌入方案: embed包深度解析
后端·面试·go
热点速递2 小时前
AI智能面试系统深度解析:重构面试效率与评估质量的关键路径!
人工智能·面试·重构·业界资讯
木斯佳2 小时前
前端八股文面经大全:拓竹科技前端一面(2026-03-15)·面经深度解析
前端·css·面试·vue
23.2 小时前
【Java】Arrays工具类——数组操作终极指南
java·算法·面试
小糖学代码2 小时前
计算机网络理论:1.概述
网络·计算机网络·智能路由器
TracyCoder1233 小时前
LeetCode Hot100(69/100)—— 139. 单词拆分
算法·leetcode·职场和发展
历程里程碑3 小时前
Linux 38 网络协议:从独立主机到全球互通
java·linux·运维·服务器·网络·c++·职场和发展
发现一只大呆瓜10 小时前
SSO单点登录:从同域到跨域实战
前端·javascript·面试
发现一只大呆瓜10 小时前
告别登录中断:前端双 Token无感刷新
前端·javascript·面试