Data Communication 2

局域网概述 (LAN,Local Area Network)

拓扑结构

  • 总线拓扑
  • 星型拓扑结构

局域网协议体系结构

OSI TCP/IP IEEE 802 协议层
应用层
表示层
对话层 应用层
运输层 传输层(TCP)
网络层 网际互联层(IP) 高层协议
数据链路层 数据链路层 逻辑链路控制(LLC)
媒体接入控制(MAC)
物理层 物理层 物理层
媒体 媒体 媒体

媒体

  • 传输媒介
  • 拓扑结构

物理层

  • 信号编码/解码
  • 前同步序列生成/去除
  • 比特传输/接受

媒体接入控制(MAC)

  • 传输时将数据、地址、差错检测字段组帧
  • 接受时,分解帧并执行地址识别和差错检测
  • 监管局域网传输媒体的接入
  • 控制方式
    • 集中式
    • 分布式
  • 处理方法
    • 同步
    • 异步
      • 循环
      • 预约
      • 争用
MAC 控制 目的 MAC 地址 源 MAC 地址 LLC PDU CRC
变长

逻辑链路控制(LLC)

  • 向高层提供接口并执行流量控制和差错检测
  • LLC 寻址
    • LLC 用户:通常为一个高层协议
    • 服务访问点 (SAP):用户地址
  • LLC 服务
    • 不确认的无连接服务
    • 连接模式服务
    • 确认的无连接服务
  • LLC 协议
DSAP SSAP LLC 控制 信息
1+7 1+7 8/16 变长

网络设备

集线器 (HUB)

工作在物理层,多接口中继器

  • 用星型拓扑实现逻辑上的总线形
  • 每个端口相当于一个中继器,只对物理电信号放大中继
  • 首位集线器(HHUB)->中间集线器(IHUB)

网桥

工作在 MAC 层

  • 连接使用相同 MAC 协议的局域网
    • 不改变帧的内容与格式
    • 需要足够缓存空间
    • 具有寻址能力和路由选择功能
    • 一个网桥可以连接多个局域网
  • 路由选择
    • 固定路由选择
    • 生成树算法 (IEEE 802.1)
      • 帧转发:为每个端口维护转发数据库
      • 地址探索
      • 生成树算法
    • 源站路由 (IEEE 802.5)

交换机

工作在 MAC 层

  • 集线器的全双工版本
  • 与网桥的区别
    • 网桥软件处理,交换机硬件处理
    • 网桥一次一帧,交换机并行处理
    • 除了缓存(存储转发交换机),还有直通式交换机

路由器

工作在网际互联层

虚拟局域网 (VLAN)

  • 单播寻址
  • 广播寻址
    • 广播域
      • 用路由器隔离
      • VLAN:不受物理位置约束构成的广播域

随机接入协议

ALOHA

发送$\rightarrow$等待确认$\rightarrow$超时重传

  • 信道最大利用率约 18%
  • 时隙 ALOHA:所有传输只允许在时隙的边界处开始,37%
  • 无法利用局域网和分组无线网的一个重要性质:帧的传播时延小于传输时延
    • 小的传播时延提供更好的网络状态反馈信息

CSMA (载波监听多点接入)

监听信道$\rightarrow$发送$\rightarrow$等待确认$\rightarrow$超时重传

  • CS(载波检测):判断是否有AM/FM信号
  • LBT: Listen Before Talk
  • 监听算法
    • 非持续CSMA:忙则等待一段时间,该时间长度从一个概率分布中获得
    • 1持续协议:忙则持续监听,空闲立即传输
    • $p$持续CSMA:空闲则有$p$概率直接传输,否则等待一段时间
  • 缺点:两个被破坏帧的传输时间内信道无法使用

CSMA/CD (带冲突检测的载波监听多点接入)

  • 1持续 CSMA + 二进制指数退避
  • 检测冲突的时间不超过端到端传播时延两倍

二进制指数退避(BEB)

检测到冲突后,节点停止传输,发送干扰序列(JAM序列),之后进行backoff,完成之后可以尝试再次重传

  1. 基本退避时间一般为端到端的往返时间 $2t$(冲突窗口或争用期)
  2. $k=\min($冲突次数$,10)$
  3. 从离散的整数集合$\{0,1,2,……,(2^k-1)\}$中随机的取出一个数$r$,等待时延$2tr$
  4. 当冲突次数超过$16$次后,发送失败,丢弃传输的帧,发送错误报告。

CSMA/CA (带冲突回避的载波监听多点接入)

  • IFS(帧间间隔): SIFS,PIFS,DIFS
  • 物理载波监听:信道忙则等待 IFS 时间
    • 能量检测
    • 载波侦听
  • 虚拟载波监听:NAV>0则NAV减一
  • 算法
    • CSMA: 若空闲则等待 IFS 时间后再次检测频道是否空闲
    • CA: 进行二进制随机退避,退避过程中若发现信道忙则认为产生冲突,为0则发送
    • ALOHA: 发送完成后 SIFS 收到 ACK,否则超时,等待 EIFS 再次接入信道

IEEE 802.3(以太网)

以太网规约

前同步码 帧开始定界符(SFD) 目的地址 源地址 长度/类型 MAC客户数据(包含填充码) 帧检验序列 扩展
$7*8$ $1*8$ $6*8$ $6*8$ $2*8$ $46\sim1500/1540/1982*8$ $4*8$
01交替序列 10101011 基础帧,Q标志帧,包装帧

数据率(Mbps)|信号编码方式|最大网段长度(百米)

10Mbps 100Mbps 1000Mbps 10Gbps
10BASE5 同轴电缆($50\Omega$) 100BASE-TX 2对STP/5类UTP 1000BASE-SX 多模光纤 10GBASE-S 多模光纤(300m)
10BASE2 同轴电缆($50\Omega$) 100BASE-FX 2根光纤 1000BASE-LX 多模光纤 10GBASE-L 单模光纤(10km)
10BASE-T 无屏蔽双绞线 100BASE-T4 4对3/4/5类UTP 1000BASE-CX 屏蔽双绞线 10GBASE-E 单模光纤(40km)
10BASE-FP 850nm光纤对 1000BASE-T 4对5类UTP 10GBASE-LX4 单模/多模(10km)

