第六章
第6章: 链路层和局域网
6.1 引论和服务
网络节点的连接方式
链路层: 导论
即特定到某个具体的链路层,其提供的传输可能是不可靠传输,如以太网(出错率低)
6.2 差错检测和纠正
在较可靠的信道中传输,我们通常采用差错检测,检测到差错直接进行重传
在较不可靠的信道中传输,我们通常采用差错纠正(如奇偶校验),检测到差错尽量还原,重传耗费过大
错误检测
检验和: CRC(循环冗余校验)
位串的多项式表示:如1011=x^3+x+1
注意若R为r位,则G为r+1位(生成一个r次方的多项式),保证能产生一个小于等于r位的R(见下文例子)
即类似除法运算中的余数
6.3 多点访问协议
注意,只有一个信道,即控制信息和数据都用一个信道传输
MAC(媒体访问控制)协议的分类
随机访问:规定了冲突后如何恢复
依次轮流:有完全分布式(无主节点,采用令牌方式),有中央主节点(主节点管理其他节点是否传输)
信道划分MAC协议
CDMA:发送的数据之间彼此正交,可以提取出来
随机存取MAC协议
冲突检测:有线介质中,传输时信道能量发生变化(多个节点传输时,能量变化幅度也不同)
如何提高信道利用率—carrier sense(CS):在发送前侦听一下信道,若当前信道有数据传输,则不发送数据
节点帧听的是自身位置的传输—节点之间距离越长,发送冲突的概率越大
CSMA:说之前听
CD:边说边听,检测到冲突则立即停止传输,提高信道利用率
以太网采取的就是CSMA/CD方式
Jam信号:可能冲突时间极短,导致其他节点不知道发生了冲突—强化冲突
二进制指数退避算法:自适应算法,载荷越大,发生冲突概率越大,窗口大小越大
CSMA:冲突避免,因为冲突检测在无线网络中不好使
冲突了也可能成功,不冲突也可能不成功
图中A,C发出的信号在B处发生冲突,但A,C均检测不到冲突
故不做信道冲突检测,而是在发送前进行侦听
下行不存在竞争—只有CMTS一个用户(往下发,所有的节点都能收到,比较地址来确认接不接受)
冲突:都预约同一时隙,CMTS无法收到预约请求,采用二进制退避的方式,一定时间后再请求
预约成功标志:CMTS发布其预约成功消息
依次轮流(Taking Turns)MAC协议
可靠性不好—主节点失效
改善方法:取消主节点,采用令牌
节点要发送数据时,先”抓住”令牌,将标志位置1,表示令牌帧变成数据帧,加入要传输的数据后,继续循环,接收方收到数据帧后,将数据复制,在相应标志位置1表示收到数据,最后数据帧回到发送方(为什么最终要回到发送方:可能有多个接收方)
MAC协议总结
如果想要做到不碰撞即发送成功—帧在链路中存在的时间至少要为2t(t为节点最长距离的传播延迟)—因为若采用侦听,在帧发送后,发送方最晚检测到冲突的时间即为2t
6.4 LANs
MAC地址和ARP
通过ARP协议获取下一跳IP地址所对应MAC地址(MAC地址作用:在物理网络内部标示每一个节点)
IP地址是分层的(子网),而MAC地址是平面的(用来标示不同网卡)
ARP协议:Address Resolution Protocol
通过广播mac地址(即FF-FF-FF-FF-FF-FF)询问IP地址对应MAC地址
以太网
在线缆两侧要加”吸收器”,防止能量反弹,对信道侦听造成干扰
HUB收到数据后,向所有端口发,所以从逻辑上看仍是总线型(节点在使用信道前仍要侦听)
优化:switch收到数据后,将数据存储下来,只转发到目标端口(可以多个数据同时发送接受)—效率高得多,尤其是高负载的情况下
BASE:基带信号,即信号不做调制
双绞线:两个绝缘导体扭和而成(为了防止串扰)
Manchester编码过于极端,效率仅有50%(用俩次跳变表示一位数据)
故可采用4b5b编码
最多连续4个bit相同,就会出现跳变(有利于同步时钟)
8b10b编码:原理差不多
交换机
通过HUB级联的站点都处在一个碰撞域内(所以10BaseT和100BaseT的网络不能接到一起)
如果有多个站点同时向某个站点发送数据—交换机存储这些数据,一个个发送
交换机透明—一跳可能经过了若干个交换机
表项一段时间后会删除(因为可能会发生变化)
如果不知道目标MAC地址的对应端口—泛洪,对所有的端口转发该数据(不能有环)
如果目标MAC地址对应端口就是数据的源端口,则扔掉该数据,不进行转发
VLans
6.5 链路虚拟化:MPLS
略
6.6 数据中心网络
要求:高带宽 低延迟 高可靠性