Skip to content

计算机网络

物理层

  • 曼彻斯特编码,曼彻斯特差分编码
  • 奈奎斯特定理、香农公式
  • 信噪比 \(SNR = 10\log_{10}\frac{S}{N} (dB)\)
  • 信道复用技术:Division Multiplexing
    • 频分复用、时分复用、波分复用(光纤)、码分复用 (CDM/CDMA)

数据链路层

  • 海明码缺省为偶校验
  • 最大传输单元 MTU
  • 以太网是不可靠传输,无线网 802.11 是可靠传输
  • 回退 N 帧
    • \(1 \lt W_t \le 2^n - 1\)
    • 是否采用累积确认
  • 选择重传

    • \(1 \lt W_r \le W_t \le 2^{n-1} - 1\)
  • CSMA/CD

    • 若检测到总线空闲96比特时间,则发送这个帧;
    • 发送后出现碰撞,立即停止发送,退避一段随机时间后再次监听开始
  • 发送帧后,最多 \(2\tau\) 可检测出是否发生碰撞,称为争用期或碰撞窗口,\(2\tau\) 为端到端往返传播时延
  • 为了确保共享总线以太网上的每一个站点在发送完一个完整的帧之前,能够检测出是否产生了碰撞,帧的发送时延就不能少于争用期
  • 截断二进制指数退避算法:\(D(k) = 2\tau \times Random\{1..(2^k-1)\}\), \(k=min\{重传次数, 10\}\)
  • 当重传达16次仍不能成功时,就表明同时打算发送帧的站点太多,应放弃重传并向高层报告
  • 共享总线以太网端到端的距离不应太长,帧的长度应尽量大
  • 网桥或交换机可以隔离碰撞域
  • 路由器隔离广播域
  • 虚拟局域网 VLAN 可以更灵活地分隔广播域
  • CSMA/CA
    • 802.11
    • NAV 指出了完成这次帧的传送且信道转入空闲状态所需的时间
    • 使用停止 - 等待的确认机制来实现可靠传输
    • 只有信道持续空闲且不是连续发送才不退避
    • {𝟎,𝟏,… ,𝟐^(𝟐+𝒊)−𝟏}, i ≤ 6

网络层

  • IP 地址分类
  • ARP 协议不能跨网络使用
  • ipv4 首部长度以 4B 为单位,总长度以 B 为单位
  • 分片
    • 标识相同
    • 标志位:DF(Don't Fragment允许分片;MF(More Fragment)
    • 片偏移:以 8B 为单位
  • 校验和
    • 只校验首部
    • 先填为 0,再按 16 位求反码和,最后取反码
  • RIP
    • 距离向量 DV,定义为经过的路由器数 + 1,16 不可达
    • 和相邻路由器,周期性交换路由表,或触发更新
  • OSPF
    • 链路状态 LS,每个路由器都保存整个网络的拓扑结构
    • 到所有其他路由器的最短路径信息
    • 多点接入:选取指定路由器作为 DR,其他为 BDR
  • RIP -> UDP, OSPF -> IP, BGP -> TCP
  • ICMP
    • 主机或路由器使用ICMP来发送差错报告报文和询问报文
    • 封装在 IP 中
    • 差错报文:目标不可达、源点抑制、超时、参数问题、改变路由
    • 询问报文:回送请求、回送应答、时间戳请求、时间戳应答
  • 专用地址:10/8, 172.16/12, 192.168/16

传输层

  • 熟知端口号:0~1023
  • 注册端口号:1024~49151
  • 动态或私有端口号:49152~65535
  • UDP支持单播、多播和广播
  • TCP仅支持单播
  • UDP是面向应用报文的,TCP是面向字节流的
  • TCP
    • 数据偏移:以 4B 为单位
    • 校验和:伪首部 + TCP 首部 + TCP 数据,伪首部 = 源 IP + 目的 IP + 0 + 6 + TCP 长度
  • 拥塞控制:ssthresh、慢开始、拥塞避免(TCP Tahoe)、快重传、快恢复(TCP Reno)
    • 慢开始:cwnd = 1, 每经过一个 RTT,cwnd = 2cwnd
    • 拥塞避免:cwnd = cwnd + 1
    • 快重传:收到 3 个重复的 ACK,立即重传
    • 快恢复:ssthresh = cwnd/2, cwnd = ssthresh, 进入拥塞避免
  • RTO 选择
    • \[\begin{aligned} RTT_{S1} &= RTT_1\\ RTT_S &= (1-\alpha)\times Old\ RTT_S + \alpha \times New\ RTT \end{aligned}\]
    • \[\begin{aligned} RTT_{D1} &= RTT_1/2\\ RTT_D &= (1-\beta)\times Old\ RTT_D + \beta \times |New\ RTT-RTT_S| \end{aligned}\]
    • \(RTO = RTT_S + 4RTT_D\)

应用层

  • DHCP
  • DNS:根、顶级、权限、本地
  • HTTP
    • 1.0 采用非持续连接,1.1 采用持续连接