计算机网络——数据链路层

传送的数据单位为帧。该层的基本功能是把高层交付下来的数据封装成帧发送到链路上。

帧的传输过程:

数据链路层使用的信道有两种:

①点对点信道:这种信道使用一对一的点到点通信方式,通信过程比较简单。

②广播信道:这种信道使用一对多的广播通信方式,通信过程比较复杂。每一条广播信道上可以连接多个主机,因此必须使用专用的共享信道协议(比如CSMA/CD协议)来协调所有主机发送数据。

一、点对点信道数据链路层的三个基本问题

1.封装成帧

封装成帧就是在网络层交付下来的数据前后分别添加首部和尾部,然后构成一个帧。

为了提高传输效率,应该使帧的数据部分的长度尽可能的大于首部和尾部的长度,但是数据部分的长度也不能无线增大,每一种数据链路层协议都规定了数据部分长度的上线,这个上限叫做最大传送单元。

一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部。

帧首部和帧尾部作用:①包括传输过程中所需的控制信息,以保证帧能够顺利从发送方到达接收方。②帧定界:帧首部表示开始,帧尾部表示结束。③差错检测

2.透明传输

透明传输就是要实现无论什么比特组成的数据都能通过数据链路层,让数据在数据链路层进行无障碍传输。

数据由可打印的ASCII字符组成时,可通过在数据前面加帧头SOH和在数据后面加帧尾EOT来实现透明传输。但当数据部分出现非打印ASCII字符SOH和EOT时,用上述方法定界帧就会出现错误,会导致数据链路层误认为收到了完整的帧,而丢弃有效数据。如图:

解决方法是:在数据中出现控制字符SOH或EOT的前面插入一个转义字符ESC,接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符ESC也出现在数据当中,那么应在数据部分转义字符ESC前面再插入一个转义字符ESC,当接收端收到连续的两个转义字符时,就会删除前面的一个。如图

3.差错检测

比特在传输过程中会因为很多原因产生差错,1可能变成0,0也可能变成1,这称为比特差错。

在一段时间内,出错比特占所传输比特总数的比率称为误码率(BER,Bit Error Rate)。

差错检测方法有奇偶校验法、循环冗余检验

(1)循环冗余检验:M的后面再添加供差错检测用的n位冗余码一起发送,

余数R=0,则认为该帧无差错,接受该帧。

余数R¹0,则认为该帧有差错,直接丢弃。

除数P可以用多项式表示:P(X)=1×X5+1×X4+0×X3+1×X2+0×X1+1×X0,进而得到P=110101

二、点对点信道中的PPP协议

1、点对点协议

主要用于互联网用户接入到互联网时与ISP的通信

特点:①没有提供数据服务②提供封装帧和解封装帧的方法③保证透明传输④必须对接收端的帧进行差错检测

组成:①IP数据报封装到串行链路的方法②链路控制协议③网络控制协议

(1)帧中各字段的意义:

PPP帧的首部和尾部分别为四个字段和两个字段。首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),规定为0x7E(0x表示它后面的字符是用十六进制表示的)。标志字段表示一个帧的开始或结束,因此标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段,如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。

首部中的地址字段A规定为0xFF(即1111111),控制字段C规定为0x03(即00000011)。最初曾考虑以后再对这两个字段的值进行其他定义,但至今也没有给出,可见这两个字段实际上并没有携带PPP帧的信息。

PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议(LCP)的数据,而0x8021表示这是网络层的控制数据。

信息字段的长度是可变的,不超过1500字节。

尾部中的第一个字段(2字节)是使用CRC的帧检验序列(FCS)。

(2)透明传输:字节填充法

异步传输网络中,PPP协议使用字节填充法完成透明传输。当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。

当PPP使用异步传输时,它把转义符定义为0x7D(即0111101),并使用字节填充, RFC1662规定了如下所述的填充方法:

1) 把信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)。

2) 若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D,0x5D)。

3) 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是传输结束ETX),就要把它转变为2字节序列(0x7D,0x23)。

由于在发送端进行了字节填充,因此在链路上传送的信息字节数超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。

(3)透明传输:零比特填充法

