5数据链路层-ppp协议(一)

数据链路层信道

数据链路层属于计算机网络的低层。数据链路层使用的信道主要有两种类型

1)点对点信道 这种信道使用一对一的点对点的通信方式

2)广播信道。这种信道使用一对多的广播通信方式。广播信道上的连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

数据链路层的重点问题:

1,数据链路层点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议和CSMA/CD协议)的特点

2)数据链路层的三个基本问题:封装成帧,透明传输和差错检测

3)以太网MAC层的硬件地址

4) 适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。

一:使用点对点信道的数据链路层

链路:从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。在进行数据通信两台计算机往往经过很多段这样的链路,链路即一条路径的组成部分。

数据链路:在一条线路上传送数据时,处了必须的物理线路为i,还必须有一些必要的通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件都加到链路上,就构成了数据链路。常用的方法时使用网络适配器(有硬件也包括软件)来实现这些协议。一般适配器都包括熟路链路层和物理层这两层的功能。

故有人也将链路分为两个部分物理链路和逻辑链路。物理链路就是上面的链路而逻辑链路则就是提到的数据链路,是物理链路加上必要的通信协议。

早期的通信协议也叫做通信规程

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给上层网络层。在互联网中,网络协议数据单元就是IP数据报(简称数据报,分组,或包)

点对点信道的数据链路层在进行通信时的主要步骤:

1)结点A的数据链路层将网络层交下来的IP数据报调价首部和尾部封装成帧。

2) 结点A将封装好的帧发送给结点B的数据链路层

3) 若B结点的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上层的网络层,否则丢弃这个帧。

三个基本问题

1,封装成帧

封装成帧就是在一段数据前后分别添加首部和尾部,这样就构成一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

分组交换的概念:所有在互联网上传送的数据都是以分组(IP数据报)为传送单位。

网络层的IP数据报加上首部和尾部就构成一个完整的帧。帧就是数据链据层的数据传送单元。

首位部的重要作用就是进行帧定界,确定帧的界限。此外首部和尾部还包含很多必要的控制信息。为了提高传送效率,尽量是的数据部分的长度尽可能的大于首部和尾部的长度。当然每一种链路层协议都规定了所能传送的帧的数据部分程度上限-最大传送单元(MTU)

当数据可由ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。

其中控制字符SOH(start of heder)放在一帧的前面表示帧的开始;控制符EOT(end of transmission)表示帧的结束。他们的16进制表示分别为01(二进制为:00000001)和04(00000100);

2,透明传输

由于帧的开始和结束的标记都是使用专门指明的控制字符,因此,所传输的数据中任何8比特组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。

当传输帧使用文本文件组成的帧时(文本文件的字符一般有键盘输入),取数据部分显然不会出现SOH或EOT这样的帧定界控制字符。可见不管从键盘输入很么字符都可以放入这样的帧传输过去,这样的传输就是透明传输。

但当数据部分非ASCII码的文件文件时(如图片,计算机程序),如果数据中存在SOH或EOT这样的控制字符一样的二进制代码。数据链路层救火错误的认为找到了边界,只把部分帧收下而将剩余部分丢弃。丢弃的部分找不到边界控制符(SOH)。这种显然不是透明传输。

透明:某一个实际存在的事务看起来却好像不存在一样。

为了解决上述的透明传输问题:则引用转义字符

具体方法是:发送端的数据链路层在数据中出现控制字符(EOT)或(SOH)的前面插入一个转义字符(ESC,16进制编码是1B,二进制编码是00011011)。而在接收端的数据链路层再把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充或字符填充。

3,差错检测

1,比特差错,传输过程中比特出现差错,1变成0,0变成1.在一段时间内,传输错误的比特站所传输比特总数的比率称为误码率。目前数据链路层广泛使用的是循环冗余检验CRC的检错技术。

在数据链路层若仅仅使用循环冗余检验CRC差错检验技术,只能做到对帧的无差错接收。即饭时接收端数据链路层接受的帧,我们都能以非常接近1的概率认为这些帧在传输过程中没有产生差错。也可以认为”饭时接收端数据链路层接受的帧均无差错“。

其他错误:

出比特错误,还会有帧丢失,帧重复,帧失序。

