计网简答题
CH01
两种描述“因特网”的方式:
- 描述构成因特网的具体构成,包括基本硬件和软件组件;
- 描述为基础设施向分布式应用程序提供的服务。
两种最主要类型的分组交换机:
- 路由器 (routers):用于核心网;
- 链路层交换机 (switches):用于接入网。
套接字接口
一套发送程序必须遵循的规则集合,规定了运行在一个端系统上的应用程序如何请求因特网基础设施向运行在另一个端系统上的特定目的程序交付数据的方式。
网络协议 (network protocols)
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和接收及其他事件所采取的动作。
特点:
- 通信双方交换报文,而不是语句;
- 通信实体是设备。
网络结构的划分
- 网络边缘:主机/端系统、应用程序;
- 接入网络:将端系统物理连接到其边缘路由器的网络,有线或者无线通信链路。
- 网络核心:是由分组交换机和链路构成的网状网络。
接入网 (Access networks)
将端系统物理连接到其边缘路由器的网络。
- 边缘路由器:是端系统到任何远程端系统路径上的第一台路由器。
数据传输方式
-
电路交换:在端系统间通信过程中,创 建电路时就预留了端系统间沿路径通信所需要的全部资 源(缓存、链路传输速率),并会话期间独占这些资源
- 频分复用(FDM):链路的频谱由跨该链路的所有连接共享,为每条经过的电路分配一个划分的子频段
- 时分复用(TDM): 通信时间被划分为固定期间的帧,每个帧又被划分为固定数量的时隙,网络中 建立电路时在各段链路上的每个通信周期(时域)指定一个专用时隙,该时隙用于传输该电路连接的数据。
电路交换缺点:
- 电路交换因为在静默期(slient period)专用电路空闲导致浪费。
- 创建端到端的电路和预留资源是复杂的,需要复杂的信令和协 调沿路径的交换机操作
-
分组交换:将要传送的数据分成一个个单位(分组)。
- 分组从一个路由器传到相邻路由器(hop),一段段传输至目标端;
- 每段采用链路的最大传输能力(带宽)。
分组交换 vs. 电路交换
- 分组交换网不适合实时服务(如电话和视频会议),因为排队时 延导致端到端时延可变、不可预测。
- 分组交换网提供了比电路交换好的带宽共享,比电路交换更简单、 更有效、实现成本低
- 分组交换网适合于对突发式数据传输 :资源共享 , 简单,不必建立呼叫 但是过度使用会造成网络拥塞:分组延时和丢失,对可靠地数据传输需要协议来约束:拥塞控制
物理媒介
分类:
- 引导型
- 非引导型
双绞线:
- 两根绝缘的铜线以规则的螺旋状绞合起来,为减少临近类似 的双绞线的电气干扰
- 在一些特殊的环境下,如化工厂附近,使用外面包裹保护层 的屏蔽双绞线,但质地较硬,不利于布线。
- 大多数情况下,使用无屏蔽双绞线 UTP,广泛用于计算机网 络局域网组网中,灵活易布线,性价比高
同轴电缆
- 由于外层屏蔽层的作用,具有很好的抗干扰性,适于高速率传输
光纤
- 高传输速率
- 长距离传输,100km,光缆信号衰减极低,很难窃听
- 低误码率,不受电磁干扰
- 这些特性使其适用于长途引导型媒体,特别是跨海链路。
无线电信道
- 优点:穿墙、长距离、移动 连接
- 缺点:性能依赖于传播环境 和传播距离
- 同步卫星 近地卫星
分组交换
- 以分组为单位存储-转发方式
- 存储转发传输(store-and-forward transmission): 是指在分组交换机能够开始向输出链路传输该分组的第一个比特之前,必须 接收到整个分组
产生时延和分组丢失的原因:
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头被传输
最大吞吐量:一台路由器能够转发分组的最大速率
瓶颈链路:端到端路径上,限制端到端吞吐的链路
服务( Service):低层实体向上层实体提供它们之间的通信的能力
服务与协议的区别 :
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
服务与协议的联系 :
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
分层的体系结构
- 网络设计者以分层的方式组织协议,以及实现协议的网络硬件和软件:
- 每一层向它的上一层提供服务(service)。
- 每层通过执行该层的某些动作或直接使用下层服务来提供服务。
- 一个协议层能够使用软件、硬件或两者的结合来实现。
- 应用层协议几乎用软件实现;
- 物理层、数据链路层协议通常在网络接口卡(硬件)实现;
- 网络层协议通常由软、硬件混合实现.
- 第n层协议分布在网络的端系统、分组交换机和其它组件
分层的原因:
- 结构化分层易于定义和实现
- 模块化,易于维护和升级
分层的潜在缺点:
- 功能可能在多层冗余,如差错检验;
- 某层功能可能调用其它层提供的信息,分层不彻底.
协议 | 任务 | 信息单位 | |
---|---|---|---|
应用层 | HTTP SMTP FTP DNS | 端系统之间 | 报文 |
传输层 | TCP UDP | 应用程序端点之间传送应用层报文 | 报文段 |
网络层 | IP 路由选择协议 | 主机之间 | 数据报 |
链路层 | 链路层协议 DOCSIS PPP | 整个帧从一个节点到下一个节点 | 帧 |
物理层 | 与实际传输媒体相关 | 一个个比特从一个节点到下一个节点 | 比特 |
CH02 应用层
1. 客户-服务器体系结构
-
服务器:
- 一直运行;
- 固定的IP地址和周知的端口号;
- 可扩展性:通过服务器场或数据中心进行扩展,但扩展性差。
-
客户端:
- 主动与服务器通信;
- 与互联网有间歇性的连接;
- 可能使用动态IP地址;
- 不直接与其它客户端通信。
2. P2P结构
- 无需一直运行的服务器;
- 任意端系统之间可以通信;
- 每个节点既是客户端又是服务器;
- 新节点带来服务能力同时也增加服务请求;
- 主机连接间歇性且IP地址可能变化;
- 难以管理,面临安全性、性能、可靠性挑战。
3. 应用程序开发者控制范围
- 应用层端:对套接字的所有控制;
- 传输层端:仅限于:
- 选择传输层协议;
- 设置最大缓存和报文长度等参数。
4. 应用层协议总结
应用层协议 | 传输层协议 | 备注 |
---|---|---|
HTTP | TCP 默认持久连接 | ASCII码 |
SMTP | TCP 持久连接 | 7位 ASCII码 |
DNS | UDP |
5. HTTP连接类型对比
-
非持续连接:
- 一个对象对应一个TCP连接;
- 下载多个对象需要多个TCP连接;
- HTTP/1.0 使用非持久连接。
-
持续连接:
- 多个对象在一个TCP连接上传输;
- HTTP/1.1 默认使用持续连接。
HTTP 默认使用持续连接,可配置为非持续连接。
6. 使用Web缓存的原因
- 降低客户端的请求响应时间;
- 减少机构内部网络与Internet接入链路上的流量;
- 互联网广泛采用缓存,使较弱的ICP也能有效提供内容。
7. SMTP VS HTTP
- HTTP:拉取 (pull)
- SMTP:推送 (push)
- 二者均为ASCII形式的命令/响应交互,带有状态码;
- HTTP:每个对象封装在各自响应报文中;
- SMTP:多个对象包含在一个报文中。
8. DNS提供的服务
- 主机名到IP地址的转换;
- 主机别名 (Host aliasing):映射 alias names 到规范主机名或IP;
- 邮件服务器别名 (Mail server aliasing):映射邮件服务器别名到规范主机名或IP;
- 负载均衡 (Load distribution):DNS服务器响应IP集合并循环排列以分散请求。
9. 分布式DNS设计的原因
- 单点故障:集中服务器宕机会导致因特网瘫痪;
- 通信容量:单个DNS服务器无法处理所有查询;
- 远距离通信:存在时延、拥塞问题;
- 维护困难:中央数据库过于庞大且需频繁更新。
10. DNS层次数据库
- 根服务器:提供TLD服务器的IP地址;
- 顶级域 (TLD) DNS服务器:提供权威DNS服务器的IP地址;
- 权威DNS服务器:存储公共可访问主机的DNS记录,映射主机名到IP。
- 用户代理:允许用户阅读、回复、转发、保存和撰写报文。
- 邮件服务器:发送和接收邮件,同时还要向发件人报告邮件传送的结果。
- 简单邮件传输协议:是一个推协议,用在发送方邮件服务器和接收方服务器之间。
- 过程:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。
- 原因
- 大大减少对客户请求的响应时间
- 大大减少一个机构的接入链路到因特网的通信量,降低费用
- 大大减低因特网上的 Web 流量,改善了所有应用的性能
- 工作步骤
- 浏览器发送到 Web 缓存器的 TCP 连接,并发送一个 HTTP 请求
- Web 缓存器检查是否存储本地对象副本,如果有,则用 HTTP 响应返回对象
- 如果没有对象,则打开与对象初始服务器的 TCP 连接,发送 HTTP 请求,初始服务器收到请求之后返回对象
- Web 缓存器收到对象之后在本地存储空间存储一份副本,同时保存最后修改日期 Last-Modified首部行,向客户浏览器用 HTTP 响应返回对象副本。
主机向本地 DNS 服务器查询,如果主机所询问的本地 DNS 服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以DNS客户的身份,向根 DNS 服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。根 DNS 服务器也不知道被查询的域名的 IP 地址,作为 DNS 客户向 TLD DNS 服务器继续发送查询请求报文。TLD DNS 服务器继续向权威 DNS 服务器发送查询报文,获得查询域名的 IP 地址之后,依次返回 TLD DNS 服务器,根 DNS 服务器,本地 DNS 服务器,最后返回请求主机。
请求主机与本地 DNS 服务器之间是递归查询,其他交互都是迭代查询。请求主机首先向它的本地 DNS 服务器发送一个 DNS 查询报文。该查询报文含有被转换的主机名。本地 DNS 服务器将该报文转发到根 DNS 服务器。该根 DNS 服务器向本地 DNS 服务器返回相应 TLD 的 IP 地址列表。本地 DNS 服务器再次向这些 TLD 服务器之一发送查询报文。TLD 服务器用权威 DNS 服务器的 IP 地址响应。最后,本地 DNS 服务器直接向该权威 DNS 服务器重发查询报文,权威 DNS 服务器用目标主机 IP 地址响应。
CH03 传输层
1.传输层的作用
- 传输层为运行在不同主机上的应用进程提供逻辑通信。
- 将网络层在两个端系统之间的交付服务扩展到运行在 两个不同端系统上的应用层进程之间的交付服务。
- 并解决两个对等通信实体如何在尽力而为(会丢失或 损坏数据)的因特网上进行可靠的通信。
传输协议运行在端系统
多路分解与多路复用 : 将由网络层提供的主机到主机的交付服务延伸到运行在主机上的应用程序,提供进程到进程的交付服务
- 在发送方主机多路复用:从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装 (该头部信息用于以后的解复用)
- 在接收方主机多路解复用:根据报文段的头部信息中的IP地址和端口号将接收到的报文段发给正确的套接字(和对应的应用进程)
多路复用工作原理
- 主机收到IP数据报
- 每个数据报有源IP地址和目标IP地址
- 每个数据报承载一个传输层报文段
- 每个报文段有一个源端口号和 目标端口号 (特定应用有著名的端口号)
- 主机联合使用IP地址和端口号将报 文段发送给合适的套接字
为什么要有UDP?
- 不建立连接 (会增加延时 )
- 简单:在发送端和接收端没有连接状态
- 报文段的头部很小(开销小)
- 无拥塞控制和流量控制: UDP可以尽可能快的发送报文段
- 应用->传输的速率= 主机->网络的速率
为什么UDP提供了差错检验,而有些链路层协议也提供了差错检验功能?
- 不能确保源端和目的端之间所有的链路都提供差错检验。
- 不能确保报文段在某个路由器内存中存储时不出错。
- UDP提供差错检验,但对差错没有恢复功能。
通用的流水线协议,根据差错的恢复方式不同:
回退N步(GBN):全部重传 累计确认
选择重传(SR): 选择重传 单独确认
GBD优缺点:优缺点
优点:
- 接收方简单,不需要缓存任何失序的数据片,不需 要设置缓存。
缺点:
- 发送方需要设置缓存已发送但未确认的数据片,并维护 窗口的上下边界和nextseqnum。
- 由于失序而丢弃一个正确的数据片后,随后可能需要更 多的重传,包括之前删除的正确的失序数据片。
- 当窗口长度和带宽时延积很大时,单个数据片的错误就 能引起GBN重传大量数据片!导致传输效率大大降低
GBN vs. SR
GBN | SR | |
---|---|---|
发送窗口大小 | (1,2k−1] | (1,2k−1] |
接收窗口大小 | =1,接收方只能顺序接收 发送方:一旦一个分组没有发成功, 如:0,1,2,3,4 ; 假如1未成功,234都发送出去 了,要返回1再发送;GB1 | >1,接收方可以乱序接收 发送方发送0,1,2,3,4, 一旦1未成功,2,3,4,已发送, 无需重 发,选择性发送1 |
确认 | 累计确认 | 选择确认 |
定时器 | 发送端拥有对最老的未确认分组的定时器 当定时器到时时,重 传所有未确认分组 | 发送方为每个未确认的分组保持一个定时器 当超时定时器到时,只是 重发到时的未确认分组 |
第一步:客户端的
TCP
首先向服务器端的TCP
发送一个SYN
报文段。该报文段中不包含应用层数据,但在首部中设置 SYN 标志位为1
,随机选择一个初始序号client_isn
放置在报文段的序号字段中。该报文段被封装在一个IP
数据报中发送给服务器第二步:服务器提取出
SYN
报文段,分配缓存和变量,向客户TCP
发送SYNACK
报文段。在首部中设置SYN
标志为1
,确认号设置为client_isn + 1
,选择初始序号server_isn
设置到序号字段中第三步:客户收到
SYNACK
报文段之后,分配缓存和变量,发送报文,对服务器的允许连接报文段进行确认。因为链接已建立了,设置 SYN 标志为 0三次握手才可以阻止重复历史连接的初始化(主要原因)而两次握手会存在这个问题
三次握手才可以同步双方的初始序列号 两次握手只保证了一方的初始序列号能被对方成功接收,没办法保证双方的初始序列号都能被确认接收。
三次握手才可以避免资源浪费 两次握手会造成消息滞留情况下,服务器重复接受无用的连接请求
SYN
报文,而造成重复分配资源。
TCP与UDP的区别
TCP是面向连接的,UDP是无连接的
TCP是可靠的,UDP是不可靠的
TCP是面向字节流的,UDP是面向数据报文的
TCP只支持点对点通信,UDP支持一对一,一对多,多对多
TCP报文首部20个字节,UDP首部8个字节
TCP有拥塞控制机制,UDP没有
TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区
作用:标识一台主机上的应用进程
位数长度:16 比特
周知端口号:0 — 1023 全局分配(静态分配)
周知端口号的作用:固定保留分配给诸如 HTTP 和 FTP 之类的周知应用层协议来使用
自由端口号:1024 — 65535
管理及分配方式:本地分配(动态连接)。这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(绑定)
超时触发重传存在的问题之一是超时周期可能相对较长。当一个报文段丢失时, 这种长超时周期迫使发送方延迟重传丢失的分组,因而增加了端到端时延。解决方法便是快速重传,如果TCP发送方接收到对相同数据的3个冗余ACK,它 把这当作一种指示,说明跟在这个已被确认过3次的报文段之后的报文段已经丢失。一旦收到3个冗余ACK, TCP就执行快速重传,即 在该报文段的定时器过期之前重传丢失的报文段。
流量控制:是一个速度匹配服务,使得发送方速率与接收方速率向匹配, 不至于导致接收方缓存溢出
拥塞控制:因IP网络拥塞而限制发送方的发送速率。
CH04 CH05网络层
因特网中所有主机和交换设备都有网络层功能
路由选择和转发的主要区别是什么?
转发是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。转发发生的时间尺度很短,因此通常用硬件来实现。
路由选择是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程。路由选择发生的时间尺度长很多,因此通常用软件来实现。
什么是HOL阻塞?它出现在哪个端口?
HOL阻塞是线路前部阻塞,即在一个输入队列中排队的分组必须等待通过交换结构发送(即使输出端口是空闲的),因为它被位于线路前部的另一个分组所阻塞。
出现在输入端口。
比较对照 IPv4和IPv6首部字段,它们有相同的字段吗?
IPv6相比IPv4去掉了片偏移字段,IPv6不允许分片
IPv6去掉了首部校验和,因为因特网重的运输层和数据链路层协议已经执行了校验操作
IPv6去掉了选项字段,这样就保证了IPv6头部是40字节定长
IPv6多出了流的概念,因此多了一个流标签字段。
剩下IPv6头部中的字段如版本号,流量类型等字段都和IPv4里的字段有着类似的含义。如流量类型类似于IPv4中的服务类型字段,两者都有数据包长度这个字段,等等。
比较和对照链路状态和距离矢量这两种路由算法。
在
DV
算法中,每个节点仅与它的直接相连的邻居交谈,但它为其邻居提供了从它自己到网络中(它所知道的)所有其他节点的最低开销估计。路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。
LS
算法需要全局信息,因此当在每台路由器中实现时,每个节点与所有其他节点通信,但仅告诉它们与它直接相连链路的开销。用完整的、全局的网络知识计算出从源到目的地之间的最低开销路径。该算法以所有节点之间的连通性以及所有链路的开销为输入。
- 报文复杂性:
LS
算法要求每个节点都知道网络中每条链路的开销。这就要求发送O(|N||E|)
个报文。DV
算法要求在每次迭代时,在两个直接相连邻居之间交换报文。DV
算法仅当在新的链路开销导致与该链路相连节点的最低开销路径发生改变时,才传播已改变的链路开销。- 收敛速度:LS 算法的实现是一个要求
O(|N||E|)
个报文的O(|N|^2)
算法。DV 算法收敛速度较慢,且在收敛时会遇到路由选择环路,还会遭遇无穷计数问题。- 健壮性:在 LS 算法下,路由计算在某种情况下是分离的,提供了一定程度的健壮性。在 DV 算法下,一个节点可以向任意或所有目的节点通告其不正确的最低开销路径,一个不正确的节点计算值会扩散到整个网络。
路由器四个组件是什么?画图阐述作用
输入端口、输出端口、交换结构、路由处理器(调度机制)
简述DHCP客户服务器交互的4个步骤?
DHCP(Dynamic Host Configuration Protocol):动态主机配置协议。是一种高效的IP地址分配方法,
- 发现阶段:即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式发送信息来寻找DHCP服务器,只有DHCP服务器才会做出响应。
- 提供阶段:即DHCP服务器提供IP地址的阶段。服务器从尚未出租的IP地址中挑选一个分配给DHCP客户机。
- 选择阶段:即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。
- 确认阶段:即DHCP服务器确认所提供的IP地址的阶段。
简述流量控制与拥塞控制的区别?
拥塞控制是为了避免网络资源耗尽的问题,通过拥塞窗口实现(它的发展对因特网整个有好处,有全局性)
流量控制是着眼于TCP传输的本质要求,它目的是解决发送方和接收方速率不匹配的问题,通过滑动窗口实现(控制已发送但未被ACK的包的数量)
IPv6相对于IPv4主要的变化:
- 扩大的地址容量。IPv6将IP地址长度 从32比特增加到128比特
- 简化高效的40字节首部,40字节定长首部允许路由器更快地处理IP数据报
- 流标签
- 不允许分片,中间路由器不允许对分组进行分片,如果收 到了过大的分组不能转发到输出链路上只需要将其丢弃,分组的分片和重新装配只能在源/目的端进行
- 取消校验和 checksum: 传输层和数据链路层都有这个功能,而且由于TTL字段的存在导致校验和在每个路由器需要重新计算再 写入,影响了路由器的快速转发
- 选项 options: 没有完全取消,如果需要可在“下一个首部”字段 中指出
- ICMPv6: ICMP的新版本
- 附加了报文类型, e.g. “Packet Too Big”
- 多播组管理功能
路由选择算法的分类
- 算法是集中式还是分散式来划分
- 集中式路由选择算法: 所有的路由器拥有完整的拓扑和边的代价的信息 eg : “link state”
- 分散式路由选择算法:
- 路由器只知道与它有物理连接关系的邻居路由器,和到相应邻居路由器的代价值
- 迭代式地与邻居交换路由信息、 计算路由信息 “distance vector”
- 静态或者动态
- 静态路由选择算法:路由随时间变化缓慢,通常是人工-进行调整(如人为手工编辑一条链路开销)
- 动态路由选择算法:路由变化很快,周期性更新,响应拓扑和开销变化
CH06 链路层
为什么在链路层和传输层都实现了可靠性:
一般化的链路层服务,不是所有的链路层都提供这些服务 一个特定的链路层只是提供其中一部分的服务
为什么要在采用无线链路的网络上,链路层做可靠数据传输工作 ;还要在传输层做端到端的可靠性工作?
原因:出错率高,如果在链路层不做差错控制工作,漏出去的错误比较高;到了上层如果需要可靠控制的数据传输代价会很大
链路层协议能够向网络层提供哪些可能的服务?在这些链路层服务中,哪些在IP中有对应的服务? 哪些在TCP中有对应的服务?
链路层能够向网络层提供的服务有:成帧,链路接入,可靠传送,流量控制,纠错,检错,全双工传输等。
其中,在 IP 中有的服务是:成帧,检错。
在 TCP 有的服务是:成帧,可靠传送,流量控制,检错以及全双工传输。
多路访问(MAC)协议划分为3种类型:
- 信道划分协议
- 把信道划分成小片(时间、频率、编码)
- 分配片给每个节点专用
- 随机接入协议
- 信道不划分,允许碰撞
- 碰撞后恢复
- 轮流协议
- 节点依次轮流
- 但是有很多数据传输的节点可以获得较长的信道使用权
简述地址解析协议ARP的作用及作用范围?
地址解析协议(Address Resolution Protocol,ARP):发送主机中的APR模块将取在相同局域网上的任何IP地址作为输入,然后返回相应的MAC地址
ARP只为在同一个子网上的主机和路由器接口解析IP地址
简述交换机与路由器的异同?
相同点:
- 都可用来交换网络设备
- 都是用来扩展网络的
不同点:
- 工作层次不同
交换机工作在数据链路层
而路由器工作在网络层 - 数据转发所依据的对象不同
交换机利用MAC地址确定转发数据的目的地址
路由器则是利用IP地址来确定数据转发的地址
CH 07
-
路径损耗:电磁波在穿过物体时强度将减弱。即使在自由空间中,信号仍将扩散,这使得信号强度随着发送方和接收方距离的增加而减弱。
-
多径传播:当电磁波的一部分受物体和地面反射,在发送方和接收方之间走了不同长度的路径,则会出现多径传播。这使得接收方收到的信号变得模糊。位于发送方和接收方之间的移动物体可导致多径传播随时间而改变。
-
隐藏终端问题:即使
A
和C
的传输确实是在目的地B
发生干扰,环境的物理阻拦(大山、建筑)也可能会妨碍A
和C
互相听到对方的传输。 -
衰减:
A
和C
所处的位置使得它们的信号强度不足以使它们相互检测到对方的传输,然而它们的传输足以强到在站点 B 处相互干扰。 -
与基站关联的主机通常被称为以基础设施模式运行。因为所有传统的网络服务(如地址分配和路由选择)都由网络向通过基站相连的主机提供。
-
被动扫描:扫描信道和监听信标帧的过程。
-
主动扫描:通过向位于无线主机范围内的所有
AP
广播探测帧完成的。AP 用一个探测响应帧应答探测请求帧。无线主机则能够在响应的 AP 中选择某 AP 与之相关联。
-
尽管以太网 和802. 11都使用载波侦听随机接入,但这两种MAC协议
有重要的区别:
- 首先,802. 11 使用碰撞避免而非碰撞检测。
- 其次,由于无线信道相对较高的误比特率,802. 11 使用链路层确认/重传(ARQ)方案,(不同于以太网)。
-
802.11 MAC协议并未实现碰撞检测。这主要由两个重要的原因所致:
- 检测碰撞的能力要求站点具有同时发送(站点自己的信号)和接收(检测其他站 点是否也在发送)的能力。因为在802. 11适配器上,接收信号的强度通常远远小 于发送信号的强度,制造具有检测碰撞能力的硬件代价较大。
- 更重要的是,即使适配器可以同时发送和监听信号(并且假设它一旦侦听到信道 忙就放弃发送),适配器也会由于隐藏终端问题和衰减问题而无法检测到所有的碰 撞
在以太网的 CSMA/CD 的多路访问协议下,一旦侦听到信道空闲,站点开始发送。然而,使用 CSMA/CA, 该站点在倒计数时抑制传输,即使它侦听到该信道空闲也是如此。为什么 CSMA/CD 和 CSMA/CA 采用了不同的方法?
- 在 CSMA/CD 中碰撞不是一个严重的问题,因为两个站点检测到碰撞后等都会放弃它们的发送,从而避免了由于碰撞而造成的该帧剩余部分的无用发送。
- 在 802.11 中,并不检测碰撞和放弃发送,遭受碰撞的帧仍将被完全传输。因此要尽可能避免碰撞。如果两个站点侦听到信道忙,它们都将立即进入随机回退,希望选取一个不同的回退值。如果这些值的确不同,一旦信道空闲,其中的一个站点将在另一个之前发送,并且“失败站点”将会听到“胜利站点”的信号,冻结它的计数器,并且在胜利站点完成传输之前一直抑制传输,避免了高代价的碰撞。
- 使用 802.11 仍然可能出现碰撞的情况:1️⃣ 两个站点可能相互是隐藏的;2️⃣ 两者可能选择了非常靠近的随机回退值
802.11 使用链路层确认/重传(ARQ)
目的站点收到一个通过 CRC 校验的帧后,它等待一个被称为**短帧间间隔(SIFS)**的一小段时间,然后发挥一个确认帧。如果发送站点在给定的时间内未收到确认帧,它假定出现了错误并重传该帧,使用 CSMA/CA
协议访问该信道 。如果在若干固定次重传后仍未收到确认,发送站点将放弃发送并丢弃该帧。
- 如果某站点最初监听到信道空闲,它将在一个被称为**分布式帧间间隔(DIFS)**的段时间段后发送该帧。
- 否则,该站点选取一个随机回退值并且在侦听信道空闲时递减该值。当侦听到信道忙时,计数值保持不变。
- 当计数值减为 0 时(只可能发生在信道被侦听为空闲时),该站点发送整个数据帧并等待确认。
- 如果收到确认,发送站点知道它的帧已被目的站正确接收了。如果该站点要发送另一个帧,它将从第二步开始
CSMA/CA
协议。如果未收到确认,发送站点将重新进入第二步中的回退阶段,并从一个更大的范围内选取随机值。
为什么隐藏终端会导致出现问题?
假设站点H1正在传输一个帧,并且 在H1传输的中途,站点H2要向AP发送一个帧。由于H2未听到来自H1的传输,它将首先等待一个DIFS间隔,然后发送该帧,导致产生了一个碰撞。从而在H1和H2的整个发送阶段,信道都被浪费了。
为了避免这一问题,IEEE 802.11协议
允许站点使用一个短请求发送(Request to Send, RTS)控制帧
和一个短允许发送 (Clear to Send, CTS)控制帧
来预约
对信道的访问
当发送方要发送一个data帧 时,它能够首先向AP发送一个RTS帧, 指示传输DATA帧和确认(ACK)帧需要的总时间。当AP收到RTS帧后,它广播
一个CTS帧
作为响应。该CTS帧有两个目的:给发送方明确的发送许可,也指示其 他站点在预约期内不要发送。
- 归属网络:在一个网络环境中,一个移动节点(智能手机)的永久居所被称为归属网络。
- 归属代理:在归属网络中代表移动节点执行移动管理功能的实体叫归属代理。
- 外部网络:移动节点当前所在网络叫作外部网络或被访网络。
- 外部代理:在外部网络中帮助移动节点做移动管理功能的实体称为外部代理。外部代理的作用之一是为移动节点创建一个所谓的转交地址(COA),该 COA 的网络部分与外部网络的网络部分相匹配 ,外部代理的第二个作用就是告诉归属代理,该移动节点在它的(外部代理的)网络中且具有给定的COA
- **通信者(**correspondent):就是希 望与该移动节点通信的实体
间接路由选择
通信者只是将数据报寻址到移动节点的固定地址,并将数据报发送到网络 中去,完全不知道移动节点是在归属网络中还是正在访问某个外部网络,因此移动性对于通信者来说是完全透明的。这些数据报就像平常一样首先导向移动节点的归属网络。
直接路由选择
三角路由选择问题 (triangle routing problem)
该问题是指即使在通信者与移动节点之间存在一条更有效的路由,发往移动节点的数据报也要先发给归属代理,然后再发送到外部网络。
- 间接路由选择会引起三角路由选择问题
- 直接路由选择克服了三角路由选择的低效问题,但却是以增加复杂性为代价的。
- 通信者所在网络中的一个
通信者代理
先知道该移动节点的COA,这可以通过让通信者代理向归属代理询问得知,这里假设与间接路由选择情况类似,移动节点具有一个在归属代理注册过的最新的 COA,与移动节点可以执行外部代理的功能相类似,通信者本身也可能执行通信者代理的功能。在图中显示为步骤1和步骤2。 - 通信者代理然后将数据报直接通过
隧道技术
发往移动节点的COA,这与归属代理使用的隧道技术相类似,参见图中步骤3 和步骤4。
**锚外部代理:**我们将首次发现移动节点的外部网络中的外部代理标识为锚外部代理
- 当移动节点到达一个新外部网络后,移动节点向新的外部代理注册(步骤3)
- 新外部代理向锚外部代理提供移动节点的新COA (步骤4)。
- 当锚外部代理收到一个发往已经离开的移动节点的封装数据报后,它可以使用新的COA重新封装数据报并将其转发给该移动节点(步骤5)。
- 如果移动节点其后又移到另一个外部网络中,在该被访网络中的外部代理随后将与锚外部代理联系,以便建立到该新外部网络的转发。