跳到主要内容

网络基础技术

网络是现代分布式系统的基础,掌握网络原理对于系统架构设计和故障排查至关重要。

🎯 学习目标

掌握计算机网络的核心概念、协议原理和网络安全技术,学会网络配置和故障诊断。

网络技术的重要性

分布式系统基础

  • 服务通信 - 微服务间的网络通信
  • 数据传输 - 可靠的数据传输保障
  • 负载均衡 - 流量分发和高可用设计

性能优化

  • 网络延迟 - 影响用户体验的关键因素
  • 带宽利用 - 资源的合理分配
  • 连接复用 - 提高网络效率

🌐 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技术和云网络架构设计。