33数据链路层
数据链路层基本概念
物理链路:传输介质0层+物理层1层实现了相邻节点之间的物理链路
逻辑链路:数据链路层需要基于物理链路,实现响铃节点之间逻辑上无差错的数据链路/逻辑链路

- 数据链路层使用网络层提供的"比特传输"服务,数据链路层为网络层提供服务,将网络层的IP数据报/分组封装成帧,传输到下一个相邻节点
数据链路层功能:
- 封装成帧/组帧
- 帧定界
- 设计帧的格式,让接收方能够确定帧的边界
 
- 透明传输
- 接收方链路层要能从接收到的帧内恢复原始SDU,让网络层感受不到将分组封装成帧的过程
 
- 差错控制
- 发现帮解决一个帧内部的"位错",解决方案如下:
- 仅采用检错编码,接收方发现比特错后丢弃帧,发送方重传帧
- 需采用纠错编码,由接收方发现并纠正比特错误
 
- 可靠传输
- 发现并解决"帧错"
- 帧丢失
- 如,发送帧1-2-3-4,接收到帧1-2-4
 
- 帧重复
- 如,发送帧1-2-3-4,接收到帧1-2-3-3-4
 
- 帧失序
- 如,发送帧1-2-3-4,接收到帧1-3-2-4
 
 
- 帧丢失
- 流量控制
- 控制发送方发送帧的速率不要过快,让接收方来得及接收
- 介质访问控制
- 广播信道需要实现该功能
- 广播信道在逻辑上是总线型拓扑,多个节点需争抢传输介质的使用权
 
- 点对点通信通常不需要实现该功能
- 点对点信道通常意味只两个节点之间有专属的传输介质,不用抢
 
帧的结构
| 首部 | 数据部分(长度不定) | 尾部 | 
|---|
对于一个数据帧,包括首、尾部分以及数据部分
- 首、尾部分主要包好控制信息,如帧定界信息、校验码、帧类型、帧序号等信息
- 数据部分可长可短,也可为空;一个帧必须有首、尾部分
封装成帧/组帧
封装成帧的关键问题就是帧定界,透明传输
组帧方式:

- 字符计数法:
- 在每个帧开头,用一个定长计数字段表示帧长
- 帧长 = 技术字段长度 + 帧的数据部分长度
- 缺点:
- 任何一个帧的计数字段出错,都会导致后续所有帧无法定界
 
 

- 字节填充法:
- 在帧的首、尾插入专门的控制字符,帧开头SOH、帧结尾EOT
- 若帧的数据部分也包含特殊字符,发送方需要在这些特殊字符前填充转义字符ESC
- 同理,接收方接收到数据后需要进行逆处理,将原始数据还原
 
 
- 在帧的首、尾插入专门的控制字符,帧开头SOH、帧结尾EOT

- 零比特填充法:
- 和字节填充类似,首、尾使用相同特殊比特串0111 1110作为标记,表示帧的开始/结束
- 当数据部分可能出现特殊比特串时,通过插入零比特进行避免
- 发送方需要对帧的数据部分,每当遇到连续5个1,就在1之后填充一个0
- 接收方需要对帧的数据部分,每当遇到连续5个1,就删除1之后的一个0
 
- HDLC协议,PPP协议使用该方法
 
- 和字节填充类似,首、尾使用相同特殊比特串0111 1110作为标记,表示帧的开始/结束

- 违规编码法:
- 对于有些编码存在固定规则,可以通过在传输的数据两测增加违规信号表示数据的头尾
- 如,IEEE标准的曼切斯特编码,规定上跳0,下跳1看中间,中间必变;如果周期中间不跳便,则说明是违规编码
- 那么在数据两侧增加周期中间不跳便的违规编码,用于区分不同帧
 
- 违规编码法需要物理层配合,强行在固定编码的标准下增加违规编码
 
- 对于有些编码存在固定规则,可以通过在传输的数据两测增加违规信号表示数据的头尾
差错控制
差错控制的目的是发现并解决帧内部的位错,因此需要进行检错、纠错工作
- 通常有两种解决方式:
- 发现帧错后丢弃帧,要求发送方重传帧
- 有接收方发送并纠正比特错误
 
检错编码:奇偶校验码、CRC校验码
纠错编码:海明校验码
数据链路层会在用户发送的数据帧中增加校验位信息,下一节点接收到数据后,数据链路层会检查确定帧是否出错
奇偶校验码/检错编码
奇偶校验码中包括信息位(有效数据)和校验位(冗余位)
- 信息位指帧的数据部分
- 冗余位指帧的数据部分检错/纠错而附加的一些冗余比特

- 在信息位的首部或尾部添加一个校验位
- 奇校验码:整个校验码(包括有效信息位和校验位)中“1”的个数为奇数
- 偶校验码:整个校验码(包括有效信息位和校验位)中“1”的个数为偶数
发送方和接收方在数据传输前会确定使用奇校验还是偶校验,接收方接收到数据后检查是否符合奇/偶校验
- 偶校验比奇校验更为常见,因为偶校验可直接通过硬件实现
- 各信息进行异或(模2加)运算,得到的结果即为偶校验位
- 异或运算:也叫模2加,即两位相加取模2。两比特异或运算,如果两比特相异则结果为1,符号为⊕
 
- 数据发送方将数据各位进行异或运算,运算结果即为偶校验位,将偶校验位封装到帧中进行发送
- 数据接收方将整个数据帧所有位进行异或运算,运算结果若为1则说明帧出错
缺点:
- 奇/偶校验码只能检测奇数个位错,无法检测偶数个位错
循环冗余编码/CRC编码
循环冗余校验CRC,Cyclic Redundancy Check:
- 数据发送、接收方约定一个除数,K个信息位 + R个校验位作为被除数
- 信息位加上校验位后需要保证除法的余数位0,接收方收到数据后,进行除法检查余数是否为0
- 若余数非0说明帧出错,需要重传或纠错
 
例子:设生成多项式为G(x) = x\(^3\) + x\(^2\) + 1,信息码为101001,求对应的CRC码
- 确定K、R以及生成多项式对应的二进制码
- K = 信息码长度 = 6,R = 生成多项式最高次幂 = 3,故校验码位数N = K + R = 9
- 生成多项式G(x) = 1 · x\(^3\) + 1 · x\(^2\) + 0 · x\(^1\) + 1 · x\(^0\),对应二进制码1101
- 信息码移位
- 信息码左移R位,低位补0
- 相除
- 对移位后的信息吗,用生成多项式二进制码进行模2除法,产生余数
  