IEEE 802.3 100Gbps 规约

  • 多通道分发:物理链路多条并行
  • 物理媒体附件子层(PMA):物理层上,数据链路层下
  • 虚通道:物理媒体附件子层的通信通道

IEEE 802.1Q VLAN 标准

  • VID: 1~4094
  • TCI(标签控制信息):802.3 MAC帧长度/类型=0x8100,则有两个八位组的 TCI字段
用户优先级 规范格式指示 VLAN标识符
3bit 1bit 12bit

局域网数字信号编码

运用 编码方式 Remark
4B/5B-NRZI 100BASE-X 4比特编码为5个码比特+NRZI 光纤上高效,双绞线上信号能量太过集中,产生不利辐射
MLT-3 100BASE-TX 4B/5B+NRZ+扰码+扰码后的比特流用 MLT-3 编码
8B6T 100BASE-T4 每个8比特映射到6个三进制符号上
8B/10B 光纤通道与千兆位以太网
64B/66B 10Gbps 100Gbps

IEEE 802.11 (无线局域网,WiFi)

参考资料:知乎

术语
控制模块(CM) 含有网桥/路由器功能,无线局域网接口
用户模块(UM)
接入点(AP) 任何具有站点功能并能向建立连接的站点提供经过无线媒体及接入分发系统的实体
基本服务集(BSS) 单个协调功能所控制的站点集合
协调功能(coordination function) 判断在BSS内运行的节点何时允许传输,何时能够接收 PDU 的逻辑功能
分发系统(DS) 连接多个BSS以及综合局域网,形成ESS
扩展服务集(ESS)
MPDU MAC协议数据单元
MSDU MAC服务数据单元
站点(STA) 任何包含了 IEEE 802.11 MAC层和物理层的设备
WiFi联盟 Wireless Fidelity
功能 服务
分发报文 分发,综合,MSDU交付
关联 关联,重建关联,取消关联
接入与保密 鉴别,取消鉴别,保密

IEEE 802.11 MAC层

分布式协调功能(DCF)

低端子层

  • CSMA/CA
  • 子模式(原子性)
    • 两帧交换:(源)数据帧,(终)ACK
    • 四帧交换(解决隐藏终端问题):(源)RTS,(终)CTS,(源)数据帧,(终)ACK
    • threshold 控制模式转换:采用小的数据包碰撞,来避免大的数据包碰撞(如 2347Bytes)

点协调功能(PCF)

可选子层,基本无产品

  • 中央轮询主控器(点协调器)进行轮询,与 DCF 兼容工作

MAC 帧

帧控制 持续时间 Address1 Address2 Address3 序号控制 Address4 QoS 控制 高吞吐控制 帧主体 FCS
$2*8$ $1*8$ $6*8$ $6*8$ $6*8$ $2*8$ $6*8$

帧控制:Protocal(2)+Type(2)+Subtype(4)+Flag(8)

IEEE 802.11 物理层

标准 802.11a 802.11b 802.11g 802.11n 802.11ac 802.11ad
年份 1999 1999(已淘汰) 2003 2000 2012 2014
最大速率 54Mbps 11Mbps 54Mbps 65~600Mbps 78~2.1Mbpa 6.76
频段 5GHz 2.4GHz 2.4GHz 2.4/5GHz 5GHz 60GHz
技术 DSSS OFDM DSSS,OFDM OFDM SC-OFDM SC-OFDM

WiFi 加密

  • WEP(IEEE 802.11) = RC4 + CRC32
  • WPA(WiFi) = (802.1x + EAP)/Pre-shared Key + TKIP + MIC
  • WPA2(802.11i) = (802.1x + EAP)/Pre-shared Key + AES + CCMP
  • EAP: 算法架构
    • LEAP
    • MD5
    • TTLS
  • 数据传输加密算法:TKIP, AES
  • 数据完整性编码校验算法:MIC, CCMP
  • WPA-PSK 四次握手

IEEE 802.16 (WiMAX,固定宽带无线接入,无线城域网)

美国(Intel)提出,被接纳为3G第四个标准,韩国台湾相继放弃,仅日本在用(wimax2+)

蓝牙

提供通用的短距离无线通信能力,两个蓝牙设备在10m范围内最高720kbps
wifi的主要作用是取代网线,蓝牙的主要作用是取代数据线
IEEE 802.15 无线个人局域网(WPANs),IEEE 802.15.1 为蓝牙协议,现不在使用
蓝牙技术联盟(SIG)维护技术标准

协议体系结构

蓝牙协议栈

  • 微网(piconet):最多8台设备,同一区域可共存10微网
  • 分布网:一个设备科同时为主站或从站
  • 蓝牙射频(蓝牙无线电):2.4GHz
  • 蓝牙基带
    • 跳频(FH):FH-TDD-TDMA, FH-CDMA
    • 物理链路
      • 同步面向连接(SCO):传输有时限的数据(如音频)
      • 异步无连接(ACL)
      • 分组格式:接入码(72)+首部(54)+有效载荷(0~2745)
      • 纠错
        • 1/3编码率 FEC
        • 2/3编码率 FEC
        • ARQ
  • 蓝牙音频
    • 脉冲编码调制(PCM)
    • 连续可变斜率增量(CVSD)
  • 逻辑链路控制与自适应协议(L2CAP):提供无连接与面向连接
  • 服务发现协议(SDP):建立连接
  • 电缆替代协议(RFCOMM):提供虚拟串口

网际协议

术语
互联网 通过网桥和路由器相互连接的通信网络的集合
端系统(ES)
中间系统(IS)
路由器
  • 要求:
    • 提供网络与网络间的链路:至少需要一条物理连接和一条链路控制连接
    • 为位于不同网络上的进程间提供数据的路由选择和交付功能
    • 审计服务
    • 容纳网络间的不同
      • 路由选择
        • 路由表 netstat -nr
      • 数据报生存时间
      • 分片和重装
      • 差错恢复
      • 流量控制
  • 提供无连接操作/数据报服务
    • 不保证交付数据以正确顺序到达
    • 不保证数据全部交付

IPv4

