Review of Computer Network
计算机网络复习
应用层
好处:
- 屏蔽底层细节
- 抽象
- 提供额外的功能
Socket编程
- 进程通过socket完成网络通信
- 真正的并发是开很多socket(单socket多进程要冲突控制)
组织架构
- 客户/服务器(C/S)方式
- 对等(P2P)方式
协议
WWW
- Web页面(html):包含到多种对象的链接
- Web对象:可以是图片,音频,视频等
- 静态对象:多媒体,css
- 动态对象:交互信息,如注册信息等
- 对象用URL编址
- 动态Web:用CGI协议等,前后端分离,数据库+脚本
HTTP
- 缺省使用TCP的80端口
- 无状态协议
- 不同标准
- HTTP/1.0: 无状态,非持久连接
- HTTP/1.1: 支持长连接,流水线机制和断点冲脸
- HTTPS: 加入TLS保证安全
- HTTP/2.0: 提高带宽利用率,降低延迟,服务端可以主动推送消息确定存活
- 服务过程:三次握手,四次分手
- 请求报文结构
- 开始行 (请求叫请求行,响应叫状态行)
- 方法:GET,POST(提交数据)
- 版本
- URL / 状态码
- 200 OK
- 301 MOVED
- 400 BAD REQUEST
- 404 NOT FOUND
- 505 HTTP VERSION NOT SUPPORTED
- 首部行:用key: value记录控制信息
- 实体主体
- 开始行 (请求叫请求行,响应叫状态行)
- 缓存:浏览器缓存和代理缓存
- 可通过询问原始服务器保证副本一致
- Cookie:存储在用户主机,保存服务器发来的信息
- 只保存文本,不被执行
DNS
- 提供域名和ip的转换
- 网络层服务,但以应用层方式实现
- 采用层次结构
- 下层服务器没有数据的时候就往上层问
- 根服务器和顶级域服务器不一定有数据,但二级域服务器一定有其管辖区的数据
- 管辖区可能小于管辖域(所有使用当前级别域名的域名)
- 使用UDP端口53:减少开销
- 域名查询方式
- 递归查询(代替询问者查询):主机向本地服务器
- 迭代查询(返回新服务器的IP):本地服务器向更上级服务器
- 先通过递归查询到本地域最顶层,在从根往下迭代查询
- 报文:基础结构,问题,资源记录
- 不安全:所有流量明文传输,没有身份验证机制和签名
- 通信链路窃听
- 服务器收集
电子邮件
- 基本架构:用户代理->传送代理
- SMTP:传送邮件
- 不包括认证
- 明文
- 只能发ASCII
- POP3:接收邮件
- 拉操作(SMTP一直需要目标在线)
- IMAP:接收邮件
- 更加复杂,维护文件夹(POP3删除)
- 用户状态信息,可以访问邮件一部分
P2P
- 去中心化
- 核心问题:peer索引
- 中心化索引
- 单点故障
- 性能瓶颈
- 洪泛索引
- 找不到就直接往所有邻居发询问
- 信息太多,可扩展性有限
- 混合索引
- 层次化,超级节点间flooding
- 中心化索引
- BitTorrent
- 一个实际的P2P协议
- 可能自私退出
- 优化策略:
- 找罕见的块下载
- 找速度匹配的peer
- 投入越多回报越高
- 问题多:速度慢,版权,不共享,恶意节点
- 分布式哈希表
- 不需要中心化就能查询数据在哪
- Chord
- 顺时针排,key由下一个顺时针的peer存储
- 问题:负载均衡/能力不一样
- 可以划分更多虚拟节点
RTSP, RTP, RTCP
- 用于流媒体传输的控制协议
- 服务质量(平滑性,画质等)很重要
- RTP
- 提供实时传输,但没有任何保证
- 不对数据块做任何处理
- RTSP
- 多媒体播放控制
- 控制暂停继续,前进后退等
- RTCP
- 和RTP配合
- 保证服务质量,同步等
传输层
- Socket是应用层和传输层间的接口
- 端口号:16bit
- 熟知端口:0-1023
- 注册端口:1024-49151
- 私有或动态端口:49152-65535
- 复用分用
- 复用:打包将不同端口的东西一起传送
- 分用:来自不同端口的包送到不同socket
UDP
- 不包含任何保证和流量控制
- 交付的套接字只和报文中目的端口号和IP有关,和源没关系
- 有边界,以报文为单位
- 可选检查报文完整性
- checksum:16bit和取反(checksum=0)
- 无发送缓冲区,有接收缓冲区
- 发的快,开销小,处理简单
- 适合流媒体等容忍丢包的应用
- 适合以单次请求响应为主的应用
- 或者应用层保证可靠
TCP
- 有连接,套接字和源及目的都有关
- 流传输,没有边界
- 传输触发条件:收到数据,应用程序调用,超时
- 报文结构
- 主要是有seq,checksum,port等
- 重要选项
- 最大段长度
- 窗口比例因子
- 选择重传
- 主要机制
- 建立连接
- 三次握手
- SYN, SYNACK, ACK
- 保证服务器和客户端都在线
- 起始序号不能重叠:时钟
- 四次分手
- 双方各自FIN, ACK
- 保证服务器和客户端都离线
- 优化:两个可以一起发送
- 丢包就重传,多次不行就放弃
- 安全隐患
- flooding发SYN占资源
- TCP端口扫描:通过发SYN或FIN得知端口是否被占用
- 三次握手
- 可靠数据传输
- 一般可靠性
- 重传出错数据包:数据包号seq+ACK
- 计时器防止丢包
- 优化:流水线传输(GBN/SR)
- 滑动窗口限制未确认包上限
- 回退N(GBN)
- 发送端:维护一个计时器,到时间重传所有未确认的
- 接收端:不缓存包
- 优点:减轻接收端负担
- 缺点:增加发送端和信道负担
- 选择重传(SR)
- 发送端:给每个包维护单独的计时器,只重传单个
- 接收端:缓存出错包后的包/乱序包
- 优点:减少重传
- 缺点:缓存,单独的计时器
- SR的窗口大小不能超过seq一半,GBN则不能超过seq大小
- TCP的可靠性
- 定时器和确认方式与GBN类似
- 重发策略和缓存与SR类似
- 减少不必要的重传
- 优化1:超时值的设置-Karn算法
- 移动指数加权平均测量平均RTT
- 由于方差大,加一个安全距离衡量方差
- 只考虑一次发送成功的包
- 发生重传就直接超时翻倍直到上界
- 优化2:快速重传
- 三次重复ACK马上重传
- 优化3:推迟确认
- 接收方可以在收到多个报文后发送延迟确认
- 为了保证可靠,至少每隔一个报文段正常确认
- 上限500ms
- 一般可靠性
- 流量控制
- 发送端控制发送速率,避免接收缓存溢出
- 由于又要可靠又有缓冲区,才存在流量控制(比较GBN/SR和UDP)
- 接受缓存的剩余空间叫接收窗口
- 非零窗口通告
- 接收方在接收窗口为0时告诉发送端
- 由于传输限制(3条件),只能发送端发探测看接收窗口是否为0
- 零窗口探测靠超时
- 接收端返回接收窗口的大小
- 糊涂窗口综合症:不断发小窗口通告并被填满
- 发送方等等再发送:Nagle算法启发式
- 接收方推迟确认且等接收窗口显著增大再说(达到MSS或缓存的一半)
- 拥塞控制
- 流量控制考虑接收端,拥塞控制考虑网络能力
- 大量资源用于不必要重传和被丢掉的包
- 传统TCP不考虑网络层的额外信息,自行推断拥塞
- 发送方利用丢包感知拥塞
- 超时
- 3ACK
- 发送方通过拥塞窗口cwnd限制发送速率
- AIMD:乘性减少,加性增加拥塞窗口大小
- 丢一次包cwnd减半:缓解拥塞
- 过一个RTT将cwnd增大一个MSS:避免震荡
- 调整cwnd
- 慢启动:cwnd太小时候指数级增加cwnd
- cwnd初始为1MSS
- 加性太慢了
- 比没拥塞控制慢。。。
- 直到ssthresh或丢包
- 拥塞避免:cwnd超过ssthresh就线性增长
- 超时:网络传输能力极差
- 3ACK:海绵里的水挤一挤总还有
- Tahoe不区分这两个,直接重新慢启动
- Reno在3ACK的时候进入快速恢复
- 两个算法都是令ssthresh = cwnd/2
- 快速恢复
- 一开始令cwnd=cwnd/2+3, 即cwnd比ssthresh多3
- 继续收到相同的ACK:每次cwnd多MSS
- 新ACK:cwnd=ssthresh然后拥塞避免
- 丢包时:重新开始
- 慢启动:cwnd太小时候指数级增加cwnd
- 吞吐量
- 丢包时窗口大小W,忽略慢启动
- 丢包前吞吐W/RTT,丢包后W/2RTT
- 平均约为0.75W/RTT(分析见图)
- 公平性
- 多个TCP共享同一个瓶颈链路,速度应该相同
- 公平性来自于AIMD(见下图)
- 建立连接
- 拥塞控制改进
- New Reno:快速重传后若还是不行则马上重传第一个未被确认的包
- BIC和CUBIC:更快找到合适的cwnd大小
- BIC使用二分查找逼近Wmax
- 如果有新的Wmax就对称指数找新的Wmax
- 过于复杂
- 不公平(RTT越短cwnd增长越快)
- CUBIC:窗口增长函数只和距离上次丢包时间有关
- 和RTT无关
- 用三次函数逼近BIC曲线
- BIC使用二分查找逼近Wmax
- BBR:以瓶颈链路带宽*往返时间作为目标(不要把缓冲区填满)
- DCTCP:面向数据中心
- 问题:总流量大(incast),端口占用(queue buildup),缓冲区占用(buffer pressure)
- 更精细的窗口
- 交换机:队列长度超N时给之后的包标记ECN
- 接收端:只有出现或消失ECN时直接ACK,否则delay ACK
- 发送端:每个RTT更新cwnd,根据ECN ACK/总ACK数动态调整
- 队列长度稳定且低
QUIC
- TCP存在的问题
- 应用无法修改TCP
- 握手时延大(要三个RTT)
- 队头阻塞(丢包复杂,多路复用慢)
- 架构:基于UDP,替代TCP,TLS和部分HTTP,模块化拥塞控制
- 优势
- 解决了队头阻塞问题
- seq更明确,RTT更精确
- 支持ip/port切换
- 容易部署更新
网络层
- 路由器只存在网络层和链路层
- 多跳传输
- 保证主机间数据传输
- 模型选项
- 面向连接(电路交换)/无连接(分组交换)
- 网络/端系统负责可靠性
- 性能保障/无保障
- Internet:无连接的数据报服务
- 不提供任何服务质量的承诺
- 不提供可靠传输服务
- 网络层关键功能:转发,路由
- 转发
- 数据平面
- 纳秒级电路
- 基于最长前缀规则查询转发表
- 路由
- 控制平面
- 毫秒级算法
- 有多个路由算法按优先级选择
- 转发
协议
IPv4
- 数据报格式
- srcIP, destIP, protocal, checksum等
- 生存时间TTL:每一跳减一
- 分片:由于网络存在最大传输单元MTU
- 途中分片:不允许就需要通过发现机制保证数据报大小小于路径MTU
- 重组:途中或目的端,需要编号,offset等
- ipv4:可以途中分片,只能在目的段重组
- IP地址:每个主机唯一
- 网络地址+主机号
- 同一个网络地址为子网,可以直接链路层传输
- 子网掩码:1为网络地址,0为主机号
- 子网和设备无关,只和接口有关
- CIDR:如128.0.0.0/24
- 同一个CIDR可以进一步切分(地址聚合)
- 同子网直接用MAC交付,否则间接转发(路由)
IPv6
- 用于替代IPv4
- 初始:提供更多合法地址
- 后续:提升服务质量,加快包处理与转发
- 地址长度128bit,以冒分十六进制表示,前导零及连续0000可不写
- 与IPv4包比较
- 固定首部40字节长
- 去除分片字段:不允许途中分片
- 去除校验和
- 扩展头机制
- 可指向下一个扩展头类型(如分段头,逐跳选项头等)
- 或者上层传统协议名
- 兼容IPv4
- 隧道技术:通过将IPv6包(包括头)作为内容在IPv4网络中传播达到兼容(或反过来)
- 翻译技术:报头互相翻译
- 破坏端到端
- 异构地址寻址
- 内嵌IP地址
- 分片问题,影响转发性能
ARP
- 接口存在硬件地址(MAC地址)
- 链路层传输时IP不变,但MAC会变
- 通过ARP获取IP-MAC映射
- 若缓存有则直接使用
- 否则广播ARP query询问对应主机
- 缓存直到超时
- 不安全:可以通过ARP spoofing发大量请求
- ARP无状态,无论是否发过请求都会在收到响应时更新ARP表
- 攻击者可以继续转发收到的IP-MAC对
DHCP
- 获取(申请)IPv4地址
- 基于UDP,服务器使用67端口,客户端使用68端口
- 流程
- 客户端广播DHCP DISCOVER
- 服务器收到DISCOVER返回DHCP OFFER提供一个或多个可用的IPv4地址
- 客户端返回DHCP REQUEST声明一个想使用的IPv4地址
- 服务器发送DHCP ACK
- 也返回缺省路由器IP,DNS服务器IP,子网掩码
- 不安全
- DHCP耗竭攻击:占用所有可用的IPv4地址
- 流氓DHCP:启动虚假的DHCP服务提供虚假配置
NAT
- 私有地址转化为公共地址
- 子网发出的所有包有相同的IP,通过端口号区分
- 功能
- 节省合法地址
- 灵活连接internet
- 保护私密性
- 缺点
- 违反IP模型等
- IP报头不能加密
- 新型应用需要多考虑NAT场景,如P2P
ICMP
- 允许主机或路由器报告差错情况和提供有关异常情况的报告
- 报文类型
- 差错报告
- 询问
- Ping:使用询问报文的回送请求/回答
- TraceRoute:从1开始递增TTL发送ICMP包到目标的不可能端口,返回包的srcIP就是路由器地址;收到端口不可达结束
BGP
- 层次路由
- 避免路由表过多,给不同网络更大管理自由度
- 将网络分成不同自治域,内部随便用,外部用统一的外部网关路由协议
- 唯一正在运行的外部网关路由协议
- 两部分:eBGP和iBGP
- eBGP从相邻的AS获得可达性信息(如AS2, AS3, X指经过AS2,AS3可达X)
- iBGP传输给AS内部节点
- 分享可达性信息时承诺路径可靠
- 网络可能通过eBGP向另一个AS分享路径信息
- 学习到多个路径时通过内部策略选择
- BGP的路径的每个节点是AS级别的
- AS的边界路由器很少
- 不同AS可能有不同的路由策略
- 通过选择性分享路由信息实现
- 不想B到C的路径通过X,X不向B分享到C的路径
广播、组播、选播
- 广播:给所有地址发送同一个包
- 给每个主机发包
- 多目标路由
- 泛洪
- 序号控制泛洪
- 逆向路径转发
- 生成树
- 组播:给组内地址发送包
- 确定组成员
- 生成树
- 选播:给最近的组成员发送包
- DNS
路由
- 可以使用局部,动态的路由
- 但也可以在每个节点都存整体拓扑信息
- 或静态路由
距离向量算法
- 分布式bellman-ford算法
- 每个点存到别的点距离的估计值(距离向量)
- 同时保存所有直接邻居的DV
- 每个点向邻居发自己的距离向量
- 收到DV后更新所保存y的DV并重新计算自己的DV
- 自己DV变化就通知邻居
- 异步,迭代,分布式
- 坏消息导致迭代慢
- 出现无穷大时可能迭代无穷次
- 毒性逆转:若a到c下一跳为b,a将通知b其到c距离为无穷大
- 有效但无法解决一般性的问题
- 发送最多O(nE)条消息,收敛速度不稳定
链路状态算法
- 基于Dijkstra
- 每个节点知道整个拓扑,独立计算
- 流程
- 发现邻居
- 设置到邻居的成本
- 构造最新链路信息
- 分享信息到所有路由
- 计算路径
- 发送O(nE)条消息,收敛速度O(nlogn)或n方
其他网络技术
网络服务质量(QoS)
- 服务时要满足一定指标(抖动,时延等)
- 数据包调度:服务器输出端口决定以何顺序转发
- FIFO(FCFS)
- (加权)公平队列
- 优先级
- 流量工程:提高带宽利用率,避免拥塞
- 流量整形:避免突发流量,控制流速
- 漏桶算法:在出口放一个桶(缓冲区),均匀的出流速,若桶满了就丢掉数据包
- 令牌桶算法:匀速生成令牌,满了丢掉,包到了令牌数目够就发并扣除令牌,否则丢包
- 综合服务:各路由器作资源预留等,对流做分类调度管理
- 很难实现
- 区分服务:通过IP报头信息(DSCP)进行分类处理
- 公地悲剧,报头信息不受控
- 流量整形:避免突发流量,控制流速
面向连接服务
- 虚电路
- 先建立逻辑连接(并非真正的物理连接)
- 并非完全可靠,可能由于链路中某点失效而导致数据完全丢失
- 流程:建立连接,发送数据,释放连接
- 靠虚电路号分组转发
- MPLS(多协议标签交换)
- 在上层支持多种协议(IP,IPv6等)
- 根据包的标签转发
- 路由器可能会修改标签后转发
- 可以构建处理等价类后分标签
- VPN
- 通过隧道技术模拟出点对点专线
- 依赖于加密技术和电子签名技术
- 在VPN网关间加密,不保证VPN网关和主机间
软件定义网络(SDN)
- 传统网络架构缺陷
- 硬件,操作系统封闭不兼容,网络不可编程
- 消息传播效率低
- 网络设备数量不断增加
- 无法做到全局的流量工程
- 局部算法有缺陷
- 是一种理念,并非具体的技术
- 技术要点
- 基于流表的通用转发接口
- 控制平面和数据平面分离
- 中心化控制平面
- 通过远程控制器和路由交互
- 应用程序可编程开发
- SDN的优势
- 数据平面提供开放接口,允许编程
- 中心化控制器:全局网络视角,更简单的网络编程
- 分离数据平面及控制平面,控制器通过南向(北向)接口与交换机(第三方算法)交互
- 数据平面
- 由控制器写入各路由器的流表
- OpenFlow的匹配-动作
- 实例:OpenVSwitch
- 不支持有状态的处理
- 控制平面
- 控制器架构:接口模块,数据库,通信模块
- 通信模块如Openflow协议,使用TCP交互
- 控制器架构:接口模块,数据库,通信模块
数据链路层
- 利用物理层提供的位流服务,提供明确的服务接口
- 在物理相连的节点间进行传输
- 在节点间传输帧
- 不同链路可能采取不同协议,提供不同服务
提供服务
- 服务类型
- 无确认无连接服务:可靠信道,实时通信,如以太网
- 有确认无连接服务:不可靠信道,如802.11无线网
- 有确认有连接:长延迟不可靠
- 成帧
- 字节计数法:差错影响极大
- 带字节填充的定界符(需要escape):效率低
- 带比特填充的定界符:如01111110,五个连续1就填充0
- 物理编码违例:选择的定界符不是正常会出现的编码
- 4B/5B编码:将4bit编码成5bit,剩下的16个编码可以做定界符
- 差错控制
- 差错检测与纠正
- 如传三份数据,有一个错了可以通过另外两份纠正(冗余极大)
- 检错码与纠错码(前向纠错,FEC)
- 典型检错码
- 奇偶校验:所有bit的异或
- 校验和:16bit和取反
- CRC:检查不超过r位错
- 选定r+1位二进制串G作为生成多项式
- 计算G模2除D«r为R一起发送
- 接收端将<D, R>模2除以G,余数为0就通过
- 理论下界
- 为了检查d位错需要设计海明距离至少为d+1的编码,为了纠正则需要2d+1
- 假设要检测单比特错误,m个信息位,r个校验位
- 每个m位信息至少消耗m+r+1个码位
- 即(m+r+1)*2^m <= 2^{m+r}
- 典型纠错码
- 海明码
- 检错码位于2的指数幂位上
- 2^k位置的值是所有二进制表示k位为1的位的值的和
- 检查时若Pa,Pb,Pc出错,出错位为a+b+c
- 海明码
- 流量控制
- 访问控制
- 由于大多使用广播信道,可能同时请求使用产生冲突
- 分布式算法确定谁访问信道
- 信道划分
- TDMA:划分出等长时间片
- FDMA:划分不同频段
- CDMA:划分不同编码
- 静态划分无法应对突发业务,有资源浪费且可能分配不合理
- 平均延迟时间为可发送帧率减到达帧率的倒数
- 随机访问
- ALOHA
- 要发送就马上全速发送,检测冲突并重发
- 纯ALOHA协议:想发就发
- 假设每个站点在单位时间内发送概率为p,发送都在单位时间内完成
- 理论分析知成功概率Np(1-p)^{2(N-1)}->1/2e
- 分隙ALOHA协议:只在时间槽开始时传输
- 冲突只在时间槽开始时发生
- 成功概率翻倍为1/e
- CSMA
- 先听后发,先监听,如果没被占用就发
- 非持续式:监听失败时等一个随机时间再监听
- 减少再次冲突可能性
- 浪费时间
- 1-持续式:持续监听,空闲马上发送
- 如果多个站都在监听必定冲突
- p-持续式:持续监听,空闲p概率发送,1-p概率推迟一个单元
- 冲突检测
- CSMA不能避免由于刚好同时发送和延时导致的冲突
- CSMA/CD:发送时检测到冲突立马停止,等随机时间再监听
- 1-持续式+冲突检测
- 以太网中使用二进制回退,从n-bit数中选(n是碰撞次数)
- 停止传输后发送Jam强化信号
- 需要持续监听2D时间(D是单边延迟)来完全确定没有冲突
- 信道利用率接近1
- ALOHA
- 轮流协议
- 轮询协议:主节点轮流分配使用权
- 轮询昂贵
- 单点故障
- 通知有延迟
- 令牌传递:只有有令牌的才能发送
- 令牌可靠性
- 令牌维护代价
- 位图协议
- 竞争期:在自己的时槽举手要预留资源
- 发送期:按顺序发送
- 无法考虑优先级,但是高负荷时利用率高
- 二进制倒计数
- 编号,高计数有高优先级
- 每个站点发送自己序号中某一位比特
- 有限竞争协议
- 低负荷竞争减少延迟
- 高负荷无冲突法获得高效率
- 轮询协议:主节点轮流分配使用权
局域网
- 不需要网络层技术就能传输的网络
- 实际上等于子网
- 通过MAC地址进行标识
- 大多烧录在硬件上不可更改
- 只和接口有关,和设备无关
- 以太网
- 无连接
- 不可靠
- 使用CSMA/CD
- 二进制指数后退的最大值为10
- 交换
- 集线器:早期使用
- 内部全连通
- 不能扩展增加容量
- 所有端口位于同一冲突域
- 交换机:网桥
- 分割了冲突域
- 可以全双工同时收发
- 可以并行传输
- 理想的交换是透明的:逆向学习
- 通过从某个端口来的包学习MAC地址-端口映射
- 再次收到重置老化时间
- 数据包处理
- 转发:存在表项且端口不一样
- 过滤(丢弃):出入端口相同
- 泛洪:不存在表项或广播
- 交换模式:
- 存储转发:安全但是慢
- 直通交换:快但不安全
- 无碎片交换:接收到前64字节就转发,避免碎片帧但不完全安全
- 集线器:早期使用
- 虚拟局域网
- 不增加新硬件添加新局域网
- 通过交换机配置设置新的广播域
- 基于端口
- 最常用
- 流量隔离
- 动态配置
- 基于MAC地址
- 基于协议
- 基于子网
- 基于端口
无线网络
- 终端不一定在移动,只是没有线
- 可以基于基础设施,也可以自组织
- 核心问题:无线,移动
- 无线:信号弱,干扰,多路径传播
- 隐藏终端:AC互相有障碍听不到,但在B处干扰
- 信号衰减:AC离得太远信号弱,但在B处干扰
- 无法实现边发边听,“说话这么小声还想CSMA/CD?”
- CDMA:通过正交编码减少干扰影响
- 发出时用bit乘以本用户编码
- 接收时算数据和发出用户编码点乘和
- 移动:如何定位主机,保持TCP连接,IP地址等
- 注意无线网络一般有固定IP
- 归属网络:长期不更换,移动设备在其中有永久地址
- 外部网络:移动设备移动后所处的网络,在其中有外部代理,移动设备有转交地址
- 进入外部网络
- 移动设备申请转交地址
- 外部代理通知归属代理转交地址及设备属于自己的网络
- 通信
- 通过路由解决:无法处理大量移动设备
- 通过代理解决
- 间接路由:通信者-归属代理-外部代理-移动设备(直接回复无需代理)
- 对通信者来讲移动是透明的
- 当通信者与移动设备在同一个子网时效率低下
- 直接路由:通信者-外部代理-移动设备(需要先得知转交地址)
- 对通信者不透明
- 再次移动就只能设定锚外部代理进行转发
- 间接路由:通信者-归属代理-外部代理-移动设备(直接回复无需代理)
- 无线:信号弱,干扰,多路径传播
802.11
- 使用CSMA/CA,两种模式都支持
- 无线主机,接入点AP(只在基础设施模式存在)
- 被动扫描:主机监听AP信标帧
- 主动扫描:主机广播探测请求帧
- CSMA/CA
- 有ACK
- 倒计时递减总空闲时间
- 未发送前空闲时间超过DIFS就发送整个帧
- 和CSMA/CD区别:倒计时,DIFS,ACK
- 预约机制
- 发送者发送RTS
- 基站广播CTS
- 发送者开始传输
- 其他人收到ACK后开始预约
- 移动:同一子网下移动IP不变,交换机逆向学习
蜂窝网
- 用户-基站-移动交换中心MSC-公共电话网
- 发展历史
- 2G:完全使用语音网络
- 3G:语音和数据网络并行
- 4G:舍弃语音网络,两个平面分离
- 移动IP:报文间接路由,代理发现,代理注册
- 归属网络为设备订购服务的网络(如中国移动等)
- 同一MSC时可以由MSC进行全局调度
- MSC之间则使用锚MSC
- 4G引入寻呼机制(可能休眠)