- 移位后的信息码加上余数,得到CRC码1010001 001
- 检错和纠错
- 发送方发送1010001 001,记各位为\(C_9C_8C_7C_6C_5C_4C_3C_2C_1\)
- 接收方接收到1010001 001,使用多项式二进制码进行模2除,余数为000,表示没有出错
- 若接收方接收到1010001 011,使用多项式二进制码进行模2除,余数为010,说明出错且出错位为\(C_2\)
| 接收 | 模2除余数 | 出错位 | 
|---|---|---|
| 101001 010 | 001 | \(C_1\) | 
| 101001 011 | 010 | \(C_2\) | 
| 101001 101 | 100 | \(C_3\) | 
| 101000 001 | 101 | \(C_4\) | 
| 101011 001 | 111 | \(C_5\) | 
| 101101 001 | 011 | \(C_6\) | 
| 100001 001 | 110 | \(C_7\) | 
| 111001 001 | 001 | \(C_8\) | 
| 001001 001 | 010 | \(C_9\) | 
CRC校验码,对于确定的生成多项式,出错位与余数是相对应的
- 理论上可以检测出所有奇数个错误,也可以检测除双比特的错误,也可以所有小于等于校验位长度的连续错误
- 对于K个信息位,R个校验位,若生成多项式选择得当,且2\(^R\) ≥ K + R + 1,则CRC码可纠正1位错
实际应用中,CRC校验码一般只用来检错,不使用其纠错功能
海明校验码/纠错编码
海明校验码,由查理德·卫斯里·汉明,Richard Hamming于1968年发明的编码方式
对于奇/偶校验码,能够发现奇数位错误,无法确定哪一位出错
- 1个校验位只能携带两种状态信息,即对、错两个状态
- 海明码吸收奇/偶校验码的特点,使用多个校验位来携带多种状态,从而确定出错的位置
海明校验码:
- 对于n位信息位,k位校验位的编码,长度为n+k位
- k位校验位可以表示2\(^k\)种不同的状态,因此需要保证至少包含1个正确状态以及n+k位种任何一种错误状态
- 即,2\(^k\) ≥ n + k + 1
例子:信息位1010
- 确定海明码的位数,2\(^k\) ≥ n + k + 1
- n=4,则k=3,故设信息位\(D_4D_3D_2D_1\),共4位,校验位\(P_3P_2P_1\),共3位。对应海明码为\(H_7H_6H_5H_4H_3H_2H_1\)
- 确定校验位的分布
- 校验位\(P_i\)放在海明码位号为\(2^{i-1}\)位置上,信息位按顺序放到其余位置
| \(H_7\) | \(H_6\) | \(H_5\) | \(H_4\) | \(H_3\) | \(H_2\) | \(H_1\) | 
|---|---|---|---|---|---|---|
| \(D_4\) | \(D_3\) | \(D_2\) | \(P_3\) | \(D_1\) | \(P_2\) | \(P_1\) | 
| 1 | 0 | 1 | - | 0 | - | - | 
- 求校验位的值
- 按照校验位的个数将信息位进行分组,按照分组求偶校验码
- \(D_4\),\(D_3\),\(D_2\),\(D_1\)三个为一组,
  
 
- \(D_4\),\(D_3\),\(D_2\),\(D_1\)三个为一组,
- 因此海明码的位数一定要选择合适,不然可能出现多出来的海明码位无意义的情况
- 纠错
- 检验方程
- \(S_1\) = \(P_1\) ⊕ \(D_1\) ⊕ \(D_2\) ⊕ \(D_4\)
- \(S_2\) = \(P_2\) ⊕ \(D_1\) ⊕ \(D_3\) ⊕ \(D_4\)
- \(S_3\) = \(P_3\) ⊕ \(D_2\) ⊕ \(D_3\) ⊕ \(D_4\)
 
- 接收到1010010
- \(S_1\) = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0
- \(S_2\) = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
- \(S_3\) = 0 ⊕ 1 ⊕ 0 ⊕ 1 = 0
- 全0则接收无误
 
- 接收到1010000
- \(S_1\) = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0
- \(S_2\) = 0 ⊕ 0 ⊕ 0 ⊕ 1 = 1
- \(S_3\) = 0 ⊕ 1 ⊕ 0 ⊕ 1 = 0
- 非全0,按照\(S_3S_2S_1\)构成二进制010,则说明第010位出错
 
扩展:另一种格式,只是从左往右而已
- 信息位为1010,若设信息位\(D_1D_2D_3D_4\),共4位,校验位\(P_1P_2P_3\),共3位,对应海明码为\(H_1H_2H_3H_4H_5H_6H_7\)
- 计算校验位,校验位\(P_i\)仍旧放在海明码位号为\(2^{i-1}\)位置上
- \(P_1\) = \(D_1\) ⊕ \(D_2\) ⊕ \(D_4\) = 1
- \(P_2\) = \(D_1\) ⊕ \(D_3\) ⊕ \(D_4\) = 0
- \(P_3\) = \(D_2\) ⊕ \(D_3\) ⊕ \(D_4\) = 1
 
| \(H_1\) | \(H_2\) | \(H_3\) | \(H_4\) | \(H_5\) | \(H_6\) | \(H_7\) | 
|---|---|---|---|---|---|---|
| \(P_1\) | \(P_2\) | \(D_1\) | \(P_3\) | \(D_2\) | \(D_3\) | \(D_4\) | 
| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 
特点:
- 海明码具有1位的纠错能力和2位的检错能力,但是无法区分到底1位错还是2位错
- 如果想要确定到底1位错还是2位错,需要增加全校验码,即对整体进行偶校验
  
补充:
- 海明距离:两个合法的编码(码字)对应位置比特值不同的比特数
- 一个有效的编码集中,任意两个合法编码(码字)的最小码距的值称为该编码集的码距
- 如果需要进行检测编码系统中码距为n的错误,编码系统的码距至少为n+1;如果需要纠正编码系统中码距位n的错误,编码系统的码距至少为2n+1
流量控制、可靠传输与滑动窗口
在差错控制中,可采用丢弃帧要求重传的方式解决帧错问题,可靠传输功能就完成了帧错重传的任务
可靠传输解决了帧丢失、帧重复、帧失序的帧错问题,流量控制保证接收方能够不丢失地接收所有帧
- 流量控制、可靠传输通过三个机制保证:滑动窗口机制、确认机制、重传机制,为保证三个机制顺序运行,同时还需要进行帧编号
滑动窗口机制:

- 发送窗口内的帧可以进行发送,同时接收方只能按预先发送序列依次接收接收窗口长度的帧,不符合次序或超出接收串口大小的帧均会被丢弃

- 当接收方已经顺利按序接收到发送的帧,可由接收方通过确认机制同时控制接收方、发送方的窗口向前滑动
常见的利用滑动窗口机制协议包括停止-等待协议S-W、后退N帧协议GBN、选择重传协议SR
确认机制:
- 确认帧ACK_i:若接收方收到i号帧,且没有检测出差错,需要给发送方范围确认帧ACK_i
- 否认帧NAK_i:若接收方接收到i号帧,但检测出i号帧有差错,需要丢弃该帧,并给发送方返回否认帧NAK_i
确认帧ACK、否认帧NAK的数据部分通常很短,甚至可以为空
重传机制:
- 超时重传:若发送方超时未收到ACK_i,则重传i号帧
- 请求重传:若发送方收到NAK_i,则重传i号帧
帧编号:
- 至少需要n bit进行编号,且要求\(W_T + W_R\) ≤ \(2^n\)
- 由于重传机制和确认机制,发送方、接收方双方可能会收到重复的帧,如果不进行编号会导致无法辨别此时是重复帧是重传的帧还是新帧
- 若\(W_T + W_R\) > \(2^n\),对于SR协议如果恰好发生了确认帧丢失情况
- 接收方滑动窗口已经移动,且新滑动窗口内可能包含丢失确认帧的序号
- 发送方进行重传时,接收方无法区分接收到的重复帧到底是重传帧还是下一个滑动窗口的新帧
 
 
术语补充
从机制原理上,S-W、GBN、SR协议均采用了滑动窗口机制,但在术语中,滑动窗口协议专指GBN、SR协议
ARQ协议:自动重传请求协议,Automatic repeat request。ARQ协议包含S-W、GBN、SR三种协议
连续ARQ协议:
- 连续ARQ协议仅包含GBN、SR协议
- 由于GBN、SR的发送窗口大于0,当发生超时时会自动连续重传最后确认的所有帧,因此被称为连续ARQ协议
停止-等待协议/S-W协议
帧编号:
- 仅需1 bit进行编号,要求\(W_T + W_R\) ≤ \(2^n\)
- 因此帧只有0和1两个编号
滑动窗口机制:
- 发送窗口\(W_T\) = 1,接收窗口\(W_R\) = 1
确认机制:
- 仅使用确认帧ACK_i,若接收方收到i号帧,且没有检测出差错,需要给发送方范围确认帧ACK_i
重传机制:
- 仅采用超时重传,若发送方超时未收到ACK_i,则重传i号帧
S-W协议正常过程:

