正文之前
忘了把后面的丢上来了。。其实考完之后我就放飞自我了。。写了一篇体系结构的论文总结,然后正在写分布式系统的读书报告,想哭啊!!
正文
以太网
- 1975年纯ALOHA原始ethernet:<u>单工竞争系统</u>,基本思想:
- 无连接,先说后听,想发就发,错了重发;
- 对数据帧不编号,不要求对方发回确认;不可靠交付,尽力而为
- 建立在近距离、信道出错概率小-->局域网,出错由高层重发
- 随机接入协议
- Time sloted ALHOA;Aloha;Taking turns
- CSMA(载波侦听多路访问):先听后说+指数退避
* 1持续CSMA、非持续CSMA、P持续CSMA - CSMA/CD:多点接入、载波监听、碰撞检测
* 信道效率 传送距离越短,发送帧时T0越长,效率越高
- 以太网优势
- 可扩展(10M—10G),灵活(多种媒介、全/半双工、共享/交换), 便宜、易于安装使用、稳健性好。
以太网卡与MAC地址模式
- 网卡功能
- 数据的封装与解封
- 链路管理:CSMA/CD
- Bit的编码与解码
- MAC地址
- Unicast:单播帧地址,仅对某个网卡
- Broadcast:广播帧地址,仅对某个子网
- Multicast:多播帧地址,组地址
- 杂收模式:Promiscuous mode:接收总线上所有的可 能接收的帧
高速局域网
快速以太网100 Mbps
- 对10 Mbps 802.3 LAN的改进
- 局域网发展史上重要里程碑
- Fast Ethernet标准
- 1995年,IEEE通过802.3u标准,实际上是802.3的 一个补充。原有的帧格式、接口、规程不变,只是 将每比特时间从100ns缩短为10ns。
100Base-TX/F
- 100Base-TX
- 使用<u>2对</u>5类平衡双绞线或150屏蔽平衡电缆,1对 to the hub,1对 from the hub,全双工;
- 5类双绞线使用125 MHz的信号;
- 4B/5B编码,5个时钟周期发送4个比特,物理层与FDDI兼容,比特率 为 125 * 4/5 = 100 Mbps;
- 100Base-FX
- 使用2根多模光纤,全双工
- 100Base-T4 和 100Base-TX 统称 100Base-T
- 两种类型的HUB
- 共享式 HUB,一个冲突域,工作方式与802.3相同,CSMA/CD,二进 制指数后退算法,半双工 …
- 交换式HUB,输入帧被缓存,一个端口构成一个冲突域。
1000Mbps以太网
- 工作方式
- IEEE 802.3定义的10M/100M以太网一致的CSMA/CD帧格式和MAC层协议
- 以太网交换机(全双工模式)中的千兆端口不能采用共享信道方式访 问介质,不使用 CSMA/CD 协议,而只能采用专用信道方式.
- 在专用信道方式下,数据的收/发能够不受干扰地同步进行.
- 在半双工方式下仍使用 CSMA/CD 协议
- 物理层采用已有光纤通道技术;
- PAUSE协议
- 规范发展完善了PAUSE协议,不采用CSMA/CD协议完成全双工操作。
- 该协议采用不均匀流量控制方法最先应用于100M以太网中。
- 流控
- 利用802.3定义的Pause控制帧进行流量控制,要求发送数据节点暂停 数据发送,避免缓冲区溢出造成的丢包。
- 只有在全双工时,才支持Pause流控,半双工时不支持流控。
万兆(10Gbps)以太网
- 2002.6月正式发布802.3ae 10GE标准
- 只全双工,不支持单工和半双工,也不采用CSMA/CD
- 不持自协商;提供广域网物理层接口。
- 长距离(40-50KM)网络
- 扩展了网络的覆盖区域,且标准简化。
- 支持<u>现存的大量SONET网络兼容</u>
- 两种物理层技术:
- 局域网物理层LAN PHY;10.000Gbps精确10G;
- 广域网物理层WAN PHY;OC-192,异步SONET/SDH
- 与10M/100M/1000Mbps帧格式完全相同;
交换机
- 以太网可以是一组直连的主机
- 以太网也可以通过网桥、集线器、交换机这些 连接设备进行扩展
以太网的连接设备
- 集线器(HUB):物理层互连设备
- 1进多出,相同速率,无帧缓冲/线 障隔离,使用方便
- 带宽受限 ,广播风暴 ,单工传输 ,通信效率低
- 交换机(Switch):链路层互连设备
- 依帧头信息转发以太帧;
- 实现方法
- 直接交换方式
- 存储转发方式
- 改进直接交换方式。
- 广播域与冲突域
- 同时共享同一广播帧的计算机子网
- 同时共享同一传播媒介的计算机子网
虚拟局域网
- 不依赖三层交换,通过虚拟局域网VLAN,可以将 同一交换机或者多个交换机的广播域划分多个广 播域
- 每个虚拟局域网一个广播域
交换机-自学习功能
交换机采用的是 Datagram (or connectionless) model,每个帧拥有完整地址,然后通过一个转发表来确定帧发往哪个端口
最简单的情况: 右边的转发表是可以通过交换机学习自动得到的
交换机生成树协议
- 交换机的自学习机制可以工作良 好,但是一旦交换机连接存在环 路,会造成严重后果
- B1, B4, and B6 form a loop
- 当交换机之间存在多条活动链路 时,容易形成环路,导致转发表 的不正确与不稳定,并且还会导 致重复的数据包在网络中传递, 引起广播风暴,使网络不稳定
- 为了防止交换机之间由于多条活动链路而导致的网络故 障,必须将多余的链路置于非活动状态,即不转发用户 数据包,而只留下单条链路作为网络通信。
- 要实现此功能,需要依靠生成树协议(Spanning Tree Protocol)来完成,STP将交换网络中任何两个点之间 的多余链路置于Blocking(关闭)状态,而只留一条活 动链路,当使用中的活动链路失效时,立即启用被 Block的链路,以此来提供网络的冗余效果。
- 去掉环路的方法:所有交换机按照树的方式进行连通
- STP的核心思想是网络中选出一台交换机做为核心交换机,STP称其为 Root,也就是根,功能相当于hub-spoke网络中的Hub。
- 其它不是Root的交换机则需要留出一条活动链路去往根交换机,因为只要普通交换机到根是通的,到其它交换机也就是通的。
- 只有在一个广播能够到达的范围内,才需要进行相同的STP计算与选举 ,<u>也就是一个广播域内独立选举STP</u>
- 下图中网络被路由器分割成两个广播域,所以在两个网段中,需要进 行独立的STP计算与选举
-
交换机之间选举根交换机(Root)
- 一个广播域内只能选举一台根交换机。Birdge-ID中优先级最高(即数 字最小)的为根交换机,优先级范围为0-65535,如果优先级相同,则 MAC地址小的为根交换机。
-
交换机端口之间选举根端口(Root Port)
- 所有非根交换机都要选举根端口,选举规则为到根交换机的Path Cost 值最小的链路。
-
非根交换机选择指定端口(Designated Port)
- 简单地理解为每条连接交换机的物理线路的两个端口(属于不同交换机)中,有一个要被选举为指定端口。选举规则和选举根端口一样, 即:到根交换机的Path Cost值最小的链路,如果多条链路到达根交换机的Path Cost值相同,则选举上一跳交换机Bridge-ID最小的链路。
-
剩余端口状态为Blocking
在STP选出根交换机,根端口以及指定端口后,其它所有 端口全部为Blocking状态,为了防止环路,所有 Blocking端口只有在根端口或指定端口失效、拓扑改变 的时候才会被启用。
一个端口,在STP中只能处于一种角色,不可能是两种角色
交换机生成树协议-选举
-
BPDU(Bridge Protocol Data Unit) 交换机间用BPDU报文来选举,目的地址为layer 2 multicast address 01:80:C2:00:00:00.:
- Protocol ID 固定为0。
- Version:0为802.1d,1为802.1w,2为 802.1s。
- Message type:0为普通BPDU,80为TCN。
- Flags字段:802.1d时只用到0位和7位,都和 TCN相关,TCN的ACK报文里0位置1,TC报文里 7位置1。
- Root ID,Cost of path,Bridge ID,Port ID:用于选举。
-
Path cost计算
- 每个交换机会把自己链路的代价加上接收到的邻居交换机的Path Cost,得到总的Path Cost。
选举过程
- 当交换机打开的时候,所有的端口都处于Listening状态,每个交换 机都会认为自己是根交换机(Root ID为自己),然后都每隔两秒就 向外发送一次自己的BPDU。
- 如果收到的BPDU的Bridge ID比自己的小,则停止转发自己的BPDU ,开始转发更优的BPDU,如果比自己的Bridge ID大或者和自己的 Bridge ID相等,则丢弃该BPDU。
- 持续15s(转发延迟)等到BPDU扩散完毕之后,开始各种端口的选举 ,这时候每个BID最小的交换机成了根交换机,各个交换机通过收到 的BPDU来确定根端口和指定端口。剩下的成为非指定端口,转到 blocking状态。然后进入learning状态
- 进入Learning状态之后,填写MAC地址表,经过15s(转发延迟)之 后进入Forwarding状态。
- 进入Forwarding状态之后,开始转发数据,并且同时接受转发来自于根的BPDU(Root ID为根交换机),维护拓扑。这时只有根交换机发BPDU,其他交换机都只是转发BPDU。
- 当一个新的交换机加入的时候,端口状态是Learning,新的交换机认为自己是根交换机开始发送BPDU,也接收对端的BPDU,然后进行进一步的竞选。
- 若竞选成功,则网络拓扑就重新变化了,若竞选失败则计算根端口指定端口和非指定端口。(30s可以完成)
第二种类型的BPDU包:Topology Change Notification(TCN) BPDU
- 当一台交换机检测到拓扑变化后,它就可以发送TCN给root bridge,注 意TCN是通过root port向root bridge方向发出的.
- 当交换机从它的designate port接收到TCN类BPDU时,它必须为其做转 发,从它自已的root port上发送出去TCN类型的BPDU包,这样一级一级 地传到root bridge后,TCN的任务才算完成.
- 在以上的过程中,无论是哪台交换机从它的designate port上收到了 TCN类型的BPDU包,它都必须给一个回复,必须从designate port上发 出TCA位被置1的normal configuration BPDU包
- 那么当TCN传遍全网,直至到达ROOT BRIDGE后,root bridge也要做出 一种回应,它会发出一个正常的configuration BPDU包,当然会有一些 不同,就是包内的TC字段会被置1,TC即topology change,表示发现拓 扑变化。
- 这个包会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交 换机都得知拓扑变化为止,原来转发表作废,重新开始选举。
重点思考
- 如何加快STP的选举速度?
- 如何根据VLAN虚拟局域网进行优化?
正文之后
气!!!分布式系统好难啊!!!