数据链路层

一、数据链路层的概述

数据链路层的任务:提供两个相邻的网络节点,或者主机和它相邻的网络节点之间的可靠通信。从网络层接受数据后,加上比特位形成报文的头部和尾部来携带地址和其他控制信息,一个含有这样附加信息的数据单元成为帧。数据链路层传送的信息单位是帧。

使用的两种信道:点对点信道和广播信道。

简单模型:

 

二、使用点对点信道的数据链路层

1.数据链路和帧:

链路和数据链路是两个不同的概念,链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。它只是一条通路的一个组成部分。而数据链路则是链路加上通信协议,数据链路需要这些协议来控制这些数据的传输。

2.三个基本问题:

(1)封装成帧

链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别。封装成帧的目的就是对帧进行帧定界,在数据前后插入首部和尾部。

帧开始符和帧结束符分别为SOH 和EOT

(2)透明传输

不管所传的数据如何比特组合,帧数据中与某一个控制信息完全一样时,数据链路层的传输是透明的。

有时候帧数据部分也有可能出现帧结束符EOT,接收端会误以为这里是帧的结束,导致后面部分被当做无效帧丢弃。对此,就要使用填充来解决透明传输问题——帧发送在数据中出现控制字符“SOH-01H”和“EOT-04H”时,就在前面插入一个转义字符ESC-1B。这种方法叫字节填充或是字符填充。在接收端接受到连续的两个转义字符时,就删除其中前面的一个。

(3)差错检测

一段时间内,传输错误的比特占所传输比特总数的比率称为误码率,误码率和信噪比有很大关系。在传输过程中,都是会产生比特差错的,必须采用差错检测措施——如循环冗余检验CRC来保证数据的可靠性。

循环冗余检验就是将一段n位的冗余码添加在数据的后面一起发送。接下来则是如何求得这n为的冗余码:根据事先选好长度的n+1位的除数p,决定在被除数后添加n个零,得出的商是Q,余数则是R,余数R比除数P少一位,R是n位,发送的数据就是被除数后面添上余数。

 

 接收端会对收到的第一帧除以同样的除数P,然后检查所得到的余数,如果余数为0,则没有差错,否则丢弃。

 常见的差错有三种类型:帧丢失,帧重复,帧失序

 无比特差错和无传输差错是两码事。

 

三、点对点协议PPP

1.PPP协议有三个组成部分:

(1)一个将ip数据报封装到串行链路的方法

(2)链路控制协议LCP,用来建立,配置和测试数据链路的链路

(3)一组网络控制协议NCP,支持不同的网络层协议,如ip,osi的网络层等

2.PPP协议的帧格式:

标志字段(flag):就是PPP帧的定界符。F=0X7E(符号“0x”--十六进制。7E的二进制表示是01111110)

地址:值为FFF(11111111),表示网中所有的站都接收该帧,对点对点链路此项不起作用

控制:值为“03”,表示PPP帧不使用编号

协议字段:2个字节,若为0X0021,则为ip数据报,0XC021,则信息字段是PPP链路控制数据(LCP),若为0X8021,则表示这是网络控制数据(NCP)。

 3.透明传输问题:

数据链路层协议基本分为两类:面向字符型的和面向比特型的

PPP协议用在同步链路时,使用零比特填充的方法来实现透明传输,在发送端,当一串比特流数据中有5个连续1时,就立即填入一个0.在接受帧时,先找到F字段以确定帧的边界,接着再对比特流进行扫描,发现连续的五个一时,将后面的0删除,进行还原。异步链路的字符填充法省略。

*两帧之间只用一个标志字段,如果连续出现两个F字段则代表这是一个空帧。

 

4.PPP协议的工作状态:

(1)建立一条用户和ISP的物理连接

(2)PC向路由器发送一系列的LCP分组,这些分组请求一些PPP参数

(3)NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机

(4)释放网络层连接,收回IP地址

 

四、使用广播信道的数据链路层

 

posted @ 2017-06-15 19:24  某个润滑君  阅读(492)  评论(0)    收藏  举报