- 发送方、接收方的窗口大小均为1,且滑动窗口均处于0号帧位置
- 发送方发送0号帧A帧,接收方收到A帧,进行校验,如果不存在位错则将A帧放在0号帧位置,并传输给上层网络层
- 接收方接收完成0号帧,向发送方发送0号帧的ACK,并将滑动窗口向右移动到1号帧位置
- 发送方收到来自接收方的0号帧ACK,确认A帧发送并顺利接收,滑动串口向右移动到1号帧位置,向接收方发送B帧,依次类推
S-W协议超时重传过程:

- 发送方向接收方发送一个数据帧后,会进行记时,在限定时间内未收到对应编号的会自动重传该帧数据
- 因此传输过程中、确认帧丢失均会导致超时重传
如果由于传输时间过长,发送方重传A帧刚刚发送后才接收到A帧的确认帧,也会视作确认接收
- 由于该帧确认接收,发送方向右移动1个窗口,发送新的A帧
- 由于序号不同,尽管由于前一A帧重传,接收方就算发送了前一A帧的ACK,也会直接被遗弃,但不发送确认帧,只会等待新A帧的确认帧

- 对于接收方而言,如果已经顺利收到A帧,会发送ACK帧,滑动窗口向右移动1个窗口
- 但由于ACK帧在传输中丢失导致发送方重传,接收方会接收到非滑动窗口所需要的帧,会直接丢弃该帧,且重新发送A帧的确认帧
S-W协议数据帧位错处理过程:

- 接收方接收到无法校验的错帧,会直接丢弃该帧,且不返回ACK帧
- 由于接收方不发送ACK,因此会直接导致发送方确认超时重传,重复这个过程直至接收方发送确认帧
S-W的流量控制过程:
- 只有接收方确认接收才会移动接收方的滑动窗口,并发送确认帧
- 发送方未接收到接收方的ACK,滑动窗口就不会移动,因此接收方控制了发送方的滑动窗口的移动
S-W的可靠传输过程:
- 超时会进行重传;如果序号不对或者错帧接收方不会发送ACK也间接导致超时重传
- 接收方、发送方的滑动窗口大小均为1,因此保证了数据帧一定是按序接收的
后退N帧协议/GBN协议
帧编号:
- 仅需n bit进行编号,要求\(W_T + W_R\) ≤ \(2^n\)
- 帧序号由发送窗口大小决定
滑动窗口机制:
- 发送窗口\(W_T\) > 1,接收窗口\(W_R\) = 1
确认机制:
- 仅使用确认帧ACK_i,若接收方收到i号帧,且没有检测出差错,需要给发送方范围确认帧ACK_i
- 允许接收方可以累计确认,即连续接收多个数据帧时,课仅返回最后一个按序接收的帧的ACK,表示已确认收到该帧及其之前的所有帧
累计确认是GBN协议独有的
重传机制:
- 仅采用超时重传,若发送方超时未收到ACK_i,则重传i号帧
- 若发送方超时未收到\(ACK_i\),则代表需要重传i号帧以及之后的所有帧
GBN协议正常过程:

- 发送方的窗口大小为3,接收方的窗口大小为1,因此编号需要2 bit。滑动窗口均处于0号帧位置
- 发送方向接收方依次发送A、B、C三帧,并分别进行计时
- 接收方依次确认接收A、B、C帧,每确认一个帧滑动窗口向右移动1个窗口。由于累计确认机制,可以直接就发送2号帧表示全部接收完成
- 发送方接收到2号帧的ACK,滑动窗口直接向右移动3个窗口
GBN协议超时重传过程:

- 发送方依次发送多个帧,假设其中一个帧丢失
- 由于累计重传机制,发送方接收到丢失D帧的ACK,由于D帧确认接收,因此滑动窗口向右移动1个窗口,并继续重发E、F以及新帧G
- 对于接收方,由于需要进行按序接收。如果中间帧丢失,随后的帧均会被丢弃,并返回确认接收最大序号帧
如果由于传输时间过长导致超时
- 如果是接收方很晚才依次收到帧,那会发出多个ACK,尽管发送方会重传,也会因为多次收到ACK完成确认
- 由于累计确认机制,接收方只会发送一个ACK,如果超时接收,尽管发生了重传,也依旧会延后完成确认
GBN协议可靠传输过程:
- 收到一个非法帧时,接收方会直接将帧丢弃,并返回目前已接收的最后一个正确帧的ACK,以题型发送方后退回i+1号帧重传
非法帧包括落在接收窗口之外的帧、检测出差错的帧
GBN协议缺点:
- 如果接收方接收帧的速度很慢,或在信道误码率很高的情况下,可能回导致发送方的发送进度经常需要后退,导致传输效率低下
选择重传协议/SR协议
帧编号:
- 仅需n bit进行编号,要求\(W_T + W_R\) ≤ \(2^n\)
- 帧序号由发送窗口、接收窗口大小决定
- 同时要求接收窗口不能大于发送窗口,即\(W_R\) ≤ \(W_T\)
- 若\(W_R\) > \(W_T\),发送方每轮依次发送的帧被接收方接收后,收到确认帧才能移动滑动窗口,导致接收方有部分窗口大部分时间处于空闲状态,利用率不高
- 相反,如果\(W_R\) ≤ \(W_T\),发送方每轮一次发送的帧会依次被接收方收到,接收方接收窗口满了后自行移动滑动窗口,继续接收后续发送过来的帧,同时对发送方的请求没有任何干扰
 
实际应用中,SR协议采用\(W_R\) == \(W_T\)
滑动窗口机制:
- 发送窗口\(W_T\) > 1,接收窗口\(W_R\) > 1
确认机制:
- 同时使用确认帧ACK_i、否认帧NAK_i
- 若接收方收到i号帧,且没有检测出差错,需要给发送方范围确认帧ACK_i
- 若接收方接收到i号帧,但检测出i号帧有差错,需要丢弃该帧,并给发送方返回否认帧NAK_i
 
- 接收方可以连续接收多个帧,但每个帧都需要返回ACK
重传机制:
- 采用超时重传以及请求重传
- 若发送方超时未收到ACK_i,则重传i号帧
- 若发送方收到NAK_i,则重传i号帧
 
SR协议正常过程:

- 发送方、接收方的滑动窗口大小均为4,因此编号需要3 bit。滑动窗口均处于0号帧位置
- 发送方向接收方依次发送A、B、C、D四帧,并分别进行计时
- 接收方依次确认接收A、B、C、D帧,并依次发送0-3号帧的ACK,当滑动窗口最左侧的帧确认接收,滑动窗口向右移动1个窗口
- 发送方接收到每接收到滑动窗口最左侧帧的ACK,滑动窗口就向右移动1个窗口,同时向接收方发送新的帧
SR协议数据帧丢失过程:

- 发送方向接收方依次发送数个数据帧后,假设其中一个帧丢失
- 接收方对确认接收的帧发送ACK,那么此时接收方滑动窗口内就存在已确认和未确认的帧,接收方必须移动滑动窗口以保证最左侧的窗口为未确认的帧
- 发送方也只会收到部分帧的ACK,也同样移动滑动窗口以保证最左侧的窗口为未确认的帧,并对滑动窗口内未确认的帧进行重传(已确认的帧不需要重传)
SR协议确认帧丢失过程:

- 发送方依次发送数个帧,接收方确认接收并发送ACK,由于所有帧都确认接收,直接向右移动全部滑动窗口
- 但部分ACK在传输过程中丢失,导致发送方只接收到部分ACK帧,调整滑动窗口,并对没有接收到的帧进行重传,新帧也按序发送过去
- 接收方收到重复帧,直接丢弃并返回该帧的ACK
SR的可靠传输过程:
- 若接收方检测到帧错,则丢弃帧并返回NAK,主动请求重传
- 接收方必须一帧一确认
信道利用率分析
S-W协议信道利用率
- 假设信道数据传输速率未1kbps,数据帧长度为4kb,确认帧长度为1kb,信道单项传播时延为7s
- 理想状态下,即没有帧丢失、比特错误等异常情况,信道利用率U = 数据帧传输时延\(T_D\) / (数据帧传输时延\(T_D\) + 双向传输时延RTT + 确认帧传输时延\(T_A\))

