-
Notifications
You must be signed in to change notification settings - Fork 32
/
2.3、多种局域网协议及技术.md
388 lines (221 loc) · 13.1 KB
/
2.3、多种局域网协议及技术.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
# 以太网及交换机
* LAN: Local Area Network
* 将物理位置邻近的计算机连接起来,资源共享和信息交换,地理范围和主机数目均有限
## 以太网
* 以太网是目前为止最流行的有线局域网
* 第一个广泛部署的高速局域网
* 相比令牌环网,FDDI,ATM,组网简单,设备较为便宜
* 以太网不断提高数据率,以太网交换机的出现,进一步提高了有效数据率
* 物理拓扑
* 总线(bus): 上世纪90年代中期前流行
<img src="https://img-blog.csdnimg.cn/20210112193046618.png" alt="image-20210105000457799" width="20%"/>
* 所有结点在同一冲突域(collision domain) (可能彼此冲突)
* 星型(star): 目前主流网络拓扑
<img src="https://img-blog.csdnimg.cn/20210112193110765.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105000527695" width="20%" />
* 中心交换机(switch)
* 每个结点一个单独冲突域(结点间彼此不冲突)
* 不可靠、无连接服务
* 无连接(connectionless): 发送帧的网卡与接收帧的网卡间没有“握手”过程
* 不可靠(unreliable): 接收网卡不向发送网卡进行确认
* 差错帧直接丢弃,丢弃帧中的数据恢复依靠高层协议 (e.g., TCP),否则,发生数据丢失
* 以太网的MAC协议: 采用**二进制指数退避算法的CSMA/CD**
**以太网CSMA/CD**
* 1、NIC从网络层接收数据报,创建数据帧。
* 2、监听信道:如果NIC监听到信道空闲,则开始发送帧;如果NIC监听到信道忙,则一直等待到信道空闲,然后发送帧。
* 3、NIC发送完整个帧,而没有检测到其他结点的数据发送,则NIC确认帧发送成功!
* 4、如果NIC检测到其他结点传输数据,则中止发送,并发送干扰信号 (jamsignal)
* 5、中止发送后,NIC进入二进制指数退避:
* 第m次连续冲突后:取n = Min(m, 10),NIC 从{0,1,2, …, $2^n -1$}中随机选择一个数K,NIC等待K*512比特的传输延迟时间,再返回第2步
* 连续冲突次数越多,平均等待时间越长。
**以太网帧结构**
<img src="https://img-blog.csdnimg.cn/20210112193134614.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210104234355328" width="50%" />
* 前导码(Preamble) (8B):
* 7个字节的10101010,第8字节为10101011
* 用于发送端与接收端的时钟同步
* 目的MAC地址、源MAC地址 (各6B):
* 如果网卡的MAC地址与收到的帧的目的MAC地址匹配,或者帧的目的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),则网卡接收该帧,并将其封装的网络层分组交给相应的网络层协议。
* 否则,网卡丢弃(不接收)该帧。
* 类型(Type) (2B):
* 指示帧中封装的是哪种高层协议的分组(如,IP数据报、Novell IPX数据报、AppleTalk数据报等)
* 数据(Data) (46-1500B):
* 指上层协议载荷。
* 10base-5网络中:R=10Mbps,$RTT_{max}$ =512μs,$L_{min}$ / R =$RTT_{max}$
因为要符合最短帧长,所以 $L_{min}$ = 512bits=64B,$Data_{min}$ = $L_{min}$ -18=46B
* CRC (4B):
* 循环冗余校验码
* 丢弃差错帧
## 交换机
以太网交换机
* 链路层设备
* 存储-转发以太网帧:检验到达帧的目的MAC地址,选择性(selectively) 向一个或多个输出链路转发帧
* 利用CSMA/CD访问链路,发送帧
* 透明(transparent)
* 主机感知不到交换机的存在
* 即插即用(plug-and-play)
* 自学习(self-learning)
* 交换机无需配置
多端口间同时传输
<img src="https://img-blog.csdnimg.cn/20210112193157212.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105000838588" width="20%" />
* 主机利用独享(dedicated)链路直接连接交换机
* 交换机缓存帧
* 交换机在每段链路上利用CSMA/CD收发帧,但无冲突,且可以全双工
* 每段链路一个独立的冲突域
* 交换(switching): A-A’与B-B’的传输可以同时进行,没有冲突
交换表
* 每个交换机有一个交换表(switch table):(主机的MAC地址, 到达主机的接口, 时间戳)
* 自学习
* 交换机通过自学习,获知到达主机的接口信息
* 当收到帧时,交换机“学习”到发送帧的主机(通过帧的源MAC地址),位于收到该帧的接口所连接的LAN网段
* 将发送主机MAC地址/接口信息记录到交换表中
<img src="https://img-blog.csdnimg.cn/2021011219321937.png" alt="image-20210105001207513" width="20%" />
帧过滤/ 转发
* 当交换机收到帧
* 记录帧的源MAC地址与输入链路接口
* 利用目的MAC地址检索交换表
```
if 在交换表中检索到与目的MAC地址匹配的入口(entry)
then {
if 目的主机位于收到帧的网段
then 丢弃帧
else 将帧转发到该入口指向的接口
}
else 泛洪(flood) /* 向除收到该帧的接口之外的所有接口转发 */
```
* 自学习与转发过程举例(如上表)
* 目的MAC地址A’,位置未知:泛洪
* 目的MAC地址A,位置已知:选择性转发
交换机 vs. 路由器
* 两者均为存储-转发设备
* 路由器: 网络层设备 (检测网络层分组首部)
* 交换机: 链路层设备 (检测链路层帧的首部)
* 二者均使用转发表:
* 路由器: 利用路由算法(路由协议)计算(设置), 依据IP地址(每个新上线节点根据 OSPF 协议都会发送 HELLO 报文)
* 交换机: 利用自学习、泛洪构建转发表, 依据MAC地址
网络设备对比
<img src="https://img-blog.csdnimg.cn/20210112193243967.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105001925249" width="40%" />
# 其他局域网
## 无线局域网
### IEEE 802.11
分类
* 802.11b
* 2.4-2.5GHz免费频段 (unlicensed spectrum)
* 最高速率:11 Mbps
* 物理层采用直接序列扩频(DSSS)技术
* 所有主机使用相同的码片序列
* 802.11a
* 5-6 GHz频段
* 最高速率:54 Mbps
* 802.11g
* 2.4-2.5 GHz频段
* 最高速率:54 Mbps
* 802.11n: 多天线(MIMO)
* 2.4-2.5 GHz频段
* 最高速率:600 Mbps
异同
* 均使用CSMA/CA 多路访问控制协议
* 均有基础设施( 基站) 网络模式和特定网( 自组网) 网络模式
* 对比
<img src="https://img-blog.csdnimg.cn/20210112193306255.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105003305904" width="50%" />
体系结构
* 无线主机与基站通信
* 基站(base station) = 访问点(access point-AP)
* 基本服务集BSS(Basic Service Set) ,也称为单元(cell)
* 基础 设施网络式 模式:无线主机、AP(基站)
* 自组网(ad hoc) 模式:只有主机
信道与AP 关联
* 802.11b: 2.4GHz-2.485GHz频谱划分为11个不同频率的信道
* 每个AP选择一个频率(信道)
* 存在干扰可能: 相邻的AP可能选择相同的信道!
* 主机: 必须与某个AP关联(associate)
* 扫描信道,监听包含AP名称(服务集标识符-SSID )和MAC地址的信标(beacon)帧
* 选择一个AP进行关联
* 可能需要进行身份认证
* 典型情形:运行DHCP获取IP地址等信息
* 被动扫描与主动扫描
* 被动扫描(scanning):
<img src="https://img-blog.csdnimg.cn/20210112193332862.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105004048150" width="30%" />
* 各AP发送信标帧
* 主机(H1)向选择的AP发送关联请求帧
* AP向主机(H1)发送关联响应帧
* 主动扫描:
<img src="https://img-blog.csdnimg.cn/20210112193407297.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105004108039" width="30%" />
* 主机(H1)主动广播探测请求帧(Probe Request Frame)
* AP发送探测响应帧(Probe Response Frame)
* 主机(H1)向选择的AP发送关联请求帧
* AP向主机(H1)发送关联响应帧
**帧格式**
<img src="https://img-blog.csdnimg.cn/20210112193428168.png" alt="image-20210105012054392" width="50%" />
* 帧主体就是 IP 数据报
* 802.11数据帧有4个地址字
* 地址 4 用于自组网络
* 地址1~地址3:
<img src="https://img-blog.csdnimg.cn/20210112193451114.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_7" alt="image-20210105011719816" width="40%" />
* 传送过程
<img src="https://img-blog.csdnimg.cn/20210112193519463.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105011937186" width="40%" />
### CSMA/CA
多路访问控制
* 避免冲突: 2 + 结点同时传输
* 802.11: CSMA – 发送数据前监听信道
* 避免与正在进行传输的其他结点冲突
* 802.11: 不能像CSMA/CD那样,边发送、边检测冲突!
* 无线信道很难实现(有线通过监测信号强度)
* 无法侦听到所有可能的冲突:隐藏站、信号衰落
* 目标: 避免冲突(avoid collisions)-CSMA/C(ollision)A(voidance)
CSMA 实现
<img src="https://img-blog.csdnimg.cn/20210112193543105.png" alt="image-20210105010006206" width="20%" />
* 802.11 sender
* ```
1、if 监听到信道空闲了DIFS 时间
then 发送整个帧(无同时检测冲突,即CD)
```
* ```
2、if 监听到信道忙
then 执行退避算法,在此期间继续侦听信道
当信道空闲时,计时器倒计时
退避值减到0(信道空闲),发送帧
if 没有收到ACK
then 增加随机退避间隔时间
重复第2步
```
* 802.11 receiver
- ```
if 正确接收帧
延迟SIFS时间后,向发送端发送ACK (由于存在隐藏站问题)
```
CA(冲突避免) 实现
* 基本思想:允许发送端“预约”(reserve)信道,而不是随机发送数据帧,从而避免长数据帧的冲突
* 发送端首先利用CSMA向AP发送一个很短的RTS (request-to-send)帧
* RTS帧仍然可能彼此冲突 (但RTS帧很短)
* AP广播一个CTS(clear-to-send)帧作为对RTS的响应
* CTS帧可以被所有结点接收
* 消除隐藏站影响
* 发送端可以发送数据帧
* 其他结点推迟发送
* 冲突避免(CA): RTS-CTS 交换
* 利用很小的预约帧彻底避免了数据帧冲突
<img src="https://img-blog.csdnimg.cn/20210112193609211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105010418311" width="40%" />
## 虚拟局域网
动机
* 考虑一下情形:
<img src="https://img-blog.csdnimg.cn/20210112193830597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105013100168" width="30%"/>
* CS用户迁移到EE,但是希望连接至CS交换机,怎么办?
* 单一广播域 :
* 所有第2层广播流量(ARP,DHCP, 未知目的MAC地址位置)必须穿越整个LAN
* 安全/隐私、效率问题
虚拟局域网(Virtual Local Area Network)
* 支持VLAN 划分的交换机 , 可以在一个物理 理LAN 架构上配置 、定义多个VLAN
基于端口的VLAN
<img src="https://img-blog.csdnimg.cn/20210112193853517.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105013556724" width="30%" />
* 流量隔离(traffic isolation):去往/来自端口1-8的帧只到达端口1-8
* 也可以基于MAC地址定义VLAN, 而不是交换端口
* 动态成员: 端口可以动态分配给不同VLAN
* 在VLAN间转发: 通过路由(就像在独立的交换机之间)实践中,厂家会将交换机与路由器集成在一起
跨越多交换机的VLAN
<img src="https://img-blog.csdnimg.cn/20210112193916106.png" alt="image-20210105013700777" width="50%" />
* 多线缆连接
* 每个线缆连接一个VLAN
* 中继端口(trunk port): 在跨越多个物理交换机定义的VLAN承载帧
* 为多VLAN转发802.1帧容易产生歧义 (必须携带VLAN ID信息)
* 802.1q协议为经过中继端口转发的帧增加/去除额外的首部域
802.1Q VLAN帧格式
<img src="开发.assets/image-20210105013730096.png" alt="image-20210105013730096" width="40%" />