快速自查

  • 物理层
    • 调制:曼彻斯特编码/差分曼彻斯特编码;QAM
    • 奈奎斯特准则,信噪比,香农公式
    • 媒体:TP (U,S,F),光纤波段 (0.85, 1.3, 1.55) 带宽 (25THz),无线电 (2-40GHz)
    • 信道复用:FDM, TDM, WDM, CDM
    • SONET / SDH (51.84, 155.52 Mbps)
    • ASDL, HFC, FTTx, ODN (PON)
  • 数据链路层
    • LLC, MAC; MTU, SOH, EOT, ESC; BER, FCS, ARQ
    • CRC, Hamming; ARQ, SW, GBN, SR
    • PPP: LCP, NCP, CHAP, PAP
    • CSMA/CD: 0.1us, 96b IFG, 512b CW, 16, 48b jam
    • MAC: addr (I/G, G/L, broadcast), 18B, 1500B, VLAN (802.1Q, 4B)
    • Switch: CAM, STP; 交换结构
    • 802.3u/z/ab; 10ns, 512B; bursting
  • 网络层
    • IP (20B+4*n, pld*8, trie) ARP (0806 8+10*2), ICMP (8+n), IGMP (8)
    • IPv6(40B) ICMPv6 (ND, MLD)
    • ip range, private addr, NAT (NAPT)
    • AS, IGP, RIP (hop, udp+4+20*n), OSPF (proto89, 24+); EGP, BGP-4 (iBGP. eBGP, select algo, 19+)
    • multicast: mbone, 01-00-5e-0b1, 路由选择 (DVMRP, PIM),RPB
    • MPLS: 4B, label, LDP, LSP, LSR, FEC; SR
    • SDN: OpenFlow, 南北
    • libc socket
  • 传输层
    • UDP: 8B hdr, checksum (2B, 12B phead, pad4B)
    • TCP: TPDU, port (49512); hdr 20+4*n, Options (2B TL+nV, MSS 2, Window Scale 1, TS 8, SACK 8/16)
    • swnd, cwnd, rwnd; ARQ; SACK, D-SACK; RTO (Karn), 快速重传, ZWP (持续计时器), Nagle, Reno 四阶段; AQM
    • TCP state machine; MSL; keepalive timer
  • 应用层
    • TCP: FTP (20/21), TELNET (23), SMTP (25/587), POP3 (110/005), IMAP (143/993)
    • UDP: DNS (53), NFS (2049), TFTP (69), DHCP (68/67), SNMP (161/162, SMI, MIB)
    • DNS: 四种 DNS, 递归迭代
    • WWW: URLm HTTP (1.0, 1.1, 2), HTML, Email (SMTP, POP3, IMAP, pld), MIME, Proxy, Payload (v1), CGI, 搜索引擎, Blog, SNS
    • P2P: Time, DHT, Chore ring (KID, NID, finger table)
  • 无线网络
    • 802.11: AP, Service set (BSS, ESS, SSID, B/ESSID), Association; AD Hoc (MANET, WSN); version (bagncx); WPAN
    • CSMA/CA: CW, 预约 (RTS,CTS), NAV, IFS (slot time, SIFS, DIFS); backoff time; MAC (4+3*6+2+6+body+4)
    • WPAN: Bluetooth (IEEE802.15.1, BLE, Piconet), ZigBee (IEEE 802.15.4, FFD, RFD), 802.15.3
    • 蜂窝: 1G (FDMA), 2G (T/FDMA, GSM, GPRS), 3G (T/CDMA, UTRAN), 4G (SC/OFDMA+MIMO, LTE, E-UTRAN, EPC)

