[计算机网络笔记]第五部分——数据链路层 基础与概念
2016-11-19 16:50
627 查看
数据链路层
数据链路层的数据报文称为“帧”数据链路层协议包括(1)以太网(1)802.11无线LAN(WIFI)(3)令牌环(4)PPP点对点协议
数据链路层协议提供:(1)数据成帧(2)链路接入(3)可靠交付(4)流量控制(5)差错检测(6)差错纠正(7)半双工和全双工服务
数据链路层和传输层的可靠交付与差错检测并不相同,数据链路层保证的是在单一链路上的可靠交付和差错检测,而传输层提供的是端到端的。
数据链路层的差错检测技术(FEC:前向纠错,指接收方检测和纠正差错的能力):
奇偶校验:单个的奇偶校验位来校验1的个数,使得数据+校验位中1的个数总为偶数个
可以检测奇数个比特错误,但是对于偶数个错误不能识别也不能纠错
二位奇偶校验:将待检测数据排列成二维矩阵,在行末和列末设置校验位,计算每一行和每一列的奇偶校验位
可校验并纠正单个比特错误并纠正,可校验两个比特错误但不能纠正,校验位也可以被校验和纠正
校验和:互联网校验和,以前的笔记中总结过,不再赘述,笔记中最早出现在UDP的报文中。TCP/UDP报文对整个报文(数据+首部)都计算校验和,但是IPv4只对首部计算校验和
循环冗余校验码(CRC):CRC可以就错,可以在一位差错是纠错,有多位差错时只能检错,一般CRC检错后应对方式是重传
CRC计算方式:
首先,确认一个长度为r+1位的多项式,称为生成多项式G,例如
,将其转换成二进制,得到1001(即有x的几次方,就将二进制的第几位置1)。
对于原始数据,长度为D位,可通过计算得到D+r位的带CRC校验位的新数据,计算方法是在D后面补r位校验位R,用数学的表示方法是
(其中D*2^r
表示将D后补r位0,⨁R可以将R位校验位加到补充的r位0的位上),新的数据刚好可以整除G
即
两边都异或R得:
也就是说R=
的余数
我们可以通过计算来得到R,计算除法使用的模2的除法,即加法减法中不借位不进位,相当于异或。这种校验方式成为循环冗余校验。
Eg:对于数据D=101110,G=
,也就是1001,计算循环冗余校验码
解:
r=G的位数-1=3
即D向左移动3位,后面补3个0
得商101011,余数011(r=3,所以要补足三位,即便第一位是0)
R=余数=011
带循环冗余校验码的新数据D’=101110011
将新数据发送到另一端后,另一端使用接收到的数据D’除以相同的产生式G,如果结果没有余数,说明D’=D,传输没有错误,否则检出错误。
数据链路层的多路访问协议:为了解决广播链路中多个节点同时传输数据而引起的数据干扰,进而数据不正确的问题。
网络链路分为点对点链路和广播链路,点对点链路不存在多路访问的问题,只有广播链路存在,因为广播链路中链路被多个端共享。
三种多路访问协议:
信道划分协议a)
时分多路复用(TDM):同一信道不同节点在不同时间使用,进而可以避免发送数据的冲突,缺点是利用率低,很可能信道中一段时间内只用一个节点使用,但是这个节点却不能使用信道的全部时间传输数据
b)
频分多路访问(FDM):同一信道再次划分成更小的信道,每个节点仅使用更小的信道传输数据,缺点同TDM相同
c)
码分多址(CDMA):同一信道不同节点使用不同的编码同时传输信息,理论上可以避免相互干扰,而且每一个节点都相当于单独拥有整个信道,利用率高,抗干扰能力强
随机接入协议:多个节点随意地发送数据,如果产生数据的碰撞,干扰,则再一定时间之后重新发送
a)
时隙ALOHA协议:规定多个节点发送的数据长度一致,多个节点将时间同步,同时将时间划分成时间片,每个节点只能在时间片开始的时候发送数据,在时间片结束之前发送完数据。每个节点在时间片结束前会检测信道内是否有数据碰撞,如果出现的话就停止发送数据,并在其后的时间片以P的几率重发数据,知道发送成功。经过计算,对信道的有效利用率是37%。
b)
纯ALOHA协议:与时隙ALOHA协议大致相同,但是没有划分时间片的要求,这就使得发生数据碰撞的概率加大了,经过计算,对信道的有效利用率是18%
c)
载波侦听多路访问协议(CSMA):要求在每次传输数据前先侦听信道是否有数据传输,没有的话再发送数据,同时一旦在发送过程中发生了数据的碰撞,则立即停止发送数据,并在一定时间间隔后重发数据。在发展中,CSMA发展出了CSMA/CD(用于碰撞检测的载波侦听多路访问协议),用于有线网络传输,以及CSMA/CS(用于冲突避免的载波侦听多路访问协议)用于无线网络传输。
轮询协议:
a)
轮调协议:通过一个主节点发出轮询报文,调度各个节点发送数据,优点是消除了数据碰撞,缺点是引入了轮询报文时延,其次,一旦主节点损坏,整个网络都会瘫痪
b)
令牌传递协议:在网络中设置一个令牌报文在各个节点之间传输,只有持有令牌报文的节点才能发送数据,完成发送数据后再次传递令牌报文给下一个节点。
以太网是基于随机接入协议的,之后会详细讲实现。
其他LAN技术:
FDDI(光纤式分布数据结构):应用在地理范围更大的LAN
令牌环LAN:通过将节点通过直接链路连成环,在物理上的拓扑结构定义了令牌的传递次序
ARP协议(地址解析协议):
MAC地址:在局域网中,每一个接口的地址用MAC地址表示,MAC地址是一个48位的地址,用12位十六进制数表示,每两位之间用“-”分隔。原则上MAC地址与网卡绑定不可更改,而且不能重复。MAC地址不像IP地址,它不是层次化,而是扁平化的,同一个MAC地址,原则上只能代表一个网络接口,无论MAC位于什么地方。
在生产网卡时,IEEE协会给厂商分配MAC的前24位,厂商自己生产后24位的组合。
ARP协议:在子网中用于IP与MAC地址相互转换的协议
数据报文中IP只有源地址和目标地址的信息,那么报文如何在链路之间被识别传输呢?通过MAC地址。每一次经过路由器,路由器会更新链路层报文,也就是帧的MAC地址,将其指向下一个路由器或者主机的MAC地址,以便下一个路由器或者主机识别接收。进而帧可以在整个链路中传输。
实现:
在每个节点(主机或者路由器)中存在ARP缓存,其中储存IP-MAC-TTL的关系,如果一个节点要询问子网内其他节点的MAC,可发送ARP查询分组,里面封装目标的IP地址和自己的IP地址、MAC地址,目标如果接收到这个查询分组,会向源响应。
ARP查询分组将广播出去,所有的子网节点对比其中的IP地址和自己的是否相同,如果匹配,则自己发送ARP响应保报文,如果不匹配,则忽视查询报文。ARP响应报文不用广播,源接收到ARP响应报文后更新ARP缓存。
注意:ARP协议用于LAN内部,若子网内节点想查询不存在子网内节点的MAC,则不会有回应。
相关文章推荐
- [计算机网络笔记]第五部分——数据链路层 以太网技术
- 计算机网络基础学习笔记(1)
- 计算机网络基础——数据链路层
- 计算机网络笔记--数据链路层(一)
- 【计算机网络学习笔记】什么是cookie以及cookie劫持的基本概念
- 计算机网络基本概念【笔记】
- 计算机网络学习笔记—第三章 数据链路层
- 基础计算机网络——网络安全 (Network Security)笔记
- 计算机网络笔记--数据链路层(二)
- 网络学习笔记—计算机网络基础
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第21章 系统设置工具(网络与打印机)与硬件检测
- 计算机网络基础——数据链路层
- 计算机网络基础——数据链路层
- 黑马程序员_JAVA网络编程基础概念+URL类学习笔记
- 计算机网络基础概念
- 计算机网络基础——数据链路层
- 基础计算机网络——传输层(Transport Layer)笔记
- 基础计算机网络——网络层(Network Layer)笔记
- 软件设计师复习笔记__计算机网络基础
- spring学习笔记1——部分基础及概念