概念与分层模型

网络的概念

网络是现代软件系统的基础(分布式系统、微服务系统、云、流媒体、物联网都离不开它)

两个常见的模型

  1. OSI七层模型:(物理、数据链路、网络、传输、会话、表示、应用),便于概念教学所以使用该分层

  2. TCP/IP(四/五层)模型:(链路/网络接口、网络/Internet、传输/Host-to-Host、应用),更贴近实际协议栈,(IP/TCP/UDP/HTTP)

对照表:
1.物理层->网线/光纤/无线
2.数据链路层->Ethernet、MAC、ARP、交换机
3.网络层->IP(IPv4/IPv6)、路由、ICMP
4.传输层->TCP/UDP、端口、流控、拥塞控制
5.应用层->DNS、HTTP、TLS、SMTP、FTP、SSH

物理层与链路层(从线缆到帧)

  • 物理层:介质(双绞线、光纤、同轴)、信号编码、带宽、噪声、衰减、抖动(jitter)

  • 链路层(数据帧):

    • MAC地址(48bit,厂商前缀+唯一接口ID);交换机根据MAC转发
    • Ethernet帧结构:目的MAC、源MAC、类型/长度、Payload、FCS(CRS)
    • ARP(地址解析协议):把IPv4地址映射到MAC(ARP请求/应答);存在ARP欺骗风险
    • 交换机vs集线器:集线器广播,交换机基于CAM表转发;交换机隔离碰撞域
    • VLAN(虚拟局域网):802.1Q标记帧,使同一物理交换机上存在多个逻辑网络
    • 生成树协议(STP):防止交换网络环境

网络层:IP、路由、子网

  • IP地址:

    • IPv4(32位),IPv6(64位)——IPv6没有广播,用邻居发现替代ARP
    • 子网掩码/CIDR:例如192.168.1.0;/n表示网络位数
      示例(子网计算):IP192.168.10.130/26->mask255.255.255.192(块大小64)->所在网段192.168.10.128/26,广播192.168.10.191,可用主机192.168.10.129-192.168.10.190
    • 私有地址段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16
  • ICMP:用于错误与误诊(ping使用ICMP Echo Request/Reply)

  • 分片:当数据包>MTU(最大传输单元)时会分片;建议使用Path MTU Discovery避免分片

  • NAT(网络地址转换)

    • SNAT/DNAT/PAT:把私有IP映射到公网IP+端口,实现地址复用(家用路由器常见)
    • NAT的副作用:对端对端可达性、某些协议(FTP、SIP)需要ALGs或穿透
  • 路由与路由表:每个路由器维护路由表(目标->下一跳、接口、metric)

路由算法与协议

  • 基本类型:

    • 距离向量(Distance Vector):如RIP。每个节点只知道到邻居的距离,通过定期交换路由表收敛;易产生环路(计数到无限)
    • 链路状态:如OSPF。每个路由器广播链路状态,网络上每个节点构建完整拓扑并运行Dijikstra求最短路径
    • 路径矢量:如BGP(自治系统之间路由),用于互联网主干,具有策略控制(不是简单的最短路径)
  • 常见协议

    • RIP(老、最大跳数15)
    • OSPF(内部网关协议,链路状态)
    • BGP(自治系统间路由,策略驱动)
  • 路由收敛、环路与预防:split horizon、poison reverse、route dampening、BGP政策等

传输层:TCP与UDP

  • 端口号:0-65535(0保留),标准服务端口如HTTP/80、HTTPS/443、DNS/53

  • UDP(无连接、尽最大努力交付、低延迟、适合实时/流媒体/DNS)

  • TCP(可靠流)

    • 三次握手建立连接(SYN->SYN/ACK->ACK)

    • 四次挥手断开(FIN/ACK…)

    • 序列号(Seq)与确认号(Ack)、滑动窗口

    • 拥塞控制机制

      • 慢启动:cwnd从1MSS(最大报文段)指数增长到阈值ssthresh
      • 拥塞避免(AIMD):加性增大、乘性减少
      • 快速重传/快速恢复:三次重复ACK触发快速重传
      • SACK(选择性确认):减少不必要重传
  • TCP状态:LISTEN->SYN_RCVD->ESTABLISHED->FIN_WAIT等

应用层常见协议

  • DNS(域名解析)

    • 递归验证vs迭代查询、缓存、TTL、权威/递归服务器,DNSSEC提供签名验证
  • HTTP/HTTPS

    • HTTP1.1(持久连接、管道化有限)、HTTP/2(多路复用、头压缩)、HTTP/3(基于QUIC、使用UDP)
    • HTTPS=HTTP+TLS(加密层),证书链、公钥基础设施(PKI)
  • TLS

    • 握手:协商加密套件、交换密钥(通常用ECDHE做密钥交换以实现前向保密),交换证书,建立对称密钥
  • 其他:SMTP(邮件)、FTP、SSH、WebSocket(长连接/双向)等