- 数据帧传输时延\(T_D\) = 4kb / 1kbps = 4s,双向传播时延RTT = 2 x 7s = 14s,确认帧传输时延\(T_A\) = 1kb / 1kbps = 1s
- 因此信道利用率U = 4 / (4 + 2 x 7 + 1) ≈ 21%
注,1kbps = 1000 bps,单位为比特每秒
如果假设确认帧非常短,ACK的传输时延忽略不计,那么\(T_A\)可以视为0,即理想状态下,信道利用率U = 数据帧传输时延\(T_D\) / (数据帧传输时延\(T_D\) + 双向传输时延RTT)
- 信道利用率U = 4 / (4 + 2 x 7 ) ≈ 22%
GBN、SR协议信道利用率
- 假设发送窗口大小N=4,信道数据传输速率为1kbps,数据帧长度为4kb,确认帧长度为1kb,信道单向传播时延为7s
- 理想状态下,信道利用率U = N * 数据帧传输时延\(T_D\) / (数据帧传输时延\(T_D\) + 双向传输时延RTT + 确认帧传输时延\(T_A\))

- 数据帧传输时延\(T_D\) = 4kb / 1kbps = 4s,双向传播时延RTT = 2 x 7s = 14s,确认帧传输时延\(T_A\) = 1kb / 1kbps = 1s
- 因此信道利用率U = 4 x 4 / (4 + 2 x 7 + 1) ≈ 84%
如果N x \(T_D\) ≥ (\(T_D\) + RTT + \(T_A\)),由于信道利用率不可能超过1,故此时最大信道利用率=1,同时由于\(W_T + W_R\) ≤ \(2^n\),N也不可能无限大
介质访问控制
介质访问控制MAC,Medium Access Control:
- 多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”
- 如,早期网络常用一条通州电联连接多个节点;使用集线器连接多个节点;WIFI、5G无线通信,两个不同的发射源如果相距过近会发生干扰
 
- MAC的作用就是控制各节点对传输介质的访问以减少甚至避免冲突
介质访问控制可通过三种方式实现:信道划分、随机访问、轮询访问
介质访问控制——信道划分
时分复用TDM,Time Division Multiplexing:

- 将时间分为等长的“TDM帧”,每个“TDM帧”又分为等长的m个“时隙”,将m个时隙分配给m对用户(节点)使用
- 因此每个信道在不同TDM的相对位置都是固定的
- 缺点:
- 每个节点最多只能分配到信道总带宽的1/m
- 如果某节点暂不发送,会导致被分配的时隙闲置,信道利用率低
 
统计时分复用STDM,Statistic Time Division Multiplexing:

- 又称异步时分复用, 在TDM的基础上,统计每个节点对信道的使用需求,动态按序分配时隙
- 优点:
- 如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
- 如果某节点暂不发送数据,可以不分配“时隙” ,信道利用率更高
 
频分复用FDM,Frequency Division Mul9plexing:

- 将信道的总频带划分为多个子频带, 每个子频带作为一个子信道,每对用户使用一个子信道进行通信
- 优点:
- 各节点课同时发送信号,充分利用了信道带宽(这里指的是频率Hz带宽)
 
- 缺点:
- FDM计数只能用于模拟信号的传输
 
波分复用WDM,Wavelength Division Multiplexing:

- 即光的频分复用
- 光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道
- 由于WDM就是光的FDM,因此WDM和FDM具有相同的优缺点
码分复用技术CDM
码分复用CDM,Code Division MulNplexing:
- 2G、3G移动网络时代,节点和节点之间的通信常使用全球移动通信系统GMS(Global System for Mobile Communications)和码分多址CDMA(Code Division Multiple Access)技术
- GSM采用时分复用TDMA技术,而CDMA采用码分复用CDM技术
 
- CDM技术允许多个节点通过是发送信号,即允许信号相互干扰、相互叠加。接收方有能力将各节点的信号值分离出来
码分复用CDM过程:
- 给各个节点分配专属的码片序列
- 码片序列包含m个码片(信号值),可看作m维向量,向量的分量通常取-1或1
- 各个节点的m维向量必须相互正交,相互通信的个节点知道彼此的码片序列
 
- 发送方发送数据过程:
- 节点发出m个信号值与自身码片序列相同,表示比特1
- 节点发出m个信号值与自身码片序列相反,表示比特0
 
- 信号在传输过程中的叠加过程:
- 当多个发送方同时发送数据时,信号值会叠加,叠加的本质就是多个m维向量的加法运算
 
- 接收方接收数据过程:
- 接收方收到叠加的信号,需要分理出各发送方的所发送的数据
- 叠加信号分别于发送方的码片序列做规格化内积
- 内积结果为1,表示比特1
- 内积结果为-1,表示比特0
 
 
例子:假设有A、B、C三个站点,A、B向C发送数据
- 假设A的m为码片序列为a = (1,1,1,1),B的m维码片序列b = (1,-1,1,-1),C的m维码片序列c = (1,1,-1,-1)
- 若只有A站向C站发送数据,则C接收到的数据均为未发生叠加的原始数据
   - A站发送(1,1,1,1),(-1,-1,-1,-1),(1,1,1,1)
- C接收到的信号值直接用A站的码片序列进行内积,得到数据为101
 
- 若A、B同时向C站发送数据,则C接收到的数据为叠加数据
   - A站发送(1,1,1,1),(-1,-1,-1,-1),(1,1,1,1);B站发送(1,-1,1,-1),(1,-1,1,-1),(-1,1,-1,1)
- C接收到的信号值为(2,0,2,0),(0,-2,0,-2),(0,2,0,2)
- 计算A节点发送的信号
- 1/4 x a x ( a + b ) = 1;
- 1/4 x a x ( -a + b ) = -1;
- 1/4 x a x ( a -b ) = 1
- 综上,A发送数据为101
 
- 计算B节点发送的信号
- 1/4 x b x ( a + b ) = 1;
- 1/4 x b x ( -a + b ) = 1;
- 1/4 x b x ( a -b ) = -1
- 综上,A发送数据为110
 
 
介质访问控制——随机访问
ALOHA协议,Additive Links On-line Hawaii Area:

- 纯ALOHA协议由夏威夷大学研究团队于1968年创建,是最早的随机访问介质控制方式
  
Aloha也在夏威夷语中常用作问候语
- 时隙ALOHA协议在纯ALOHA协议的基础上增加了发送帧的条件,降低了冲突概率,提供了信道的利用率
  
- ALOHA协议的特点就在于,当不同节点向信道上发送数据发生冲突时,通过随机的等待时间将不同节点发送时间相互错开,从而避免冲突
- 如果每个节点采用相同的等待时间,由于相对传输位置没有变化,那么后续每次传输都会造成冲突
 
载波监听多路访问协议CSMA,Carrier Sense Multiple Access:
- CSMA协议在ALOHA协议基础上提出改进,在发送数据之前,先监听信道是否空闲,只有信道空闲时,才会尝试发送
- CSMA要求节点的网络适配器(网卡)安装载波监听装置,用于监听信道空闲/繁忙状态
1-坚持CSMA协议:

- 发送前先监听信道,若信道空闲立即发送数据帧,发送概率为100%
- "坚持"表示如果信道不空闲,节点会坚持监听信道
p-坚持CSMA协议:

- 发送前先监听信道,若信道空闲则以概率p立即发送帧,以概率1-p推迟一段时间再发送
非坚持CSMA协议:

