TCP/IP-链路层
数据链路层的作用
- TCP/IP中对OSI参考模型的数据链路层及以下部分(物理层)未作定义。因为TCP/IP以这两层的功能是透明的为前提(TCP/IP假定这些物理网络已经存在)。
- 各个设备之间在数据传输时,数据链路和物理层都是必不可少的。数据链路层是在物理层提供比特传输的前提下以帧为单位再进行传输。
- 数据链路层常用的传输技术有以太网、WLAN、PPP(Point to Point Protocol,点对点协议)。
IEEE802局域网和城域网标准
原始以太网帧格式被称为DIX或者Ethrnet II。对这种类型修改后,由IEEE标准化为一种CSMA/CD网络,称为802.3.在IEEE标准中,带802前缀的标准定义额局域网和城域网的工作过程。当前最流行的802标准是802.3(以太网) 和802.11(WLAN/Wi-Fi)
以太网帧格式
- 前导码字段:接收器电路用它确定一个帧的到达时间
- SFD:帧起始分隔符:接收器使用它“恢复时钟”,固定为0xAB
- DST:目的MAC地址
- SRC:源MAC地址
- 长度或类型:大多数情况下用于确定后面的数据类型,常见的
-
IPV4(0x0800)
-
IPV6(0x86DD)
-
ARP(0X0806)
-
Q标签(0x8100)
可携带一个虚拟局域网或者802.1q标准的VLAN ID
-
- P/Q标签:提供虚拟局域网和一些服务质量(QoS)指示符
- FCS:帧校验序列
802.1p/q:虚拟局域网和QoS标签
虚拟局域网是一组逻辑上的设备和用户,这些设备和用户不受物理位置的限制,可以根据功能,部门以及应用等因素组织起来,相互间的通信就像在同一个网段中,通信主要通过第三层的路由器实现,目的是为了解决大型多用途交换网络运行中的问题。
划分VLAN的基本策略
从技术角度讲,VLAN的划分可依据不同原则,一般有以下三种划分方法:
-
基于端口的VLAN划分
这种划分是把一个或多个交换机上的几个端口划分一个逻辑组,这是最简单、最有效的划分方法。该方法只需网络管理员对网络设备的交换端口进行重新分配即可,不用考虑该端口所连接的设备。
-
基于MAC地址的VLAN划分
MAC地址其实就是指网卡的标识符,每一块网卡的MAC地址都是惟一且固化在网卡上的。MAC地址由12位16进制数表示,前8位为厂商标识,后4位为网卡标识。网络管理员可按MAC地址把一些站点划分为一个逻辑子网。
-
基于路由的VLAN划分
路由协议工作在网络层,相应的工作设备有路由器和路由交换机(即三层交换机)。该方式允许一个VLAN跨越多个交换机,或一个端口位于多个VLAN中。
VLAN的三大优点:
- 控制广播风暴:一个VLAN就是一个逻辑广播域,通过对VLAN的创建,隔离了广播,缩小了广播范围,可以控制广播风暴的产生。
- 提高网络的整体安全性:可以控制用户访问权限和逻辑网段大小,将不同用户群划分在不同VLAN,从而提高交换式网络的整体性能和安全性
- 方便网络的管理:对于采用VLAN技术的网络来说,一个VLAN可以根据部门职能、对象组或者应用将不同地理位置的网络用户划分为一个逻辑网段。在不改动网络物理连接的情况下可以任意地将工作站在工作组或子网之间移动。利用虚拟网络技术,大大减轻了网络管理和维护工作的负担,降低了网络维护费用
当不同的VLAN对应同一个交换机的时候,只需要确保流量不在两个VLAN中泄露就可以。
但是不同的VLAN在不同的交换机中的话,就有点麻烦了。
在这种情况下需要使用VLAN来标记该帧的归属,这通过使用VLAN标签标记,在VLAN标签中包含了一个12位的VLAN标识符,它还包含额QoS的3位优秀级
网桥和交换机
网桥和交换机用于连接多个物理的链路层网络或成组的站,可以通过网桥或者交换机扩展局域网。
网桥、交换机处理帧和建立转发表
- (1) 从端口x收到无差错的帧(如有差错即丢弃),在转发表中查找目的站 MAC 地址。
- (2) 如有,则查找出到此 MAC 地址应当走的端口 d,然后进行(3),否则转到(5)。
- (3) 如到这个 MAC 地址去的端口 d = x,则丢弃此帧(因为这表示不需要经过网桥进行转发)。否则从端口 d 转发此帧。
- (4) 转到(6)。
- (5) 向网桥除 x 以外的所有端口转发此帧(这样做可保证找到目的站)。
- (6) 如源站不在转发表中,则将源站 MAC 地址加入到转发表,登记该帧进入网桥的端口号,设置计时器。然后转到(8)。如源站在转发表中,则执行(7)。
- (7) 更新计时器。
- (8) 等待新的数据帧。转到(1)。
生成树协议(STP)
生成树协议(Spanning Tree Protocol,STP)由IEEE 802委员会制定了生成树协议的规范802.1d。是一个第2层的管理协议。其目标是在物理环路上建立一个无环的逻辑链路拓扑结构。
当有多个交换机进行工作的时候,可能会出现环路,当出现这种情况的时候STP通过在每个网桥中禁用某些端口来解决环路问题
这样就出现了一个问题,网桥的启用和关闭,接口卡更换或者MAC地址改变,这些都会影响到生成树,那么STP就需要动态的适应这种情况,为此,STP通过一种称为网桥协议数据单元(BPDU)的帧来实现,这些帧形成和维护生成树,这颗树“生长”自一个网桥,该网桥称为根网桥
BPDU结构:
- port:协议ID,被设置为0
- Vers:设为0或2,表示使用STP或者RSTP
- type:数据类型
- flags:
- TC:拓扑变化
- TCP:拓扑变化确认
- P:建议
- 端口角色:
- 00:未知
- 01:备用
- 10:根
- 11:指定
- 根ID:发送方是的根网桥标识符
- 根路径成本:根ID字段中指定的计算出到达某个网桥的成本
- PID:端口标识符和由发送帧给出的端口号
- msgA:消息有效期
- maxA:最大有效期
- helloTime:配置帧的传输周期
- 延迟时间:处于学习和帧听的状态的时间
端口状态和角色
为了能够支持STP,网桥的端口状态:
-
阻塞
在阻塞状态下,该端口不进行地址学习,数据转发,BPDU的发送,但它会监控接受BPDU,并且在它需要包含在根网桥的路径中时,该端口会转为侦听状态。
-
帧听
该状态可以发送和接收BPDU,但不进行地址学习和转发,在经过15s的转发延迟后转为学习状态
-
学习
可以执行除了数据转发之外的所有操作
-
转发
转发数据
-
禁用
禁用端口,防止环路
端口种类:
-
根端口
生成树中位于指向根的线段终点的端口
-
指定端口
处于转发状态,并与根相连线段中路径成本最小的端口
-
备用端口
与根相连线段中路径成本比指定端口高的端口
-
备份端口
连接到同一线段中作为同一网桥指定端口使用的端口,可轻易接管一个失效的指定端口
生成树的建立
建立生成树的第一步是选举根网桥,根网桥是在网络中标识符最小的网桥,确定根网桥的方法:一个网桥初始化的时候,认为自己是根网桥,用自己的网桥ID配置根ID字段发送BPDU消息,当碰到一个更小的ID的网桥时,停止发送,让更小的ID的网桥发送,发出根ID更小的BPDU端口标记为根端口
当网络中发生拓扑变化的时候: 网桥向根端口以外的端口发送拓扑变化通知TCN,通知自己在树中的父网桥,直到根,树中通过根的下一个网桥向发送通知的网桥确认TCN,并将它们转发到根,根网桥在后续周期性配置消息中设置TC位,网络中的每个网桥都会转发此消息,并且处于阻塞和转发状态的端口接收消息,将有效期以秒代替分钟,更新转发表。