概述
因特网三要素: 设备、协议、服务
- 设备: 主机端系统、链路、交换设备(路由器、交换机)
- 协议: 报文的格式和次序、发送/接收报文以及其它事件所采取的动作
网络边缘
- CS结构 : 服务器总是开机且有固定周知的IP地址、客户机动态IP地址
- P2P结构: 对等点地位相同(轮流当CS)、资源利用充分
网络性能指标
- 往返时间(RTT): 发送到接收时间(容易测量)
- 时延
- 传播时延Propagation = 距离 / 光速
- 传输时延Transmission= (大小/带宽) * 跳数
- 排队时延Queue = 与对长相关(5-100 Transmission)
- 处理时延process = 分组检查、查看去向
- Latency= Propagation + Transmission + (Processing) + Queuing
- 理解: 带宽=路的宽度、路的起点有管制、每秒只能上与带宽大小数量相等的车,先上去的车会在终点等所有车到齐才出发
- 带宽时延积:
L
a
t
e
n
c
y
×
b
a
n
d
w
i
d
t
h
Latency\times bandwidth
Latency×bandwidth、链路上的最大比特数,也称以比特为单位的链路长度
- 传输速率 : n Mbps、nM bits 每秒
- 吞吐量: bit/sec、通常接入网是瓶颈链路
接入网:
- 定义: 端系统连接到其边缘路由器的物理链路
- 数字用户线(DSL)(电话线)
- ADSL(下载速度比上传速度快)
- 频分信道(高频快、下载高频上传中频电话低频)
- 混合光纤同轴电缆(HFC): 共享
- 同轴电缆(有线电视线)
- 共享广播媒体: 当多个用户下载同一文件可只传一次、空闲时刻让出宽带
- 光纤入户
- 局域网(LAN):
- 功能: 连接端系统到边缘路由器
- 以太网: 公司家庭常用的局域网、Wi-Fi通过连上以太网再接入因特网
- 3G可以看做大范围Wi-Fi
- 无线接入
核心网
- 分组交换:
- 特征: 资源利用率高、不可靠(每一跳都有可能丢包)
- 分组: 把数据切分为多个分组、分组传输、每个分组使用完全的链路带宽
- 存储转发机制: 需要收齐整个分组后才能开始发送
- Q段链路需要时间 =
Q
×
L
÷
R
Q\times L\div R
Q×L÷R
- 1个分组在经过一个路由器中继需要2单位时间
- N分组经过M-1个路由器中继需要M+N-1单位时间(可以流水线、传与收并行)
- 丢包: 每个输出电路有一个输出缓存,若目的地忙需等待、缓存满了就丢包
- 适合突发流量
- 电路交换:
- 每次交换预留实体电路、需要连接时间
- 通过频分FDM、时分TDM、码分复用电路增加物理电路数
- 静默期存在资源浪费、保证服务质量
因特网与ISP(因特网提供商)
- 硬件: 由多台分组交换机构成
- 架构:
- 主干: 层次化结构 第一层(世界)ISP->区域ISP->接入用户
- 接入点(POP): 允许远程用户连接到Internet的基础设施
- 对等(peer): 同等级ISP之间共享路由器、彼此通信不用钱、避免向高层ISP支付费用
- 多宿: 一个用户同时使用多ISP服务、确保可靠性
- IXP: 专门设置的大机房,提供ISP厂家们的数据交换
- 内容提供商(如:google): 有自己遍布全球的路由器支持用户使用自家产品、(优点一)绕过高层ISP避免付费、但还是要与高层ISP相连确保用户能用各种方式接入、(优点二)多样化服务用户的方法
其他
- 因特网的设计原则: 最简单与自治、尽量递送、无状态路由选择 、分散控制
- 报文(应用) 报文段(传输) 数据报/分组(网络) 帧(链路)
- 传输层 端系统到端系统(进程)之间
网络层 主机到主机(服务器)之间 链路层 相邻节点到相邻节点(主机/路由器)之间
应用层
Web & Http(超文本传输协议)
- 端口80
- 非持续连接和持续连接
- Web页面: 一个基本HTML文件+引用对象 (共n+1个对象)(每个对应一个URL)
- 非持续连接: 每个请求/响应以单独的TCP连接发送
- 持续连接: 所有请求/响应以相同的TCP连接发送
- 响应时间: (假设有一个基本HTML文件+两个引用对象)
- 非持续连接:
3
×
(
2
R
T
T
+
传
输
时
间
)
3\times (2RTT + 传输时间)
3×(2RTT+传输时间)
- 不带流水线的持久连接:
(
2
R
T
T
+
传
输
时
间
)
+
2
×
(
R
T
T
+
传
输
时
间
)
(2RTT + 传输时间)+2\times(RTT + 传输时间)
(2RTT+传输时间)+2×(RTT+传输时间)
- 带流水线的持久连接:
(
2
R
T
T
+
传
输
时
间
)
+
R
T
T
+
2
×
传
输
时
间
(2RTT + 传输时间)+RTT+2\times 传输时间
(2RTT+传输时间)+RTT+2×传输时间
-
(
2
R
T
T
+
传
输
时
间
)
(2RTT + 传输时间)
(2RTT+传输时间) 是必须的,因为在获得基本HTML文件后才知道其他对象
- 报文
- 请求报文: request, response,
- request: GET, POST, HEAD, PUT, DELETE
- cookie
- HTTP是无状态协议
- cookie存在用户端浏览器(换个浏览器就不认得了)、Web后台
- cookie信息在HTTP报文中
- Web缓存
- cache有则返回对象、没有从原始的服务器请求该对象
- 请求率/更新率>>1的文档可缓存
- 通常Web缓存服务器与客户机在同一个LAN中、因为接入网是瓶颈
- 其他: 使用TCP、CS架构
FTP
- 端口21(控制)20(数据)
- 带外传输 (HTTP带内)
- 控制连接: Client 得访问授权(浏览目录)
- 数据连接: 第二个TCP连接以传送文件 (传递结束后关闭数据连接)
- CS架构、维护状态
Email
- 端口 25(SMTP)
- SMTP
- 直接传递:发送邮件服务器用持久连接TCP(端口25)把email报文从传递接收邮件服务器
- 报文的主体部分是7比特ASCII码格式 (可以直接阅读)
- MIME扩展: 非ASCII、其他形式文件
- 邮件访问协议
- POP3: 无状态
- IMAP: 有状态(层次目录)、允许只获取邮件报文首部
- HTTP: 客户邮件报文通过HTTP发送给邮件服务器、邮件服务器之间仍使用SMTP协议
DNS
- 功能: 主机名到 IP 地址的翻译、负载分配
- 层次与查询
- 根DNS、顶级域DNS(.cn,.com)、权威DNS、本地DNS服务器(代理)
- 迭代查询: 本地问根、本地问顶级、本地问权威…
- 递归查询: 客户问本地、本地问根、根问顶级…
- 实际: 客户问本地、本地问根、本地问顶级、本地问权威
- 报文与数据
- 通常缓存有顶级域DNS服务器
- 储存资源记录(RR)
- Type=A: 别名/真名到IP
- Type=NS: 域名到权威DNS服务器
- Type=CNAME: 别名到真名
- Type=MX: 别名/真名到邮件服务器名
P2P
- 文件分发时间
- CS分发时间: $max{\frac{NF}{\mu_s}, \frac{F}{d_1},…, \frac{F}{d_n}} $
- P2P分发时间: $max{\frac{NF}{\mu_s}, \frac{F}{d_1},…, \frac{F}{d_n}, \frac{NF}{\mu_s+Nd}} $
- Torrent
- 参与一个特定文件分发的所有对等方的集合称为一个洪流
- 最稀缺优先,大致均衡每个块在洪流中的副本数量
- 对换算法,+1个随机选择的试探对等方、较好的处理了搭免费车的问题
- 集中式目录
- 查询洪泛
- 有限范围的洪泛, TTL、可避免网上都在传查询报文
- 发送Ping、转发 Ping、响应 Pong
- 层次覆盖: 超级对等方负责跟踪所有组员的内容
- 中继节点: AB都位于NAT后面时、先都接到中继节点、再互接
内容分发网
- DASH (经HTTP的动态适应性流)
- server 视频切分为块、每个块有多个版本、告示文件为每个版本提供一个URL及其编码
- client 测量接收带宽、选择一个块的一个版本 (视频、声音可以不同帧率)
- 分布式站点CDN
- 在遍布全球的分布式站点CDN存储视频的副本
- 向server查告示牌、得到附近CDN (根据拥塞状况选用CDN)、向CDN请求视频
socket
- 进程通信
- (同主机)进程间通信、(不同主机)交换报文
- socket: 进程和端到端传输协议(UDP/TCP)之间的“门”
- Socket= IP地址 + 端口号
- TCP socket
- server: 创建welcome socket、当client访问时创建新socket (可以同时接收多个client请求)
- 数据流 stream: 流入、流出一个进程的字符序列 (输入流:键盘)
- UDP socket
传输层
基本概念
-
比喻
-
复用与分解
- 多路复用: 多个socket产生多个报文段、他们共享一个网络层服务
- 多路分解: 将网络层数据报打开,读取报文段分发给指定socket
- UDP二元组: (目的IP,目的端口号) (但还是要写源端口、让别人能回信)
- TCP四元组: (源IP,源端口号,目的IP,目的端口号)
UDP
- 无连接、无拥塞控制、尽力而为、8字节报头、UDP(快)
- UDP校验和
- 所有16位数相加 A+B+C = Total
- 如果17位有进位 sum = Total + 1
- 反转 check = ! sum
- 接收到的信息 A’+B’+C’+sum’ = 全一(反卷积),则认为无误
- 两位错误无法检查
可靠数据传输
- rdt
- FSM 箭头上面是事件、下面是行动、^代表空
- rdt1.0: 信道完全可靠、不需要流量控制、各一个状态单元
- rdt2.0: 不丢失但可能比特翻转、差错检测(校验和)、ACK+NAK+重传
- rdt2.1: 添加两个序号(重发不混淆)、收错序号也发ACK
- rdt2.2: 为ACK添加序号、拿掉NAK
- rdt3.0: 定时器、支持丢包、送出后开启定时接收后关闭,超时则中断、接收错的ACK不重发否则信道都是冗余信息、传播时间>传输时间,RTT只能传一个数据报,吞吐量低
- GBN:
- 一个定时器、累计确认、同时有n个分组在信道中传输、丢弃失序分组、
- 开始时开启定时器、收到有效ACK时重启定时器、超时时全部重传
- 接收方丢弃所有乱序到达的数据并返还ACK (如1已ACK2丢失34收到、回复ACK1*2)
- 最多同时发送n(窗口长度)个数据,超过拒收
- SR(选择性重传)
- n个定时器、发送窗口与GBN相同(收到最小序号ACK窗口才能右移、才能发新的数据)、缓存
- 序号数 = 2倍窗口大小
TCP
- 报文结构:
- port、序号、确认号、流量控制、checksum(16位)、主文
- 序号: 告诉接收方我是从哪开始传的
- 确认号: 告诉发送方下次希望收到的字节起点
- 举例(其实只有后面数据有效、但TCP其实有双向传输能力)
- 发送方: 1Seq 42, Ack 72, Data=‘c’ 2Seq 42, Ack x, Data=‘c’
- 接收方: 1Seq 73, Ack 43, Data=‘c’ 2Seq x , Ack 43, Data=‘c’
- 重传机制
- 累积确认、只有一个定时器、会缓存失序数据
- 重传: 只重传窗口的第一个数据
- 定时器超时重传
- 快速重传
- ACK: 1. 收到第一个等一下 2. 收到发现后面已经有数据马上发 3. 收到不连续则发冗余ACK
- 流量控制
- 避免因发送方传输太快太多而使接收方的缓存溢出
- 接收方在回传报文内记录空闲缓存,确保发送方窗口大小
≤
\leq
≤接收方空闲缓存
- 确定RTT
-
E
s
t
i
m
a
t
e
d
R
T
T
=
(
1
?
α
)
?
E
s
t
i
m
a
t
e
d
R
T
T
+
α
?
S
a
m
p
l
e
R
T
T
EstimatedRTT=(1-\alpha)·EstimatedRTT+ \alpha ·SampleRTT
EstimatedRTT=(1?α)?EstimatedRTT+α?SampleRTT
-
D
e
v
R
T
T
=
(
1
?
β
)
?
D
e
v
R
T
T
+
β
?
∣
S
a
m
p
l
e
R
T
T
?
E
s
t
i
m
a
t
e
d
R
T
T
∣
DevRTT = (1-\beta)·DevRTT+\beta·| SampleRTT-EstimatedRTT |
DevRTT=(1?β)?DevRTT+β?∣SampleRTT?EstimatedRTT∣
-
T
i
m
e
o
u
t
I
n
t
e
r
v
a
l
=
E
s
t
i
m
a
t
e
d
R
T
T
+
4
?
D
e
v
R
T
T
TimeoutInterval = EstimatedRTT+4·DevRTT
TimeoutInterval=EstimatedRTT+4?DevRTT
- 连接管理
- 三次握手
- client(SYN=1,seq=x)->server
- server(SYNACK=1,seq=x,ack=x+1)->client
- client(SYN=0,seq=x+1,ack=x+1)->server
- server(data)->client(分配缓存、避免洪范攻击)
- 四次挥手
- client(FIN)->server
- server(ACK)->client
- server(FIN)->client(等待后关闭)
- client(ACK)->server(接收关闭)
- 拥塞控制
- 发送方窗口长度 : $window = \min{RcvWin, CongWin} $ (流量控制、拥塞控制)
- 慢启动
- 每次CongWin翻倍(每收到一个ACK,CongWin+=1)
- 直到CongWin>thresh前往拥塞控制
- 拥塞控制
- 加性增(每收到w个ACK,CongWin+=1)
- 乘性减1(Thresh=0.5CongWin, CongWin=1、回到慢启动)
- 乘性减2(CongWin,Thresh减半、留在拥塞控制)
- TCP Tahoe: 丢包与(三次)冗余ACK都采取乘性减1
- TCP Reno : 丢包采取乘性减1、(三次)冗余ACK采取乘性减2
- TCP是公平的
- 斜率为一往右上走(加性增),连线原点往回走(乘性减),如此往复
- 若
R
T
T
1
=
2
R
T
T
2
RTT_1=2RTT_2
RTT1?=2RTT2?:
R
T
T
2
RTT_2
RTT2?将享有两倍带宽
- 明确拥塞通告(ECN): 以路由器的ECN比特表明该路由器正在经历拥塞
网络层
- 数据平面: 转发功能(每台路由器)
- 控制平面: 从源主机到目的主机的路由方式(网络范围)
- 网络层的三大组件:IP协议,选路协议,ICMP协议
路由器
- 转发
- 基于目的地转发: 找到目的地与输出端口范围的最佳前缀匹配
- 经内存交换、总线交换、互联网络交换
- 线路前部阻塞: 缓冲区前面的在等,后面的已经轮到,但不能插队
- 输出排队: 多个入口竞争出口
IPv4
- IP协议
- IP数据报报头20字节、TCP报头20字节
- 最大传输单元MTU限制: 当某个路由器MTU不够大、IP数据报切片并在目的地重组
- length=1500(只有1480有效数据)、offset=185(=这一个报文的开始偏置
1480
÷
8
)
1480\div8)
1480÷8)
- IPv4编址
- 一个接口一个IP地址、跟主机/路由器数量没关系
- 子网
- 在同一个子网的两个接口通信不用经过路由器
- 将路由器的每个接口切一刀、仍然相联者为子网
- 由子网掩码决定
- CIDR: IPv4分为ABC类太浪费(子网掩码长度为8,16,24)、CIDR可任意配置子网掩码长度
- DHCP: 动态主机配置协议(属于应用层协议)
- 功能: 动态获得IP地址、子网掩码、网关、DNS等
- 步骤:
- 新到的客户广播discover报文找DHCP服务器(因为这时他不知道服务器IP)
- DHCP服务器广播给出offer报文(这时候客户还没有IP)
- 客户机广播选定其一回复request报文(此处广播是同意一个拒绝其他)
- DHCP服务器广播回复DHCP ack报文
- 一个子网可以同时有多个DHCP服务器
- NAT: 网络地址翻译(一个IP内用端口区分多IP)
- 在NAT内可以任意分配IP地址、但传到外面统一被翻译为NAT的那个IP、传入时相同
- NAT translation table: 对外端口号 <-> 内部IP
- 问题
- 路由器负责翻译不合理
- 必须先发送一次NAT translation table才有记录(直接响应外面的传入会找不到)
- IPv6:
- 没有checksum、没有分片、报头40字节
- 与IPv4兼容: 进入IPV4隧道前最后一个IPV6路由器封装成IPV4头,出隧道后第一个IPV6路由器封装成IPV6头
SDN
-
OpenFlow: 基于流表的转发、允许编程路由器 -
控制平面, 北向接口,SDN控制器,南向接口,数据平面 -
流表:
- 匹配+动作转发表
- Pattern(匹配), Actions(丢弃、转发、修改或将匹配的数据包发送给控制器),Priority,Counters
- 路由器, 交换机, 防火墙, NAT
路由算法
- LS(链路状态)
- 每个节点运行Dijkstra选择路径
- 一个点:
O
(
n
2
)
O(n^2)
O(n2)的算法、
O
(
n
E
)
O(nE)
O(nE)的报文
- 同步更新可能导致震荡
→
\rightarrow
→ 改为异步更新
- DV(距离向量)
- $d_x = min{c(x,v) + d_v} $
- 异步、分布式、自收敛、周期更新的
- 循环路由(无穷计数问题)
-
A
A
A问
B
B
B:
B
→
C
B\rightarrow C
B→C多远,
B
B
B回答:
B
→
A
→
C
B\rightarrow A\rightarrow C
B→A→C多远、坏消息传的慢
- 如果
B
B
B到
C
C
C走
B
→
A
→
C
B\rightarrow A\rightarrow C
B→A→C、
B
B
B回答无穷
- 三个点以上难解决
层次选路/自治系统
-
网关路由器: 与其他AS运行inter-AS协议的特殊路由器 -
内部网关协议 IGP (Interior Gateway Protocols)
- 又称: intra-AS routing protocol自治系统内部选路协议
- OSPF开放最短路优先
- LS法、洪泛到整个自治系统中
- 层次化(分为一个主干与多个区域)、主干与各个区域各自运行自己的OSPF、他们同属于一个AS
- IS-IS路由协议类似
- RIP
- IGRP
-
inter-AS routing protocol自治系统间选路协议
-
BGP: 边界网关协议
- DV法
- AS策略: 决定是否接收通告、是否向外通告(可以选择不通告eBGP,省流量、不会被转发)
- eBGP:从相邻自治系统(AS)获取子网可达性信息、数据报包含自己以及背后所有AS
- iBGP:给自治系统(AS)内部的所有路由器传播可达信息
- eBGP基于TCP, iBGP基于逻辑电路(实际要靠OSPF送达)
-
BGP路由选择
- 热土豆路由选择: 择域内开销最小的本地网关、不要担心域间开销
- 最短AS-PATH: 域间开销
其他
- ICMP: 因特网控制报文协议
- 控制路由器如何响应与报错的协议
- traceroute: 客户的应用层连续发送n次TTL=i的UDP报文段、超时时回传当前路由器名,报文主机但可达端口不可达、到达目的主机回传特殊报文
- SNMP: 网络管理
链路层
基本概念
- 在相邻节点传递帧
- 特性: 可靠、流量控制、差错检验、差错纠正、访问控制
- 链路层协议在适配器(网卡)上实现
差错检测
- 奇偶校验
- 偶校验: 在每行前加0/1,使得整行加起来为偶数
- 一维检测单bit错误、二维纠正单个检测2个
- 检验和: 把报文段的内容相加 ,并按位取反,接收方求和计算是否为全1 (进位不用加回来?)
- 循环冗余检测 (CRC)
- 用
D
?
2
r
D\cdot 2^r
D?2r 除以
G
G
G, 余数为
R
R
R(其中减法用异或替代)
- 能检测小于r+1比特的错误、无法纠正
多路访问
- 时隙ALOHA:
- 假设: 每个帧一样长、节点是在时隙开始时同步发送的
- 算法: 拿到就发、如果碰撞以后每个时隙以概率p
- 特性: 发碰撞多、需要同步、有闲置
- 效率(长期、大量节点、每个节点都有许多帧要发送的情况下,成功发送的时隙所占的比例) =1/e=0.37
- 纯ALOHA: 不同步、 效率=1/2e=0.19
- CSMA (载波侦听多路访问)
- CSMA/CD
- 碰撞检测: 已经发送且发现别人在发送,提前终止
- 载波侦听仍有碰撞(因为有传播时延)
- 无线不好检测碰撞
- 发生碰撞
- 阻塞信号: 发生碰撞后发送48bit阻塞信号(确保对方能发现自己)、然后放弃
- 随机访问: 接着随机等一段时间
- 指数后退: 第m次碰撞将等待K*512bits,其中K在
1
1
1~
2
m
?
1
2^m-1
2m?1之间随机选取
- 效率:
- $\frac{1}{1+5t_{prop}/t_{trans}}
、
、
、t_{prop}$ 传输延迟时间、
t
t
r
a
n
s
t_{trans}
ttrans?传一帧时间
-
t
p
r
o
p
t_{prop}
tprop?趋于零(效率趋于一): 一碰撞就立刻终止
-
t
t
r
a
n
s
t_{trans}
ttrans?趋于无穷(效率趋于一): 一个节点传很大的数据
- “taking turns” 协议: 介于信道划分与随机访问之间、轮询令牌等
- CSMA/CA
ARP
- MAC地址
- 32 位的IP 地址、48位的MAC 地址
- 网卡有唯一MAC地址、由生产商确定
- IP由所在子网确定(因移动而改变)、MAC不会变
- ARP 表
- 功能: IP到MAC映射
- 每个IP节点有一张ARP表,记录子网内成员信息
- 过程
- 同一子网: A通过IP发现B在同一子网、A广播查B、B响应回复MAC地址(无需管理员介入就能完成)
- 不同子网: A通过IP发现B在不同子网、发送帧MAC=网关,IP=B的、路由器R有两个ARP表、根据IP在出口查表填上MAC=B
以太网
- 内容
- IEEE 局域网标准 802.3
- 具有统治地位的局域网技术
- 不可靠的无连接服务
- 以太网的MAC协议(CSMA/CD)
- 许多 不同的以太网标准(不同的物理层媒介)
- 以太网帧
- 以太网帧: 导言(10101010*7+10101011)、目的MAC地址、源MAC地址、CRC (两个MAC地址)
- 最小帧长度: 发送最小帧所需的时间 >= 链路的最大往返时延
- 使得CDMA/CD发挥作用的最短帧长: 两倍传输时间
×
\times
×带宽
- 最慢需要2
t
p
r
o
p
t_{prop}
tprop?才能发现碰撞,即你的数据已经到对方那对方才刚发
交换机
- 特性
- 没有MAC地址(主机意识不到他的存在)
- 链路层设备
- 隔离碰撞域、避免广播风暴
- 使独享访问(CSMA/CD使仿佛独享链路)
- 转发表(交换表)
- MAC地址到端口
- 路由表: IP地址到端口、ARP表: MAC到IP
- 过程
- 自学习: 收到帧、记录其MAC地址并保存在交换表 (没有主动查询只是被动记录与ARP表不同)
- 转发: 不在表里(其他端口广播转发)、在表中不同端口(单独发往那个端口)
- 过滤: 在表中同端口(丢弃) -> 隔离碰撞域
- A通过IP发到C,需要先用ARP查C的MAC、此时A的MAC会被广播但C不会(回传已经知道路径)
局域网
其他
综合(Web请求过程)
- 获取IP
- 发送DHCP discover报文,封装在UDP报文、封装进IP数据报、封装进以太网帧。广播MAC地址(全一)。在DHCP服务器逐层解封装
- 广播回传DHCP offer报文,内容包含默认网关、DNS服务器的IP地址、IP地址网络掩码
- 一共广播四次discover, offer, request, ack
- DNS
- 知道DNS服务器IP地址,但不知道MAC地址。广播ARP query、收到ARP reply,得到MAC地址存在ARP表中
- 对DNS服务器发出DNS query,服务器回传域名的IP地址
- HTTP
- 与服务器建立TCP socket、三次握手TCP SYN segment、TCP SYNACK、ACK
- HTTP request通过TCP传送,收到HTTP reply(流水线…)
无线网/移动网
概述
- 性能
- SNR: signal-to-noise ratio信噪比
- BER: bit-error-rate 误码率
- 物理层模式 (编码和调制)
- 问题
- 隐藏终端 A<->B, B<->C,,但AC互不可见,会在B打架
- 暴露终端 A<->B, B<->C,C<->D,C给D发B给A发两者不打架,但以为打架
- 码分多路访问(CDMA)
- 每个用户有自己的编码
- 假设有两个用户: $数据_1\cdot编码_1+数据_2\cdot编码_2=发送数据
、
、
、接收数据_1=<数据,编码_1>$ (其中<>代表内积)
-
R
=
x
A
+
y
B
+
z
C
R=xA+yB+zC
R=xA+yB+zC、有$<A,R>=x<A,A>+y<A,B>+z<A,C>
、
因
此
、因此
、因此x = <A,R>/<A,A>$
Wifi
- IEEE 802.11 无线局域网
- 接入点(AP): 无线主机与基站通信(关联)
- 基本服务集(BSS)
- 扫描
- 被动扫描 AP发送信标帧
- 主动扫描 主机广播探测请求帧
- CSMA/CA
- 隐藏终端问题、接收到的信号微弱 -> 不用CSMA/CD
- 步骤
- 如果侦听到信道空闲了DIFS 时间,则开始发送数据帧
- 如果侦听到信道忙,则开始一计时器=(CW-1)
- 计时器
- 如果信道空闲,则计时器递减,否则冻结
- 如果未收到ACK则倍增CW
- 收到ACK, CW=
C
W
m
i
n
CW_{min}
CWmin?
- 接收方在SIFS时间后回传ACK
- RTS/CTS机制
- 预约: 避免了长数据帧的碰撞
- 请求发送(RTS)、允许发送(CTS)
- 802.11 帧格式
- 四个地址: 接收AP的MAC、发送AP的MAC、AP所连接的路由器接口的MAC、用于ad hoc模式
- ad hoc 点对点
蜂窝网
- 需要无线因特网接入、但又无法访问WiFi热区时,扩展蜂窝网使支持无线网接入
- 移动交换中心MSC、GSM全球移动通信系统
移动性
- 名词解释
- 归属网络: 移动节点的永久居所 (<-> 被访网络)
- 归属代理: 当移动节点处于外部时,代表移动节点行动 (<-> 外部代理)
- 永久地址 (<-> 转交地址)
- 间接选路
- 注册: 外部代理知道了移动节点、归属代理知道了外部代理
- 步骤: 移动节点->归属网络->(截获分组,重新封装转发)->外部代理->移动节点
- 三角选路: 收发双方在相同外部代理,低效(绕一圈通过归属网络通信)
- 在网络之间移动IP不变(使外部网络变为透明的)
- 直接选路
- 通信者询问归属网络以获取外部地址
- 锚外部代理: 首次被访网络中的外部代理
- 移动 IP
- RFC 3344协议
- 间接选路: 归属代理会发送包中包 (以改变IP)
- 代理通告: 代理广播ICMP报文通告它的服务
- 例子: 外部代理广播、移动节点响应、外部代理注册、归属代理响应、外部节点响应
- 蜂窝网
- GSM漫游
- 如: 北京人传讯给天京人
- 呼叫送到归属网络 -> 归属 MSC咨询HLR得到移动节点被访网络MSC -> 归属MSC建立到被访网络MSC的新呼叫 -> 被访网络MSC -> 基站 -> 移动节点
- GSM MSC内切换
- 新基站信号更强、负载均衡 (GSM不在乎原因)
- 旧基站发起、新基站响应
- GSM MSC间切换
- 锚 MSC: 在呼叫中访问的首个MSC
- 新MSC添加到MSC链的末端
|