数据链路层
以下整理取自《计算机网络》第七版 谢希仁
数据链路层主要面向网络层提供以帧为单位的针对一条数据链路的无差错数据传送服务
数据链路层使用的信道主要有以下两种:
点对点信道:使用一对一的点对点通信方式
广播信道:使用一对多的广播通信方式
一、使用点对点信道的数据链路层
1.链路与数据链路的区别
链路:从一个结点到另一个结点的一段物理线路,中间没有其他的交换结点
数据链路:除了物理线路外,还必须有一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用网络适配器(即网卡)来实现这些协议。
2.点对点信道的数据链路层的协议数据单元——帧
点对点信道的数据链路层再进行通信时的主要步骤如下:
1)将网络层交下来的IP数据报添加首部尾部封装成帧
2)将帧发送给相邻结点的数据链路层
3)若收到的帧无差错则提取出IP数据交给网络层,否则丢弃帧
3.数据链路层的三个基本任务
1)封装成帧
a.帧首部尾部的作用:确定帧的界限;包含许多必要的控制信息
b.协议规定了帧的数据部分长度上限——最大传送单元MTU
c.帧定界可以使用帧定界符:SOH(start of header)表示帧的开始和EOT(end of transmission)表示帧的结束,二者皆为ASCII的控制字符
2)透明传输
a.所谓透明传输即是无论什么样的比特组合的数据,都能够按照原样没有差错地通过这份数据链路层。
b.为避免传输的数据里面也出现帧界定符的比特编码产生的错误,在数据中出现控制字符"SOH"或"EOT"的前面插入转义字符"ESC",如果转义字符也出现在数据中,则在其前面也加入“ESC“,这种方法叫做字符填充。
3)差错检测
a.比特在传输过程中可能会出现差错:1变成0,0变成1,这叫比特差错。
b.在数据链路层广泛使用循环冗余检验CRC
帧的数据有k个比特,在其后加上n个0,然后除以一个约定好的数P(n+1位),将余数即冗余码(也叫帧检验序列FCS)加在原来的数据后面(变成k+n位)进行发送,然后接收端将接收到的比特除以P,若余数为0则无差错,若余数不为0则有差错。
传输差错分为两大类:一个是比特差错;一个是比特并无差错但是出现了帧丢失、帧重复或帧失序。是哟个CRC检测可以实现无比特差错的传输,但这还不是可靠传输。我们并不要求数据链路层向网络层提供”可靠传输“服务
二、点对点协议PPP
对于点对点的链路,PPP协议是目前使用得最广泛的数据链路层协议。互联网用户通常都要连接到某个ISP才能接入互联网,PPP协议就是用户计算机和ISP进行通信时所使用的链路层协议
1.PPP协议应满足的要求
简单:如果帧正确则收下,否则丢弃,其他什么也不做
封装成帧
透明性
多种网络层协议
多种类型链路
差错检测
检测连接状态
最大传送单元
网络层地址协商
数据压缩协商
TCP/IP协议族中,可靠传输由运输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错、设置序号、流量控制。PPP协议只支持点对点链路通信,此外,该协议只支持全双工链路。
2.PPP协议的组成
1)一个将IP数据报封装到串行链路的方法
2)一个用来建立、配置和测试数据链路层连接的链路控制协议LCP
3)一套网络控制协议NCP,其中的每一个协议支持不同的网络层协议
3.PPP协议的工作状态
当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组,以便建立LCP连接。接着还要进行网络层的配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。当用户通信结束后,NCP释放网络层连接,收回原来分配出去的IP地址,接着LCP释放数据链路层连接,最后释放的是物理层的连接。
三、使用广播信道的数据链路层
1.由于集线器的出现和双绞线大量用于局域网中,星型以太网以及多级星型结构的以太网获得了非常广泛的应用。
2.以太网几乎成了局域网的代名词
3.如何让众多用户方便合理的共享通信媒体资源
1)静态划分信道:频分复用、波分复用和码分复用。用户只要分配到了信道就不会和其他用户发生冲突
2)动态媒体接入控制(多点接入):并非在用户通信时固定分配给用户
a.随机接入:用户可以随机发送信息,有解决碰撞的协议
b.受控接入:用户不能随机发送信息,服从一定控制
4.为了使数据链路层能更好地适应多种局域网标准,IEEE 802委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制LLC (Logical Link con l)子层和媒体接入控制 MAC (Medium Access con l)子层。如今逻辑链路控制子层LLC(即IEEE 802·2标准)的作用己经消失了,很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议。
5.计算机与外界局域网的连接是通过通信适配器(adapter),即网卡。适配器的作用:适配器接收和发送各种帧时不使用计算机的CPU,这时CPU可以处理其他任务。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。计算机的硬件地址就在适配器的ROM中,而计算机的软件地址一一IP地址,则在计算机的存储器中。
6.CSMA/CD协议
为了在总线上实现一对一的通信,以太网采取了以下措施
1)对发送的数据帧不进行编号,也不要发回确认,提供尽最大努力的交付,即不可靠交付,对有差错帧是否需要重传则由高层来决定,但以太网并不知道这是重传帧,而是当作新的数据帧来发送。在同一时间只能允许一台计算机发送数据。
2)以太网发送的数据都使用曼彻斯特(Manchester)编码的信号,这样就保证了在每一个码元的正中间出现一次电压的转换,而接收端就利用这种电压的转换很方便地把位同步信号提取出来。
协议要点:
多点接入:明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
载波监听:不管在发送前,还是在发送中,每个站都必须不停地检测信道在发送前检测信道。如果检测出己经有其他站在发送,则自己就暂时不许发送数据,必须要等到信道变为空闲时才能发送。在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞。这就称为碰撞检测。
碰撞检测:任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就要立即停止发送。
在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行半双工通信。
7.集线器的特点
1)使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是 CSMA/CD协议,同一时刻至多只允许一个站发送数据。
2)一个集线器有许多接口,用两对双绞线与一个工作站上的适配器相连。
3)集线器工作在物理层,它的每个接口仅仅简单地转发比特一一收到1就转发1 ,收到就转发0,不进行碰撞检测。
8.以太网的MAC层
1)MAC层硬件地址
硬件地址又称为物理地址或MAC地址,是指局域网上的每一台计算机中固化在适配器的ROM中的48位地址(EUI-48),只要电脑中的适配器不变,那么该电脑在北京的局域网中的“地址"仍然和它在南京的局域网中的“地址"一样。地址的前三个字节由注册管理机构分配,后三个字节由厂家自行指派。
适配器有过滤功能,适配器从网络上每收到一个MAC帧就先用硬件检查 MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。“发往本站的帧”包括以下三种帧:单播帧(一对一)、广播帧(一对全体)、多播帧(一对多)。所有的适配器都至少应当能够识别前两种帧。以太网适配器还可设置为一种特殊的工作方式,即混杂方式,工作在混杂方式的适配器只要“听到"有帧在以太网上传输就都悄悄地接收下来,而不管这些帧是发往哪个站。
四、扩展以太网
1.在物理层扩展以太网
对于普通10 Mb/s的共享式以太网,若共有10个用户,则每个用户占有的平均带宽只有总带宽(10 Mb/s)的分之一。在使用以太网交换机时,由于每一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有对接口的交换机的总容量为100Mb/s。
总线以太网使用CSMA/CD协议,以半双工方式工作。但以太网交换机(星型以太网)不适用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。
3.虚拟局域网VLAN(Virtual LAN)
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个VLAN。在虚拟局域网上的每一个站都可以收到同一个虚拟局域网上的其他成员所发出的广播,以太网交换机不向虚拟局域网以外的工作站传送广播信息。
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记(tag),用来指明发送该帧的工作站属于哪一个虚拟局域网。4字节的最后的12位是该虚拟局域网VLAN标识符VID,它唯一地标志了这个以太网帧属于哪一个VLAN。插入VLAN标记得出的帧称为802.1Q帧,显然如果还是使用原来的的以太网帧格式,那么就无法区别是否划分了虚拟局域网。

浙公网安备 33010602011771号