服务

  • 原语:执行的功能
    • 发送原语:请求数据单元的传输
    • 交付原语:通知有数据到达
  • 参数:传递数据和控制信息
    • 源地址,目的地址
    • 协议
    • 服务类型指示,标识,不分片标识符,生存时间,数据长度,数据

IP数据报格式

版本 互联网首部长度 IHL DS ECN 总长度 标识 标志 Fragment Offset Time to Live 协议 首部检验和 源地址 目的地址 选择+填充 数据
4 bits 4 bits 6 2 16 16 3 13 8 8 16 32 32 $<65535*8$
4 以32比特为单位首部长度,最小值为5 区分服务功能 阻塞通知字段 数据报片在源数据报中的位置 TTL TCP=6,UDP=17 因特网检验和

IP地址

分类 格式 默认子网掩码 子网掩码举例
保留 主机部分全零或全一 前缀(网络)(主机) 255.0.0.0 255.192.0.0
A类 0(7)(24) $126$ 网络地址 255.255.0.0 255.255.248.0
B类 10(14)(16) $2^{14}=16384$ 网络地址 255.255.255.0 255.255.255.252
C类 110(21)(8) $2^{21}=2097152$ 网络地址
D类 1110(28) 多播
E类 1111(28) 留用
Private Address 10./172.16~172.31/192.168.0~192.168.255 1个A类地址,16个B类地址,256个C类地址

ICMP 网际控制报文协议

类型 编码 检验和 参数 数据
8 bits 8 16 32
类型 功能
终点不可达;超时;源站抑制 路由器不知道如何到达;生存时间超时或重装超时;流量控制
参数问题,Echo 语法或语义错误
重定向 建议一条更好的路由
回送和回送回答 测试两个实体能否通信
时间戳和时间戳回答 对互联网时延特性采样
地址掩码请求和地址掩码回答 使主机知道所连接的局域网地址掩码

ARP 地址解析协议

将 IP地址映射为子网地址

  • 局域网中每个系统维护一张已知IP与子网地址映射的表 arp -a
  • 找不到时发起 ARP 广播
  • 其它主机监听 ARP,匹配时回复
  • 原始请求中包括发出请求的主机IP和子网地址,其它主机可将次信息复制到本地表

IPv6

IPv6 首部 逐帧选项首部(可选) 路由选择首部(可选) 分片首部(可选) 目的地选择首部(可选) TCP首部(可选) 应用数据
40 bytes variable variable 8 variable 20
逐跳处理 路由选择 分片和重装信息

IPv6 首部

版本 DS/ECN 流标号 有效载荷长度 下一首部 跳数限制 源地址 目的地址
4 bits 6+2 20 16 8 8 128 128
6 为分组做标记 扩展首部+数据单元长度 IPv6首部后类型
    • 源点角度:某一应用实例生成并具有相同传送服务需求的分组序列
    • 路由器角度:相同属性分组序列
  • 任播:一组接口的标识符,交付到最近的一个接口上

IPv6 地址

地址为结点上的接口设置;地址格式 ipv6地址/前缀长度

类型 IPv6表示法
嵌入式IPv4 ::FFFF:x.x.x.x/96
回路 ::1/128
链路本地单播 FE80::/10
多播: FF00::/8
全局单播 其它所有

IPSec

  • VPN(虚拟专用网络):通过相对而言不太安全的网络互相连接在一起
  • 鉴别首部(AH)
  • 封装安全有效载荷(ESP)
    • transport
    • tunnel mode
  • 秘钥交换功能

多播

  • 应用:多媒体,电话会议,数据库,分布式计算,实时工作组
  • 多播产生的通信量小于广播和多次单播:构建生成树

IGMP 网际组管理协议

IGMPv3
IPv6 中整合进 ICMPv6

成员关系查询

类型 最长响应时间 检验和 组地址 Res S QRV QQIC 源数量 源地址
8bits 8 16 32 4 1 3 8 16
一般查询/指明组查询/指明组合源查询 单位:0.1s 0/有效多播地址 1:抑制因收到查询而执行正常计时器更新 非零则包含查询者所用的健壮性变量值 查询者的查询者间隙

成员关系报告

类型 Res 检验和 Res 组记录数量 组记录
8bits 8 16 16 16 包含记录类型,辅助数据长度,源数量,多播地址,源地址和辅助数据

协议独立多播 (PIM)

路由选择协议

稀疏模式 PIM (RFC 2362)

  • 多播组其中一台路哟欧气为集合点 RP
  • 组目的路由器向集合点发送 Join 报文。路由器用单播向该集合点发送,逆路径成为分布树一部分
  • 允许目的路由器用通往源路由器的最短路径树替换共享树(发送Prune)

密集模式 PIM

适用于自治系统内部的多播路由选择,对 MOSPF 的备用协议

  • 归属网络:一个移动结点被分配给的特定的网络
    • 归属代理
    • 归属地址
  • 外地网络
    • 外地代理
    • 转交地址

移动IP(RFC 3344)

让移动设备用户,能够从一个网上系统中,移动到另一个网上系统,但是设备的IP地址保持不变

发现

移动结点使用一种发现过程来识别预期的归属代理和外地代理

  • 利用 ICMP 路由器通告报文
  • 移动结点判断自己是在归属网络还是外地网络
  • 代理通告报文:充当代理的路由器或其他网络设备定期发布带有通告扩展的路由器通告 ICMP 报文

登记

  • 移动结点通过向它希望使用的外地代理发送一个等级请求报文来请求转发服务
  • 外地代理将这个请求转交给移动结点的归属代理
  • 归属代理接受或者拒绝这个请求,向外地代理发送一个登记回答
  • 外地代理将这个回答转交给移动结点

隧道

  • 为了捕获正在归属网络中传播目的为该结点的分组,归属代理需要盗用移动结点身份
  • 封装:归属代理将整个IP数据报放入一个外部IP数据报中
    • IP在IP中的封装(RFC 2003):增加一个完整的新IP首部
    • 最小封装 (RFC 2004):生成新的外部IP首部时,原始IP首部进行修改
    • 普通选路封装 (RFC 1701)

DHCP 动态主机配置协议

  • 动态为主机分配IP地址
  • 客户机/服务器模式,客户机为开机时需要一个地址的任何主机