同步传输网络中,PPP协议使用零比特填充法完成透明传输。在发送端,先扫描整个信息字段,只要发现有5个连续的1,就立即在这5个1的后面加一个0,这样就可以保证在信息字段中不会出现6个连续的1,从而可以和标志字段F(01111110)区分开。接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续的1时,就把这5个连续1后的那个0删除,以还原成原来的信息比特流,如图3-8所示。这样就保证了透明传输,在所传送的数据比特流中可以传送任意组合的比特流,而不会引起对帧边界的错误判断。

(4)差错检测:循环冗余检验法

(4)PPP协议的工作过程:

三、广播信道中的CSMA/CD协议

1.适配器的重要功能如下:

(1) 进行串/并行转换。

(2) 对数据进行缓存。

(3) 在计算机的操作系统安装设备驱动程序。

(4) 实现以太网协议。

2.CSMA/CD协议的规则是:

(1) 如果介质空闲,则发送;

(2) 如果介质非空闲,则继续监听,一旦发现介质空闲,就立即发送。

(3) 站点在发送帧的同时需要继续监听是否发生冲突(碰撞),若在帧发送期间检测到冲突,就立即停止发送,并向介质发送一串阻塞信号,以强化冲突(发送阻塞信号的目的是保证让总线上的其他站点都知道已发生了碰撞)。

(4) 随机延迟后重发。

3.MAC地址有三种类型:

(1) 单播(Unicast)地址(一对一)。拥有单播地址的帧将发送给网络中唯一一个由单播地址指定的站点。当MAC地址中的I/G位为0时,就表示该MAC地址是单播地址。

(2) 广播(Broadcast)地址(一对全体)。当目的地址为广播地址时,表示该帧将发送给所有站点。广播地址是所有位都为1(写成十六进制就是FF-FF-FF-FF-FF-FF)的MAC地址。

(3) 多播(Multicast)地址(一对多)。当目的地址为多播地址时,表示该帧将发送给网络中一部分(一组)站点。多播地址是I/G位为1的MAC地址。

显然,只有目的地址(DA)才能使用广播地址和多播地址,而源地址则没有单播、广播和多播地址之分。

4、MAC帧的格式

以太网V2的MAC帧比较简单,由5个字段组成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报。若类型字段的值为0x8137,则表示该帧是由Novell IPX发过来的。第四个字段是数据字段,其长度在46到1500字节之间(46字节是这样得出的:最小长度64字节减去18字节的首部和尾部)。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。当传输媒体的误码率为1×10-8 时,MAC子层可使未检测到的差错小于1×10-14。

5、无效MAC帧

IEEE 802.3标准规定凡出现下列情况之一的即为无效的MAC帧:

1) 帧的长度不是整数个字节;

2) 用收到的帧检验序列FCS查出有差错;

3) 收到的帧的MAC客户数据字段的长度不在46~1500字节之间。考虑到MAC帧首部和尾部的长度共有18字节,可以得出有效的MAC帧长度为64~1518字节。

对于检查出的无效MAC帧就简单地丢弃。以太网不负责重传丢弃的帧。

四、扩展以太网

1.在物理层扩展以太网

在物理层扩展局域网要使用中继器或集线器。我们已经知道,中继器或集线器的主要功能是将一段干线(或一个端口)上的信号放大、整形再发送到另一段干线上(或其他端口上)。这种转发操作只发生在物理层,不需要送到数据链路层处理,或者说中继器或集线器不会关心所传送的帧的内容。

2.物理层上扩展局域网

在物理层上扩展局域网非常简单,基本上可以做到即插即用,使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信,扩大了局域网覆盖的范围。但它也存在以下严重的缺点:

1) 随着网络的扩展,网络中站点增多,冲突变得更加严重,响应速度变慢。

2) 不能互联不同类型(例如速度不同或介质访问控制方法不同)的局域网。

3) 受到争用时隙限制,扩展范围有限,无法实现远距离的互联。

4) 碰撞域增大了,但总的吞吐量并未提高。

3、数据链路层扩展以太网

在数据链路层扩展以太网要使用网桥(Bridge)。网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

