single-bit error:在给定的数据单元,仅有一位发生从0到1或者1到0的变化。
burst error:数据单元中有两位或者更多位发生1到0或者0到1的错误。
Detection:只看差错是否发生,只回答是否。
Correction:知道破坏位的个数,在报文中的位置
纠错方法:向前纠错,重传
datawords:在块编码中,把报文划分成块,每块有 k 位,称为数据字datawords
codewords:并增加 r个冗余位使其长度变为 n = k + r,形成 n 位的块称为码字codewords
invaild or illegal: 2 n − 2 k 2^n-2^k 2n−2k冗余码
可以进行差错检测的条件:
如果码字在传输中被破坏,但接收到的码字仍然是一个有效的码字,差错则无法被检测到。
Hamming distance between two words d ( x , y ) d(x,y) d(x,y):两个相同长度的字的汉明距离是对应位不同的数量。
计算:对两个字异或后计算1的个数
d
(
000
,
011
)
=
2
;
d
(
000
,
101
)
=
2
d(000,011)=2;d(000,101) = 2
d(000,011)=2;d(000,101)=2
minimum hamming distance:一组字中所有可能对的汉明距离的最小值。
编码方案写成 C ( n , k ) C(n,k) C(n,k)和一个单独的 d m i n d_{min} dmin表达式。如上的编码方案可以写成: C ( 5 , 2 ) , d m i n = 3 C(5,2),d_{min} = 3 C(5,2),dmin=3
数据以表格形式组织,分别放在各自的行中。
对于每一行和每一列,计算出一个奇偶校验位。
two dimensional parity check可以检测出表中任意位置发生的三个差错。
只讨论最小汉明距离为 d m i n = 3 d_{min} = 3 dmin=3 的汉明码,它最多能检测出 2 位差错和最多纠正 1 位差错。
当 d m i n = 3 d_{min} = 3 dmin=3时,m和n的关系: n = 2 m − 1 n = 2^m - 1 n=2m−1
汉明码要求:
{
m
=
r
>
=
3
k
=
n
−
m
n
=
2
m
−
1

s在正确情况下一定是0,三个校正子异或得结果
注意接收方和发送方要使用相同的等式。
生成器不关心奇偶位( q 0 , q 1 , . . . , q n q_0,q_1,...,q_n q0,q1,...,qn)的错误和无差错。其他情况相应的位必须要反转,但是若出现2位错误反转后也未必正确。
数据位,码字和除数等位数关系

一些表示:
数据字
d
(
x
)
码字
c
(
x
)
生成多项式
g
(
x
)
校正子
s
(
x
)
差错
e
(
x
)
数据字d(x)\quad 码字c(x)\quad 生成多项式g(x)\\ 校正子s(x)\quad 差错e(x)
数据字d(x)码字c(x)生成多项式g(x)校正子s(x)差错e(x)
接收到的码字:
c
(
x
)
+
e
(
x
)
c(x)+e(x)
c(x)+e(x)===初始发送的码字+错误项
接收到的码字
g
(
x
)
=
c
(
x
)
+
e
(
x
)
g
(
x
)
=
c
(
x
)
g
(
x
)
+
e
(
x
)
g
(
x
)
=
e
(
x
)
g
(
x
)
\frac{接收到的码字}{g(x)} = \frac{c(x)+e(x)}{g(x)} = \frac{c(x)}{g(x)}+\frac{e(x)}{g(x)} = \frac{e(x)}{g(x)}
g(x)接收到的码字=g(x)c(x)+e(x)=g(x)c(x)+g(x)e(x)=g(x)e(x)
e ( x ) = x i e ( x ) g ( x ) = x i g ( x ) e(x)=x^i\\ \frac{e(x)}{g(x)} = \frac{x^i}{g(x)} e(x)=xig(x)e(x)=g(x)xi
若g(x)有两项(一般来说), x 0 x^0 x0项系数不为0,那么不能除尽,可以检错
用校验和进行简单检错的方法常用于Internet的其它高层协议中。
发送数据时,同时还发送它们的和(用于检错校验,因此称为校验和)。
校验和的步骤:【发送方】
成帧:添加发送方地址和接收方地址,成帧将一条从源端到目的端的报文分开来,或者将不同目的端的报文分开来
不需要定义帧的边界,长度本身就是限制。
帧的开始和帧的结束要加上分隔符。
方式
{
面向字符
面向位
方式
{
f
l
a
g
:标志位,分隔这一帧和下一帧
H
e
a
d
e
r
:源地址和目的地址
T
a
i
l
e
r
:检错或者纠错冗余位
需要分隔符:01111110作为分隔符,标志帧的开始和结束
位填充bit-stuffing:遇到1个0和连续5个1时,便增加一个0,不管后面的那个位是什么。额外的位被接收方移走。
数据链路控制
{
成帧
流量控制
差错控制
数据链路控制
协议
{
无噪声通道
{
最简单协议
停止等待协议
噪声通道
{
停止等待
A
R
Q
回退
N
帧
A
R
Q
选择性重发
A
R
Q
协议
假设不会丢失帧,复制帧,或者损坏帧。
最简单协议不使用流量控制,Stop and Wait使用流量控制。
但是都不使用差错控制,因为是完美通道。
没有差错控制和流量控制。假设接收方能及时处理所有接收到的帧,不会超载。
两个驱动事件:
如果接收方的数据帧的到达速度大于能被处理的速度,那么帧在使用前必须被存储。为避免接收方超负荷,让发送方减缓速度。
协议内容:当发送方发送了一个帧后必须停下来,直到收到来自接收方的ACK(可以继续了),然后再发送一个帧。
半双工链路
发送方两个驱动事件:
在停止等待协议中增加了错误控制。
错误控制的条件:
对帧进行编号,序列号是可以循环的。
序列号基于模2运算
有必要使用的序号是x和x+1。
ACK号 = 接收到帧的序号 + 1
表示:
S n S_n Sn:保存下一个将要发送帧的序列号
R n R_n Rn:保存下一个期待接收的帧的序列号
/******************** 发送方 ******************/
Sn = 0;
canSend = true;
while(true){
WaitForEvent();
if(Event(RequestToSend) and canSend){
GetDate();
MakeFrame();
StoreFrame(); // 保存该帧的副本
StartTimer(); // 计时器启动
Sn = Sn+1; // 指向下一帧
canSend = fasle;
}
WaitForEvent(); // sleep until event occur
if(Event(ArrivalNotification)){ // ACK arrive
ReceiveFrame(ackNo);
if(not corrupted and ackNo = Sn) //有效帧
{
StopTimer();
PurgeFrame(Sn-1);
canSend = true;
}
}
if(Event(TimeOut)){
StartTimer();
ResendFrame(Sn-1); // 重发
}
}
/********************** 接收方 **********************/
Rn = 0;
while (true) {
WaitForEvent(); // 等待事件发生
if (Event(ArrivalNotification)) { // Data frame arrives
ReceiveFrame();
if (corrupted(frame)){
sleep();
}
if (seqNo == Rn) {
ExtractData();
DeliverData();
Rn = Rn + 1;
}
SendFrame(Rn); // 序号不匹配时也会发出ACK
}
}
停等ARQ的例子:
在一个停等ARQ系统中,带宽为1Mbps,往返传播时间是 20ms,求带宽时延积。如果帧长度为 1000bit,则链路的利用率是多少?
带宽时延积为:
1 × 1 0 6 × 20 × 1 0 − 3 = 20000 b i t 1×10^6×20×10^{-3} = 20000bit 1×106×20×10−3=20000bit
一次往返只能发送1000bit,所以利用率为
1000 / 20000 = 5 % 1000 / 20000 = 5\% 1000/20000=5%
大量带宽资源被浪费
停止等待ARQ中大部分带宽被浪费,目标是提高传输的效率。
允许序列号有m位,模 2 m 2^m 2m,序列号范围是 0 0 0~ 2 m − 1 2^m-1 2m−1
序列号可重复
滑动窗口定义发送方和接收方关心的序列号范围。【发送方和接收方只需处理可能的序列号部分】
s
l
i
d
i
n
g
w
i
n
d
o
w
{
发送滑动窗口
接收滑动窗口
sliding\ window
窗口的最大大小是 2 m − 1 2^m-1 2m−1
窗口分为4部分:
{
已确认,不用保存副本
待确认帧,保存副本
能够发送,但未从网络层接收数据
直到滑动窗口才能使用

三个参数:
有效确认到达时,发送窗口能够发送一个或者多个时隙。
接收窗口是一个抽象概念,用变量 Rn定义了大小为 1 的接收窗口。正确的帧到达时,接收窗口滑动到下一个时隙。
R n R_n Rn定义了期待接收的帧,除了 R n R_n Rn外任何失序帧到达都会被丢弃。
协议只使用一个定时器,第一个待处理的帧的定时器总是先到时,到时时,我们重发所有的待处理帧。
如果一个帧安全有序到达,那么接收方发送一个肯定的确认
如果帧被损坏或者失序,那么接收方不响应并且丢弃所有后来的帧,直到它收到一个它期待的帧。【与停止等待ARQ区别:失序时不会发送ACK 】
接收方可为多帧发送一个累计确认cumulative acknowledgment
定时器到时时,发送方会重发所有的待确认的帧。
多个帧能在前向方向传输,在反向传输多个确认。


/***************************** 回退N帧ARQ ****************************/
Sw = 2^m - 1; // 窗口大小
Sf = 0; // 待处理的帧:第0帧
Sn = 0; // 待发送的帧:第0帧
while (true) {
waitForEvent();
if (Event(RequestToSend)) {
if (Sn - Sf >= Sw) { // 窗口满了
sleep();
}
GetData();
MakeFrame(Sn);
StoreFrame(Sn); // 副本
Sn = Sn + 1;
if (timer not running) {
StartTimer();
}
}
if (Event(ArrivalNotification)) { // ACK arrive
Receive(ACK);
if (corrupted(ACK)) {
sleep();
}
if ((ackNo > Sf) && (ackNo <= Sn)) {
while (Sf <= ackNo) { // 累计确认
PurgeFrame(Sf);
Sf = Sf + 1;
}
StopTimer();
}
}
if (Event(Timer)) {
StartTimer();
Temp = Sf;
while (Temp < Sf) {
sSendFrame(Temp);
Temp = Temp + 1;
}
}
}
/********************************** 接收方 ****************************************/
Rn = 0;
while(true)
{
WaitForEvent();
if(Event(ArrivalNotification)) //Data frame arrives
{
Receive(Frame);
if(corrupted(Frame))
Sleep();
if(seqNo == Rn) // If excepted frame
{
DeliverData(); // Deliver data
Rn = Rn + 1; // Slide window
SendACK(Rn);
}
}
}
停止等待ARQ其实是回退N帧ARQ的一种特殊情况:只有两个序列号且窗口的大小是1
回退N帧ARQ存在的问题:
窗口尺度为 2 m − 1 2^{m-1} 2m−1
窗口的缩小意味着对管道有效填充性减少,但事实上副本帧会少很多。
接收窗口大小和发送窗口一样 2 m − 1 2^{m-1} 2m−1
允许和接收窗口一样多的帧失序到达,并保留到有一组有序帧能交付给网络层:
每个窗口位置只发送一个NAK并指明窗口中的第一个时隙
定时器的数量与Go-Back-N不同,每发送或者重发一个帧都需要有一个定时器,定时器也要编号:只有在这个帧的ACK达到后才会停止计时器。
Note:
HDLC是一种面向位的点到点和多点链路进行通信的协议。实现了ARQ
{
正常响应方式
n
o
r
m
a
l
r
e
s
p
o
n
s
e
m
o
d
e
异步平衡响应方式
a
s
y
n
c
h
r
o
n
o
u
s
b
a
l
a
n
c
e
d
m
o
d
e
一个主站(primary station)和多个从站(secondary station)
主站只能发命令,从站只能响应。
每个站既是主站又是从站。
信息帧,监控帧,无编号帧
t
y
p
e
o
f
f
r
a
m
e
{
i
n
f
o
r
m
a
t
i
o
n
f
r
a
m
e
s
,
I
−
f
r
a
m
e
s
:传输用户数据以及用户数据相关的控制信息
s
u
p
e
r
v
i
s
o
r
y
f
r
a
m
e
s
,
S
−
f
r
a
m
e
s
:传输控制信息
u
n
n
u
m
b
e
r
e
d
f
r
a
m
e
s
,
U
−
f
r
a
m
e
s
:作为系统管理
type\ of frame
如果控制字段的第一位是0,那么这是一个信息帧。
N(S)定义序号0-7
P/F是单个位,设定为1的时候有意义,意味着轮询或者终止。发送方为主站时(地址字段包含接收方的地址,意味着轮询;帧由从站发向主站时,意味着终止)
如果控制字段的前两个位是10,那么是管理帧。
管理帧没有信息字段。
最后三个位,称为N(R),与确认号(ACK)或者否定确认(NAK)对应,取决于管理帧的类型。
code字段定义管理帧的类型:
c
o
d
e
对管理帧类型的定义
{
准备接收
R
R
:
00
不准备接收
R
N
R
:
10
拒收
R
E
J
:
01
选择性拒收
S
R
E
J
:
11
code对管理帧类型的定义
a. Receive Ready【RR】:编码字段是00,即ACK,N(R)即是确认号
b. Receive Not Ready【RNR】:编码字段是10,对一个或一群帧进行确认,宣布不能接收更多的帧,要求发送方减速
c. Reject 【REJ】:编码字段是01,是一个NAK帧,是一个能在回退N帧中使用的NAK,告知最后一个帧丢失或者损坏,N(R)的值是否定确认号
d. Selective Reject:编码字段是11,选择性重复ARQ的NAK帧,选择性拒收。
无编号帧负责在连接的设备之间交换会话管理和控制信息。无编号帧包含一个信息字段,信息字段用作系统管理而不是用户数据。
上述的链路访问是假定发送方和接收方之间有专门的专用链路的。
实际上:非专用链路,数据链路层需要提供 data link control && media access control
数据链路层分成两个子层
{
data link control
Multiple-access resolution
{
随机访问协议
受控协议
通道化协议
数据链路层分成两个子层


in random access or contention:没有任何站点是优于其他站点的,没有站点能控制其他站点。
当一个站点要发送数据时,都使用协议来决定要不要发送。
Random Access Protocol的特点:
但是一个以上的站点发送时就会产生冲突---->帧损坏
概念:一个站点有帧要发送,那么发送这个帧。存在冲突 ----> 帧损坏 ----> 重发
纯ALOHA依赖于接收方的确认。发送后等待接收方的确认,如果超时后还未到达,站点就认为帧被损坏了。
[resend]
back-off time:如果超时后都重发帧,那么可能再次冲突collide again,超时后随机等待一定时间wait a random amount of time。称这个时间为back-off time T B T_B TB
一个站点在经过最大次数 K m a x K_{max} Kmax之后,必须放弃尝试,并且等待以后尝试
其中超时时间 W a i t t i m e o u t t i m e = 2 × T p Wait\ time\ out\ time = 2\times T_p Wait time out time=2×Tp,为两倍的传输时间
T B T_B TB的公式取决于实现,其中一种方法是二进制回退binary exponential back-off:
【脆弱时间 vulnerable time】
vulnerable time:可能发生冲突的时间
纯ALOHA的 v u l n e r a b l e t i m e = 2 × T f r vulnerable\ time =2\times T_{fr} vulnerable time=2×Tfr
【吞吐量Throughput】
吞吐量是指每秒实际发送的,与带宽不同。
G:1个帧传输时间 T t f T_{tf} Ttf内,系统产生帧的平均数
S:纯ALOHA成功传输帧的平均数量
S
=
G
×
e
−
2
G
S = G\times e^{-2G}
S=G×e−2G
当
G
=
1
2
G = \frac{1}{2}
G=21时,
S
m
a
x
=
0.184
S_{max}=0.184
Smax=0.184.
在时隙ALOHA中,将时间分隔成 T f r T_{fr} Tfr秒的时隙,并强制站点只有在时隙开始的时候才能发送。
冲突发生在同时在一个时隙中发送的情况:
脆弱时间 v u l n e r a b l e t i m e = T f r vulnerable \ \ time = T_{fr} vulnerable time=Tfr
【throughput】
S = G × e − G S = G\times e^{-G} S=G×e−G,当G=1时, S m a x = 0.368 S_{max} = 0.368 Smax=0.368
载波侦听多路访问CSMA(Carrier Sense Multiple Access)要求每一个站点在发送前先要监听介质,以减少冲突发生的概率。但是它不能消除冲突,冲突概依然存在的原因是传播的延迟。
v u l n e r a b l e t i m e = T P vulnerable\ \ time = T_P vulnerable time=TP
CSMA/CD给出了检测到冲突之后的做法:
是否成功:监控介质观察
{
成功,完成发送
失败,重发
是否成功:监控介质观察
任意站点都可以发送帧,之后监控介质查看传送是否成功。如果成功,站点完成发送;如果不成功,说明存在冲突,需要重新发送此帧。
同时,要想监测到异常,那么要满足条件:
T
f
r
≥
2
T
p
T_{fr} ≥ 2T_p
Tfr≥2Tp
满足 T f r = 2 T p T_{fr} = 2T_p Tfr=2Tp的,即是最小帧长。
叙述CSMA/CD的流程——
与纯ALOHA相比:
由于在无线网络中大量发送信号的能量在传输中丢失,所以冲突检测起不了什么作用,需要避免冲突。
避免冲突的办法:
监听到空闲时,并不马上发送,等待一段时间后再发送【使得源端的信号能传输到】,这段时间等于竞争时间。
IFS能定义一个站点/帧的优先权:IFS时间越短,优先级越高
竞争窗口将时间分隔成时隙,选择一个随机时隙作为等待时间。
时隙个数:补偿策略中的二元指数变化。(IFS后不空闲则时隙数量加倍。)
在CSMA/CA中如果站点发现通道忙,那么不重启竞争窗口的计时器,而是停止计时器发现通道空闲时再启动计时器。
ACK+定时器
受控访问的形式:
时间划分为时隙:N个站点,N个预约子时隙,每个时隙均属于一个站点。
每个时隙内先发送一个预约帧reservation station,预约完的站点可以在预约后发送数据帧。
Polling一个设备作为主站primary station;另一些设备作为从站secondary station;
所有的数据交换都要通过主站点进行,即使最终的目的站点是从站点。
主设备决定那个设备允许使用通道,主设备始终是一个会话的发起者。
polling:主设备希望接收数据,叫做轮询
select:主设备希望发送数据
网络中的站点被组织在逻辑环中,每个站点有前驱后后继。
当前正在使用令牌的节点:令牌从前驱来,不用时往后继去
不同的站点在时域、频域、码域上正交化来共享信道
{
F
D
M
A
T
D
M
A
C
D
M
A
可用带宽被划分为频带,每个站点都是用分配的频带来通信。
guard bands:保护频带
所有站点在时间上共享带宽。
每个站点被划分时隙,只有在该时隙才能发送数据。
CDMA:
思想:
n个站点分配n个编码:c1,c2,…,cn
编码特性:
局域网(local area network LAN)应用于有限的地理范围。
IEEE将数据链路层划分为两个子层:
数据链路层的两个子层
{
逻辑链路控制层
L
L
C
介质访问控制层
M
A
C
数据链路层的两个子层

逻辑链路层是用来:
LLC为所有IEEE局域网提供一个单一的数据链路控制协议。
LLC定义了一个协议数据单元PDU,一定程度上与HDLC相似。
头部包含控制字段
用以流量控制和差错控制
另外两个头部界定了使用LLC的源和目的的上层协议,称为目的业务接入点 destination service access point [DSAP]和源业务接入点source service access point [SSAP]。
HDLC中定义的帧被分为LLC子层的PDU和MAC子层的一个帧:
H
D
L
C
帧
{
L
L
C
P
D
U
M
A
C
帧
HDLC帧

LLC的目的是为需要流量控制和差错控制的上层协议提供这些服务。
IP协议不需要LLC服务。
介质访问控制层为每个局域网定义特定的访问方法。
M
A
C
定义的访问方法
{
以太网:
C
S
M
A
/
C
D
令牌环:令牌传递
令牌总线局域网:令牌传递
.
.
.
.
.
.
MAC定义的访问方法
每种以太网的实现都有不同的物理层规范。
以太网的发展:
MAC子层将上层的数据成帧并传输给物理层。
以太网的帧包括7个字段:preamble,start frame delimiter (10101011),destination address, source address, Length or type, Data and padding和CRC
对应到有效载荷:
64 - 18 = 46 1518 - 18 = 1500
以太网的地址是6字节(48位)的,通常用十六进制表示,字节间用冒号断开。
源地址永远是一个单播地址——帧只来自一个站点
目的地址可以是单播地址也可以是多播地址,还可以是广播地址
{
单播地址:地址的第一个字节的最后一位是
0
多播地址:地址的第一个字节的最后一位是
1
广播地址:地址全为
1
曼彻斯特编码
粗缆以太网,使用收发器,收发器负责:
收发器通过收发器线缆与站点相联,收发器电缆能为发送和传输提供独立的路径,冲突只会发生在粗轴电缆中。
粗轴电缆的最大长度不能超过500米。最多分成5段,使用中继器连接。
收发器是网卡的一部分。每个分段的长度最多是185米。
使用物理星型拓扑结构,使用双绞线连接到网络集线器上。
双绞线在站点和网络集线器之间形成了两条路径(一条发送一条接收),冲突发生在集线器中。
使用星型拓扑结构将站点与网络集线器联机。
以太网发展的第一步是将局域网利用网桥分割。
网桥分隔,提高了带宽,分隔了冲突域。
多个端口的网桥可以变成N个端口的交换机,站点的带宽由交换机和站点共享。冲突域分为N个:
一个2层交换机就是一个N个端口的网桥:
10Base5和10Base2是半双工的(10BaseT始终是全双工的)
下一步就是从交换式以太网到全双工以太网。全双工模式将一个域的能力从10Mbps增加到20Mbps。
在全双工模式中,在站点与交换机之间不是使用一条链路,而是使用两条链路:
一个用于传送,一个用于接收:
无限LAN包括:
IEEE定义的无线局域网的规范为IEEE802.11,该规范覆盖数据链路层和物理层。
{
基本服务集
B
a
s
i
c
s
e
r
v
i
c
e
s
e
t
扩展服务集合
E
x
t
e
n
d
e
d
s
e
r
v
i
c
e
s
e
t
基本服务集:无线网络的积木
组成:
其中,带AP的为基础网络,不带AP的为特别网络
B
S
S
{
a
d
h
o
c
{
固定的站点
移动的站点
i
n
f
r
a
s
t
r
u
c
t
u
r
e
n
e
t
w
o
r
k
{
固定的站点
移动的站点
访问点
A
P
BSS
ESS由两个或者更多个带有AP的BSS组成。
各个BSS之间由分布式系统distribution system连接。分布式系统连接BSS中的AP。
对分布式系统没有严格限制,可以是任何类型的局域网,如:以太网。
扩展服务集ESS使用两种类型的站点:
{
移动的
固定的

在连接BSS时
三种站点类型:
{
不迁移
n
o
n
−
t
r
a
n
s
i
t
i
o
n
{
固定不移动的站点
只在
B
S
S
内移动
B
S
S
迁移
B
S
S
−
t
r
a
n
s
i
t
i
o
n
:只在一个
B
S
S
内移动,但被限制在
E
S
S
内
E
S
S
迁移
E
S
S
−
t
r
a
n
s
i
t
i
o
n
:可以从一个
E
S
S
移动到另一个
E
S
S
IEEE802.11定义了两个MAC子层:分布式协调功能(DCF)和点协调功能(PCF)
DCF使用的是CSMA/CA而不是CSMA/CD。
不能使用CSMA/CD的原因:
由于不检测,所以无法得知是否发生冲突,所以需要ACK。
网络分配矢量:当一个站点发送RTS帧时,它包含了需要占据通道的时间。受到这一传送影响的站点建立一个叫做网络分配矢量NAV的计时器,该定时器指出:
在允许这些站点检测通道是否空闲之前还需要等待多长时间。即:NAV不到时,不需要侦听通道。
在RTS或者CTS正在发送时,这一期间叫做握手周期handshaking period。如果两个或者多个产生了冲突,但是没有检测冲突的机制,因此发送方在没有从接收方接收到CTS就以为产生了冲突,于是采取补偿策略并重新发送。
点协调功能PCF在基础网络的BSS中是可选的。主要用作对时间敏感的传输。
PCF是集中式的,无竞争的轮询访问方式,站点依次被轮询,将数据发给AP。
PCF的优先级高于DCF,定义了另一套帧间间隔:
意味着:一个站点只使用DCF,而一个AP使用PCF,那么AP有优先权。
由于PCF的优先级比DCF的优先级高,可能导致只使用DCF的站点得不到对介质的访问。于是设计了重复间隔repetition interval。
重复间隔repetition interval 会持续重复,开始于一个信号帧beacon frame的特殊控制帧,终结于PC发送CF。
MAC层包括9个字段:
FC中的两个字段from DS和to DS定义,每个字段可能是0或者1。
定义四种情况:
| to DS | from DS | 地址1 | 地址2 | 地址3 | 地址4 |
|---|---|---|---|---|---|
| 0 | 0 | 目的地址 | 源地址 | BSS ID | N/A |
| 0 | 1 | 目的地址 | 发送AP | 源地址 | N/A |
| 1 | 0 | 接收AP | 源地址 | 目的地址 | N/A |
| 1 | 1 | 接收AP | 发送AP | 目的地址 | 源地址 |
连接设备分为5类:
无源集线器只是个连接器,连接来自不同分支的线路。
在星型拓扑中,无源集线器只是一个来自不同站点的信号冲突点,集线器是冲突点。无源集线器工作在物理层以下。
repeater仅工作在物理层。
中继器能够接收信号,在信号变得很弱或者被破坏前,重新生成原始的位模式,然后发送新生成的信号。中继器只重新生成信号,并不放大信号。
**中继器实际并不能连接两个局域网,连接的是同一局域网的两个分段。**所连接的网段仍然是一个局域网的一部分。中继器不能连接采用不同协议的两个局域网。
中继器可以克服10Base5以太网标准的长度限制。使用中继器连接各个网段segement。
过滤帧的能力:读取帧首部信息,决定是否转发,如何转发。
中继器转发每一帧,没有过滤能力。
中继器常用于星型拓扑结构中,可以多级级联。
有源集线器是一个多端口的中继器。常用于星型拓扑中。
集线器和网线一样工作在物理层,功能和网线一样,只是将数字信号发送到其他的端口,不能识别帧首部的信息。
数字信号发送到其他的端口。
集线器组建的以太网共享带宽,计算机数量越多,平均带宽就越低。
无论MAC地址是否是自己的,都能捕获。
级联以后的以太网计算机处于一个冲突域内。增大了冲突的概率,每台计算机分到的带宽也降低了。
相联的接口带宽要一样。如果数据速率不一致,那么工作在较低的数据速率,因为集线器接口不能缓存帧。
网桥工作在物理层和数据链路层。
网桥与中继器不同的地方在于网桥有过滤功能。
网桥具有一个用过过滤决策的表,有过滤作用。转发帧时必须指定端口。检查帧的目的地址。
网桥基于MAC地址转发帧,转发之前运行CSMA/CD算法。
网桥的一个接口是一个冲突域,冲突域的数量增加,但是冲突的概率减少。
实现帧的存储转发,增加了时延。
网桥的接口可以是不同的带宽。
透明网桥指的是站点意识不到桥的存在。
802.1d规定了透明网桥的特点:
两层交换机是一个拥有许多端口并且有更好更快性能的网桥。
多端口的网桥可以给每个站点分配唯一的端口,每个站点都作为独立的实体。没有冲突。
从输入线路上接收帧,缓存,通过路由选择将其发送到适当的输出线路上。发送方和接收方存在延迟,增进了网络的整体一致性。
利用了目的地址总是出现在MAC帧的最前面的特点。交换机识别出目的地址后就将帧转发到适当的输出线路能够达到很高的吞吐量。
路由表中包含了下面的信息:
三层交换机是路由器,但是更快且更复杂
通过软件而不是物理线路来配置一个局域网,称为虚拟局域网。
基于端口:使用交换机的端口
基于MAC地址:使用48位MAC地址,规定某个MAC地址的主机属于某个VLAN
基于IP地址:32位IP地址
基于多播IP地址
默认VLAN是交换机初始就有的VLAN,通常ID为1,所有的接口都处于这个VLAN下,这就是所有设备连接到交换机上就能相互通信的原因。
VLAN ID最多有 2 12 2^{12} 212个,VLAN0和VLAN4095保留。