计算机网络学习笔记三:数据链路层

网友投稿 354 2022-10-14


计算机网络学习笔记三:数据链路层

一.概述   1.链路(Link):从一个节点到相邻节点的一段数据线路,中间没有其他任何交换节点.   2.数据链路(Data Link):指将实现通信协议的硬件和软件加到链路上,就构成了数据链路.   3.数据链路层以帧为单位传输和处理数据.   4.封装成帧:数据链路层会为上层(网络层)交付的数据单元添加帧头和帧尾.如以太网V2的MAC帧中,帧头由6字节的目的地址\6字节的源地址\2字节的类型(数据域的协议实体类型)组成,帧尾由4字节的FCS(校验码)组成   5.差错检测:发送方在发送帧前基于帧中待发送的数据计算出一个校验码封装到帧尾,接收方根据校验码和检错算法就可以知道是否出现了误码.   6.可靠传输:接收方会丢弃产生了误码的帧,如果是可靠传输,会有其他方式确保接收方会重新接收到该帧的正确副本. 二.封装成帧   1.以太网V2的MAC帧:帧头由6字节目的地址\6字节源地址\2字节类型组成,帧尾由4字节FCS组成.以太网每一帧前都有8字节的前导码,前7字节是时钟同步信号,后1字节是帧开始定界符.此外,以太网还规定帧间间隔时间为96比特时间.   2.PPP帧格式:帧头由1字节标志(帧定界标志)\1字节地址\1字节控制\2字节协议组成,帧尾由2字节FCS\1字节标志(帧定界标志)组成.   3.透明传输:数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样.数据链路层会为数据中和帧定界符相同的数据部分添加转义字符,为了保证不产生误判,在转义字符前也需要添加转义字符.这样就可以实现透明传输. 三.差错检测   1.奇偶校验:在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中1的个数为奇数(奇校验)或偶数(偶校验).奇偶校验不能检测出偶数位比特位产生误码的情况.   2.循环冗余校验CRC(Cyclic Redundancy Check):收发双反约定好一个生成多项式,发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),接收方通过生成多项式计算收到的数据是否产生了误码.其实就是通过相同的函数计算出相同的结果.     循环冗余校验使用余数计算.被除数为待发送信息后添加生成多项式次数个0,除数为生成多项式各项系数构成的比特串,余数不为0代表产生了误码. 四.可靠传输   1.基本概念:使用差错冗余校验可以检测到帧在传输过程中是否产生了误码.数据链路层会根据上层提供的服务类型是否是可靠传输服务决定直接丢弃产生了误码的帧还是使用其他方式重新接收正确的帧.   2.停止等待协议SW(Stop-and-Wait):发送方在发送一个数据分组后,不会立即发送下一个数据分组,而会等待接收方发送的回复分组.如果是确认回复ACK,代表成功接收,如果是否认回复NAK,代表该分组被丢弃,发送方会重新发送数据分组,直到收到ACK回复再进入下一个数据分组发送.如果数据分组在传输中丢失,接收方也不会发送回复信息,所以发送方在发送数据分组后会启动一个超时计时器,如果到达时间发送方不会继续等待,会再次发送数据分组.如果接收方成功接收,但是回复分组ACK在传输中丢失,则发送方会重复发送相同的数据分组,因此可以为每个分组带上序号,停止等待协议中只需要一个比特位作为序号就可以区分接收方连续接收到的两个分组是相邻分组还是重复分组.同样地,接收方发送的确认分组同样需要编号,确认分组的编号和发送的数据分组的编号相同,以解决可能出现的确认分组迟到的情况.数据链路层的确认分组一般不会出现确认迟到,因此数据链路层中确认分组一般不编号.     停止等待协议在发送一个数据分组后就会等待,知道收到回复数据分组或超时计时器超时,那么传输时间越长,信道的利用率就越低.   3.回退N帧协议GBN(Go-Back-N):发送方一次性发送多个数据分组,发送完成后等待确认.接收方按照顺序接收这些数据分组,同时发送确认数据分组ACK或NAK,可以约定多个数据分组发送一次ACK或NAK(累积确认)或每个数据分组都发送一次ACK或NAK(捎带确认).发送方收到NAK后,会重传传输错误的数据分组和传输错误的数据分组同时发送的所有数据分组.数据分组必须要编号,如使用3个比特位为数据分组编号,则一次发送的数据分组数量少于2的3次方.   4.选择重传协议SR(Selective Request):发送方一次性发送多个数据分组,接收方一次性接收多个数据分组,之后采用捎带确认的方式发送确认数据分组ACK或NAK,发送方从出现传输错误的数据分组开始重新发送多个数据分组,接收方等待所有数据分组都成功接收到后再交付上层处理.如果使用n个比特位为数据分组编号,则一次性发送的数据分组数最多为2的n-1次方. 五.点对点协议PPP   1.简介:     点对点协议PPP(Point-to-Point Protocol),是目前使用的最广泛的点对点数据链路层协议.运营商ISP向用户提供的服务中数据链路层协议都是PPP协议.   2.封装成帧:     1)帧头:1字节标志(Flag)字段,作为PPP帧的定界符;1字节地址(Address)字段,预留(目前没有使用);1字节控制(Control)字段,预留(目前没有使用);1字节协议(Protocol)字段,指明帧的数据部分送交的协议(0x0021:IP协议;0xC021:LCP协议;0x8021:NCP协议)     2)帧尾:2字节FCS字段,使用循环冗余校验出的校验码,1字节标志(Flag)字段,作为PPP帧尾的定界符.     3)透明传输:使用面向字节的异步链路采用插入转义字符的字节填充法;面向比特的同步链路采用插入比特0的比特填充法(5个连续的比特1字立即填充一个比特0)     4)差错检测:采用CRC-CCITT = X16 + X12 + X5 + 1作为生成多项式进行循环冗余检测.PPP向上不提供可靠链路服务,即接收到的帧没有通过差错检测时,直接丢弃该帧并不会等待重传. 六.媒体接入控制   1.概念:     当多台计算机使用共享的信道进行通信时,可能会发生冲突,需要协调多个发送和接收站点对共享信道的占用,即媒体接入控制(Medium Access Control).   2.静态划分信道     1)信道复用:一条物理线路同时传输多路用户的信号.       频分复用FDM:将信道划分为频带不同的子信道,使用复用器改变信号频率,使用某个子信道传输一组数据,使用分用器将接收到的数据还原.       时分复用TDM:对时间进行划分,划分出的每一小段时间称为时隙,将不同的时隙分配给不同的用户,该用户只在分配的时隙传输数据.       波分复用WDM:对在光纤上传输的数据的可用波长段进行划分,使用光调制器对光信号的波长进行调制,然后经过光复用器(和波器)后在光纤中传输,之后经过光分解器(分波器)将不同波长的光信号划分开,之后经过光解调器将光信号还原.       码分复用CDM:各站使用经过特殊挑选的不同码型(码片序列),发送该码型代表比特1,发送该码型的补码代表比特0.各站分配到的码型互相正交,规格化内积为0.当收到叠加信号时,只需要和各站码片进行规格化内积计算,得到1代表该站发送了比特1,得到-1代表该站发送了比特0,得到0代表该站没有发送数据.    3.随机接入     1)载波监听多址接入/碰撞检测 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)-有限局域网使用       多址接入MA:多个站在一条总线上,竞争使用总线       载波监听CS:每个站在发送帧之前需要检测一下总线上是否有其他站点在发送帧.检测到总线空闲96比特时间,则发送这个帧;检测到总线忙,继续检测直到总线空闲96比特时间.       碰撞检测CD:在发送帧的同时继续检测总线上是否有其他帧发送,若检测到碰撞,立即停止发送并等待一段时间再次发送.以太网还采取了一种强化碰撞的措施,当发送帧的站点检测到碰撞,在立即停止发送帧的同时,还会发送32比特或48比特的人为干扰信号,以便有足够多的碰撞信号使所有站点都检测到碰撞.       争用期(碰撞窗口)         在发射信号后,站点会计算信号到达的时间,设为τ,并且站点会持续检测发送后2τ的时间(一来一回的时间)内是否接收到其他站点的信号,如果接收到了,就认为发生了碰撞,否则,视为没有发生碰撞.这个2τ的时间就称为争用期或碰撞窗口.         争用期显然取决于发送站点和接收站点的总线距离,所以实际应用中可以将争用期固定为根据总线的总长度计算出的时间.在共享式以太网中,不能连接太多的主机,使用的总线也不能太长.10Mb/s的以太网的争用期设定为512比特发送时间,即51.2μm,因此总线长度不能超过5120m,但是考虑到信号衰减等因素,最终规定以太网总线长度上限为2500m.       最小帧长         以太网规定最小帧长为64字节,即512比特,刚好和争用期512比特相等.这是为了确保主机在帧发送完成之前一定能检测到碰撞,这样接收方在接收帧时遇到长度小于512比特的帧,就可以知道这个帧在发送过程中发生了碰撞,直接丢弃.因此,对于长度小于512比特的帧,以太网会加入一些填充字节,使帧长度达到512比特.       最大帧长         一个帧太长会导致发送站点长时间占用总线,其他站点无法发送,同时接收帧的站点的缓冲区容量不是无限的,因此帧的长度一定是有上限的.以太网V2的MAC帧最大长度为1518字节,其中数据部分为46-1500字节.插入VLAN标记后的802.1Q帧的最大长度为1522字节,其中数据长度为42-1500字节.     2)载波监听多址接入/碰撞避免 CSMA/CD(Carrier Sense Multiple Access/Collisiion Avoidance)-无线局域网使用       隐蔽站问题:无线局域网的站点的信号有接收范围.如果某站点A同时处于站点B和站点C的接收范围内,但是站点B和站点C却都不在对方的接收范围内,则当站点B和站点C同时向站点A发送信号时,站点B和站点C并不能感知到信号的碰撞.       工作原理(802.11标准):因为无线局域网中隐蔽站问题的存在,导致不能使用碰撞检测的范式传输数据,因此在CSMA/CA中使用了数据链路确认机制(停止-等待协议)来保证数据被争取接收.       802.11标准的MAC层标准定义了两种不同的接入控制方式:分布式协调功能DCF(Distributed Coordination Function),没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道的方式发送数据,802.11定义的默认方式;点协调功能PCF(Point Cordination Function),通过集中控制的接入算法(一般在接入点实现集中控制).       发送方式:站点发送帧之前,在检测到信道空闲时,会等待DIFS时间后发送帧;接收站接收到帧后,会等待SIFS后发送ACK回复;发送站接收到ACK后,确认接收站成功接收.因为帧有不同的优先级,所以发送帧之前需要等待DIFS;接收站接收到帧后,需要等待SIFS,这段时间是帧区分得最短时间,站的工作状态也由接收转为发送,接着发送ACK.如果站点在发送帧之前的等待时间DIFS内,发现信道被占用,则会采用退避算法退避一段时间再发送帧.       为减少碰撞概率,802.11标准允许要发送数据的站点对信道进行预约.发送站在发送数据前发送一个短的控制帧,称为发送请求RTS(Request To Send),其中包括源地址\目的地址及这次通信所需的时间;接收站在接收到RTS后,媒体空闲的情况下,会发送一个响应控制帧,称为允许发送CTS(Clear To Send),其中包括这次通信的持续时间;发送站接收到CTS后,在等待SIFS后,就发送数据帧;接收站接收到数据帧后,在等待SIFS后,向发送站发送确认帧ACK;其他数据站收到CTS后,就会推迟接入到局域网中,不干扰当前发送站和接收站的通信.在RTS帧和CTS帧中,都带有信道占用时间,这样能解决隐蔽站的碰撞问题,因为所有可能发生碰撞的隐蔽站都能接收到CTS帧. 七,MAC地址\IP地址\ARP协议   1.MAC地址:     MAC地址又称物理地址或硬件地址,一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,是每个网络适配器的全球唯一的网络地址标识,一台主机一般有有限局域网适配器和无线局域网适配器两个网络适配器,每个适配器都具有一个全球唯一的MAC地址.     IEEE 802局域网的MAC地址格式:由6个字节组成,前3个字节为IEEE的注册管理机构向生产厂商分配的组织唯一标识符OUI,后3个字节为由获得OUI的厂商自行分配的网络接口标识符.所有字节都是1的地址作为广播地址.   2.IP地址:     因特网上主机和路由器使用的地址.分为网络编号和主机编号两部分.     网络编号:标识因特网上无数的网络.主机编号:标识同一网络上不同主机(或路由器各接口).     显然,Mac地址并不具备区分网络的作用.不同的局域网络的IP地址中网络编号是不同的,同一局域网的所有主机或路由器的IP地址的网络编号相同.一台主机或路由器处于不同的局域网中时,具有不同的IP地址,但是MAC地址都是唯一的.     在数据链路层帧发送和接收时在帧首部填写的源地址和目的地址是MAC地址,每次转发,帧首部的MAC地址都需要修改(源地址指向当前发送设备,目标地址指向下一个转发设备的MAC地址).在网络层中数据报的发送和接收使用IP地址,在信息不断转发的过程中,源IP地址和目标IP地址保持不变.   3.地址解析协议ARP     同一网路中的每台主机都会维护一个ARP的高速缓存,缓存中存储了处于同一网络中的其他主机的IP地址和MAC地址的对应关系.当发送帧时,主机会在高速缓存中根据IP地址查找目标主机的MAC地址,如果没有找到,则会广播一个ARP请求报,包含自身IP地址\自身MAC地址和目标主机的IP地址,目标主机收到广播后,会首先将源主机的IP地址和MAC地址写入自身的高速缓存,然后向源主机发送ARP相应报文,包含源主机的IP地址和源主机的MAC地址,源主机收到ARP响应后将目标主机的IP地址和MAC地址写入高速缓存,然后向目标主机发送帧.     ARP的高速缓存中缓存的IP地址和MAC地址有两种.动态地址是主机自动获取的,一般生命周期为2分钟;静态地址一般是人工手动设置,不同操作系统下生命周期不同.


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot项目 文件上传临时目标被删除异常的处理方案
下一篇:5G网络,你真的了解了吗?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~