OSI观点是:必须让数据链路层向上提供可靠传输。因此在CRC检错的基础上,增加了帧编号,确认,重传机制。即收到正确的帧一定要向发送端发送确认,发送端没收到确认则认为出错,重新发送,直到收到确认。

现如今互联网采用分别对待的方式,对于通信质量良好的有限网路,数据链路层采用不使用确认机和重传,即不要求数据链路层向上提供可靠传输服务,如果数据链路层传输数据出现错误并需要改正,就将纠错交给上层协议(如运输层的TCP协议)来完成。

对于通信质量较差的无线传输链路,数据链路层协议使用确认重传机制,数据链据层提供可靠传输的服务。

这样做可以提高通信效率。

点对点的协议PPP

互联网用户通常都要连接到某个ISP才能接入到互联网。ppp协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。

ppp协议已成为互联网的正式标准

PPP协议需求

1)简单 IETF在设计互联网体系结构时将最复杂的部分放到tcp协议中,而网际协议IP则相对简单,它提供不可靠数据报服务。因此数据链路层没必要提供比IP协议更多的功能,对数据链路层的帧不需要纠错,不需要序号。也不需要流量控制。

简单的设计不容易出错,而且使得协议不同实现上的互操性提高了。我们知道,协议标准化的主要目的就是提高协议的互操行。

总直链路层协议非常简单,就是接收方每收到一个帧,就进行CRC校验,如果CRC校验正确,就收下这个帧;反之则丢弃这个帧。

2)封装成帧 ppp协议必须规定特殊的字符作为帧界定符(即标志一个帧开始和结束的字符),以便使接收端从收到的比特流中能够准确的找出帧的开始位置和结束位置。

3)透明性 ppp协议必须保证数据传输的透明性,即透明传输

4)多种网络层协议 PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(如IP,IPX等),当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行各种网络层协议。

5)多种类型链路 除了要支持多种网络层协议外,PPP还必须能够在多种类型链路上运行。如,串型的或并行的,同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路

这里提到一个1999年公布的在以太网上运行的PPP,即PPP over Ethernet,简称PPPoE,这是一个ppp协议能够适应多种类型链路的一个典型的例子。PPPoE是为宽带上网的主机使用的链路层协议,这个协议将PPP封装到以太网的帧中(同时增加一些能够识别各个用户的功能)。

6)差错检测 PPP协议必须能对接收端收到的帧进行检测,立即丢掉有差错的帧。

7)检测连接状态 PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常的工作状态,等出现故障隔一段时间又重新恢复正常工作时,就特别需要这种及时检测功能。

8)最大传送单元 PPP协议必须对每一种类型的点对点链路设置最大传送单元(MTU),如果高层协议发送分组过长则丢弃这样的帧。

9)网络层地址协商 PPP必须提供一种机制使得通信的两个网络层(两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。,协商算法尽可能简单,而且必须能够在任何情况下得出协商结果,这个对拨号连接的链路特别重要,如果仅仅在链路层简历连接而不知道对方的网络层地址,则不能够保证网络层可以传送分组。

10)数据压缩协商 PPP协议必须提供一种方法协商使用数据压缩算法。但PPP协议并不要求将数据压缩算法进行标准化。

在TCP/IP协议族,可靠传输由运输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP协议也不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),只支持点对点的链路通信,而且PPP协议只支持全双工链路。

PPP协议帧的格式

如图ppp协议帧首部和尾部分别为四个字段和两个字段

首部第一个字段和尾部第二个字段都是标志字段F,规定为0x7E,表示一个帧的开始和结束,连续两个标志字段表示这是一个空帧有,应该丢弃。

首部地址字段A规定为0xFF,控制字段C规定为0x03。目前这两个字段实际上没有携带ppp帧信息。

ppp首部第四个字段是2个字节的协议字段。协议字段为0x0021时,表示ppp帧的信息字段时IP数据报。若为0xC021,则信息字段是ppp链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。

信息字段长度是可变的但是不超过1500字节,最少为46字节,不满则填充

尾部第一个字段(2字节)是用crc的帧检验序列fcs。

字节填充:

当信息字段中出现标志字段一样的比特组合时,就必须采取这样的措施,。

当ppp使用异步传输时,它把转义符定义为0x7D,并使用字节填充

RFC1662规定如下填充方法:

1)把信息字段中出现的每个0x7E转为2字节序列(0x7D,0x5E)

