目录
数据链路层
可靠交付——差错检测和纠正技术
检错技术
奇偶校验
二维奇偶校验
因特网检验和
循环冗余检测
多路访问链路和协议
多路访问协议
信道划分协议
随机接入协议
时隙ALOHA协议
纯ALOHA
载波侦听多路访问(CSMA)
具有碰撞检测的载波侦听多路访问(CSMA/CD)
轮流协议
交换局域网
地址解析协议(ARP)
以太网
以太帧结构
链路层交换机
沿着协议栈,网络层往下是数据链路层,通信链路有的是有线链路,有的是无线链路。运行链路层协议的设备叫结点(例如主机、路由器、交换机等),连接相邻节点的叫链路,数据报在进入链路前,节点将其封装成帧,数据链路层不必考虑下层物理层如何实现比特传输的细节。
成帧:将数据报封装在帧中,加上帧头、帧尾部,在帧头部使用“MAC”(物理)地址来标示源和目的。
链路层主体部分在网络适配器(network adapter)实现,或者叫网络接口卡(Network Interface Card)。
为什么传输层做了可靠性传输服务,数据链路层也要做?那肯定是减少上层的工作量和消耗代价。
在低差错的链路上很少使用该技术,因为协议复杂;在高差错的链路上,从一个结点发送帧到另一个结点的过程中,对链路层数据帧(包括帧首部和帧尾部)进行差错检测和纠正比特(Error-Detection and-Correction,EDC)。
EDC是要差错检测和通过冗余位来进行纠正。但错误检测并不完全可靠,也有检测不出来的,
偶校验方案是附加一位检验位,比如d位数据,添加1位检验位就是d+1位;检测时只要数一数d+1位数据里面有奇数个1还是偶数个1,如果出现奇数个1就是出现了奇数个比特差错。
同样采用奇检验方案就是d+1位数据出现偶数个1,那就是出现了偶数个比特差错。
与单比特奇偶校验不同,它可以纠正单个比特的错误。通过行校验和列校验交点可以锁定并纠正该数据错误。
检测正在传输报文段时的错误。
发送方:将数据的字节作为16比特的整数并对其进行求和,将这个和的反码放在UDP检验和字段
接受方:接收到报文段后检查是否与携带校验和字段值一致,不一致就是出错,一致则没有出错
现今的计算机网络广泛应用循环冗余检测技术,拥有强大的差错检测码。
它将发送的比特串看作系数是0、1的一个多项式,然后双方协商一个r+1位模式作为生成多项式G。例如数据D有d比特,它看作一个二进制数,附加一个r比特的R,形成一个d+r比特的模式,然后用模2算术刚好能被G整除。
举例一下模2运算:核心是按位异或运算,加减都不用进位借位。1011-0101=1110
乘除跟二进制运算一致。如下图:
每个CRC标准可以检测小于r+1比特的突发错误,大于r+1比特的以概率1-0.5^r检测到。
点对点链路:由链路一端的单个发送方到另一端的单个接收方组成,
广播链路:多个发送方到另一端的多个接收方连接到相同的、单一的、共享广播信道上。
所有结点都能传输帧,那多个结点同时传输帧就会在接受方那里产生碰撞,因此需要协调活跃的结点。
采用时分多路复用和频分多路复用,在所有结点之间划分广播信道。
时分多路复用将时间划分为时间帧,然后每个时间帧中有N个时隙,每个结点在N个时隙中的一个内占有全部信道资源。但这个适用于每个结点都有相同的通信需求的,假如有个结点很空,有的很繁忙,那就会浪费好多时隙。
频分复用是将信道划分不同的频段,每个频段分配R/Nbps带宽,但也会让一些大传输量的结点限制带宽在R/Nbps。
码分多址(CDMA)是每个结点分配一种不同的编码,各结点使用它独有的编码来传输数据,这就使得多个结点可以同时通信传输。
结点有发送需求时占用全部带宽进行发送,如果遭遇了碰撞,那它就重传该帧直到无碰撞接收。它不是遭遇碰撞就立刻重传,而是随机等待一个时延后再重传。每个结点都随机独立的选择一个时延,所以减少再次碰撞的概率。
假设:
运行:
时隙ALOHA的优点有:结点可以以信道带宽全速连续传播,仅需要结点之间在时隙上同步
缺点是会产生碰撞浪费时隙,也可能会出现空闲的时隙,必须在一个时隙内传完数据,最大效率只有37%(计算题)。
这时候就有一个问题,等多久?短了继续碰撞,长了浪费信道资源。
二进制指数后退:当传输一个给定帧时,该帧经历了一连串的n次碰撞后,结点随机地从{0,1,2,3,4.....2^n-1}中选择一个值K,经历碰撞次数越多,选择的区间越大。这可以有效避开再次冲突。
多路访问协议有两个理想特性:1、当只有一个结点活跃时,该结点占用全部带宽;2、当有N个结点活跃时,每个占1/N的带宽。ALOHA协议和CSMA协议具备特性1,但不具备2。所以就激发了轮流协议。
轮询协议:
网络中的其中一个结点被指定为主结点,主结点邀请从结点依次传送,告知其传输帧的最多数量。在结点1传完以后,主结点给结点2发报文,以循环的方式轮询各个结点。
优点:轮询协议消除了困扰随机接入协议的碰撞和空时隙的问题,提高了效率。
缺点:
令牌传递:
这种协议没有主结点,有一个叫做令牌的小的特殊帧在结点之间以某种固定的次序进行交换。当某个结点有需求发送帧时,它可以保留该令牌,发送完数据以后再把令牌传出去;如果不需要发送则向其它结点传输该令牌。
链路层地址:链路层地址可以叫做LAN地址、物理地址、MAC地址;而MAC地址是最流行的叫法。MAC地址使用6个字节,可以做到全球没有相同MAC地址的两块适配器。
地址解析协议(ARP):因网络层使用IP地址,数据链路层使用MAC地址,所以两种地址要频繁的进行转换。
在同一个局域网中:
链路层交换机:对帧进行存储和转发,对于到来的帧,检查帧头,根据目标MAC地址进行选择性 转发;当帧需要向某个(些)网段进行转发,需要使用CSMA/CD进行接入控制。
透明:主机对交换机的存在可以不关心。
交换机的功能:
转发表:交换机的过滤和转发依据交换机转发表。
该表包含MAC地址和对应接口号,还有在表中的放置时间。
自学习:交换机通过学习得到哪些主机(mac地址)可以通过哪些端口到达;
交换机表初始是空,当接收到帧,交换机学习到发送站点所在的端口(网段);记录发送方MAC地址/进入端口映射关系到交换表中;如果一段时间后交换机没有接收到以该地址为源地址的帧,则删除该地址。