DHCP 报文
DHCPDISCOVER 客户机用广播找出有效服务器
DHCPOFFER 服务器响应 DHCPDISCOVER,提供配置参数
DHCPREQUEST 广播客户机选择的服务器
DHCPACK 服务器到客户机的报文,携带配置参数和网络地址
DHCPRELEASE 客户机表示放弃对网络地址的租用

路由选择

  • 性能评估标准:代价(时延,吞吐量,跳数),公平性

分组交换网络路由选择

固定式路由选择

为每一对源节点何目的结点选择永久路由;每个结点只需知道路由上第一个结点标识

洪泛

每个结点收到分组后传到除分组到达所经过的链路外其它链路;设置跳数计数器或重复则抛弃

  • 优点:高度稳健
  • 缺点:通信负荷高,安全风险

随机路由选择

为每个输出链路分配一个概率,例如基于数据率 $P_i=\frac{R_i}{\sum_jR_j}$

自适应路由选择

  • 判决条件:故障或拥塞

APPANET 第一代(距离向量,Bellman-Ford)

  • 每个结点维护两个向量:$D_i,S_i$
    • $D_i$: 结点$i$的时延向量,$D_{ij}$ 为从$i$到$j$的最小时延的当前估算值
    • $S_i$: 结点$i$的后继结点向量,$S_{ij}$ 为$i$到$j$最小时延路由的下一个结点
  • 周期性与相邻结点交换时延向量
    • $A$: 相邻结点集合
    • $l_{ki}$: 从$k$到$i$的当前估计时延
    • $D_{kj}=\min_{i\in A}(D_{ij}+l_{ki})$
    • $S_{kj}=\arg\min_{i\in A}(D_{ij}+l_{ki})$
  • 缺点
    • 没有考虑容量
    • 导致振荡状态

APPANET 第二代(链路状态,Dijkstra)

  • 分组中包含时延信息,所有结点维护了网络中各条网络中各链路上的估算时延
  • 每10s交换一次,新信息到达则用 Dijstra 计算路由选择表
  • 缺点:链路上测量的分组时延与链路实际遇到的时延不符

APPANET 第三代

  • 改变代价函数
    • 单排队服务模式:利用率 $\rho=\frac{2(T_s-T)}{T_s-2T}$
    • 服务时间 $T_x$ 为平均分组长度处理链路比特率
    • 平均利用率 $U(n+1)=0.5\rho(n+1)+0.5U(n)$
    • 链路代价为平均利用率的函数

互联网路由选择

  • 自治系统(AS):由一个机构进行管理的一组路由器和网络集合,包含一组使用相同路由选择协议交换信息的路由器
  • 距离向量路由选择
  • 链路状态路由选择
  • 路径向量路由选择

开放最短路径优先协议(OSPF,RFC 2328)

属于内部路由器协议,自治系统内部传递路由选择信息

  • 每个路由器维护一个数据库,反映该路由器掌握的所属自治系统的拓扑结构
    • 顶点:路由器或网络
    • 边:路由器与路由器点对点连或路由器与网络顶点连

边界网关协议(BGP)

属于外部路由协议,不同自治系统

报文类型
Open 实现邻站获取
Update 传输路由信息
Keepalive 确认 Open 及周期性保持邻站可达性
Notification 检测到错误时发送
标记 Length Type 参数
16bytes 2 1
鉴别 报文长度 报文类型 四种类型不同
  • Update
    • AS_PATH: 路由经过的自治系统
    • Next_Hop: 下一跳
    • NLRI: 某自治系统中所有网络列表(由OSPF得到)

运输协议

可靠的按序网络服务

如:面向连接的LLC服务的局域网,面向连接的分组交换网络

  • 寻址:套接字(端口和主机的结合)
  • 复用
    • 上行复用:多个连接复用到单个底层连接
    • 下行复用:单个连接划分为多个底层连接
  • 流量控制
    • 丢弃溢出报文(可靠网络下很不合适)
    • 反压机制
    • 滑动窗口协议
    • 信用量机制
      • 序号(SN)
      • 确认号(AN)
      • 窗口(W)
  • 连接建立/终止
    • 建立:两次SYN
    • 终止:两次FIN

不可靠的网络服务

如:使用IP的网际互联,无确认LLC服务的局域网

  • 按序交付
  • 重传策略
    • 重传计时器
  • 副本检测
    • 最大报文段生存时间
  • 流量控制:信号量机制
    • 持续计时器
  • 连接建立
    • 三次握手
      • SYN i
      • SYN j, AN=i+1
      • SN =i+1, AN=j+1
  • 连接终止
  • 崩溃恢复
    • 包活计时器

TCP

TCP 服务

  • 服务原语:TS->TCP
  • 相应原语: TCP->TS

TCP 首部格式

Source Port Destination Port Seqence Number Acknowledgement Number Data Offset Reserved Flags Window Checksum Urgent Pointer Options
16 bits 16 32 32 4 4 8 16 16 16 option,variable
Telnet=13,HTTP=80,TFTP=69 第一个数据八位组的序号(SYN置位则加一) 希望接受的序号 首部32位字的数量 置1含义见下 信用量分配W 因特网检验和 紧急数据最后一个八位组
Flags Function
CWR 拥塞窗口减少
ECE ECN-Echo
URG urgent point 字段有效
ACK acknowledegment 字段有效
PSH 推送功能
PST 连接复位
SYN 序号同步
FIN 发送者无其它数据

UDP

Source Port Destination Port Length Checksum
16 bits 16 16 16

拥塞控制

  • 理想情况(缓存无限):正比,超过网络容量后为 1
  • 实际情况:无拥塞正比,中等拥塞减缓,严重堵塞降低(丢弃,重传)

拥塞控制技术

  • 反压
  • 阻流分组
    • ICMP 源点抑制
  • 隐式拥塞信令
    • 端系统通过检测传输时延增加和分组的丢弃完成
  • 显示拥塞信令
    • 二进制:拥塞二进制指示
    • 基于信用值
    • 基于速率