4、网桥的内部结构

给出了一个网桥的内部结构要点。最简单的网桥有两个接口,复杂些的网桥可以有多个接口。两个以太网通过网桥连接起来后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就可以称为一个网段(Segment)。图中3-17所示的网桥,其接口1和接口2各连接到一个网段。

网桥是通过内部的接口管理软件和网桥协议实体来完成上述操作的。使用网桥可以带来以下好处:

(1) 过滤通信量,增大吞吐量。网桥工作在数据链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域。如果把网桥换成工作在物理层的集线器,那就没有这种过滤通信量的功能。

(2) 扩大了物理范围,因而也增加了整个以太网上工作站的最大数目。

(3) 提高了可靠性。当网络出现故障时,一般只影响个别网段。

(4) 可互连不同物理层、不同MAC子层和不同速率(如100Mb/s和1000Mb/s以太网)的以太网。

5、透明网桥

“透明”是指以太网上的站点并不知道所发送的帧将经过哪几个网桥,以太网上的站点看不见以太网上的网桥。透明网桥还是一种即插即用设备(Plug-and-Play Device),意思是只要把网桥接入局域网,不用人工配置转发表网桥就能工作

6、源路由网桥

透明网桥的最大优点就是容易安装,接上就能马上工作。但对网络资源的利用还不够充分。因此,另一种由发送帧的源站负责路由选择的网桥就问世了,这就是源路由(Source Route)网桥。

源路由网桥是在发送帧时,把详细的路由信息放在帧的首部中。这里的关键是源站用什么方法才能知道应当选择什么样的路由。

为了发现合适的路由,源站以广播方式向欲通信的目的站发送一个发现帧(Discovery Frame)作为探测之用。发现帧将在整个扩展的以太网中沿着所有可能的路由传送。在传送过程中,每个发现帧都记录所经过的路由。当这些发现帧到达目的站时,就沿着各自的路由返回源站。源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由。以后,凡从这个源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息。发现帧还有另一个作用,就是帮助源站确定整个网络可以通过的帧的最大长度。

7、多接口网桥——交换机

1990年问世的交换式集线器(Switching Hub),可明显地提高以太网的性能。交换式集线器常称为以太网交换机或第二层交换机,表明这种交换机工作在数据链路层。“交换机”并无准确的定义和明确的概念,而现在的很多交换机已混杂了网桥和路由器的功能。下面简单地介绍其特点。

从技术上讲,网桥的接口数很少,一般只有2~4个,而以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,和工作在物理层的转发器、集线器有很大的差别。此外,以太网交换机的每个接口都直接与一个单个主机或另一个集线器相连(注意:普通网桥的接口往往是连接到以太网的一个网段),并且一般都工作在全双工方式。当主机需要通信时,交换机能同时连通许多对接口,使每一对相互通信的主机都能像独占传输媒体那样,无碰撞地传输数据。以太网交换机和透明网桥一样,也是一种即插即用设备,其内部的帧转发表也是通过自学习算法自动地逐渐建立起来的。当两个站通信完成后就断开连接。以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。

8、虚拟局域网

虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。虚拟局域网(VLAN)是由一些局域网网段(具有某些共同需求的网段)构成的与物理位置无关的逻辑组,每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个VLAN,如图3-24所示。

VLAN的划分方法主要有以下几种:

1). 按端口划分VLAN

以交换机端口来划分VLAN成员,其配置过程简单明了,同时还允许跨越多个交换机的多个不同端口划分VLAN,不同交换机上的若干个端口可以组成同一个VLAN。因此,从目前来看,这种根据端口来划分VLAN的方式仍然是最常用的一种方式。

2). 按MAC地址划分VLAN

这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置它属于哪个组。这种划分VLAN方法的最大优点就是当用户的物理位置移动时,即从一个交换机换到其他交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN。这种方式在网络初始化时,配置工作量较大。

3). 按网络层协议划分VLAN

这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分,这种方法的优点是用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要。同时,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。这种方法的缺点是效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网帧头,但要让芯片能检查IP帧头,需要更高的技术,同时也更费时。

虚拟局域网的帧格式如图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值