带宽是指网络设备所支持的最高速度,与信号在介质中的传播速度无关, 由发送方的发送能力确定? 网络运营商提供的带宽,是通过链路上路由器的出口带宽决定的, 如果路由器出口带宽不够,数据在路由器中等待,则由数据链路层的协议, 发送端会自动将发送速度降下来,从而实现了流量控制。
某一链路带宽为1Mb/s, 则发送方在1us内可向链路发1bit数据, 也就是发送时延=数据长度/信道带宽(发送速率)
什么是端到端,什么是点到点? 端到端,指从发送方到接收方;点到点,指节点到节点。
中继器: 1. 模拟信号和数字信号都可以放大? 2. 不会存储转发 集线器: 多个口,将信号从多个口传出,连在集线器上的工作主机平分带宽 不会隔离冲突域。什么是冲突域?
数据链路层的流量控制是点对点的,而传输层的流量控制是端对端的。
数据链路层的功能:
为网络层提供服务,将网络层的数据“可靠的”传输到相邻节点的目标机网络层(这里的可靠是指?)。 将物理层提供的可能出错的物理连接改造成“逻辑上无差错的数据链路”,使之对网络层表现为一条无差错的链路。 (1) 为网络层提供服务: 无连接无确认(通信质量好,有线传输链路) 无连接有确认 面向连接有确认(通信质量差的无线传输链路) (2) 组帧: 将上层的数据加上头和尾,发送到物理层。头和尾用于帧定界。 (头和尾的长度是多少?) 帧的数据部分有个最大长度限制,称为MTU 组帧的四种方法:
-
字符计数法: 帧首部有个字段表示帧的数据长度。 缺点,一个错,全部都错 -
字符填充法 使用SOH和EOT两个字节分别来表示帧的开始和结束,在碰到帧的原始数据中包含有控制字节时, 在原始数据中的控制字节前加一个转义字符,接受端去除转义字符 -
零比特填充法 使用01111110来表示帧的开始和结束,只有这个字节有连续的6个1. 在帧的数据部分,一旦碰到连续的5个1,就在后面添0;接收端先寻找界定符,然后如果5个1后为0,则删除0。 这样在寻找帧界定符时,肯定不会找到帧的数据部分。 实现了透明传输,不会引起对帧边界的判断错误 -
违规编码法 在曼彻斯特编码中,一个比特中使用低-高或高-低来表示1或0,那使用违规的高-高、低-低来表示帧的开始和结束。
差错控制:
- 为什么有差错?
差错来自于噪声,
- 差错的结果
帧错(丢失、重复、失序)
位错(比特位出错)
对于比特错的情况,有差错控制,包括检错编码和纠错编码(都是针对一组比特位进行的编码)
- 检错编码:奇偶校验码、CRC循环冗余码
- 纠错编码:海明码
(这都要求接收端对收到的数据检查并做出回应?)
经过比特位错的检错和纠错编码,保证了接收到的帧都是无差错的,但还不能保证可靠传输,即“发送端发什么,接收端就收到什么”,因为这只是比特位的检错机制。
【数据链路层的可靠传输通常使用确认和超时重传两种机制来完成 】 数据链路层的流量控制:接受方收不下,就不回复确认。 传输层的流量控制:接受端给发送端一个窗口公告。 (这三个协议都是用来实现可靠传输的,因此也能用在传输层?) 流量控制与可靠传输 在数据链路层中流量控制机制和可靠传输机制是交织在一起的,根据确认和重传机制,在实现了可靠传输时,就自动实现了流量控制。 底层信道可能出现丢包问题,因此需要确认机制。 流控/可靠传输方法: 停等协议、滑动窗口协议(后退N帧、选择重传)。 (1) 停止等待协议: 发送-确认-发送-确认……,信道利用率低 正常与异常情况: - 正常, 发送-确认,再发送,再确认 - 异常, - 发送帧错误或丢失 - 确认ack丢失 - 确认ack延迟 发送数据需要存在副本,发送完需要有计时器,超过计时需要重传 发送的帧是否需要编号?因为帧是一个一个发的,等前一个的确认明确收到到才发送下一帧, 在出现帧的确认延迟时,假设刚发出去一帧,收到了之前已发送帧的确认帧, 按道理讲应该立即丢弃,什么都不做,那么是如何完成的呢? 应该是确认帧中包含一个序号,收到时比较此序号和当前序号,发现小则忽略? 视频中讲,发送帧的序号只有0和1,对应的ack则是ack0和ack1. 由于停止等待协议整个周期内发送数据时间占比过低,大部分时间都在等待帧确认, 因此改进采用流水线技术,连续发送多个帧,必须要: 增大帧序号范围 需要缓存多个帧 则引申出来了两个滑动窗口协议
(2)后退N帧协议-GBN
发送窗口为N,接收窗口为1
发送窗口分为四部分:已发送已确认(在窗口外),已发送等确认(窗口内),能发送还未发送(窗口内),不能发送(窗口外)
基本的发送流程: 发送、确认、发送窗口和接收窗口前移(对于发送方,收到了窗口下限帧的确认才前移;对于接收方,收到窗口下限的帧才前移)
注意点:
GBN中采用累计确认,接收方不必每个帧都回复确认,可以等一会回复一个最新的帧的确认。
这个N号帧的确认,表明N号帧和它之前的帧,都被接收方成功接收。
出现超时时,发送方会重传所有已发送未确认的帧。
接收方维护一个期望帧序号,expectseqnum,下一个按序接收的帧序号。
只有在正确且按序收到N号帧时会回复ack,其余情况丢弃该帧且重新回复一个最近已按序接收帧的ack。
如果发送的滑动窗口特别大,则窗口内可发送的数据越多;
则某个帧重发时,重发帧的数量也越多;
如果采用n个比特对帧进行编号,则发送窗口W的范围是 1 <= W <= 2**W - 1,相当于窗口内帧序号要保留一位,
不然如果本次用完下次从0开始则有可能是重发的0或者是序号用完了的新帧0
重点:
1. 累积确认(偶尔捎带确认)
2. 接受方只按顺序接收帧,不按序则丢弃
3. 确认序号是已接收最大序号的帧
4. 接收窗口为1,发送窗口最大为2**n - 1
缺点: 一个帧出差,后续的帧都需要重传
(3) 选择重传协议-SR
由累积确认改为单个确认,增大接收窗口,设置好接收缓存,缓存乱序到达的帧。
这样出错时只需要重传该帧即可。
SR有发送窗口和接收窗口,发送窗口和GBN一样,也是分为已发送已确认(在窗口外),已发送等确认(窗口内),能发送还未发送(窗口内),不能发送(窗口外)四种状态,接收窗口有已接收(窗口外)、未接收(窗口内)、已接收并缓存(窗口内)、等待接收(窗口内)、不能接收(窗口外)这些状态。
发送窗口中的帧乱序到达,只有窗口底部帧到达时,才会将数据交付给上层网络层,并移动窗口。
注意点:
1. 发送窗口的移动
收到窗口内帧的回复ack,如果是窗口下界,则移动窗口到相连的已接收到ack且缓存的帧位置
2. 接收方,对于窗口内的帧来者不拒,如果不是下界则缓存;窗口外的帧直接回复ack(这里的窗口外是指当前窗口外的已接收数据,且不能是太久远的数据?)
3. 接收窗口的移动
乱序收到数据缓存,直到收到窗口下届帧,才移动窗口
接收窗口和发送窗口大小一致,最大值为2**(n-1),n为表示帧序号的比特位,主要是为了区别新帧和旧帧
介质访问控制
两种传输链路:
- 点对点链路, 两节点通过一链路相连,没有第三者。 应用广域网,如ppp协议
- 广播式链路, 所有主机共享通信链路(发出的数据被所有主机接收?),应用:早期的总线网、无线局域网,常用于局域网,典型拓扑结构:总线型、星型(逻辑总线型)
静态访问控制: 通过复用技术使得多个信号组合在一条物理信道上进行传输,多个终端共享信道资源,提高信道利用率
有频分、时分、波分、码分复用技术
动态访问控制: 信道并非在通信时固定划分给用户,分为随机访问控制和轮询访问控制。
随机访问: 所有用户可随机发送信息,发送时占用全部带宽(与静态划分信道共享带宽不同)
- ALOHA协议(不听就说)
纯ALOHA,不监听信道,不按时间槽发送,随机重发,即想发就发。
(发送端根据电平变化检测是否有冲突,有则不回复确认,发送端超时未收到回复则认为冲突立即重发数据帧)
- 时隙ALOHA协议()
将发送时间片分为多个时间槽,只能在时间片的开始发送数据帧
- CSMA协议(先听再说)
发送前监听信道,空闲则发送,忙则等待
有1坚持、非坚持、p坚持
(发送端仍然根据是否有确认帧返回判断是否冲突)
- CSMA-CD协议(先听再说,边听边说), 检测碰撞
发送前监听信道,边发送边检测信道上信号电压的变化(属于半双工网络)
检测是否发生碰撞,是接收端收到帧后进行检测,如果数据帧在传播过程中有碰撞,则会检测出来,丢弃此帧。
发送端发送数据后,数据在路程中发生了来自接收端发送帧的碰撞,则发送端最迟经历2T时间收到接收端的碰撞帧,也就检测到了碰撞。
不能检测到碰撞后就立即重发
截断二进制指数规避算法,重传需要退出的时间随重传次数的增大而增大,减少发生碰撞的概率,重传上限16次
为了使得在检测到碰撞时,帧并未发送结束,从而使得CSMA-CD协议有意义,则需要定义最小帧长。
那么就要求 数据帧的传输时延 >= 2T, 即最小帧长 = 总线传播时延 * 数据传输速率 * 2 = 2T * 数据传输速率
以太网规定的最小帧长是64字节
- CSMA-CA协议(先听再说), 避免碰撞
CD协议应用于有线网络,总线型网络,CA协议应用于无线局域网
有礼貌?
发送数据前,先检测信道是否空闲
空闲时,先发出RTS,等待CTS帧(相当于先建立连接,为了解决隐蔽站的问题),同时预约信道(发送方告知其他站点自己要传多久数据)
与CD的区别:
介质不同
监听信道的方式不同
一个检测碰撞,一个避免碰撞
轮询访问介质访问控制
既不产生冲突,又要发送时占全部带宽。
- 轮询协议,主节点轮流“邀请”从属节点发送数据
问题 1 轮询开销 2 等待延迟 3 单点故障
- 令牌传递协议
令牌在环形网络中传递,需要发送数据的主机获取到令牌,将数据帧附加到令牌上,然后传递令牌。
实现了某一时刻只有一个节点独占信道,无碰撞。
每个节点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制的持有令牌。
问题:
1. 令牌开销 2. 等待延迟 3. 单点故障
应用于令牌环网(物理上星型,逻辑上环形)
常用于网络负载重、通信量大的网络
CSMA-CD协议没有确认机制,如果没有检测到冲突就认为帧已被正确接收,假如真的没有被接收,上面的传输层会自动重传(基于传输层的确认机制) CSMA-CA协议有确认机制,
局域网
使用广播信道,各站为平等关系,共享传输信道
决定局域网的三个要素: 拓扑结构、传输介质和介质访问控制方法
拓扑结构:星型、总线型、环形、树形
传输介质: 有线(光纤、双绞线、同轴电缆),无线(电磁波)
机制访问控制方法: CSMA-CD(总线型、树形局域网),令牌总线、令牌环
分类:
- 以太网: 逻辑拓扑总线型,使用CSMA-CD协议
- 令牌环网: 逻辑环形拓扑
- FDDI网: 逻辑环形拓扑
- ATM网: 较新的单元交换技术,使用53固定字节长度的单元进行交换
- 无线局域网:采用IEEE 802.11标准
以太网
基带总线局域网规范,使用CSMA-CD协议,因此提供无连接、不可靠的服务
无连接: 发送和接收方直接无握手过程
不可靠:不对发送方的数据帧编号,接受方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责
只实现无差错接收,不实现可靠传输
MAC帧的组成
目的地址 | 源地址 | 类型 | 数据 | FCS
6 | 6 | 2 | 46~1500 | 4
以太网MAC帧长最小64,所以数据部分最小为64-6-6-2-4=46字节
无线局域网
802.11的MAC帧格式
|