通信量管理

  • 丢弃的选择
    • 公平性
    • 服务质量
    • 预留
  • 通信量整形(traffic shaping)
    • 通过减轻分组的堆集,使流量平滑
    • 关注离开交换机的通信量
  • 通信量管制(traffic policing)
    • 判断传入分组是否符合服务质量规约
    • 关注进入交换机的通信量

权标桶

  • 权标补充速率 $R$: 可连续支持的数据率
  • 桶大小 $B$:短时间内允许数据率超过 $R$ 的量
  • 任意时间段 $T$ 内,发送的数量不能超过 $RT+B$
  • 权标生成器以 $R$ bps 向桶中补充权标,到达的分组消耗一定数量的权标进行传输

漏桶

  • 计数器 $X$: 泄露速率为 1 的漏桶
  • 每当有一个分组到达,计数器上升 $I$
  • 使计数器超过最大值的分组违规

TCP 拥塞控制

重传计时器管理

将重传计时器的值设置的比估计值大一点

简单平均

  • 实际往返时延 $\text{RTT}(i)$: 对第$i$个传输的报文段所观察到的往返时间
  • $\text{ARTT}(K+1)=\frac{K}{K+1}\sum_{\text{RTT}(i)}$

指数平均

  • $\text{SRTT}(K+1)=\alpha\text{SRTT(K)}+(1-\alpha)\text{RTT}(K+1)$
  • RFC 793: $\text{RTO}(K+1)=\min(\text{UPBOUND},\max(\text{LBOUND},\beta\text{SRTT}(K+1)))$

RTT 方差估计(Jacobson 算法)

  • 指数平均不能很好处理方差较高的情况
  • $\text{SRTT}(K+1)=(1-g)\text{SRTT}(K)+g\text{RTT}(K+1)$
  • $\text{SERR}(K+1)=\text{RTT}(K+1)-\text{SRTT}(K)$
  • $\text{SDEV}(K+1)=(1-h)\text{SDEV}(K)|\text{SERR}(K+1)|$
  • 重传计时器 $\text{RTO}(K+1)=\text{SRTT}(K+1)+f\text{SDEV}(K+1)$

指数RTO退避

  • 重传时 $\text{RTO}=q\text{RTO}$

Karn 算法

  • 报文超时重传后,收到确认既可能是第一次的 ACK,也可能是第二次的 ACK
  • 不对重传报文测得的$\text{RTT}$更新
  • 发送重传后用指数RTO退避
  • 对后续报文使用 RTO 退避知道收到一个队未重传的报文段的确认为止

窗口管理

慢启动

  • 允许窗口 awnd = min(credit, cwnd)
  • cwnd 拥塞窗口,连接建立时初始化为1,每收到一个确认+1(指数增长)
  • credit 最近一次确认许可的未被使用的信用量

拥塞时动态调整窗口

  • 发生超时时(网络从饱和状态恢复困难)
    • 慢启动门限位目前拥塞窗口一半 ssthresh = cwnd/2
    • cwnd = 1,执行慢启动到 cwnd=ssthresh
    • 之后每过一个往返时延才将 cwnd 加一

快重传

  • 接收到失序的报文段时必须立即为已接收的最近一个按序到达的报文段发出 ACK,在空缺填补完成前需不断发送该 ACK,直到到达
  • 当发送方收到 ACK 时应等待,若持续收到同一报文段的又3个 ACK 则重传

快恢复

  • 当需快重传时,避免慢恢复

显示拥塞通知

  • ECN
    • 00:无能力
    • 01/10:有能力
    • 11:已遇到堵塞
  • 发送方设置ECN=01/10
  • 路由器检测到堵塞,准备丢弃的分组 ECN=01/10,则将该分组IP首部中 ECN 设为11并转发
  • 接收方收到 11,则恢复时在 TCP ACK 中将 ECN-Echo 置位
  • 发送方在下一个发送到接收方的分组中,将 CWR 置位

数据报拥塞控制协议 (DCCP)

  • 拥塞崩溃:各行其道的流量过多且互不考虑
  • TCP友好(TCP 兼容):非TCP协议在遇到拥塞时可以产生与TCP类似行为
    • $T\leq\frac{1.22B}{R\sqrt{q}}$
    • 发送速率 $T$
    • 最大分组长度 $B$
    • 连接上的往返时延 $R$
    • 分组丢弃率 $p$
  • DCCP 运行在 IP 上,原本使用 UDP 的应用程序作为可替代的运输协议
    • 不存在重传,确认字号为收到的最大序列号
    • 三次握手
分组类型
DCCP-Request 握手第一次
DCCP-Response 握手第二次
DCCP-Data
DCCP-ACK 无Data时ACK
DCCP-DataAck
DCCP-CloseReq 关闭请求
DCCP-Close 关闭连接
DCCP-Reset 终止连接
DCCP-Sync
DCCP-SyncAck
源端口 目标端口 数据偏移 CCVal CsCov(检验范围) 检验和 RES 类型 扩展序列号 RES 序列号 可选
16bits 16 8 4 4 16 3 4 1 8 48/28
应用数据开始偏移量 发送方拥塞控制机制使用 检验和检验范围 因特网检验和 分组类型 1则48bits
  • DCCP 拥塞控制
    • 类TCP拥塞控制 CCID 2:宽带利用率最大化
    • TCP 友好性速率控制 TFRC/CCID 3: 平滑性

SDN (Software Defined Network)

利用定义成熟的 API 将网络设备的数据与控制功能分离,集中管理,可编程化
可编程交换机: Google B4 20%->80%

  • 需求
    • 服务器虚拟化应用越来越广泛
    • 流量要求灵活
    • 企业员工越来越多使用移动设备访问,应对资源、QoS和安全性要求
SDN 体系结构 功能
应用平面 云端管理,业务应用,SDN应用
控制平面 流量工程,路由选择,移动性
数据平面 路由器,分组交换机等网络设备
  • SDN 域
    • SDNi 协议
  • Networking Operating System
    • OC-Y
    • SONiC (Software for Open Networking in the Cloud) (Microsoft)

OpenFlow (ONF)

在MAC层仅支持以太网,在上层支持各种协议和网络服务