概述

  • Internet / 互联网:
    • 基本特点:连通性,资源共享
    • 组成/要素:计算机,信道, 通信协议
    • 发展阶段:ARPANET (1969/1983),三级结构 NSFNET (1985) (主干+地区+企业),多层 ISP (主干,地区,本地 多 tier)
      • Internet Service Provider (ISP)
      • Internet eXchange Point (IXP) 互联网交换点
      • Content Provider
      • Request For Comments (RFC) (Proposed, Drafted, STD)
    • 标准化:RFC
    • 边缘网 edge/end system
      • 端通信方式:C/S, P2P
      • 接入网 Access Network:从用户到 ISP 边缘路由器之间的网络
    • 核心网
      • router + packet switch
      • 交换技术:电路交换(点对点),分组交换,报文交换
        • 分组交换优点:高效 灵活 迅速 可靠;逐段占用 独立选择 无需连接 协议可靠
        • 缺点:排队延迟 带宽无保证 增加开销
        • 报文交换:电报
    • 我国发展:铁道部 (1980),CNPAC (1989),CHINANET (1994)
      • 最大主干网:CHINANET, UNINET, CMNET, CERNET, CSTNET
  • 网络:节点 node + 链路 link
    • internet 互连网:网络 + router;internet ≠ Internet
    • 计算机通信网:计算机+通道+通信协议
  • 计算机网络
    • 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
    • 分类:
      • 作用范围:WAN (wide) MAN (metropolitan) LAN (local) PAN (personal)
      • 使用者:public/private
      • Access Network 边缘路由器
  • 性能参数
    • (额定)速率/带宽
    • (实际)吞吐 throughput
    • 时延:发送/传输时延 (end),传播 (link),处理 (node),排队 (node)
      • 提高速率 = 提高发送速率 = 减小发送时延
      • 网络实际时延 = 空闲时延 / (1-利用率)
    • 时延带宽积:链路可容纳的数据量
    • RTT:2传播+remote 处理排队发送
    • 有效数据率 = 数据长度 / (发送时间+RTT) = 带宽 * 发送时间/(发送时间+RTT)
    • 信道利用率:利用时间比
    • 其他:标准化,可靠性,可扩展性
  • 计算机网络体系结构
    • 开放系统互连参考模型 Open Systems Interconnection Reference Model (OSI/RM)
    • 网络协议:语法 (payload) +语义+同步 (顺序)
    • entity 实体:可收发信息的软硬件
    • 分层
      • 五层/七层 (ISO 7498):物理,数据链路,网络,传输,应用(会话,表示,应用)
      • TCP/IP:网络接口,IP,TCP/UDP,应用
    • Protocol Data Unit (PDU): (OSI) 对等层次之间传送的数据单位
    • Service Access Point (SAP): 相邻两层的实体交互点
    • 服务数据单元 SDU 层与层之间交换的数据的单位 (与 PDU many2many)

物理层

物理层传输比特流

  • 作用:传输数据比特流,屏蔽掉不同传输媒体和通信手段的差异
  • 任务:确定传输媒体接口的 机械 电器 功能 过程 特性
  • 数据通信系统的模型:源系统+传输系统+目的系统
  • 术语:
    • message, data, signal, 码元,
    • 信道,单工,半双工,全双工
    • 基带信号,调制,带通调制,基带调制
  • 编码
    • 不归零制:正电平代表 1,负电平代表 0
    • 归零制:正脉冲代表 1,负脉冲代表 0
    • 曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。有子同步能力
    • 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。
  • 带通调制
    • AM, FM, PM, QAM
    • 奈奎斯特:速率=2带宽 (码元)
    • 信噪比 10log(S/N); C=W log2(1+S/N) (信息量)
    • 波特率 Baud Rate/Bd 单位时间内传输的码元的个数
  • 物理媒介
    • 导引式:
      • 双绞线 twisted pair (UTP/STP 双绞屏蔽;x/xTP 整条屏蔽 F(foiled)/S(braid screen))
      • 同轴电缆
      • 光纤 (单模/多模)
        • 同步光纤网 SONET 51.84 Mbits (OC-1/STS-1) 为基频;波长为 1310 nm 和 1550 nm 的激光源;定义了帧结构
        • 同步数字系列 SDH (Synchronous Digital Hierarchy) 155.52 Mbits (STM-1) 为基频
    • 无线电微波通信
      • 多径效应 失真
      • 微波接力,卫星通信
      • ISM 频段:(902,928), (2400,2483.5), (5725,5850)
  • 复用技术
    • 频分复用、时分复用和统计时分复用(动态时隙)
    • 波分复用:使用一根光纤来同时传输多个光载波信号
    • 码分复用 CDM:各用户码型表不同
  • 宽带接入
    • SONET (OC/STS) / SDH 标准:51.84 Mbps / 155.52 Mbps;1310 / 1550 nm optics
    • ADSL 离散多音调(DMT,实质 FDM;标准 G.992.1/G.dmt);ADSL2 (G.992.3,.4,.5),SDSL HDSL VDSL GigaDSL
    • 光纤同轴混合网 (HFC),把原有线电视网中的同轴电缆主干部分改换为光纤
    • FTTx
    • 光配线网 ODN:头端 OLT 1:N 光网络单元 ONU
    • 无源光网络 PON:EPON, GPON

数据链路层