- 发送前先监听信道,若信道空闲立即发送数据帧,发送概率为100%
- "非坚持"表示如果信道不空闲,节点不会坚持监听信道,而是随机推迟一段时间后再尝试监听
CSMA/CD协议
冲突检测的载波监听多路访问CSMA/CD协议,Carrier Sense Multiple Access / Collision Detection:
- 先听后发,边听边发,冲突停发,随机重发
   - CSMA/CD是1-坚持的CSMA,信道不空闲依旧继续监听
- 随机重传机制,采用截断二进制指数退避算法
- 争用期是一个固定大小的时间间隔。每次随机等待的时间为r x 争用期,其中r为随机数。记冲突次数为k,初值为1
- 如果k ≤ 10,则在[0,2\(^k\)-1]区间内随机取一个整数r
- 如果k > 10,则在[0,2\(^{10}\)-1]区间内随机取一个整数r
- 当k = 16时,意为信道处于忙碌状态,放弃传帧,并上报上级网络层
 
 
- 关于争用期的选取:
- 争用期 = 2 x 最大单项传播时延(考虑信道中距离最远的两个节点的传播时延)
- 若争用期内未发生冲突,则不可能再发生冲突。由于CSMA/CD没有ACK机制,若发送过程中没有检测到冲突,则说明发送成功
   - 假设信道中最远的两个节点的传播时延为t\(_0\),若A向信道中发送数据,经过t\(_0\)即可将字节流占领整个信道,也意味着至多t\(_0\)后可以被其他所有节点监听到信号
- 如果t\(_0\)时最远的节点向信道传输数据,会立即检测到冲突,但数据传输到A节点还需要t\(_0\),即A节点从开始发送数据最多需要2t\(_0\)时间一定可以检测到冲突
 
 
- 由于争用期的存在,必须规定发送到信道中的最短帧长,否则无法保证在争用期内发送节点的发送数据充分的占领整个信道
   - 最短帧长 = 2 x 最大单项传输时延 x 信道带宽
- 若收到的帧小于最短帧长,则视为无效帧,直接丢弃。CSMA/CD协议的“冲突停发”规则会导致小于最短帧长的无效帧
- 如果信道上允许小于最短帧长的数据传输,在争用期内发送节点发送数据数据过程中并未检测到冲突,会让发送节点误以为不存在冲突,但实际上易发生冲突
- 如果实际要发送的数据较少,可填充至有效长度后再发送
 
- 除了最短帧长外,还需要规定最长帧长,防止某些节点一直占用信道
CSMA/CD协议用于早期的总线型有线以太网
- 如,用同轴电缆连接多个节点组成的有线局域网;用集线器连接多个节点组成的有线局域网
- 现代有线局域网也采用以太网技术,但不一定采用总线型,而是通过交换机相互连接的星型结构
- 以太网规定最短帧长为64B,最长帧长为1518B
CSMA/CA协议
无线局域网WIFI的随机访问:

- 接入点AP,Access Point:日常连接无线的wifi热点
- 如,家用的路由器就提供了AP功能;校园网中各个区域的wifi就是由多个AP构成的
 校园内起始由非常多的AP所连接,不同位置采用不同的AP,从一个位置切换到另外一个位置的WIFI被称为漫游 
- 所有的移动站点A~D都需要和固定站点AP进行通信
对于无线局域网而言,并不适合CSMA/CD
- 硬件上很难实现边听边发,冲突检测
- 移动站点接收信号的强度往往远小于发送信号的强度,且无线介质上信号强度的动态变化范围很大
- 对于发送方而言,发送源的信号强度远大于远处接收过来的信号强度,近处的发射信号严重干扰了远处接收的信号,难以做到边发边听
 
- 无线局域网存在"隐蔽站"问题
- 在无线通信中,并非所有站点都能听到其他站点的发送的数据。发送节点处没有冲突并不意味着在接收节点处就没有冲突
- 如上图中,A无法监听B、C的信号,B、C对于A而言就是隐蔽站。此时A向AP发送数据时,未检测到冲突,会误以为AP目前处于空闲转台,但是如果此时B也在向AP进行通信就会直接发生冲突
 
冲突避免的载波监听多路访问CSMA/CA协议,Carrier Sense Multiple Access / Collision Avoidance:
- CSMA/CA协议有两种工作模式:
- 发送方先听后发,忙则退避;接收方采用S-W协议
- 信道预约机制(可解决隐蔽站问题)
 
不考虑隐蔽站问题时,CSMA/CA工作过程:

- 发送方先听后发,忙则退避
- 若信道空闲,间隔DIFS后,再一口气发完所有发送帧,发送过程中不进行冲突检测
- DIFS:分布式协调IFS,最长的帧间间隔,且确保DIFS > RTT/2 + SIFS
- 由于发送方时一口气将所有数据帧发出,这段时间完全占据这信道,确保其他节点可以监听到
- 假设数据帧恰好传输给AP,其他节点也准备发送数据,如果等待的时间 < 单项传播时延 + SIFS,会导致AP发送给前一个发送方的ACK出现冲突,导致超时重传。因此每个节点向信道发送数据前必须保证DIFS的时间预留,以避免该现象
 
- SIFS:短IFS,最短的帧间间隔
- 由于无线传输的误码率较高,需要使用差错控制手段保证数据的正确。在IEEE 802.11中规定,预留SIFS的时间片长度,用于对收到的帧进行差错控制
 
- DIFS、SIFS、PIFS(中等长度的IFS,考研不考察)合称为帧间间隔IFS,Interframe Space,均为一个固定的时间片长度
 
- DIFS:分布式协调IFS,最长的帧间间隔,且确保DIFS > RTT/2 + SIFS
- 若信道不空闲,则进行随机退避
- 利用二进制指数退避算法确定一个随机退避时间,记为倒计时
- 发送方会保持监听信道,只有信道空闲时才扣除倒计时,倒计时结束后立即发送帧
 
 
- 若信道空闲,间隔DIFS后,再一口气发完所有发送帧,发送过程中不进行冲突检测
- 接收方每收到一个正确数据帧后都返回ACK,帧出错不会返回ACK;若发送方超时未收到ACK,则进行随机退避
信道预约机制工作过程:
- "先预约再发送"该功能并不是必须使用的,可启用可不启用。若不启用则使用上面的工作模式
  
- 发送方广播RTS控制帧。先听后发,忙则退避
- RTS控制帧:Request To Send,请求发送控制帧。该帧中包括源地址、目的地址和这次通信所需的持续时间
 
- AP广播CTS控制帧
- CTS控制帧:Clear To Send,允许发送控制帧。该帧中也包括源地址、目的地址和这次通信所需的持续时间
 
- 其余无关节点收到CTS后自觉"禁言"一段时间;发送方收到CTS后则可以发送数据帧
- 其余无关节点的"禁言"指,虚拟载波监听机制。在禁言期间,节点并不会进行信道监听,且也不会发送任何数据
- 若发送方超时未收到CTS,说明预约失败,则随机退避后向AP发送RTS再次预约
 
- AP收到数据帧后,进行CRC等差错校验,若无差错就返回ACK帧
CSMA/CA协议用于IEEE 802.11无线局域网,即WIFI
- 在IEEE 802.11中,会根据发送的数据帧长度来决定是否启用"先预约在发送"工作模式
- 对于短数据帧直接发送即可,就算出现误码率或者冲突重传代价小
- 对于长数据帧,信道预约机制可以极大避免由于冲突导致的大开销的重传。尽管预约随机退避,由于RTS帧也是一个很短的帧,代价小很多
 
