计算机网络基础扫盲
这篇文章主要带大家来了解一下,在学习,计算机网络前,我们需要了解的一些概念,算是知识扫盲,不需要全部记住,只需要有印象即可。比如当你看到“负载均衡“这个关键字的时候,你会有印象说:“我好像在哪见过来着“,这样就可以了,当你后续深入学习时,你就会有更深的理解并且记住。
一、网络基础概念
计算机网络: 多台计算机或设备通过通信线路连接起来,实现数据传输和资源共享的系统
主机: 网络中的终端设备,比如电脑、手机、服务器
网络主机: 连接了网络、能够对外提供或使用网络服务的计算设备
服务器: 提供服务的计算机,比如网站服务器、数据库服务器
客户端: 向服务器请求服务的设备或程序,比如浏览器网页、App
网络协议: 网络通信双方共同遵守的规则
TCP/IP: 互联网最核心的协议体系,比如 TCP、IP、UDP、HTTP 等协议
二、网络分层模型
OSI 七层模型: 理论上的网络分层模型,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP 四层模型: 实际上更常用的网络分层模型,包括网络接口层、网际层(网络层)、传输层、应用层
物理层: 负责比特流的传输,比如网线
数据链路层: 负责同一局域网内设备之间的数据传输,比如以太网、MAC 地址
网络层: 负责不同网络之间的数据转发,比如 IP 协议
传输层: 负责端到端的数据传输,比如 TCP、UDP
应用层: 面向用户程序提供网络服务,比如 HTTP、DNS、FTP
三、地址与标识
IP 地址: 用于在网络中标识设备或网络接口的地址
IPv4: 第 4 版互联网协议地址,用来给网络中的设备分配地址,比如 192.168.1.1
IPv6: 第 6 版互联网协议地址,是为了解决 IPv4 地址不够用的,比如 2001:0db8:85a3::8a2e:0370:7334
公网 IP: 可以在互联网中直接访问的 IP 地址
私网 IP: 局域网内部使用的 IP 地址,比如公司内网
子网掩码: 用来区分 IP 地址中的网络部分和主机部分,判断一个 IP 地址属于哪个网络
网段: 同一网络范围内的一组 IP 地址
网关: 连接不同网络的出口设备,通常是路由器
默认网关: 主机访问外部网络时默认发送数据的出口
MAC 地址: 网卡的硬件地址,用于局域网内识别设备
端口号: 可以在同一台网络主机上,唯一标识一个通信进程
Socket: 操作系统提供的一种网络通信接口,用来让两个程序通过网络收发数据
回环地址: 本机地址,通常为 127.0.0.1
localhost: 表示本机,通常为 127.0.0.1
0.0.0.0: 在服务监听时表示绑定本机所有网卡地址
四、网络类型与拓扑结构
局域网 LAN: 小范围网络,比如公司内网,校园网
广域网 WAN: 大范围网络,比如互联网
城域网 MAN: 覆盖城市范围的网络
WLAN: 无线局域网,通常指 Wi-Fi
Wi-Fi: 常见无线网络技术,用于设备无线接入局域网
以太网: 最常见的有线局域网技术
网络拓扑: 网络设备之间的连接结构,比如星型、总线型、环型
星型拓扑: 所有设备连接到中心设备,比如交换机
总线型拓扑: 所有设备共享同一条通信线路
环型拓扑: 设备连接成环状结构
五、网络设备
路由器: 连接不同网络并转发数据包的设备
交换机: 连接局域网设备,并根据 MAC 地址转发数据帧的设备
集线器: 早期网络设备,会把数据广播给所有端口,效率低
网卡: 设备连接网络的硬件接口
防火墙: 根据规则允许或阻止网络流量的安全设备或软件
代理服务器: 代替客户端访问目标服务器的中间服务器
六、数据传输单位与封装
数据包: 网络传输中的一小块数据
报文: 某一协议层传输的数据内容,通常包含头部和数据部分
帧: 数据链路层的数据单位
分组: 网络层的数据单位,常指 IP 数据包
段: 传输层的数据单位,常指 TCP 段
封装: 上层数据传到下层时,逐层添加协议头部的过程,有些层还会添加尾部
解封装: 接收方收到数据后,逐层去掉协议头部的过程,有些层还会去掉尾部
MTU: 最大传输单元,表示一次能传输的最大数据包大小
七、网络通信与转发相关概念
路由: 根据目标 IP 地址和路由表,选择数据包下一跳或转发接口的过程
ARP: 地址解析协议,在 IPv4 局域网通过 IP 地址查询 MAC 地址
ICMP: 网络控制报文协议,常用于错误报告和网络诊断,比如 ping
TTL: Time To Live,数据包的生存时间,防止数据包在网络中无限循环
广播: 向同一网络中的所有设备发送数据
单播: 一对一发送数据
组播: 一对多发送数据,只发给指定组成员
任播: 多个节点共享一个地址,数据发给距离较近或最合适的节点
VLAN: 虚拟局域网,把一个物理网络划分成多个逻辑网络
八、传输层协议与机制
TCP: 面向连接、可靠传输的协议,适合网页、文件传输等场景
UDP: 无连接、不保证可靠性的协议,适合直播、游戏、语音通话等场景
三次握手: TCP 建立连接的过程,用来确认双方收发能力正常
四次挥手: TCP 断开连接的过程,用来可靠关闭连接
ACK: 确认报文,表示数据已收到
SYN: TCP 建立连接时使用的同步标志
FIN: TCP 关闭连接时使用的结束标志
RST: TCP 重置连接的标志
拥塞控制: TCP 根据网络拥堵情况调整发送速度的机制
流量控制: TCP 根据接收方处理能力控制发送速度的机制
滑动窗口: TCP 中用于控制发送和接收数据量的机制
粘包: TCP传输中,发送方多次发送的数据,被接收方一次读取,导致多个应用层消息“粘”在一起
拆包: TCP 传输中,发送方一次发送的数据,被接收方多次读取,导致应用层消息被拆分成多个
半连接队列: TCP 三次握手还没有完成时,服务端用于保存连接状态的队列
全连接队列: TCP 三次握手完成后,服务端用于保存等待应用程序 accept 的连接队列
九、常见应用层协议
DNS: 域名解析系统,把域名转换成 IP 地址
HTTP: 超文本传输协议,主要用于浏览网页
HTTPS: 加密版 HTTP,使用 TLS/SSL 保证数据安全
FTP: 文件传输协议
SFTP: 基于 SSH 的安全文件传输协议
SMTP: 发送邮件的协议
POP3: 接收邮件的协议,通常把邮件下载到本地
IMAP: 接收邮件的协议,支持邮件在服务器和多个客户端之间同步
WebSocket: 支持客户端和服务器之间双向实时通信的协议
SSH: 安全远程登录协议,常用于远程管理服务器。
十、HTTP 与浏览器相关概念
域名: 便于人记忆的网站地址,例如 raymq.com
URL: 统一资源定位符,表示网络资源的完整地址
HTTP 请求: 客户端发给服务器的请求消息
HTTP 响应: 服务器返回给客户端的响应消息
请求方法: HTTP 请求的操作类型,比如 GET、POST、PUT、DELETE
状态码: HTTP 响应结果编号,比如 200、404、500
200:表示请求成功
301:表示永久重定向
302:表示临时重定向
400:表示客户端请求错误
401:表示未认证
403:表示没有权限访问
404:表示资源不存在
500:表示服务器内部错误
Cookie: 服务器存储在客户端的一小段数据,用于保存登录标识
Session: 服务器端保存的用户会话信息
Token: 用于身份认证的令牌
跨域: 网页请求的目标地址与当前页面的协议、域名或端口不同
CORS: 服务器通过响应头声明允许哪些跨域请求的机制
同源策略: 浏览器安全策略,限制网页随意访问不同源的资源,要求协议、域名、端口相同才算同源
长连接: 连接建立后保持一段时间,便于复用
短连接: 每次请求都新建连接,请求完成后关闭
Keep-Alive: HTTP 中用于保持连接复用的机制
十一、代理、负载均衡与内容分发
正向代理: 客户端通过代理访问外部服务器
反向代理: 位于服务器前面的代理服务器,替后端服务器接收客户端请求,并把请求转发给后端服务
负载均衡: 把请求分发到多台服务器,避免单台服务器压力过大
CDN: 内容分发网络,把资源缓存到离用户更近的节点
DNS 轮询: 通过 DNS 返回多个 IP 实现简单的负载均衡
Nginx: 常用的 Web 服务器、反向代理服务器和负载均衡服务器
Apache: 常用的 Web 服务器
十二、NAT 与内外网访问
NAT: 网络地址转换,用于在内网地址和公网地址之间进行转换,使内网设备可以访问互联网
端口映射: 把公网端口转发到内网某台设备的指定端口
十三、网络配置与域名解析
DHCP: 自动分配 IP 地址、网关、DNS 等网络配置的协议
DNS 缓存: 缓存域名解析结果,减少重复查询
Hosts 文件: 本地手动配置域名和 IP 对应关系的文件
十四、网络性能指标
带宽: 网络链路单位时间内理论上能传输的数据量,比如云服务器的30 Mbps
吞吐量: 实际单位时间内成功传输的数据量
延迟: 数据从发送端到接收端所花费的时间
丢包: 数据包在传输过程中丢失
抖动: 网络延迟不稳定,时快时慢
QoS: 服务质量控制,用于给重要流量更高优先级
十五、网络安全
VPN: 虚拟专用网络,通过加密隧道访问远程网络,比如梯子
SSL/TLS: 用于加密网络通信的安全协议
证书: 用于证明网站身份并支持加密通信的数字文件
SYN Flood: 大量伪造 TCP 连接请求造成服务器资源耗尽的攻击
DDoS: 分布式拒绝服务攻击,通过大量请求使目标服务不可用
DNS 污染: DNS 查询结果被错误或恶意篡改
DNS 劫持: DNS 请求被拦截并返回错误地址
十六、网络诊断与工具
Ping: 使用 ICMP 测试目标主机是否可达
Traceroute: 用来查看数据到目标主机经过的路由路径
抓包: 捕获并分析网络数据包
Wireshark: 常用的图形化抓包分析工具
tcpdump: 常用的命令行抓包工具
Netstat: 查看网络连接、端口监听等信息的工具
Curl: 命令行 HTTP 请求工具
Telnet: 可用于测试端口连通性的工具
十七、常见网络故障
网关超时: 代理或网关等待后端服务器响应超时
IP 冲突: 两台设备使用了相同 IP 地址,导致网络异常
端口占用: 某个端口已经被程序使用,其他程序无法绑定
十八、后端开发中常见的网络通信概念
P2P: 点对点网络,节点之间可以直接通信
CS 架构: 客户端-服务器架构,客户端请求服务器提供服务
BS 架构: 浏览器-服务器架构,通过浏览器访问服务器应用
API: 应用程序接口,常用于客户端和服务器之间的数据交互
REST: 一种常见 Web API 设计风格
RPC: 远程过程调用,像调用本地函数一样调用远程服务
微服务: 把系统拆分成多个独立服务,每个服务通过网络通信协作
服务发现: 自动查找可用服务实例的机制
心跳机制: 定期发送检测消息,用于判断连接或服务是否存活
超时: 请求在规定时间内没有得到响应
重试: 请求失败后再次发送请求
幂等性: 多次执行同一操作,结果与执行一次相同
限流: 限制单位时间内的请求数量,防止系统过载
熔断: 当服务异常时临时停止调用,避免故障扩大
降级: 系统异常时关闭部分功能,保证核心功能可用
高可用: 系统在部分故障时仍能继续提供服务