数据链路层传输

  • 基础
    • 信道:点对点 / 广播
    • 链路/物理链路:无源的 点到点的 物理线路段
    • 数据链路/逻辑链路:在链路上传的协议
    • 封装成帧:帧定界
    • 透明传输:转义定界符
    • 差错控制:帧检验序列 FCS(奇偶,CRC)
      • 传输差错:比特差错,帧丢失、帧重复或帧失序;CRC 实现无比特差错
      • CRC:左移 n,除以 P (n+1 bit),余数 R 拼接;只能概率检错
      • 汉明码:8-4 码纠错一位 (TODO 要背吗?)
    • 流量控制:停止-等待协议和滑动窗口协议
      • 后退N帧协议:接收窗口为1,n ack 则 <=n 全 ack
      • 选择重传协议:只传超时,不管未来
    • 子层:
      • 逻辑链路控制 LLC:封装识别网络层协议;传输可靠性保障和控制、数据包的分段与重组、数据包的顺序传输
      • 媒体接入控制 MAC:分配信道的使用权;数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制
      • PLS 数据编码解码
    • 适配器:
      • 串并转换,包的装配和拆装,网络存取控制,数据缓存,以太网协议
  • PPP
    • 数据传输方式:异步传输 (byte),同步传输 (frame)
    • 有 LCP 链路协商,NCP 网络协商(分配 IP),CHAP PAP 认证协议,
    • 帧格式:7e ff 03 [00 21] (variable) [content] [FECx2] 7e
      • 转义:7e->7d5e, 7d->7d5d, 03->7d23
      • 零比特填充:>5 连 1 -> 填 0
      • 8B + 转义 额外开销
  • 局域网
    • 拓扑:星形网,环形网,总线网
    • 动态媒体接入控制:随机接入,受控接入
    • Ethernet standards: DIX Ethernet V2, IEEE 802.3
    • CSMA/CD:载波侦听多路访问/冲突检测
      1. 侦听信道,直到不忙 96bit 时间开始发送;检测到碰撞
      2. 发送特殊阻塞资讯并立即停止发送数据:特殊阻塞资讯是连续几个字节的全1信号,此举意在强化碰撞,以使得其它装置能尽快检测到碰撞发生。
      3. 在固定时间(一开始是1 contention period times)内等待随机的时间,再次发送。
      4. 若依旧碰撞,则采用截断二进制指数避退算法进行发送。即十次之内停止前一次“固定时间”的两倍时间内随机再发送,十次后则停止前一次“固定时间”内随机再发送。尝试共16次之后仍然失败则放弃发送。
  • Ethernet 10BASE-T: 0.8us/bit
    • 无连接,无编号;
    • CSMA:
      • 以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口 (ethernet = 51.2 μs = 512bit, 0.1us/bit);
      • jamming: 检测到冲突后 48bit jam 信号
      • 侦听时间 96bit
      • 帧间最小间隔 9.6us
      • 参数 a=τ (端到端时延) / T0 (发送时延)
      • 信道利用率 最大值 1/(1+a),30% 时已经有很大的碰撞率了
      • 注:现在交换机/路由器时代已经不需要 CSMA 了
    • MAC: 48bit, 前分配,后随意 (lsb)
      • bit0: Individual / Group 位:0 单站,1 组
      • bit1: Global / Local 位:0 全球管理,1 用户随意
      • 全 1: 广播
    • 帧结构:
      • 8 byte 前 (55 55 55 55 55 55 55 d5) (物理层插入)
      • 14B 头: 6B src, 6B dst, 2B type/len (<1536 为 len)
      • 46-1500B 内容
      • 4B FCS
      • 18B 额外开销
    • 扩展设备:
      • 中继器(Repeater):信号放大
      • 集线器 Hub:碰撞域很大
      • 网桥 Bridge / 交换机 Switch:有存储器(储存转发/直通),即插即用
        • 学习 src,丢弃 src=dst,广播 unknown dst,转发 known dst
        • 环路消除:开生成树
        • (第三章)交换结构:通过存储器、通过总线、通过纵横交换结构/互联网络
          • 通过存储器:交换速率<存储器带宽/2
          • crossbar switch fabric / interconnection network:几乎无阻塞
      • 路由器 Router
      • 网关 Gateway
    • VLAN (IEEE 802.1Q)
      • 实现:端口隔离,基于 MAC,基于 IP,基于网络协议,基于端口(?
      • 帧结构:12B addr 后加 4B 标记:81 00 (pri:3b) (cfi: 1b) (vlanid 12b)
  • Ethernet
    • 100BASE-T (IEEE 802.3u):可全双工;不用 CSMA/CD;IEEE 802.3 MAC;帧间隔 0.96us
    • 1000BASE-T:
      • 争用时间 512B,载波延伸填充;
      • 分组突发:很多短帧要连续发送时只有第一个要载波延伸
    • 更高速:只有全双工
    • Ethernet 不支持用户身份鉴别 -> PPPoE
  • 无线局域网 WLAN (IEEE 802.11)
    • 便携站(便于移动),移动站(边移动边工作)
    • 基础
      • 有固定基础设施
      • 星形拓扑 (AP),MAC 层使用 CSMA/CA 协议
      • 信道使用 2.4 GHz 和 5 GHz 频段;802.11b 使用 85 MHz - 11 信道(实际只用 1,6,11),每信道带宽 22Mhz
    • 基本服务集 BSS:包括一个接入点 AP 和若干个移动站
      • 有 SSID;AP MAC 为 BSSID
      • 基本服务区 BSA
    • 扩展服务集 ESS:包括一个分配系统 DS 和若干 BSS
      • 有 ESSID
      • DS 可以用 Ethernet, PPP, WLAN
      • 可以通过 Portal 连接到 802.x 局域网
    • 关联 Association:一个虚拟线路
      • 扫描:被动(AP 信标帧),主动(探测请求帧 +探测响应帧)
      • 建立:关联请求帧+关联响应帧
      • 重建关联:转移关联到另一个 AP
      • 关闭:分离
      • 安全建立:WEP / WPA / WPA2
    • 移动自组网络 / Ad Hoc 网络 / IBSS
      • 没有 AP,所有节点地位平等,自组织,点对点
      • 被 Wi-Fi Direct 取代
      • 无线传感器网络 WSN(?)
        • 传感器结点通过无线通信技术构成的自组网络
        • 需求:低带宽,低功耗,小巧;用于 IoT
    • 移动接入:
      • 固定接入
      • 移动接入:以车辆速度移动
      • 便携接入:以步行速度移动
      • 游牧接入:两点间移动(?)
    • 版本
      • b, a, g, n, ac, ax
      • 物理层:扩频(b),正交频分复用 OFDM (a,g),多入多出 MIMO+OFDM (n,ac,ax)
      • 带宽:11M (b), 54M (a,g), 600M (n), 7G (ac), 9.6 G (ax)
    • MAC 协议
      • 碰撞检测:无法实现
        • RX 信号弱(隐蔽站问题,检测不到 Peer 信号)
        • 接收端仍然有可能发生碰撞
        • 信道不空闲
      • CSMA/CA + 停止等待协议
        • 载波监听:检测无线信道的信号能量,通过 网络分配向量 NAV 告知其他终端信道占用状态
        • 冲突避免:信道空闲时间 >= 分布式帧间间隔 DIFS;随机退避计时器 CW = min (CW×2, CWmax)
          • $t = 2^n-1\quad 4\le n \le 10$
          • 退避:检测到信道忙,重传,忙完发(分配只需要 SIFS)
          • 短帧间间隔 SIFS
          • DIFS = SIFS + 2*slot
          • slot=9us, SIFS = 10 us (2.4GHz) / 16us (5GHz), DIFS = 28us
          • 信道预约:RTS (20B) /CTS (14B)(请求发送 / 允许发送)
        • 两个子层:DCF 分布协调功能 和 PCF 点协调功能
      • 帧类型:控制帧,数据帧,管理帧
      • MAC address:
        • dst, src, nextdst/src
  • WPAN (IEEE 802.15)
    • 把属于个人使用的电子设备用无线技术连接起来自组网络
    • Bluetooth
      • 皮可网:蓝牙使用 TDM 方式和扩频跳频 FHSS 技术组成的网,有一个主设备 (Master) 和最多 7 个工作的从设备;扩散网
    • ZigBee:通信距离短,传输数据速率低,成本低廉,MAC 层沿用 802.11
      • 网络最多 255 个节点
      • 全功能设备,精简功能设备
    • 超宽带 UWB 技术
  • 蜂窝无线通信
    • 1G: FM+FDMA
    • 2G: 全球通 GSM;FDMA+TDMA,125*8
      • 基站 BSC, 移动交换中心 MSC,网关 GMSC - 电话网
      • GPRS / EDGE 实现数据通信
    • 3G: CDMA
      • 基站 BSC,GPRS 服务支持站点 SGSN,网关 GGSN - 互连网
      • 通用移动通信系统陆地无线接入网 UTRAN
      • 无线网络控制器 RNC
    • 4G: 下行 OFDMA + MIMO,上行 SC+FDMA
      • 用户设备 UE,无线接入网 E-UTRAN (eNB 组成),EPC 核心网(P-GW 接互连网,S-GW 接无线接入网,HSS 数据库,MME 通过 HSS 控制基站、用户)
      • VoLTE
      • LTE 子层:PDCP (GTP-U) 封装 L3 packet;RLC 链路控制,重排重传;MAC;PHY
    • 5G: OFDMA

网络层

网络层传输分组

  • 基础
    • 两类观点:可靠交付(虚电路 VC);数据报服务
    • 构成:数据转发平面,控制平面(路由)
    • SDN:解耦数据平面何控制平面,由一个或多个集中式 SDN 控制器统一计算路由、下发策略
  • IP
    • 三个基础协议
      • 地址解析协议 ARP
      • 网际控制报文协议 ICMP
      • 网际组管理协议 IGMP
    • Internet: TCP/IP
    • 间接交付/直接交付:只有edge 是直接
    • IP 地址
      • 表示方法:点分十进制
      • 网络号+主机号
      • 分类:A (0b0…/8) B(0b10…/16) C(0b110…/24) 多播 (0b1110…) 保留 (0b1111…)
      • 特殊:
        • .0: 本主机 (dhcp)
        • .255: 网段广播
        • -1: 本网络广播 (路由器不转发)
        • 127./8: loopback
      • CIDR,网络前缀,地址块,地址掩码
        • /32: 主机路由
        • /31: 点对点
        • /0: 默认路由
        • 路由聚合
      • (RFC 1918) 专用地址:10./8, 172.16./12, 192.168./16
    • ARP: IP to MAC
      • 平行于 IP,type 08 06
      • [硬件类型 2B] [协议类型 2B] [HW 长度 1B] [Proto 长度 1B] [Op 2B] [src MAC 6B] [src IP 4B] [dst MAC 6B] [dst IP 4B]
      • ARP 高速缓存
      • 四种情况:edge - router
      • ARP欺骗;防御:MAC 绑定,伪造检测
    • IP 分组格式
      • [VER 4b] [hdr len 4b] [区分服务 1B] [len 2B]
      • [id 2B] [MF DF RSV 3b] [fragment offset 13b]
      • [TTL 1B] [Proto 1B] [Checksum 2B]
      • [src 4B] [dst 4B] [optional with pad n*4B]
      • [data varlen]
    • 分片 offset: data 偏移 / 8
    • 常见 proto: ICMP(1), IGMP(2), IP(4), TCP(6), UDP(17) IPv6(41) ICMPv6(58), OSPF(89)
  • 路由
    • 核心:转发表逐行寻找前缀匹配
    • 特殊路由:/0, /32
    • 加速数据结构:前缀树 trie
    • 基于终点的转发
    • 路由器:路由选择 + 分组转发
  • ICMP
    • 格式:[Type 1B] [Code 1B] [Checksum 2B] [data varlen]
    • 差错报告:
      • 3 目标不可达(路由器/主机/TCP/UDP port)
      • 11 超时(分片/TTL)
      • 12 参数问题
      • 5 重定向
      • 4 源抑制
      • 不可发送:对 ICMP 差错,对非首分片,对多播/特殊地址
    • 询问:
      • 8,0 Echo
      • 13,14 Timestamp
    • (v6) 邻站发现报文
    • (v6) 组成员关系报文
  • IPv6
    • 变化:更大的地址空间,灵活的首部格式,支持 IP 分配,支持资源的预分配,分配 anycast ip
    • 格式:base header + payload (extension header + data)
      • [VER 4b] [Traffic class 1B] [Flow label 20b]
      • [payload len 2B] [next hdr 1B] [ttl 1B]
      • [src 16B] [dst 16B]
    • 扩展头部:逐跳选项,路由选择,分片,鉴别,封装安全有效载荷,目的站选项
    • 冒号十六进制记法,零压缩,CIDR
    • 地址类型
      • ::/128: unspecified
      • ::1/128: loopback
      • ff00::/8: multicast
      • fe80::/10: local link
  • 路由选择协议
    • AS
      • 分类:末梢 AS,多归属 AS,穿越 AS,对等 AS
    • 层次:域间路由选择,域内路由选择
      • 自治系统 AS
      • 内部网关协议 IGP:RIP, OSPF
      • 外部网关协议 EGP:BGP
    • RIP:
      • Over UDP 520
      • 基于距离表:每个路由器都要维护到每一个目的网络的 hop;max hop 16
      • 实现:按固定时间间隔 (30s) 交换,相邻路由器交换 全量信息;本质上是分布式 Bellman-Ford 算法,收敛慢
      • 报文:UDP port 520
        • [cmd 1B] [ver 1B] [00 00]
        • 多个路由项 [地址类型 2B] [ASid 2B] [addr] [mask] [nexthop] [distance]
    • OSPF:
      • IP proto 89
      • 基于链路状态
      • 实现:固定间隔 (30m) 或状态变化时,向所有路由器泛洪 相邻链路状态;收敛快!!
      • 路由器分类:ASBR -> ABR -> BR
        • ASBR: 生成 1,5,7 LSA,向全 AS 泛洪
        • ABR: 生成 1,2,3,4 LSA,向区域内 + 区域间泛洪
        • BR: 生成 1,2 LSA,向区域内泛洪
      • LSA 类型
        • T1 Router LSA;区域内所有路由器
        • T2 Network LSA:该广播/多路访问网段上所有连接的 OSPF 路由器
        • T3 Summary LSA:将一个区域内的路由(来自 Type 1/2)汇总后通告到其他区域
        • T4 ASBR Summary LSA:告诉其他区域 如何到达 ASBR
        • T5 AS External LSA:描述从其他路由协议引入的外部路由
      • 消息类型
        • T1 Hello:发现邻居 (to 224.0.0.5), 10s period
        • T2 Database Description:交换摘要信息 (LSA 头部列表)
        • T3 Link State Request:向邻居 请求缺失或较新的 LSA 详细信息
        • T4 Link State Update:携带一个或多个完整的 LSA,用于响应 LSR / 泛洪新的或更新的链路状态信息
        • T5 Link State Acknowledgment: ACK T4 LSU
      • 工作过程:
        1. 确定邻站可达
        2. 同步链路状态数据库
        3. 更新链路状态
      • designated router: 只与 DR 建立 Full 邻接,减少 flooding 的网络压力
    • BGP
      • TCP 179
      • 用于自治系统 AS 之间的路由选择;力求得出能用、还行的路由,未必最佳
      • BGP 发言者间有持续的 BGP session
      • iBGP 会向 iBGP 发 eBGP 源信息,向 eBGP 发 iBGP 源消息
      • 防环:过滤收到的、带自己的路由
      • 选择策略:
        • local preference 最高
        • AS 跳数最小
        • 分组在 AS 内的转发次数最少
        • BGP ID (最大路由器 IP 地址)数值最小
      • 报文类型:
        • T1 Open:连接握手
        • T2 Update:通告可达路由和撤销不可达路由
        • T3 Notification:用于通知错误信息并关闭连接
        • T4 Keepalive
        • T5 Route refresh:重新发送特定地址族(如 IPv4/IPv6)的路由信息,实现动态路由刷新
  • 多播
    • 节约网络资源:一包=多包
      • Ethernet: MAC=01-00-5E / 23
      • IP: D 类 IP,v4 映射到 MAC
    • IGMP: 使多播路由器知道多播组成员信息
      • 工作:加入多播组,探询组成员变化情况 (125s period)
      • 减少开销:随机时延分散响应,抑制机制(单主机响应则不再响应)
    • 多播路由选择协议:使多播路由器协同工作,把多播数据报用最小代价传送给多播组的所有成员
      • 距离向量多播路由选择协议 DVMRP
      • 基于核心的转发树 CBT
      • 开放最短通路优先的多播扩展 MOSPF
      • 协议无关多播-稀疏方式 PIM-SM
      • 协议无关多播-密集方式 PIM-DM
    • 多播路由选择
      • 洪泛与剪除
        • 反向路径广播 RPB 防环:检查数据报是否经最短路径(src 的单播接口正确)传送来的
        • 形成以源为根节点的多播转发树
        • 剪枝与嫁接(通过 end router 主动发送 prune)
      • 隧道技术:多播组成员网络分散
      • 基于核心的发现技术:
        • 指定一个核心路由器,以核心路由器为根做转发树
  • VPN
    • 使用互连网构建的专用网
    • 用隧道技术实现虚拟专用网
    • 类型:内联网,外联网,远程接入 VPN
    • NAT:专用网与互联网上的主机通信;需要 NAT 路由器;轮用 IP
    • NAPT:使用传输层端口号
  • MPLS 多协议标签交换
    • 本质上类似于 IP 路由表的一个高速的转发缓存,可以做到显式的、灵活的路由控制优化
    • 标记交换路由器 LSR:具有标记交换和路由选择功能
    • 工作过程:
      1. 找出标签交换路径 LSP(相当于 ip 路由的 cache)
      2. 打标签,然后转发
      3. 标签对换(一个标签仅在两个 LSR 之间才有意义)
      4. 去除标签
    • 标签分配协议 LDP:转发等价类 FEC -> 标签
      • FEC 用于负载平衡
    • MPLS 首部:[tag 20b] [expr 3b] [stack 1b] [ttl 8b]
    • 问题:协议复杂,流量调度功能难以实现
    • 段路由选择协议 SR:不需要使用 LDP 协议
  • SDN:实现控制面与数据面的分离
    • OpenFlow:SDN 体系结构中控制层面和数据层面之间的通信接口
      • 架构:管理员 -(north: api)- SDN 控制器 -(south: flow table)- 可管理交换机
    • flow table: 规定“匹配 + 动作”
    • 可实现简单转发,负载均衡,防火墙等功能(抢 nftables 的活?)

传输层

  • 基础:
    • 运输层功能:提供应用进程间的逻辑通信,屏蔽网络核心的细节,为进程提供端到端的逻辑通信信道
    • 传输协议数据单元 TPDU:两个对等传输实体在通信时传送的数据单位
    • 端口功能:复用网络层,多进程分用;只有本地意义
    • TCP/UDP 端口号分配:
      • 0-1023 熟知端口,IANA 分配
      • 1024-49151 登记端口
      • 49152-65535 客户端端口
  • UDP:
    • 无连接、面向报文通信
    • header: [src port 2B] [dst port 2B] [total len 2B] [checksum 2B]
      • checksum: 异或和的反,要填充位头部 (v4 12B / v6 40B)
  • TCP:
    • 有连接,面向字节流通信
    • socket
      • socket API 的简称
      • 一个 syscall
      • 调用 socket call 的 endpoint
      • socket 描述符
      • 内核里的 Berkeley 实现
    • 停止等待协议:发送/接收窗口=1;丢失啥都不做
      • 利用率 U=TD/(TD+RTT+TA)
    • 连续 ARQ 协议
      • 接收方对按序到达的最后一个分组发送确认
      • Go-back-N:需要再退回来重传已发送过的 N 个分组
    • header
      • [src port 2B] [dst port 2B] [seq 4B] [ack 4B]
      • [data offset 4b] [rsv 6b] [flags 6b] [window 2B]
      • [checksum 2B] [urgent pointer 2B] [options 4B*n]
      • data offset: *4B
      • flags: URG, ACK, PSH, RST, SYN, FIN
      • window: 接收方目前允许对方发送的数据量
      • URGENT: 紧急数据的字节数
      • 窗口扩大 3B,表示移位值;最大 «14,2**30-1
      • Timestamp: 10B,时间戳值字段,时间戳回送回答字段;计算往返时间,防止序号绕回
    • 可靠传输
      • 发送窗口和接收窗口
      • 标准没有规定对不按序到达的数据应如何处理
      • 要求接收方必须有累积确认的功能 以减小传输开销
      • 加权平均往返时间 (Karn 算法)
        • RTTs=(1-a)RTTs + aRTT; (a=1/8)
        • RTTd = (1-b)RTTd + b |RTTs - RTT| (b=0.25)
        • RTO = RTTs + 4 RTTd
        • 每次重传 RTO=g RTO (g = 2)
      • 选择确认 SACK:只传送缺少的数据;报告收到的不连续的边界
      • Duplicate SACK:报告重复接收
      • 快速重传:收到三个相同的 ACK 报文
    • 流量控制:
      • 滑动窗口 rwnd:控制发送速率
      • 持续计时器:防止零窗口死锁,定时零窗口探测
      • Nagle 算法:解决糊涂窗口综合症,收到确认/buf数据已达到发送窗口一半或已达到报文段的最大长度
      • 接收方:接收缓存已有足够空间容纳一个最长的报文段,或者等到接收缓存已有一半空闲,才 ACK
    • 拥塞控制
      • 开环控制:事先约束;闭环控制:反馈环路
      • 实现:拥塞窗口 cwnd
        • 慢开始:每个 round cwnd * 2
        • 拥塞避免:cwnd 达到 ssthresh 后 +1
        • 超时重传计时器超时:ssthresh = max (cwnd/2,2),cwnd = 1,慢开始
        • 收到 3 个重复的确认:ssthresh = cwnd = cwnd/2 快重传,拥塞避免
      • 分组丢弃策略
        • 先进先出FIFO+尾部丢弃策略 -> 连接共振
        • 主动队列管理 AQM:队列长度达到某个值得警惕的数值时主动丢弃
        • 随机早期检测 RED:队列分为 丢弃,随机丢弃 (Thmax),排队区域 (Thmin)
        • RED 不好用 -> CoDel 等
    • 发送窗口 = min(rwnd, cwnd)
    • 有限状态机
      • aes prf
      • SYN, FIN 会额外消耗一个 seq(视为“占用 1 字节”的虚拟数据);SYN 不允许带额外数据
      • 2MSL 目的:保证发送的最后一个 ACK 报文段能够到达 B,防止“已失效的连接请求报文段”出现在本连接中
  • system API (第五章)
    • Berkeley: socket; MS: Windows Socket; AT&T: Transport Layer Interface
    • BSD socket:socket, bind, listen, connect, accept, recv, send, close

应用层

  • DNS
    • via UDP 53
    • 域名结构
      • 层次树状结构
      • 每一个标号不超过 63 char,总长不超过 255 char
      • 子域:顶级域、二级域、三级域
    • TLD
      • 国家顶级域名 nTLD / ccTLD
      • 通用顶级域名 gTLD
      • 基础结构域名:arpa
      • 新顶级域名:公司可向 ICANN 申请
    • 域名服务器
      • 根:13个 (iana.org)
      • 顶级
      • 权威/权限 (Authoritative)
      • 本地/递归/默认
    • 查询:迭代查询 / 递归查询(加 RD flag,只问根)
    • DNS 安全
      • DNS污染
      • DNS劫持
      • Hosts文件劫持
  • FTP
    • via TCP 20/21
      • port 21 负责接受请求
      • port 20 负责主动模式的数据传输 (S -> C)
    • 一个文件共享协议
      • 文件传送协议:复制整个文件。对文件副本进行访问
      • 联机访问协议:透明存取,由操作系统负责
    • vsftpd:fork 模型
      • 主进程负责接受新的请求
      • 子进程负责处理单个 session
      • session 内还会创建数据传送进程
  • TFTP
    • via UDP 69
    • 只支持文件传输,不支持交互
    • 协议实现:512B/chunk,手搓的停止等待协议
  • TELNET
    • via TCP 23
    • 简单的远程终端协议;
    • 网络虚拟终端 NVT 格式:使用数据 (>=0),控制字符集(<0)
  • WWW / HTTP
    • WWW
      • 访问方法:链接
      • 是超媒体系统
      • 以 Client (Browser) / Server 工作
      • 使用 HTTP / HTML
    • 统一资源定位符 URL: [proto]://[host]:[port]/[path]
    • HTTP
      • via TCP 80
      • HTTP 是面向事务的应用层协议,无连接无状态
      • Request Payload
        • [Method] [URL] [VERSION] CRLF
        • [Header]: [Value] CRLF * N
        • CRLF
        • [BODY]
      • Response Payload
        • [VERSION] [Status] [Explain] CRLF
        • 其余同 Request
      • HTTP 1.0: 2RTT per request
      • HTTP 1.1 Keep Alive,流水线
      • HTTP2:帧化,没有队头阻塞,二进制编码
      • Status code: 1 inform, 2 succeed, 3 redirect, 4 client err, 5 svr err
      • Cookie 存状态
    • 代理服务器:cache 加速
    • HTML (RFC 2854)
      • 定义了许多用于排版的命令
      • XML:抄袭 HTML 的;XHTML (RFC 3236)
      • CSS
    • 动态文档
      • PHP/RSC/Django
      • CGI 脚本
      • 活动文档技术:javascript
    • Search engine
      • 全文检索搜索引擎,分类目录搜索引擎(黄页)
      • 垂直搜索引擎(特定领域),元搜索引擎(不做搜索,只是搜索引擎的搬运工)
      • 网页排名(链接图)
      • 博客和微博,社交网站(SNS)
  • 电子邮件
    • 协议:发送 SMTP (TCP25),接收 POP3 / IMAP
    • 组件:用户代理,邮件服务器,协议
    • 地址格式:[name]@[domain]
    • SMTP Payload (rfc5321)
      • MAIL FROM <[email addr]> CRLF
      • RCPT TO <[email addr]> CRLF * N
      • [HEADER]: [Value]CRLF*N
      • CRLF
      • [Body]
      • [CRLF].[CRLF]
    • POP3 相当于消息队列,阅后服务器删除;IMAP 是在线阅读服务器
    • MIME
      • MIME-Version,Content-Description,Content-Id,Content-Transfer-Encoding,Content-Type
      • Content-Transfer-Encoding:7bit, 8bit, binary, base64, quoted
      • Content-Type: [type]/[subtype];multipart!
  • DHCP
    • via UDP 67(server) / 68(client)
    • DHCP 中继代理
    • 工作过程:
      • DHCPDISCOVER,DHCPOFFER,DHCPREQUEST,DHCPACK,DHCPRELEASE
      • 提供 ip, mask, default router, default dns
      • 租用期 lease period:
        • 到一半重新 DHCPREQUEST;得到 DHCPNACK 则重新 DISCOVER
        • 到 87.5% 再 DHCPREQUEST
  • SNMP
    • via UDP 161 (manager poll) / 162 (agent send)
    • SNMP 架构主要包括以下三个核心组件
      • Manager
      • Agent
      • 管理信息库 MIB:用 OID 树标识存储监控对象
    • 管理信息结构 SMI:
      • 功能:被管对象命名,数据类型,传输编码
      • 所有被管对象必须在命名树上;MIB 变量命名需符合 ASN.1 要求
      • 数据类型:简单类型 (int, string, null),结构化类型 (sequence, choice, any)
      • 基本编码规则 BER:TLV
    • 操作:GET,GET-NEXT,GET-BULK,SET,TRAP / INFORM
    • SNMP vs Prometheus (via AI):SNMP 并未消失,而是在其擅长的领域(传统网络基础设施监控)继续发挥作用;而 RESTful + Prometheus 主导了新兴应用和云环境。现代运维工程师往往需要同时掌握两者,并用工具(如 snmp_exporter)打通它们。
  • P2P
    • 集中目录服务器 (Napster)
    • 全分布式结构 (Gnutella, eMule, BT)
    • BT
      • neighboring peers:建立了 tcp 连接的 peer
      • Torrent: 所有 peer
      • Chunk:request rarest,
      • Tracker
      • 上行流量分配:send to data rate 最高的 peer
    • 速率分析
      • C/S: T = max(NF/us, F/di_min)
      • P2P: T = max(F/us, F/di_min, NF/uT),uT 为上传速率之和
    • 分布式散列表 DHT
      • DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID
      • Chord 环:结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络;资源由 Chord 环上与其标识符值最接近的下一个结点提供服务
      • 指针 base2 表加速 Chord 环跳转