介质访问控制——轮询访问
1984年IBM公司开发了一种局域网技术,令牌环网技术
- 令牌环网技术的特点是环形拓扑结构,各节点轮询访问信道,不会发生信道冲突
- 令牌环网通过令牌传递协议进行介质访问控制
令牌环网技术的竞争对手是同时期,由Xerox、Intel、DEC三家公司合作开发的以太网技术
- 当时的以太网技术使用同轴电缆,以总线型拓扑结构呈现。并使用CSMA/CD进行介质访问控制,解决总线争用的问题
- 后来以太网交换机的出现,将拓扑结构变为了星形结构,彻底解决了总线争用的问题,即信道间不会存在冲突
- 以太网交换机+以太网技术的方案相比令牌环网方案更加优秀,令牌环网技术逐步被淘汰
令牌传递协议
令牌帧:
| 帧定界SD(开始) | 令牌号AC | 帧定界ED(结束) | 
|---|---|---|
| Start Delimiter | Access Control | End Delimiter | 
| 8 bit | 8 bit | 8 bit | 
- 令牌在环网中传递时,若没有数据进行发送,需要将令牌号修改为下一个节点的编号才能进行传递
- 其中AC字段实际上只有3bit存放令牌号,最前面3bit表示本帧优先级、最后面3bit表示与预定优先级,因此一个环网内最多有8个主机
- 第4个比特为令牌标识,T=0时为令牌帧;T=1时为数据帧
- 第5个比特表示是否为Monitor模式,由环路中的监控器填写。发送节点发送数据帧/令牌帧时,M=0;当该帧经过监控器设备时修改M=1,若监控器发现收到帧时M=1则认为发送节点存在故障,未能按规定撤出该帧,监控器负责丢弃该帧并重新发出令牌帧
 
- 每个节点获得一个令牌只能传送一个数据帧,传完必须释放令牌,并继续再环内传递。即一个节点想要连续发送数据,必须等令牌转一圈
数据帧:
| 帧定界SD(开始) | 令牌号AC | 控制信息FC | 目的地址DA | 源地址SA | 数据部分PDU或LLC | 校验码CRC | 帧定界ED(结束) | 是否已接收状态FS | 
|---|---|---|---|---|---|---|---|---|
| Start Delimiter | Access Control | Frame control | Destination address | Source address | Data | Frame check sequence | Frame status | |
| 8 bit | 8 bit | 8 bit | 48 bit | 48 bit | 0 ~ 4500 x 8 bit | 32 bit | 8 bit | 8 bit | 
- 控制信息FC,Frame control:该部分指明数据帧是否为控制帧
- 若非控制帧,则数据部分单纯的传输数据;
- 若为控制帧,则在数据部分包含控制信息,长度也为8 bit,前2 bit指明控制帧类型,后面6 bit包含控制信息。控制信息格式来自逻辑链路控制LLC,由IEEE 802.2规定
 
- 令牌环网中源地址/目的地址使用设备的物理地址,占用48bit
令牌传递协议工作过程:

- 令牌帧在环网内单向传递,且同一时刻有且只有一台主机可以获得令牌。
- 假定1号主机要向3号节点发送数据,1号主机等待获得令牌,其余主机拿到令牌如果没有需要发送的数据
- 随后将令牌帧转换为数据帧,将信息填入数据帧中,其中FS默认值为false,数据帧准备好后继续在环内传递
- 节点收到传递过来的数据帧,会检查目的地址是否为自己,如果不为自己则直接送回环内传递
- 直到目的主机收到该数据帧,如果校验无误,则会修改FS位为true,并把数据帧的数据部分复制到本地,接收完成后继续送回环内传递;如果校验错误,则不会做任何修改直接把数据帧送回环内
- 由于目的地址只有一个,剩余节点显然拿到数据帧也会自行送回直到回到发送方
- 发送方接收传回的数据帧,检查FS是否为true,如果true则说明本次发送是成功的;反之说明可能不存在目的地址的主机或帧传输过程出现了帧错,那么会尝试重发,当重发次数到达上限,该帧会被放弃发送
- 发送方确认帧发送完成或放弃发送,会将数据帧再恢复为令牌帧,并修改令牌号,送回环网传递
多站接入单元MAU,Multistation Access Units:

- 用于集中控制令牌环网,时令牌环网不可缺少的设备
  
局域网基本概念和体系结构
局域网特点:
- 覆盖较小的地理范围
- 较低得时延和误码率
- 局域网内得个节点之间以帧为单位进行传输
- 支持单播、广播、多播
- 单播:节点与节点一对一发送帧
- 广播:节点对局域网内所有节点发送帧
- 多播:节点对局域网内一部分节点(按分组划定)发送帧
 
局域网的分类:
- 有线局域网LAN:
- 令牌环网,Toekn Ring:1984~2000
- 采用环网拓扑结构;传输介质采用同轴电缆或双绞线;介质访问控制采用令牌传递协议
 
- 以太网/802.3,Ethernet:1980开始商用,物理层采用曼切斯特编码
- 早期80年代初期:
- 以太网采用同轴电缆作为传输介质,典型代表为1982年发布的10Base5以太网同轴电缆标准;
- 使用总线型拓扑结构;介质访问控制采用CSMA/CD
 10Base5表示速率为10Mbps,基带传输(传输数字信号),最大可传输500m。可通过中继器连接多个同轴电缆网段 
 
- 以太网采用同轴电缆作为传输介质,典型代表为1982年发布的10Base5以太网同轴电缆标准;
- 80年代后期:
- 以太网采用双绞线,Twisted pair,作为传输介质,典型代表为1990年发布的10BaseT以太网双绞线标准;
- 初期使用集线器将双绞线进行连接,使得拓扑结构物理上呈现星型,逻辑上为总线型,且只能半双工数据传输;由于逻辑上以及是总线型拓扑结构,数据以广播式传播,存在信道争用问题,仍旧采用CSMA/CD协议进行介质访问控制
- 1994年后逐步采用交换机将双绞线进行连接,使得拓扑结构在物理上、逻辑上均为星型结构;用于交换机可以支持半双工、全双工两种工作模式。因此在半双工模式下使用CSMA/CD进行访问控制;全双工模式下不存在争抢信道问题,不需要介质访问控制
  
 
 
- 以太网采用双绞线,Twisted pair,作为传输介质,典型代表为1990年发布的10BaseT以太网双绞线标准;
- 90年代初:
- 出现了以光纤为传输介质的以太网,典型代表为1993年发布的10BaseF以太网光纤标准,用以扩大以太网覆盖范围
- 光纤以太网可采用点对点的拓扑结构,通常用于中继器、集线器、交换机之间的传输,不会直接连接终端节点
- 采用光纤,Fiber,作为传输介质;
- 由于传输通过两个光纤,实现了全双工通信,因此也不存在信道冲突问题,也不需要介质访问控制
 
 
- 早期80年代初期:
 
- 令牌环网,Toekn Ring:1984~2000
- 无线局域网WLAN:
- WIFI/802.11:
- IEEE 802.11定义WLAN为星型拓扑结构,即1个AP+N个移动设备
- 传输介质为无线电磁波,无线相连;介质访问控制采用CSMA/CA协议
 
 
- WIFI/802.11:
以太网硬件架构:

- MAC地址:
- MAC是全球唯一的,共48bit,并由IEEE进行管理,网卡生产厂商必须向IEEE申请
- IEEE根据申请的厂家信息,高24bit标识厂家号,低24bit交给厂家自定义
 
- 以太网适配器/有线网卡:
- MAC地址是存储在网卡的ROM芯片中,是固定写死在网卡中的
- 网卡内的RAM芯片作为帧缓冲,实际上就是接收、发送滑动窗口
 
- WIFI网络适配器/无线网卡:
- 类同网卡,其MAC地址也是需要申请的
- 无线网卡采用无线电磁波接收信号,因此使用WIFI天线作为信号的接收和发送,而有线网卡通过网线接入进行数据收发
 
