图解TCP/IP:数据链路相关技术

数据链路的作用

数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。

数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范,通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等介质,此外各个设备之间有时也会通过交换机、网桥、中继器等中转数据。

在以太网与FFDI(Fiber Distributed Data Interface, 光线分布式数据接口)的规范中,不仅包含OSI参考模型的第2层数据链路层,也规定了第1层物理层的规格。而在ATM(Asynchronous Transfer Mode, 异步传输方式)的规范中,还包含了第3层网络层的一部分功能。

数据链路是让互连计算机之间相互通信的一种协议,又指通信手段。

数据链路的段是指一个被分割的网络。

网络的连接和构成的形态称为网络拓扑(Topology),网络拓扑包括总线型、环型、星型、网状型等。

数据链路相关技术

MAC地址

MAC地址用于识别数据链路中互连的节点。以太网或FDDI中,根据IEEE802.3(美国电气和电子工程学会, “I triple E”)的规范使用MAC地址。在使用网卡的情况下,MAC地址一般会被烧入到ROM中,任何一个网卡的MAC地址都是唯一的,在全世界都不会有重复。

MAC地址长48比特。

第1位:单播地址(0)/多播地址(1)
第2位:全局地址(0)/本地地址(1)
第3~24位:由IEEE管理并保证各厂家之间不重复
第25~48位:由厂商管理并保证产品之间不重复

IEEE802.3制定MAC地址规范时没有限定数据链路的类型,即不论哪种数据链路的网络(以太网、FDDI、ATM、无线LAN、蓝牙等)都不会有相同的MAC地址出现。

共享介质型网络

从通信介质的使用方法上看,网络可分为共享介质型和非共享介质型。

共享介质型网络指由多个设备共享一个通信介质的一种网络。最早的以太网和FDDI就是共享介质型网络,在这种方式下,设备之间使用同一个载波信道进行发送和接收。为此,基本上采用半双工通信方式,并有必要对介质进行访问控制。

共享介质型网络中有两种介质访问控制方式:一种是争用方式,另一种是令牌传递方式。

争用方式

争用方式(Contention)是指争夺获取数据传输的权力,也叫CSMA(载波监听多路访问)。这种方式通常令网络中的各个站采用先到先得的方式占用信道发送数据,如果多个站同时发送帧,则会产生冲突现象,也因此会导致网络拥堵性能下降。

B确认没有其他设备在发送数据以后
B想发送数据给D
立即发送数据给D
每个站从报文首部中读取接收端MAC地址,若跟自己的不匹配则丢弃。

在一部分以太网当中,采用了改良CSMA的另一种方式——CSMA/CD(Carrier Sense Multiple Access with Collision Detection)方式。CSMA/CD要求每个站提前检查冲突,一旦发生冲突,则尽早释放信道。其具体工作原理如下:

  • 如果载波信道上没有数据流动,则任何站都可以发送数据。

  • 检查是否会发生冲突。一旦发生冲突时,放弃发送数据,同时立即释放载波信道。

  • 放弃发送以后,随机延时一段时间,再重新争用介质,重新发送帧。

# CSMA(Carrier Sense Multiple Access)
确认没有任何设备发送数据 -> 发送数据

# CD(Collision Detection)
一边发送数据 -> 一边监控电压
直到发送完数据,如果电压一直处于规定范围内,就认为数据已正常发送。
发送途中,如果电压一旦超出规定范围,就认为是发生了冲突。
发生冲突时先发送一个阻塞报文后,放弃发送数据帧,在随机延时一段时间后进行重发。

这种通过电压检查冲突的硬件属于同轴电缆。
令牌传递方式

令牌传递方式是沿着令牌环发送一种叫做“令牌”的特殊报文,是控制传输的一种方式。只有获得令牌的站才能发送数据。这种方式有两个特点:一是不会有冲突,二是每个站都有通过平等循环获得令牌的机会。因此,即使网络拥堵也不会导致性能下降。

# 只有获得令牌的站才有权发送数据。
A获得令牌以后才可以发送数据。
如果发现不是发给自己的包,就原封不动地沿着环转给下一个站。
如果发现是发给自己的包,就设置一个“已接收数据”的标志位,沿着环再发给下一个站。
数据帧回到发送源地址后被丢弃,而令牌再沿着环传递给下一个站。
非共享介质网络

非共享介质网络是指不共享介质,是对介质采用专用的一种传输控制方式。在这种方式下,网络中的每个站直连交换机,由交换机负责转发数据帧。此方式下,发送端与接收端并不共享通信介质,因此很多情况下采用全双工通信方式。

不仅ATM采用这种传输控制方式,最近它也成为了以太网的主流方式。通过以太网交换机构建网络,从而使计算机与交换机端口之间形成一对一的连接,即可实现全双工通信。在这种一对一连接全双工通信的方式下不会发生冲突,因此不需要CSMA/CD的机制就可以实现更高效的通信。