OpenFlow 交换机

  • 动作:系列动作构成动作集
    • Output:转发分组到指定端口
    • Set-Queue:设置队列ID
    • Group:使用指定的组来处理分组
    • Push-Tag/Pop-Tag: 为VLAN或MPLS 分组推进货弹出一个标签
    • Set-Field: 通过字段的类型来标识各种不同的Set-Field动作
    • Change-TTL: 修改分组中的TTL值
  • 流表: 传入的分组与某个特定的流相匹配,并指明分组应当执行什么功能
    • 流表项
      • 匹配字段
        • 传入端口:端口标识符
        • 以太网源和目的地址
        • IP协议号,IP源地址和目的地址
        • TCP源端口和目的端口
        • UDP源端口和目的端口
      • 优先级
      • 计数器
      • 指令
        • 引导分组通过流水线:Goto-Table指令引导分组到达下一个表
        • 对分组执行动作:分组与表项匹配时,可能会对该分组进行某些操作
        • 更新动作集
        • 更新元数据
      • 超时
      • Cookie
    • table-miss 流表项
  • 流水线:多个流表组成
  • 组表:流表可能将流引导到组表
  • 计量表:在流的基础上触发各种性能相关动作

OpenFlow 协议

发生在 OpenFlow 控制器和 OpenFlow 交换机间的报文交换

  • 从控制器到交换机的
  • 异步的
  • 对称的

QoS

Y.1291 框架

数据平面

  • 队列管理算法:适当的时候丢弃分组来管理分组队列
  • 排队和调度算法
  • 拥塞避免
  • 分组标记
  • 通信量分类
  • 通信量管制
  • 通信量整形

控制平面

  • 准入控制
  • QoS路由选择
  • 资源预留

管理平面

  • 服务级别协约
  • 通信量度量和记录
  • 通信量恢复
  • 策略

服务级别协约 (SLA)

网络提供者与客户之间的一份合约,规定向客户提供的具体服务内容

  • 对将要提供的服务本质的描述
  • 希望获得的服务性能级别
  • 对服务级别的监视和报告处理过程

综合服务体系结构 ISA (RFC 1633)

  • 尽最大努力服务机制
    • 路由选择算法
    • 分组丢弃
  • 流:由相关IP分组构成的一个可区分的分组流,它是由单个用户活动产生的,并且要求相同的服务质量
  • ISA功能
    • 路由选择算法
    • 丢弃策略
    • 准入控制
    • 排队策略
      • 公平排队策略
      • 加权公平排队
  • ISA 服务类型
    • 保证服务
      • 提供保证的容量级别或数据率
      • 对排队时延指明上限
      • 没有排队损失
    • 受控服务
      • 和在网络无负载条件下雨尽最大努力服务相似
      • 排队时延不会明显超过某个最小传输时延
      • 几乎没有排队丢失
    • 尽最大努力服务

RSVP 资源预约协议 (RFC 2205)

  • 接受者发起预约
  • 软状态:无连接的方法,预约状态是缓存在路由器中的信息,由终端系统装载并周期性地刷新
  • 会话:目的IP地址+IP协议标识符+目的端口
  • 流描述符:目的端系统发起的预约=流规约+过滤器规约
  • 流规约:指明了所希望的服务质量=服务类别+RSpec(定义QoS)+TSpec(描述数据流)
  • 过滤器规约:请求预约的分组集合=源地址+UDP/TCP源端口

区分服务 (DS, RFC 2475)

  • DS 码点 (6bits):
    • xxxxx0:留作标准设置使用
      • 000000:默认分组类别,尽最大努力转发
      • xxx000: 为向下兼容 IPv4 保留,提供至少等同于 IPv4 优先级功能提供的服务
    • xxxx11:留作实验或本地使用
    • xxxx01:将来可能分配
  • 每跳行为(PHB)
    • 快速转发
    • 确认转发

MPLS 多协议标记交换

  • 用来提供面向连接的且具有类似区分服务所提供的服务特征的QoS,支持流量管理以提高网络吞吐量,并保持基于IP组网方案的灵活性(2.5层)
    • 服务质量支持
    • 流量工程:动态地定义路由,在需求已知的情况下规划资源投入,优化网络的使用之类的能力
    • 支持虚拟专用网络
    • 多协议支持
术语
标记交换路由器 Label Switching Router LSR
转发等价类 Forwarding Equivalence Class FEC 一组以相同方式转发的分组
标记交换通路 Label Switched Path LSP 一定特定的FEC的所有分组经过一个或多个LSR的路径
标记信息库 Label Information Base LIB LSR用以指明一个分组如何被处理的表
MPLS 域 一个相互连接的支持MPLS路由器的集合
  • 标记
    • 标记紧跟在数据链路层首部后面(栈顶),但在任何网络层首部之前(栈底)
标记值 流量类别 (TC) 栈底比特(S) TTL
20bits 3 1 8
仅有本地意义20比特,0~15保留 栈底置1

LDP 标记分发协议 (Label Distribution Protocal, RFC 5036)

  • 报文类型
    • 发现:LSR周期性发送 Hello 报文指示存在
    • 会话建立和维持
    • 通告:创建、更改和删除 FEC 标记映射
    • 通知报文
      • 差错通知
      • 建议通知
  • LDP 报文 = 首部+多个报文
  • 首部
版本 PDU 长度 LDP 表示符
1 标志 LSR 的唯一性
  • 报文
U比特 报文类型 报文长度 报文ID 必选参数 可选参数
指示如何处理一个位置类型的报文(转发或丢弃) 识别特定报文类型

VPN (基于MPLS)

  • 客户边缘(CE):连接到 MPLS 网络的客户设备
  • 提供者边缘(PE):MPLS 边缘路由器
  • 附着电路(AC):CE和PE 间工作在链路层的链路
  • Layer 2 VPN(L2VPN):基于链路层地址
  • Layer 3 VPN(L3VPN):基于IP地址

应用层

电子邮件