- 有线网卡需要实现局域网802.3标准中数据链路层、物理层的功能,无线网卡需要实现局域网802.11标准中数据链路层、物理层的功能
- 计算机主机、网卡均可以做封装成帧这个操作,但网卡不具备将帧拆分成IP数据报的功能
- 串/并行转换:
- 发送数据时,帧从主存中通过I/O总线并行地传输给外部设备网卡,网卡需要将帧拆分成1bit,1bit的数据,以曼彻斯特编码串行传输到局域网中
- 接收数据时,网卡通过帧缓冲将串行数据合并为一个帧,再通过I/O总线并行传输到主存中,共上层网络层使用
 
局域网与IEEE
IEEE电气电子工程师学会中有一个部门IEEE802委员会,该委员会的职责之一是推进局域网技术的标准化工作
- 802委员会下属又有多个工作组,分别负责不同局域网技术的标准化工作
局域网技术不一定是IEEE 802委员会发明的,可能是某些科技公司以商业目的而发明出的一种局域网技术
- 当这些局域网技术手市场和技术专家认可后,会交给IEEE 802对这一局域网技术进行着重讨论并成立工作组,在该技术的基础上进行补充、制定标准,促进该局域网技术的普及推广
 常见的被IEEE 802收录的局域网技术包括:
- FDDI光纤分布数字接口,由802.8工作组负责标准化,目前已解散
- 由IBM公司开发的令牌环网技术,由802.5工作组负责标准化,目前也已解散
- 由DEC、Intel、Xerox合作开发的以太网技术,由802.3工作组负责标准化
- 以太网技术目前广泛应用于有线局域网环境,由于该技术足够优秀,把FDDI、令牌环网技术从市场中淘汰,其负责的工作组也因此淘汰
- 题目中提及802.3标准,就意味着使用以太网技术
 
- 由AT&T、Nokia等公司合作开发的Wi-Fi技术,由802.11工作组负责标准化
802.11工作组标准化工作成果包括
- 1999年,802.11 b标准规定了WIFI 1
- 1999年,802.11 a标准规定了WIFI 2
- 2003年,802.11 g标准规定了WIFI 3
- 2009年,802.11 n标准规定了WIFI 4
- 2013年,802.11 ac标准规定了WIFI 5
- 2021年,802.11 ax标准规定了WIFI 6
- 2024年,802.11 be标准规定了WIFI 7
  
802委员会主要负责局域网技术的标准化,因此主要针对于ISO模型中数据链路层、物理层的标准化工作
- IEEE 802对于物理层的研究范畴没有扩展和补充,但对数据链路层进一步划分成了逻辑链路控制子层LLC和介质访问控制子层MAC
逻辑链路控制子层LLC子层,Logical Link Control:
- 与访问传输介质无关的部分功能,由 IEEE 802.2 工作组(已解散)负责标准化
- 在1980s~2000年,局域网技术百花齐放,LLC子层设计之初就是为了兼容各种局域网技术。LLC子层向上层网络层暴露出服务访问点提供统一的接口,相当于操作系统的设备无关软件
- 后来有线局域网技术被802.3垄断,无线局域网技术被802.11垄断,本来用于兼容的LLC子层名存实亡,因此802.2工作组也就解散了
市面上的有线网卡、无线网卡只包含MAC子层的功能,已经抛弃了LLC子层的功能
介质访问控制子层MAC子层,Medium Access Control:
- 与访问传输介质有关的部分功能,由 IEEE 802.3负责
- 如,组帧、差错检测、透明传输、介质访问控制等数据链路层的绝大多数功能
 
IEEE 802.3
以太网物理层标准

- 总结:
- 同轴电缆只能半双工
- 双绞线
- 对于速率小于2.5Gbps可支持全双工、半双工。对于不支持的全双工的线路可进行协商使用半双工
- 对于速率大于等于2.5Gbps,仅支持全双工
 
- 光纤只支持全双工
 
中继器连接两个不通的同轴电缆网段,不同网段可以采用不同的以太网物理层标准,且同轴电缆网段仅支持半双工

交换机与集线器所在网段进行连接时
- 由于集线器只支持半双工模式,因此交换机与集线器进行通信时只能使用半双工通信
题目中,默认交换机连接的终端节点均支持全双工,集线器连接的中断节点均只支持半双工
IEEE 802中将数据链路层分为了逻辑链路控制子层LLC、介质访问控制子层MAC
- 关于MAC层,开发以太网技术的DEC、Intel、Xerox几个公司推出了DIX Ethernet V2标准
  
- 而IEEE 802.3工作组在DIX Ethernet V2标准基础上做了微小修改,但是差距不大
市面上网络设备常用DIX Ethernet V2标准

- 在IEEE的802.3标准中,MAC帧并不是为网络层服务的,而是为LLC层进行服务,因此在802.3标准中并不区分帧所使用的网络协议,而在LLC层中区分
以太网的物理层使用曼彻斯特编码(跳0反跳1看中间,中必变),且在MAC帧前添加8B长度的前导码(7同步,1定界),通过违规编码做帧结尾定界
关于单播、广播:

- MAC地址是数据链路层的通信地址,路由器、交换机都具备MAC地址,而集线器没有MAC地址,但交换机、路由器的接口均带有MAC地址
- 单播帧:
- 当A -> C传输时,仅C能收到并接收帧
- 当A -> F传输时,E、F、G均能收到,但仅F会接收帧
- 当E -> A传输时,F、G、A均能收到,但仅A会接收帧
- 当E -> F传输时,F、G均能收到,但仅F会接收帧
 
- 广播帧:
- 当A发送广播帧时,B、C、D、E、F、G、R都能收到并接收帧
- 当E发送广播帧时,A、B、C、D、F、G、R都能收到并接收帧
- 路由器R收到广播帧后,不会再转发到其他网络,只有同一个局域网内的个节点才属于同一个广播域
 
冲突域:
- 如果两个节点同时发送数据,会导致冲突,则二者处于同一个“冲突域”
广播域:
- 如果一个节点发送广播帧,可以被另一个节点接收,则二者处于同一个“广播域”
- 以太网中常将目的地址48 bit全为1的帧标识为广播帧
路由器既隔离冲突域(网段),也隔离广播域;集线器不隔离冲突域,也不隔离广播域;以太网交换机隔离冲突域,但不隔离广播域
VLAN基本概念与原理
对于一个大型局域网,可能存在以下问题

- 局域网内使用交换机讲不同区域、功能的终端连接在一起。由于局域网内的终端比较多,不可避免出现广播帧的发送(当主机找不到目标主机时会进行ARP请求广播)
- 局域网内任何一个节点发出的广播帧,都会被广播至所有节点,可能出现广播风暴,造成整个局域网的负载突增
- 另外一方面,局域网内可能有一些敏感节点,他所发送的数据不希望被其他人"听到"。由于这些敏感节点暴露在整个局域网内,可能会被监听,存在安全性问题
为解决以上问题,可以将整个局域网花费成若干个虚拟局域网VLAN

- 干线链路是一条传输速度很快的传输信道,用于将不同交换机间的数据通信
- 处于同个局域网内的设备依旧物理上相互连接,但被划分成不同的VLAN中
- 每个VLAN是一个广播域,且每个VLAN对应一个VID,不同交换机下同一个VID的主机处于同个VLAN,即同一个广播域内
- VLAN需要使用支持VLAN功能的以太网交换机来实现
VLAN的划分方式:
- 基于交换机的接口:
   - 交换机将VLAN和接口号进行绑定,由网络工程师/网络管理员对交换机进行配置,只要接入该接口集合的设备就同属于一个VLAN内
- 图中交换机1的VID10除了绑定1、2、3、4接口外,还绑定了8接口,VID20也是同理绑定了8接口
- 这样设置的好处在于,当交换机1内的主机发送了广播帧,可以直接通过8接口转发到交换机2中,同时广播到交换机2内的VID10、VID20的主机
 
 
- 基于MAC地址:
   - 交换机将VLAN和MAC地址直接绑定
