网络基础技术
网络是现代分布式系统的基础,掌握网络原理对于系统架构设计和故障排查至关重要。
🎯 学习目标
掌握计算机网络的核心概念、协议原理和网络安全技术,学会网络配置和故障诊断。
网络技术的重要性
分布式系统基础
- 服务通信 - 微服务间的网络通信
- 数据传输 - 可靠的数据传输保障
- 负载均衡 - 流量分发和高可用设计
性能优化
- 网络延迟 - 影响用户体验的关键因素
- 带宽利用 - 资源的合理分配
- 连接复用 - 提高网络效率
🌐 OSI七层模型
协议栈结构
应用层 (Application) - HTTP, HTTPS, FTP, DNS
表示层 (Presentation) - SSL/TLS, 数据加密
会话层 (Session) - 会话管理
传输层 (Transport) - TCP, UDP
网络层 (Network) - IP, ICMP, ARP
数据链路层 (Data Link) - 以太网, WiFi
物理层 (Physical) - 电缆, 光纤, 无线
TCP/IP协议族
# 查看网络连接
netstat -tuln
# 查看路由表
route -n
# 测试网络连通性
ping google.com
# 追踪路由路径
traceroute google.com
🔧 网络配置管理
Linux网络配置
# 查看网络接口
ip addr show
# 配置静态IP
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
# 配置DNS
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
# 防火墙配置
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
网络诊断工具
# 端口扫描
nmap -p 1-1000 192.168.1.1
# 网络抓包
tcpdump -i eth0 port 80
# 带宽测试
iperf3 -s # 服务端
iperf3 -c server_ip # 客户端
# DNS查询
dig google.com
nslookup google.com
🔒 网络安全
防火墙配置
# UFW防火墙管理
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw deny 3306 # 拒绝数据库端口
# 查看防火墙状态
sudo ufw status verbose
SSL/TLS证书
# 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
# 查看证书信息
openssl x509 -in cert.pem -text -noout
# 测试SSL连接
openssl s_client -connect google.com:443
🚀 高级网络技术
负载均衡
# Nginx负载均衡配置
upstream backend {
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080 weight=2;
server 192.168.1.12:8080 weight=1;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
网络监控
# 实时网络流量监控
iftop -i eth0
# 网络连接监控
ss -tuln
# 系统网络统计
cat /proc/net/dev
# 网络性能分析
sar -n DEV 1 5
📊 网络协议分析
HTTP/HTTPS
# HTTP请求测试
curl -I http://example.com
# HTTPS证书检查
curl -vI https://example.com
# HTTP/2测试
curl --http2 -I https://example.com
WebSocket
// WebSocket客户端示例
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = function() {
console.log('WebSocket连接已建立');
ws.send('Hello Server');
};
ws.onmessage = function(event) {
console.log('收到消息:', event.data);
};
ws.onclose = function() {
console.log('WebSocket连接已关闭');
};
下一步: 深入学习网络虚拟化、SDN技术和云网络架构设计。