上一个主题了解到,数据链路层为物理网络准备网络数据。它必须知道网络的逻辑拓扑,以便能够确定从一个设备向另一个设备传输帧需要什么。
网络拓扑是指网络设备及它们之间的互连布局或关系。
描述 LAN 和 WAN 网络时使用两种类型的拓扑:
物理拓扑 - 标识物理连接,以及终端设备和中间设备(即,路由器、交换机和无线接入点)如何互连。这个拓扑还可能包括特定的设备位置,如房间号和设备机架上的位置。物理拓扑通常是点对点拓扑或星型拓扑。
逻辑拓扑 - 是指网络将帧从一个节点传输到另一节点的方法。此拓扑使用设备接口和第 3 层 IP 寻址方案识别虚拟连接。
物理拓扑:
![](https://img-blog.csdnimg.cn/img_convert/a9fcfd87639f7476b81da9276fc637d4.png)
逻辑拓扑:
![](https://img-blog.csdnimg.cn/img_convert/6e2210390d7c28577625c50c890a6686.png)
三种常见的物理WAN拓扑:
点对点,中心辐射型,网状
点对点式WAN拓扑:
在这种布局中,两个节点无需与其他主机共享介质。此外,当使用串行通信协议,如点对点协议(PPP)时,节点无需判定收到的帧是指向它还是指向另一节点;添加中间物理连接不会改变逻辑拓扑。逻辑点对点连接相同。
LAN拓扑:
在多路访问局域网中,终端设备(即节点)使用星型或扩展星型拓扑相互连接。在这种类型的拓扑中,终端设备连接到一个中央中间设备,如以太网交换机等。扩展星型(扩展星型)通过连接多个以太网交换机来扩展此拓扑。星型和扩展星型拓扑安装简单、扩展性好(易于添加和删除终端设备),而且故障排除容易。早期的星型拓扑使用以太网集线器互连终端设备。
传统LAN拓扑:
总线 - 所有终端系统都相互连接,并在两端以某种形式端接。终端设备互连时不需要基础设施设备(例如交换机)。传统的以太网络中会使用采用同轴电缆的总线拓扑,因为它价格低廉而且安装简易。
环 - 终端系统与其各自的邻居相连,形成一个环状。与总线拓扑不同,环拓扑不需要端接。传统的光纤分布式数据接口 (FDDI) 和令牌环网络使用环拓扑。
![](https://img-blog.csdnimg.cn/img_convert/8ac850d46450c2e60b380ac6272d486f.png)
半双工和全双工通信:
双工通信指的是两个设备之间的数据传输方向。
半双工通信(单向)
两台设备都可以通过该介质发送和接收,但无法同时执行这两个操作。WLAN和带有以太网集线器的传统总线拓扑使用半双工模式。半双工每次只允许一台设备通过共享介质发送或接收。单击图中的“播放”可查看显示半双工通信的动画。
全双工通信(可以双向)
两台设备都可以在共享介质上同时发送和接收。数据链路层假定介质随时可供两个节点实现传输。默认情况下,以太网交换机在全双工模式下运行,但是如果与以太网集线器等设备连接,它们则可以在半双工模式下运行。单击图中的“播放”可查看显示全双工通信的动画。
服务器和集线器之间的全双工通信
访问控制方法:
以太网 LAN 和 WLAN 都是多路访问网络的示例。多路访问网络是指可能有两个或多个终端设备同时试图访问网络的网络。
某些多路访问网络需要使用规则来管理设备共享物理介质的方式。对于共享介质,有两种基本的访问控制方法:
基于竞争的访问
受控访问
基于竞争的访问
在基于竞争的多路访问网络中,所有节点都工作在半双工方式,争夺介质的使用。然而,一次只有一台设备能够发送。因此,当多台设备同时传输时,会使用一个处理过程。基于竞争的访问方法示例如下:
在传统总线拓扑以太网局域网上使用载波侦听多路访问/冲突检测(CSMA/CD)
在无线局域网上使用载波侦听多路访问/冲突避免(CSMA/CA)
CSMA/CD:
当PC1、2、3之间有信道连接时,如果PC1同时向2、3发送了一个信息帧,那么PC2、3此时无法发送消息,需要等到信道空闲时再发送。而如果该帧仅含有PC3的目的数据链路地址,那么PC2就会自动忽略该帧。
CSMA/CA:
在无线环境中,设备可能无法检测到冲突。CMSA/CA 不会检测冲突,但会通过在传输之前等待来尝试避免冲突。每台设备发送时都会包含传输所需的持续时间。所有其他无线设备都会收到此信息,知道介质将有多长时间不可用。
受控访问(等待式访问)
在基于控制的多路访问网络中,每个节点都有自己的时间来使用介质。这种确定性的传统网络类型效率很低,因为设备必须等到轮到自己才能访问介质。使用受控访问的多路访问网络的示例包括:
传统令牌环
传统ARCNET
如今,以太网网络以全双工通信方式运行,不需要访问方法。
数据链路帧:
数据链路层通过使用帧头和帧尾将其封装以创建帧,从而准备封装后的数据(通常是IPv4或IPv6数据包),以便在本地介质上进行传输。
数据链路协议负责同一网络中的网卡间通信。虽然有许多描述数据链路层帧的不同数据链路层协议,但每种帧均有三个基本组成部分:
帧头
数据
帧尾
与其他封装协议不同,数据链路层以帧尾的形式在帧的末尾附加信息。
由于协议的不同,帧结构以及帧头和帧尾中包含的字段会存在差异。
帧字段:
![](https://img-blog.csdnimg.cn/img_convert/4395fcbaa735a3f85660f10f96f1008d.png)
数据链路层协议将帧尾添加到各帧结尾处。在一个叫做错误检测的过程中,帧尾会判断帧是否到达时没有错误。它将组成帧的各个位的逻辑或数学摘要放入帧尾中。要将错误检测添加到数据链路层,因为介质中的信号可能遭受干扰、失真或丢失,从而大幅更改这些信号所代表的位值。
第二层地址:
数据链路层提供了通过共享本地介质传输帧时要用到的编址。此层中的设备地址称为物理地址。数据链路层地址包含在帧头中,它指定了帧在本地网络中的目的节点。它通常位于帧的开头,因此网卡可以在接受帧的其余部分之前快速确定它是否匹配自己的第 2 层地址。帧头还可能包含帧的源地址
![](https://img-blog.csdnimg.cn/img_convert/f11f12a1d1b51d66c8995d044c572f19.png)
![](https://img-blog.csdnimg.cn/img_convert/7d951a69ec807b473eb592c0df1400a5.png)
![](https://img-blog.csdnimg.cn/img_convert/6990ae5db65a0edfa1d79fe8a2ebf928.png)