- 相比基于接口的划分方式,设备的MAC地址都是固定不变的,可以随意接在交换机的任何接口,都不影响其所处的VLAN
 
- 基于IP地址:
   - 交换机将VLAN和IP地址直接绑定
- 这种方式可以让VLAN范围跨越路由器,即让多个局域网内的主机组成一个VLAN。那么该交换机除了实现物理层、数据链路层的功能,还需要实现网络层的部分功能,交换机会更加复杂
 
虚拟局域网技术VLAN标准化工作由IEEE 802.1Q工作组负责
- 局域网内,主机与交换机之间传输标准的以太网帧;交换机与交换机之间,传输802.1Q帧,该802.1Q帧在跨越交换时需要指明VID
  
- 交换机在转发以太网标准帧到其他交换机前,会根据当前发送数据的主机所在的VID,在源地址后插入VID标签封装成802.1Q帧
- 交换机在接收到802.1Q帧后,可以将VID直接拆分出来,直接根据VID将标准以太网帧转发到对应的VLAN中
无线局域网802.11
无线局域网可分为以下几类:
- 有固定基础设施的无线局域网:
- 使用固定位置的无线路由器作为AP,构成的无线局域网。此时无线路由器充当着无线局域网中无线交换机的作用
- 如,802.11无线局域网WIFI
 
- 无固定基础设施移动自组织网络:(不在大纲内,仅了解)
- 又称自组网络ad hoc network,自组网络中不存在AP,由一些平等状态的移动站相互通信组成临时网络。自组网路中的可移动设备会发现附近其他的可移动设备,并主动要求和其他移动设备进行通信
- 各节点之间地位平等,中间节点都作为转发节点,都具有路由器功能
- 自组网络时将移动性拓展到无线领域中的自治系统,具有自己特定的路由选择协议,且可以不和因特网相连
- 如,苹果的隔空投送AirDrop、华为分享HUAWEI Share,可以实现数据、文件的发送甚至是多屏协同
 
在家用场景中,有些设备通过网线直接接入在以太网交换机上,构成有线局域网;另外一些设备通过连接无线路由器的AP,构成无线局域网
- 有线局域网采用802.3协议进行通信,无线局域网采用802.11协议进行通信,两者是无法进行直接通信的
- 可以通过门户Portal设备,将两类局域网连接起来构成一个更大的局域网环境,这样一来就可以实现手机向电视投屏的功能
802.11无线局域网架构:

- 802.11无线局域网是星型拓扑结构,中心称为接入点AP,可以称为无线接入点WAP,就是俗称的连接的WIFI热点
- 基本服务集合BSS:
- 包括1一个基站AP和多个移动站,即一个WIFI热点与连接无线的移动设备
- 每个BSS都有一个服务集标识符SSID,就是无线局域网的标识名,不超过32B
- 每个BSS还有个基本服务区BSA,至一个基本服务集能够覆盖的地理范围,即最大可搜索到WIFI的地理范围
 
- 门户Portal用于将802.11无线局域网接入802.3有线以太网
- 扩展服务集ESS:
- 将多个AP连接到同一个分配系统,组成一个更大的服务集
- ESS实际就是在家中使用多个路由器,使用Mesh、有线/无线中继等技术构成子母路由,实现全屋WIFI覆盖
- 子路由的WAN口与母路由的LAN口(无线Mesh技术、无线中继支持无线进行连接)相连,子路由只作为AP接入移动设备
- 母路由既完成路由器功能连同外部互联网,又作为交换机将几个AP进行连接构成更大的局域网,同时再增加一些额外的功能,如流量监控、设备管理等路由器厂商定制的功能
 
 
- 漫游:
- 一个移动站从一个基本服务集切换到另一个基本服务集,仍可以保持通信
- 当构成一个ESS(即子母路由的AP),使用相同的SSID(即WIFI热点名称相同),分配系统会根据WIFI的信号强弱自动切换更加合适的AP,实现丝滑切换
 
802.11帧的分类:
- 数据帧:
- 用于在无线局域网传输数据所使用的标准帧格式
 
- 控制帧:
- 如,确认ACK帧、否认NAK帧、CSMA/CA中信道预约使用的RTS、CTS帧
 
- 管理帧:
- 如,探测请求/探测相应帧,这些帧用于移动设备探测发现附近可用的WIFI
 
802.11数据帧

- 802.11无线局域网中,两个移动站之间不能直接通信,必须通过基站AP转发
- 数据帧在传输过程会先以去往AP数据帧传输给AP,AP在转换为来自AP数据帧发送给目标站点
 
- MAC首部中包含四个地址字段,第四个字段对于固定基站网络没有意义,暂不需要考虑
- 去往AP数据帧,前三个地址字段分别表示中转AP的MAC地址、起始站点MAC地址、目的站点MAC地址
- 来自AP数据帧,前三个地址字段分别表示目的站点MAC地址、中转AP的MAC地址、起始站点MAC地址
 
- 由于AP/WAP可以通过门户与以太网相连,因此无线路由器通常剧本帧格式转换功能
- 即无线路由器,既可以在无线链路上传输802.11帧格式,又可以在有线链路上传输以太网帧格式
- AP与移动站之间通常采用802.11帧格式进行数据通信,而AP与AP、AP与路由器、AP与以太网交换机使用有线链路连接时采用以太网帧格式
 
数据链路层设备
数据链路层设备主要包括网桥和交换机,交换机实际就是多端口网桥
交换机Switch:
- 工作在数据链路层中,可以根据目的MAC地址转发帧,支持全双工、半双工模式。当与只支持半双工设备(如,集线器)相连时使用半双工模式工作
- 交换机具有自学习功能,即支持即插即用:
   - 每个交换机都有一张需要维护的交换表,初始为空,记录MAC地址、端口号的对应关系
- 没收到一个帧,就将发送方的MAC地址、端口号更新到交换表中
- 如果发送方不知道接收方在哪,交换机就会将帧广播道除入口外的其他端口
- 如果发送方直到接收方在哪,交换机就会精准地将帧转发到目标端口
 
- 交换表中的表项需要设置一个有效期,过期自动作废,以防止某些节点突然拔出或者更换端口
- 假如此时图中的H节点从交换机2的2端口拔出,换到交换机1的7端口,并且A尝试向H发送数据
- A将数据通过端口1发送给交换机,交换表1中还保留着H主机处于8端口中,会直接转发到8端口给到交换机2
- 交换机2在表中发现H主机在端口2,直接将帧转发到端口2,但是实际上端口2没有此时任何设备,A向H发送数据的过程失败,可能会进行重传
- 由于表项存在有效期,交换表1中H设备的表项过期作废
- 由于此时H主机在8号端口,A向H发送的数据会尝试重新找到H主机,顺利找到H主机后更新转发表1表项,便可顺利发送数据。交换表2同理
 
 
- 每个交换机都有一张需要维护的交换表,初始为空,记录MAC地址、端口号的对应关系
交换机的交换方式:
- 直通交换:
- 由于以太网帧的前6各字节表示目的主机的MAC地址,直通交换就是使用高速缓冲RAM仅接收并处理帧的前6个字节,根据MAC直接转发到相应端口
- 优点;
- 转发时延低,类似于电路交换
 
- 缺点:
- 不适用于需要速率匹配、协议转换或差错检测的线路
 
 
- 存储转发交换:
- 存储转发交换不同于直通交换,高速缓冲RAM接收并处理整个帧后,在解析目的MAC地址转发到相应端口
- 优点:
- 适用于需要速率匹配、协议转换或差错检测的线路
 
- 缺点:
- 转发时延高
 
 
广域网
待补
本文来自博客园,作者:GK_Jerry,转载请注明原文链接:https://www.cnblogs.com/GKJerry/articles/18430406

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号