定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。
主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧,帧是数据链路层的传送单位;如何控制帧在物理 信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路 通路的建立、维持和释放的管理。
功能
链路管理:负责数据链路的建立、维持和释放,主要用于面向连接服务。
帧同步:接收方确定收到的比特流中一帧的开始位置和结束位置。
差错控制:用于使接收方确定收到的数据就是由发送方发送的数据。
透明传输:不论数据是什么样的比特组合,都应当能够在链路上进行传输。
链路:一个节点到另一个节点的一段物理线路。
数字链路:链路+通信协议 也就是把协议的硬件和软件添加到链路上。
帧: 选定 SOH 和 EOT 分别作为帧开始符和帧结束符。字符 SOH 代表 Start of Header(首部开始),而 EOT 表示 End of Transmission(传输结束)。
首尾界符法是不严谨的,因此出现了字符填充的首尾界符法,其方法是,当数据中出现字符 “EOF” 或者 “SOH” 时,就将它们转换成另外一个字符,而这个字符是不会被错误解释的。但是所有字符都可能在数据中出现,于是就将数据中出现的字符
“SOH” 转换成 “ESC” 和 ‘x’ 两个字符;
“EOF” 转换成 “ESC” 和 ‘y’ 两个字符;
而当数据中出现控制字符 “ESC” 时,就将其转化为 “ESC” 和 ‘z’ 两个字符。
比特填充的首尾标志法:比特填充的首尾标志法是使用 01111110 作为帧的开始和结束的标志,这样看来似乎帧定界的问题便解决了,单位体随着而来,如果帧的数据部分含有 01111110 怎么办?透明传输依然是一个问题。
解决方法如下:在 01111110 中拥有 6 个连续的 ‘1’,只要数据帧检测到有 5 个连续的 ‘1’,便马上再其后面插入 ‘0’,而在接收方对该过程实施逆操作,即每次收到 5 个连续的 ‘1’,自动删除后面紧紧跟随的 ‘0’,以恢复数据。这样的方法又称为零比特填充法。
(以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。)
循环冗余校验码(CRC):简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。
(1)适当选择多项式 G(x)G(x) ,在计算机二进制信息 M(X)M(X) 的长度确定时,余数与 CRC 码出错位的对应关系是不变的,可以使用余数作为判断出错位置的依据而纠正编码。检错方式:将受到的 CRC 码与 G(x)G(x) 相除,如果余数为 0 ,那么数据正确。如果余数不为 0 ,那么可以判断出错的位置。
(2)“模2除法”与“算术除法”类似,但它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可。模2加法运算为:1+1=0,0+1=1,0+0=0,无进位,也无借位;模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0,也无进位,无借位。相当于二进制中的逻辑异或运算。
下面使用一个例子就可以说明这个过程。
假设CRC生成多项式G(X)=X5+X4+X+1,要发送的二进制数据帧为100101110,求CRC校验码:
①把生成多项式转换为二进制数:110011;②由生成多项式的位数为6可知,CRC校验码的位数为5,所以在数据帧后加5个0,变为10010111000000,将这个数使用模2除法除以生成多项式110011,得到余数即CRC校验码11010;
③用得到的CRC校验码替换掉数据帧中的5个0,形成新的帧10010111011010,将这个新帧发送给接收端;
④接收端收到新帧后,用新帧除以上面的多项式110011(模2除法),如果余数为0,该数据帧在传输过程中没有出错,否则出错;(经验证余数为0)
PPP(点到点协议)
①若传送字符为0x7e,需连续传送两字符0x7d和0x5e来实现转义字符的转义。
②若传送字符0x7d,需连续传送两字符0x7d和0x5d来实现转义字符的转义。
③若字符的值小于0x20一般都需进行转义,即用特殊字符0x7d和传送的字符第六个比特取其补码来替代(防止他们出现在双方主机的串行接口驱动程序或调制解调器中,因为有时会把它们解释成特殊含义)。
优点①每一帧都有循环冗余检验。
②通信双方可以进行IP地址的动态协商(使用IP网络控制协议)。
③支持在单根串行线路上运行多种协议。
④链路控制协可以对多个数据链路选项进行设置。
⑤对TCP和IP报文首部进行压缩。
学校里面、各个大的公司里,自己组件的一个小型网络,这种就属于局域网。
是以太网就一定是局域网,但是局域网不一定就是以太网。 因为以太网就是一个规范,而大多数局域网都使用这个规范,所以才有这个话。
网络的拓扑结构:主要有星型结构、环型结构、总线结构、分布式结构、树型结构、网状结构、蜂窝状结构等。
问题:如果在局域网内有两个pc机同时在其中传播数据呢?就会发生碰撞,使两个数据都失效,那么如何解决这个问题呢,使用CSMA/CD协议来解决这类问题。
1.多点接入
许多计算机已多点接入的方式连接在一条线上。即总线型网络。
协议的实质是 载波监听 和 碰撞检测
2.载波监听 :发送前监听,就是在发送数据前监听总线中是否有数据在传播,如果有就不发送。就是用电子技术检测总线上有没有其他计算机发送的数据信号。
3.碰撞检测
其实总线中不存在什么载波 只是借用一下“载波”这个名词而已,载波监听就是信道的检测,看信道是否空闲,
无论是发送前还是发送中,每个站都在不停的检测,其中为什么在发送中还要检测呢?
是为了及时发现有没有其他站的发送和本站发送产生碰撞,这称为碰撞检测,即“边发送边监听”
分析:
第一步:B向D发送数据,在发送数据前,由于采用的CSMA/CD协议,那么先会进行载波监听,看总线中是否有其他的数据传输(如果检测,通过物理层的一些电磁波等)。
第二步:如果没有,那么B就可以开始发送数据,由于B到D之间存在一定距离,那么在总线中传输数据也要时间,虽然很快,可能只需要十几微秒,在发送的的途中,遇到C向A发送数据,由于B到D的数据还没传过来,那么C也就没监听到总线中有数据,所以也开始发,那么在途中两个数据就会相遇,这就形成了碰撞,在碰撞以后,两个电磁波叠加,在总线中传输那么会到C或者B时,就会知道电磁波的不同,从而发生了碰撞。这就是碰撞检测。
检测到碰撞之后:
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
以太网的信道利用率
一个帧从开始发送,经碰撞后再重传数次,到发送成功且信道转为空闲(这里考虑最极端的情况,发送站在传输媒体的一端,即再经过时间t使得信道上无信号在传播)时为止,共需平均时间为 Tav。
成功发送一个帧需要占用信道的时间是T0 + t,比这个帧的发送时间要多一个单程端到端时延t。这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。如果这时有其他站发送数据,就必然产生碰撞。因此,必须在T0+t以后才允许其他站发送数据
当a→0时,表示只要一发生碰撞,就立即可以检测出来,并立即停止发送,因而信道资源不会被浪费。反之,参数a越大,表明争用期所占的比例增大,这就使得信道利用率降低。因此,以太网的参数a的值应当尽可能小些。
从上式可看出,这就要求分子t的数值要小些,分母T0的数值要大些。这就是说,当数据传输速率一定时,以太网的连线的长度受到限制(否则t的数值会太大),同时以太网的帧长不能太短(否则T0的值会太小)。
极限信道利用率:
现在考虑一种理想化的情况。假定以太网上的各站发送数据都不会产生碰撞(这显然已经不是CSMA/CD而是需要使用一种特殊的调度方法),并且能够非常有效地利用网络的传输资源,即总线一旦空闲就有某一个站立即发送数据。这样,发送一帧占用线路的时间是T0 + t,而帧本身的发送时间是T0。于是我们可计算出极限信道利用率Smax为:
该式指出了参数a远小于1才能得到尽可能高的极限信道利用率。反之,若参数a远大于1,则极限信道利用率就远小于1,而这时实际的信道利用率就更小了。
发送的数据帧最小要是64个字节,那这64个字节由哪些组成的呢,就是图中所示,6个目的MAC地址,6个源MAC地址,2个字节代表数据包的类型,还有4个字节是FCS,用来进行CRC算法检测的,剩下的46个字节就是数据包最少要发送的字节数了,如果数据包实际发的少于46,那么会给这个数据包自动补充0,来达到需要的字节数。
前7个字节用来使发送的数据帧的的比特同步,也叫作前同步码,最后一个字节,帧的开始定界符,也就是告诉接收方,从这个字节开始,后面是是MAC帧了。
是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。
一个聪明的中继器(Repeater)。因为中继器只是对所接收的信号进行放大,然后直接发送到另一个端口连接的电缆上,主要用于扩展网络的物理连接范围;
网桥在数据链路层上实现局域网互连;
网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。
网桥可以是专门硬件设备,也可以由计算机加装的网桥软件来实现,这时计算机上会安装多个网络适配器(网卡)。
基本网桥只有两个端口,还有一种网桥叫做多口网桥,多口网桥有多个端口
能识别mac地址,遇到陌生的mac地址,会在内部mac表中记录下该mac地址,下次再使用,就认识了
参考:https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82/4329290?fr=aladdin
https://blog.csdn.net/sxy201658506207/article/details/85531086
https://baike.baidu.com/item/%E5%BE%AA%E7%8E%AF%E5%86%97%E4%BD%99%E6%A0%A1%E9%AA%8C%E7%A0%81/10168758?fr=aladdin
https://blog.csdn.net/sd4567855/article/details/81152050
https://www.cnblogs.com/caolei1108/p/8759364.html