2)信息字段出现0x7D则转为2字节序列(0x7D,0x5D)

3)若出现ASCII码的控制字符,则再该字节前加入一个0x7D同时将该字符的编码加以改变。如出现0x03就将他转为2字节序列(0x7D,0x23)

零比特填充

ppp协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传送(逐个字符的传送),在这种情况下,ppp采用零比特填充实现透明传输。

在发送端扫描整个信息段(通常由硬件实现,但也有用软件的,只是比较慢)。零比特传输即只要发现有连续5个1则立即填入一个0.

mac层

目前MAC地址采用一个48位的全球地址,标识一台计算机中固化在适配器的ROM中的地址。

现在IEEE的注册管理机构RA时局域网全球地址的法定管理机构,他负责分配地址字段6个字节的前三个字节。所有生产适配器的厂家必须购买这三个字节构成的号。这个号正式称为组织唯一标识符OUI,通常叫做哦公司标识符。后三个字节由公司自己指派,称为扩展标识符。

IEEE规定地址字段第一个字节的最低位为I/G位(individual/grop),当I/G位为0时标志单个站地址。当I/G段位1时表示组地址,迎来进行多播。IEEE值分配地址字段的前三个字节中的23位。

IEEE考虑到有人不愿意购买OUI因此将地址字段第1字节最低第二位规定为G/L位,表示(Global/Local),G/L位0时表示全球管理,H/L位1时表示本地管理。

适配器都有过滤功能,过滤到不属于本站的帧。

发往本站的帧包括三种:

1)单播帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同

2)广播(一对全体),即发送给本局域网上所有站点的帧

3)多播(1对多),即发送给本局域网上一部分站点的帧。

以太网适配器还可设置为一种特殊的方式,混杂方式。只要监听到帧就接收下来。不管帧发往何处。

MAC帧的格式

常用的以太网MAC帧格式由两种标准,DIX Ethernet V2标准和IEEE的802.3标准,使用最多的就是DIX Ethernet标准的MAC帧格式。

前两个字段分别为6个字节标识目的地址和源地址,第三个字段两个字节的类型字段,标志上一层使用的是什么协议。一边把收到的MAC真的数据上交给上一层的这个协议。如0x0800表示位IP数据包,0x8137表示该帧由Novell IPX发送过来的。第四个字段是数据字段,长度在46字节到1500字节。最后一个字段4字节的帧检验序列FCS(使用CRC校验)。

由于以太网采用曼彻斯特编码,,曼彻斯特每个码元的正中间一定有一次电压转换。当发送方以太帧发送完成,就不再发送其它码元,也就标识发送节序。因此接收方很容易找到以太网帧结束位置。在这个位置往前4字节就能确定数据字段的结束位置。

当数据字段长度小于46字介石,mac子层就会在数据字段的后面加入整数字段填充。在填充字节情况下,接收端MAC子层在博取首部尾部后把数据字段和填充字段一起交给上层协议。因此上层协议必须具有识别有效的数据字段长度的功能。在ip协议中,其首部就有一个总长度字段,标识有效字段的长度,有效字段的长度加上填充字节就是mac帧数据字段的长度。

实际上在传输媒体上实际传输的要比MAC帧还多8个字节,这是因为当一个站刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步。因此MAC帧最前面的若干位就无法接收,是的整个mac成无用帧。因为了接收端实现迅速同步,在MAC子层在下传到物理层时在前面插入8字节(硬件生成)。由两个字段构成,7字节的前同步码(1和0交替码),他的总用是是使接收端的适配器在接收MAC帧时能够迅速调整时针频率,与发送端时针同步,也就是实现位同步;

第二个字段时帧开始定界符,定义为10101011.告诉真接收端适配器MAC帧信息要俩了。

以太网传输数据以帧为单位,在发送帧时各帧之间必须有一定的间隙,因此接收端只要找到帧开始定界符,后续到达的比特流就属于同一个MAC帧。因此以太网不需要使用结束定界符,也不需要插入字节保证透明传输。

无效的MAC帧:

1)真的长度不是整数个字节

2)收到的帧检验序列FCS查出差错

3)收到的真的MAC客户数据字段长度不再46~1500之间。考虑到MAC帧首位部的长度18个字节,因此有效的MAC帧长度位64~1518字节之间。

检测无效则丢弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎折腾啥啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值