数据链路层
一、数据链路层
1、数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
2、数据链路具备功能,主要有:
如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;
如何控制帧在物理信道上的传输,包括如何处理传输差错,
如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
二、主机 H1 向主机 H2 发送消息
链路:从一个结点到相邻结点的一段物理线路。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现在最常用的就是通过网络适配器来实现这些协议。
适配器:也就是网卡,就是用来实现数据链路上一些协议。
三、数据链路层使用的两种主要信道:
(1)点对点信道:使用一对一的通信方式。
(2)广播信道: 使用一对多的广播通信方式。
四、点对点信道
1、点对点信道的数据链路层的协议数据单元-----帧
(1)封装成帧:把网络层交下来的IP数据报添加加了一个首部(SOT : 开始标志)和尾部(EOT :结束标志)来代表ip数据包的开始和结束;
首部和尾部都是由8位二进制数表示的
(2)透明传输: 在IP数据包中如果有一个跟帧尾部一样的8位二进制数,则会提前结束接受数据包,这样数据就被破坏了。
解决:通过在特殊字符前面增加一个转义字符 ESC
(3)差错检测:循环冗余检测CRC检测技术
2、点对点协议(PPP):现在全世界使用的最多的数据链路层协议就是点对点协议PPP(Point to Point Protocol)
1 )特点:
简单:接收方每接收一个帧,就进行CRC检验,检验正确,就收下,否则就丢弃,它是不可靠传输
2) PPP帧的格式
五、广播信道的数据链路层
1、以太网和局域网的区别
以太网是通信协议标准,该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法,比如有CSMA/CD协议。
局域网:本地网(全写为local area network);LAN
在较小范围内组建的网络,通过交换器什么的连接各个PC机,比如一个实验室,一栋楼,一个校园内,这也能算是局域网,
所以:以太网是一种局域网,而局域网却不一定是以太网,大多数局域网就是采用了以太网的这个标准
2、在局域网中,就采用的是广播信道
广播信道:就是一台PC机发送数据给另一台PC机,在同一个局域网中的计算机都能接收到该数据,这就像广播一样,所以这种就叫做广播信道。
3、局域网将数据链路层划分为两个子层:逻辑链路控制LLC子层和介质访问控制MAC子层,从而使LAN体系结构能适应多种传输介质。
对各种类型的局域网来说,其物理和MAC子层需要随着所采用介质和访问方法的不同发生改变,而这些不同对于LLC子层来说都是透明的。
(1) LLC作为数据链路层的一个子层,使用MAC子层为其提供的服务,通过与对等实体LLC子层的交互为它的上层网络层提供服务。
(2) MAC子层是用来实现介质访问控制的网络实体。MAC子层主要功能包括数据帧的封装/拆封、帧的寻址与识别、帧的接收与发送、链路的管理、帧的差错控制及MAC协议的维护等,现在绝大多数网卡上仅装有MAC协议而没有LLC协议
六、CSMA/CD协议(半双工通信)
局域网是用广播信道的方式去传送数据,当一台计算机发送书数据时,总线的传播资源就会被占用,即同一时间只允许一台计算机发送数据,
否则,各个计算机会互相干扰,使得数据失效。所以,使用CSMA/CD协议来解决这类问题。
1、CSMA/CD协议概述
(1)多点接入:许多站点以多址接入的方式链接在一根总线上;
(2)载波监听;发送前监听,就是在发送数据前监听总线中是否有数据在传播,如果有就不发送。就是用电子技术检测总线上有没有其他计算机发送的数据信号。
(3)碰撞检测:边发送边监听,在发送数据的中途也会监听总线中是否会有其它数据,当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)
当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”
七、PC机与PC机怎么找到对方
用的就是MAC地址,MAC地址也叫物理地址或硬件地址。
MAC地址的格式:
在以太网中,发送的数据帧最小要是64个字节,6个目的MAC地址,6个源MAC地址,2个字节代表数据包的类型,4个字节是FCS,用来进行CRC算法检测,
剩下的46个字节就是数据包最少要发送的字节数了,如果数据包实际发的少于46,那么会给这个数据包自动补充0,来达到需要的字节数。
插入的8个字节:前7个字节用来使发送的数据帧的的比特同步,也叫作前同步码,最后一个字节,帧的开始定界符,也就是告诉接收方,从这个字节开始,后面是是MAC帧了。