该方式还可以根据交换机的高级特性构建虚拟局域网(VLAN, Virtual LAN)、进行流量控制等。当然这种方式也有一个致命的弱点,那就是一旦交换机发生故障,与之相连的所有计算机之间都将无法通信。

基本上,每个站在想发送数据帧时就可以开始发送(全双工通信的情况下)。

交换机检查帧中的目标地址,将数据帧直接转发给目标地址所连接的具体端口。

半双工与全双工通信

半双工是指,只发送或只接收的通信方式。它类似于无线电接收器,若两端同时说话,是听不见对方说的话的。而全双工不同,它允许在同一时间既可以发送数据也可以接收数据。类似于电话,拨打双方可以同时说话。

收发数据共享同一个介质 -> 同轴电缆 -> 半双工通信

收发数据时每个站有各自专用的通信介质 -> 双绞线电缆 -> 全双工通信
根据MAC地址转发

以太网交换机是持有多个端口的网桥,能将非共享介质型网络中所使用的交换机用在以太网中。它们根据数据链路层中每个帧的目标MAC地址,决定从哪个网络接口发送数据。这时所参考的、用以记录发送接口的表就叫做转发表(Forwarding Table)。

# 交换机的自学原理
从源MAC地址可以获知主机A与端口1相连接。
拷贝那些以“未知”MAC地址为目标的帧给所有的端口。

从源MAC地址可以获知主机B与端口2相连接。
由于已经知道主机A与端口1相连接,那么发给主机A的帧只拷贝给端口1。

以后,主机A与主机B的通信就只在它们各自所连接的端口之间进行。

交换机转发方式有两种,一种叫存储转发,另一种叫直通转发。

  • 存储转发方式检查以太网数据帧末尾的FCS位后再进行转发。因此可以避免发送由于冲突而被破坏的帧或噪声导致的错误帧。

  • 直通转发方式中不需要将整个帧全部接收下来以后再进行转发,只需要得知目标地址即可开始转发。因此它具有延迟较短的优势,但同时也不可避免地有发送错误帧的可能性。

环路检测技术

通过网桥连接网络时,一旦出现环路,最坏情形下数据帧会在环路中被一而再再而三地持续转发,而一旦这种数据帧越积越多将会导致网络瘫痪。解决网络中环路问题有两种具体方式:生成树、源路由。

网桥将数据帧拷贝给相连的链路,会导致数据帧在网络中一直被循环转发。
生成树方式

该方法由IEEE802.1D定义,每个网桥必须在每1~10秒内相互交换BPDU(Bridge Protocol Data Unit)包,从而判断哪些端口使用哪些不使用,以便消除环路。一旦发生故障,则自动切换通信线路,利用那些没有被使用的端口继续进行传输。

生成树协议通过检查网络的结构、禁止某些端口的使用可以有效地消除环路。
然而,该端口可以作为发生问题时可绕行的端口。

IEEE802.1D中所定义的生成树方法有一个弊端,就是在发生故障切换网络时需要几十秒的时间。为了解决这个用时过长的问题,在IEEE802.1W中定义了一个叫RSTP(Rapid Spanning Tree Protocol)的方法,该方法能将发生问题时的恢复时间缩短到几秒以内。

源路由

源路由法最早由IBM提出,以解决令牌环问题。该方式可以判断发送数据的源地址是通过哪个网桥实现传输的,并将帧写入RIF(Routing Information Field),网桥则根据这个RIF信息发送帧给目标地址。因此即使网桥中出现了环路,数据帧也不会被反复转发,可成功地发送到目标地址。在这种机制中发送端本身必须具备源路由的功能。

VLAN

采用带有VLAN技术的网桥,就不用实际修改网络布线,只需修改网络的结构即可。VLAN技术附加到网桥/2层交换机上,就可以切断所有VLAN之间的所有通信。VLAN技术可以过滤多余的包,提高网络的承载效率。

交换机按照其端口区分了多个网段,从而区分了广播数据传播的范围、减少了网络负载并提高了网络的安全性。然而异构的两个网段之间,就需要利用具有路由功能的交换机,或在各段中间通过路由器的连接才能实现通信。

即使连接了同一个交换集线器,也可以分成不同的网段。

对这种VLAN进行了扩展,又定义了IEEE802.1Q的标准(也叫TAG VLAN),该标准允许包含跨越异构交换机的网段。TAG VLAN中对每个网段都用一个VLAN ID的标签进行唯一标识。在交换机中传输帧时,在以太网首部加入这个VID标签,根据这个值决定将数据帧发送给哪个网段。

(最近更新:2019年09月18日)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值