leiyahui

纸上得来终觉浅,绝知此事要躬行
点对点(Point to Point Protrol)

一数据链路和帧

数据链路

链路和数据链路是不同的概念,链路是指相邻节点的一段物理线路

但是想在一条线路上进行物理通信的时候除了有物理线路之外还要有必要的数据协议来控制传输,把实现这些协议的硬件和软件加到链路上就构成了数据链路

现在最常用的就是网络适配器来实现这些协议,一般的网络适配器都包括物理层和数据链路层这两层的功能。

数据链路层把网络层交下来的数据封装成帧,并且把接收到的帧中的数据取出交给网络层。

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

1 节点A接收到网络层传下来的IP数据包,添加首部和尾部封装成帧,

2 节点A将帧给节点B

3 节点B收到帧进行差错检验,无差错之后,去掉首部和尾部交给网络层

 二 三个基本问题

数据链路层有很多种协议,但是这些协议都需要考虑三个问题:封装成帧,透明传输,差错检验

封装成帧:从I网络层传过来的数据报,数据链路层需要加上首部和尾部,帧的长度是数据报的长度加上首尾的长度。

每一种协议都规定了数据部分的最大长度MTU,另外为了提高传输效率应该尽可能的提高MTU因为帧首部和尾部的长度是确定的,数据部分越长效率越高。

帧之间的定界可以使用帧定界符,开始界定符SOH(start of header),结束界定符EOT(end of translation)传输的过程中如果说发生错误,就可以把这个帧重新传送一遍,

由于使用了界定符接收端可以知道接受的帧是否是完整的,只接收到SOH,没有接收到EOT就是不完整的

透明传输:如果说传送的文本文件则不会出现控制字符SOH或者EOT,因为键盘上没有输入这两个控制字符的位置,所以这样的传输是透明传输。

但是如果是二进制代码,或者是图像文件的时候就有可能在数据部分出现SOH或者EOT,这样就有可能出错,这样就不是透明传输了

为了解决这个问题在每个SOH或者EOT前面加一个ESC用以却别数据中的SOH或者EOT,这样就可以对任何文件都可以实现透明传输了

差错检验:bit在传输过程中总是会产生差错,就是采取一些措施来纠正这些错误。

三 点对点协议

一  点对点协议应满足的需求

1 封装成帧

2 透明传输

3 差错检验

4 支持多种网络协议

5 支持多种类型的链路(并行的串行的,等等)

6 网络层地址协商

7 最大传送单元

8 压缩协议协商

二点对点协议的组成

1 将数据封装成帧的算法,数据的最大长度是MTU

2 一个用来建立测试数据链路的链路控制协议LCP(link control protrocl)

3 一套网络控制协议NCP(link control protrocl),不同的协议对应于不同的网络协议,如IP协议,OSI的网络层

三 PPP协议的工作方式

首先一个用户拨号上网,用户在数据链路层向ISP发送一些列LCP协议分组(封装成帧),这些分组及其相应决定了一些PPP参数,然后网络控制协议给主机分配一个IP,这个主机就拥有了IP

 

posted on 2015-12-15 12:57  雷大叔  阅读(1007)  评论(0编辑  收藏  举报