网络基础(持续更新中)
网络基础涉及计算机网络的基本概念和组件,包括:
1、OSI模型:将网络通信分为7层,从物理层到应用层。
物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表示层 → 应用层。
实际中更常用 “TCP/IP 四层模型”:网络接口层 → 网络层(IP)→ 传输层(TCP/UDP)→ 应用层(HTTP/FTP/DNS)。
2、IP地址:用于标识网络中的设备
IPv4(32位,如 `192.168.1.1`)和 IPv6(128位,如 `2001:0db8::1`)。
3、MAC地址:硬件地址,用于标识网络接口。
硬件唯一标识(如 `00:1A:2B:3C:4D:5E`),用于局域网内设备通信。
4、子网掩码:用于划分IP地址的网络部分和主机部分。
通过子网掩码(如 `255.255.255.0`)将 IP 地址划分为网络号和主机号。
5、路由器:连接不同网络并转发数据包。跨网络转发数据包,基于 IP 地址。
6、交换机:在局域网内基于 MAC 地址转发数据帧。
7、NAT(网络地址转换):将私有IP转换为公有IP,解决IPv4短缺问题。
8、DNS(域名系统): 将域名(如 `www.example.com`)解析为 IP 地址,支持分布式查询。
HTTP/HTTPS协议
1、HTTP(超文本传输协议):
- 用于传输web内容。
- 无状态,每个请求独立,需 Cookie/Session 维持状态。
- 明文传输:数据未加密,易被窃听。
- 请求-响应模型:客户端发起请求,服务器返回响应。
- 默认端口80。
- 请求方式:GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。
- 响应状态码:200(成功)、404(未找到)、500(服务器错误)等。 2xx(成功):`200 OK`、`201 Created`。 3xx(重定向):`301 Moved Permanently`、`304 Not Modified`。 4xx(客户端错误):`404 Not Found`、`403 Forbidden`。 5xx(服务端错误):`500 Internal Server Error`。
2、HTTPS(安全超文本传输协议):
核心机制:
- 加密传输(通过 SSL/TLS 协议加密数据(如 AES、RSA)。)
- 身份验证:数字证书(CA颁发)验证服务器身份。
- 完整性保护:使用哈希算法(如SHA-256)防止数据篡改。
工作流程:
- TCP三次握手建立连接。
- TLS握手协商加密算法和交换密钥。
- 加密传输HTTP数据。
性能优化:
会话复用(Session Resumption)减少TLS握手开销。
- 默认端口443。
WebSocket
1、核心特性:
- 全双工通信协议,允许客户端和服务器实时通信。
- 低延迟:基于TCP,避免HTTP的请求-响应模式。
- 通过HTTP升级建立连接,之后使用WebSocket协议。
- 长连接:一次握手后保持连接,适用于实时应用,如聊天、在线游戏。
- 优点:减少开销,支持双向通信。
2、协议升级:
通过HTTP的Upgrade头切换协议:
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
服务器返回 101 Switching Protocols确认升级。
3、与HTTP对比:
特性 | HTTP | WebSocket |
通信模式 | 单向(请求-响应) | 双向 |
连接生命周期 | 短连接(默认) | 长连接 |
头部开销 | 每次请求携带头部 | 初始握手后无头部 |
TCP/IP协议
1、TCP/IP协议族:
- 包括TCP、IP、UDP、ICMP等协议。
- 分为四层:网络接口层,网络层,传输层,应用层。
2、TCP(传输控制协议):
- 面向对象,提供可靠数据传输。
- 通过三次握手建立连接,四次挥手断开。
- 提供流量控制,拥塞控制,错误检测和重传机制。
3、IP(网络协议):
- 负责将数据包从源主机发送到目标主机。
- 无连接,不保证可靠性。
- 主要版本:IPv4和IPv6。
4、UDP(用户数据报协议):
- 无连接,不保证可靠性。
- 适用于实时应用,如视频流,在线游戏。
5、ICMP(互联网控制消息协议)
- 用于发送错误报告和诊断信息。
- 常用工具:ping和traceroute。
总结:
HTTP/HTTPS:HTTP用于web传输,HTTPS提供加密。
WebSocket:支持实时双向通信。
TCP/IP:TCP提供可靠传输,IP负责数据包路由,UDP适用于实时应用,ICMP用于网络诊断。