插件窝 干货文章 Linux协议栈中常见的网络协议及功能介绍

Linux协议栈中常见的网络协议及功能介绍

功能 协议 bash 工具 969    来源:    2025-04-08

Linux 网络协议栈是一个分层的体系结构,遵循 OSI 模型和 TCP/IP 模型。以下是最常见的网络协议及其功能详解,按分层结构组织:


1. 数据链路层(L2)

Ethernet (IEEE 802.3)

  • 功能:物理寻址(MAC 地址)、帧封装、CRC 校验。
  • Linux 实现:通过网卡驱动(如 igbe1000e)和内核的 net/core/ethernet.c

ARP (Address Resolution Protocol)

  • 功能:将 IP 地址解析为 MAC 地址。
  • 关键命令bash arp -a # 查看ARP缓存 ip neigh # 现代替代命令

PPP/PPPoE

  • 功能:拨号协议(常见于宽带连接)。
  • 工具pppdrp-pppoe

2. 网络层(L3)

IPv4/IPv6

  • 功能:逻辑寻址、路由、分片。
  • 关键配置bash ip addr show # 查看IP地址 sysctl net.ipv4.* # 调整IPv4参数

ICMP (Internet Control Message Protocol)

  • 功能:网络状态诊断(如 pingtraceroute)。
  • 工具bash ping -c 4 example.com traceroute -I example.com

路由协议

  • 静态路由:手动配置(ip route add)。
  • 动态路由:通过协议如 OSPF(Quagga/FRRouting)、BGP(Bird)。

3. 传输层(L4)

TCP (Transmission Control Protocol)

  • 功能:可靠传输、流量控制(滑动窗口)、拥塞控制(如 CUBIC 算法)。
  • 关键工具bash ss -tulnp # 查看TCP/UDP连接 tcpdump -i eth0 'tcp port 80'

UDP (User Datagram Protocol)

  • 功能:无连接、低延迟传输(如 DNS、视频流)。
  • 示例bash nc -u <host> <port> # UDP测试

SCTP (Stream Control Transmission Protocol)

  • 功能:多路径传输(电信领域常用)。
  • Linux 支持:需加载 sctp 内核模块。

4. 应用层(L5-L7)

HTTP/HTTPS

  • 功能:Web 通信(基于 TCP 80/443)。
  • 工具curlwgetnginx/apache

DNS (Domain Name System)

  • 功能:域名解析(UDP/TCP 53)。
  • 工具bash dig example.com systemd-resolve --status

DHCP (Dynamic Host Configuration Protocol)

  • 功能:自动分配 IP 地址。
  • 服务端isc-dhcp-server;客户端:dhclient

FTP/SSH/SNMP

  • FTP:文件传输(vsftpd)。
  • SSH:加密远程登录(OpenSSH)。
  • SNMP:网络监控(net-snmp)。

5. 其他关键协议

VLAN (IEEE 802.1Q)

  • 功能:虚拟局域网隔离。
  • 配置bash ip link add link eth0 name eth0.100 type vlan id 100

IPSec/VPN

  • 功能:加密隧道(如 OpenVPNStrongSwan)。
  • 工具bash ip xfrm state # 查看IPSec状态

QUIC (HTTP/3)

  • 功能:基于 UDP 的现代 Web 协议(由 libp2p 实现)。

协议栈调优工具

  1. ethtool:调整网卡参数(如 offload)。 bash ethtool -k eth0 | grep tx-checksumming
  2. sysctl:内核参数优化(如 TCP 窗口大小)。 bash sysctl -w net.ipv4.tcp_window_scaling=1
  3. bpfilter:高性能包过滤(替代 iptables)。

常见问题排查

  • 连接问题:用 ss/netstat 检查端口状态。
  • 丢包ethtool -S eth0 查看统计。
  • 延迟tcpping 测量 TCP 延迟。
  • MTU 问题ping -s 1472 -M do example.com 测试。

通过理解这些协议的分层协作,可以高效诊断网络问题(如 MTU 不匹配、ARP 欺骗)或优化性能(如调整 TCP 缓冲区)。