因特网邮件体系结构(RFC 5598)

  • MUA(Message User Agents) [SMTP->
  • MSA(Message Submission Agent) [SMTP->
  • MTA(Message Transfer Agent) [SMTP->
  • MTA [SMTP->
  • MDA(Message Delivery Agent) [SMTP->
  • MS(Message Store) [POP/IMAP ->
  • MUA

SMTP 简单邮件传输 (RFC 821)

  • 25号端口
  • 报文:报文文本(RFC 822 首部+报文主体)+邮件目的地址列表
  • RFC 822

    Date: Mon, 10 Mar 2008 10:37:17(EDT)
    From: "William Stallings"<ws@host.com>
    Subject: xxxx
    To: Simith@Other-host.com
    Cc: Jones@Yet-Another-Host.com
    
    Hello, World!
    
  • 不能传输二进制对象,不能传输各国语言文本,可能拒绝超过一定长度的报文

MIME

  • 添加5个在 RFC 822 首部中出现的报文首部字段
首部字段
MIME-Version 必选 1.0
Content-Type 必选 报文主题包含的数据
Content-Transfer-Encoding 必选 报文主体的转换类型
Content-ID 可选 唯一标识 MIME 报文实体
Content-Description 可选 主体对象的简单描述
传送编码
7比特 所有数据都是短行ASCII字符
8比特 每一行都短,但可能是非ASCII
二进制
x-token 非标准编码
quoted-printable 如果编码的数据大多数是ASCII文本,编码后基本可读
base64

quoted-printable

  • 普通的8比特标识法:字符使用等号加两位数字
  • 文字表示法:除=,33~126内字符都使用 ASCII 字符形式表示
  • 空白:除行尾空格,9,32的八位组表示制表符和空格;行尾空白用普通的8比特标识法表示,解码时删除
  • 换行:RFC 822换行(即回车+换行组合)
  • 软换行:编码后行大于76,在第75个位置或此前插入一个软换行(3D0D0A 等于加回车换行符)

base64(radix-64)

  • 65个可打印字符组成,其中之一用于填充,共64有效字符
  • 每6比特为一组,映射到一个字符

POP (POP3,RFC 1939)

  • 端口110,TCP连接
  • 认证状态->事务状态->更新状态

IMAP (IMAP4,RFC 3501)

  • 客户端可以有多个远程邮箱,可以检索
  • 可以为邮件下载指定规则
  • 可以将副本复制到客户端

域名系统 (DNS, RFC 1034,1035)

  • 域名:从右到左,从顶向下
  • 顶级名管理:互联网名称与数字地址分配机构(ICANN)
  • 资源记录格式
域名 类型 类别 生存时间 Rdata字段长度 Rdata
资源记录类型 协议族(如IN) 描述资源
资源记录类型 描述
A 一个主机地址,将一个系统名字映射为 IP
AAAA 同A,用于 IPv6
CNAME 指定一个主机的别名,将其映射为其规范名字
HINFO 主机信息
MINFO 将一个邮箱或邮件列表名映射为主机名
MX 邮件交换
NS 域名服务器
PTR 域名指针
SOA
SRV
TXT
WKS
  • 域名查询
    • 用户程序请求某个域名的 IP 地址
    • 本地主机汇总的解析模块箱同一个域中的本地域名服务器提出请求
    • 若在则返回,否则查询其它可用域名服务器,得到后保存在高速缓存
    • 用户程序得到 IP 地址或出错警告报文
  • 服务器等级:根级,顶级域,二级域,子域
    • 根级 .
      • IPv4: A~M 13个
      • IPv6: 25个(雪人计划)
  • 服务器类别
    • 权威DNS:保存相应域名信息
    • 递归DNS(local DNS):缓存+递归的查询根、顶级域、二级域直到获得结果返回用户
      • 公共DNS:对外一个IP,为所有用户提供公共的递归查询服务
      • 递归查询
      • 迭代查询
    • 转发DNS:如果本地的缓存记录中没有相应域名结果时,其将查询请求转发给另外一台DNS服务器
  • DNS 报文
    • 首部区
      • 标识符
      • Query/Response
      • Opcode
      • Authoritative Answer
      • Truncated:若是,则使用TCP重新请求
      • Recursion Desired
      • Recursion Avabilable
      • Response Code
      • QDcount: 询问区中表项数
      • ANcount: 回答区中表项数
      • NScount: 管理机构区中表项数
      • ARcount: 附加记录表项数
    • 询问区
      • 域名
      • 查询类型
      • 查询类别
    • 回答区:包含回答的资源记录
    • 管理机构区:指向一个权威域名服务器
    • 附加记录区

HTTP 协议

术语
无状态 每个事务都独立进行
用户代理进程 发起请求的客户进程
源服务器 期望得到资源的所在服务器(如Web服务器)
代理服务器 转发的代理:安全中介,不同版本的HTTP
网关 安全中介,非HTTP服务器
隧道
  • Full-Request/Response = Request/Response-Line+(General-header|Request-Header|Entity-Header)+CRLF+(Entity-Body)

General Header

Cache-Control Connection Date Forworded Keep-Alive MIME-Version Pragma Upgrade
缓存机制 数据生成的日期和时间

请求报文

  • Request Line = Method 空格 请求URL 空格 HTTP版本 CRLF
请求方法
GET
HEAD
POST
PUT

响应报文

  • Status Line = HTTP版本 空格 状态码(三位十进制) 空格 原因短语 CRLF
状态码分类
Informational 请求已被接受,响应无伴随实体
Successful 请求成功接受,有实体
Redirection 要完成这个请求,需要执行进一步动作
Client Error 请求无法被实现或有语法错误
Server Error

实体

  • 实体首部
  • 实体主体 = Transfer-Encoding(Content-Encoding(Content-Type(Data)))

实时通信量

  • 时延抖动:一次会话汇总分组经历的时延变化的最大值
  • 常见的实时通信量
    • 连续的数据源
    • 断续源:具有沉默间隙的话音源
    • 变化的分组尺寸:压缩的视频源
  • 软实时应用:容忍部分数据的丢失
  • 硬实时应用:不允许丢失
  • VoIP:基于 IP 的网络传输话音

SIP 会话发起协议 (RFC 3261)

  • 客户:发送 SIP 请求,接受 SIP 响应的网络元素
  • 服务器:接受请求,提供服务的网络元素
  • SDP 会话描述协议:描述会话内容
    • 媒体流
    • 地址
    • 端口
    • 载荷类型
    • 开始和结束时间
    • 发起者

RTP 实时运输协议 (RFC 3550)

  • 实时分布式应用:一个源点以恒定速率生成数据流,而在一个或多个终点上必须以相同恒定速率想某个应用交付该数据
  • 适用于软实时通信
  • 应用级组帧
  • 综合层处理
    • 相邻层可以紧耦合,实现这可以通过此在这些层之间自由地实现特定的功能

RTP 数据传输协议

  • 一次会话由以下元素定义:RTR端口号,RTCP端口号,参与者的IP地址
  • RTR 中继类型
    • 混合器
    • 转换器
Version Padding * Extension CSRC Count Marker Payload Type Sequence Number Timestamp Synchronization Source Identifier Contributing Source Identifier
2bits 1 1 4 1 7 16 32 32 32n
2 尾部是否有填充八位组 是否有扩展首部 CSRC 数量 RTP 格式(RFC 3551) 唯一标识符 标识出载荷的贡献源,由混合器提供

RTCP RTP控制协议

  • 功能
    • QoS 和拥塞控制
    • 标识
    • 会话大小的预估和裁剪
    • 会话控制
  • 分组类型
    • 发送方报告
    • 接收方报告
    • 源描述
    • BYE
    • 特定于应用的分组

网络安全

Requirement

  • CIA triad
    • Confidentiality
      • Data confidentiality
      • Privacy
    • Integrity
      • Data Integrity
      • System integrity
    • Availability
  • Authenticity
  • Accountability

Threats

Threat consequence Thread Action
Unauthorized Disclosure Exposure,Interception,inference,Intrusion
Deception Masquerade,Falsification,repudiation
Disrupction Incapacitation,Corruption,Obstruction
Usurpation Misappropriation,Misuse
Availability Confidentiality Integrity
Hardware denying service
Software Programs deleted unauthorized copy of software working program modified
Data Files deleted unauthorized read files modified, new files fabricated
Communication Lines Messages destroyed Messages read Messages modified

Intruders

  • Masquerader: An individual who is not authorized to use the computer and who penetrates a system’s access controls to exploit legitimate user’s account
  • Misfeasor: A legitimate user access authorized data or programs
  • Clandestine user: An individual seizes supervisory control of the system

Malicious software(malware)

Name Description
Virus Malware that, when executed, tries to replicate itself into other executable code; when it succeeds the code is said to be infected. When the infected code is executed, the virus also executes.
Worm A computer program that can run independently and can propagate a complete working version of itself onto other hosts on a network.
Logic bomb A program inserted into software by an intruder. A logic bomb lies dormant until a predefined condition is met; the program then triggers an unauthorized act.
Trojan horse A computer program that appears to have a useful function, but also has a hidden and potentially malicious function that evades security mechanisms
Backdoor ANy mechanisms that bypasses a normal security check
Mobile code Software that can be shipped unchanged to a heteorgeneous collection of planforms
Spammer programs Used to send large volumes of unwanted e-mail
Flooders Used to attack networked computer systems with a large volume of traffic to carry out a DoS attact
Keyloggers
RootKit
Zombie, bot Program activated on an infected machine that is activated to launch attacks on other machines.
Spyware
Adware

SSL and TLS

provide a reliable end-to-end secure service

SSL (Secure Socket Layer)

  • IP->TCP->SSL Record Protocol->SSL Handshake Protocol/SSL Change Cipher Spec Protocol/SSL Alert Protocal/HTTP
  • SSL Connection: peer-to-peer relationshiops that are transient
  • SSL Session
    • an association between a client and a server
    • created by the Handshake Protocal
    • define a set of cryptographic security parameters, which can be shared among mutiple connections
  • Change Cipher Spec Protocol
    • cause the pending state to be copied into the current state, which updates the cipher suite to be used on this connection.

SSL Record Protocol

  • Confidentiality: Handshake Protocol defines a shared secret key used for symmetric encryption of SSL payloads
  • Message integrity: Handshake Protocol defines a shared secret key used to form a message authentication code (MAC)
  • Process: fragmentation -> compression -> add MAC -> Encrypt -> Append SSL Record Header
Content Type Major Version Minor Version Compressed Length
8 bits 8 8 16
higher-layer protocol major version of SSL (3 for SSLv3) (0 for SSLv3) max is $2^14+2048$

Handshake Protocol

  • Phase 1: ClientHello
    • Version
    • 1st Random: 32-bit timestap + 28 bytes generated random number
    • Session ID
    • CipherSuite: a list that contains the combinations of crytographic algorithms supported by the client, in decreasing order of preference
    • Compression method: a list of the compression methods that client supports
  • Phase 2: SeverHello
    • send certificate from CA
    • send 2nd Random
    • wait for a client response
  • Phase 3: Certificate Verify
    • verify server’s certificate
    • 第三个随机数,该随机数用服务器公钥加密,防止被窃听
    • 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送
    • 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验
    • ChangeCipherSpec
  • Phase 4: Server Finish

TLS (Transport Layer Security, SSL3.1, RFC 2246)

  • TLS Record -> TLS Handshake

证书

  • 数字证书认证机构 Certificate Authority(CA)
    • 主流机构:Symantec,GeoTrust,TrustAsia,Comodo,DigiCert,GlobalSign,Let’s Encrypt
  • SSL 证书验证级别
    • DVSSL 域名型证书
    • OVSSL 企业型证书
    • EVSSL 增强型证书

组织机构

ITU (International Telecommunication Union)

分支字母.数字

IEEE (Institute of Electrical and Electronics Engineers)

  • IEEE Computer Society 学会
    • LMSC Committee 802委员会
      • 802.11 工作组
        • 802.11a 任务组

IETF (Internet Engineering Task Force)

  • RFC(Request For Comments)

物理设备架设公司

国家
移动,电信
NTT
AT&T

历史产物

X.25

第三层协议,面向连接,被淘汰

帧中继 (Frame Relay)

X.25 去掉校验就是帧中继

  • 使用光纤作为传输介质
  • 帧长度可变,允许最大帧长度在1600B以上

kernel bypass

DPDK (Intel)

RDMA

其它

  • 优化:Probability(Workload)+HW+SW(Schedule)
  • cross layer: App-System-Storage+Network
  • 三大小强
    • PCIe
    • Ethernet
    • TCP/IP