在第一篇里有提到数据链路层的信道分为两种:点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。
如果对前面数据链路层的三个基本问题了解的比较透彻,那么这一块很多东西都很好理解。
从考试的角度来讲,PPP协议并不算是数据链路层的重要考点。这里主要对它的一些特点进行说明:
(1)简单:
这种数据链路层的协议很简单,接收方每收到一帧,就进行CRC检验(三个基本问题里的差错检测),无误码就接收,有误码就丢弃,随后什么也不做。
这里能看出,PPP协议本身不具有可靠性,因为可靠是发送什么就接受到什么,但是PPP协议检错会直接丢弃,不符合可靠的规则。
(2)封装成帧:
该协议必须使用特殊的字符作为帧定界符(取值为0x7E)。(三个基本问题里的封装成帧)。
(3)透明性:
该协议必须保证数据传输的透明性。(三个基本问题里的透明传输)
具体措施就是面向字节的异步链路使用字节填充,即插入转义字符。
面向比特的同步链路就使用比特填充,插入比特0。
(4)多种网络层协议
该协议须在能够在同一条物理链路上同时支持多种网络层协议的运行。
PPP协议虽然本身没有可靠性,但是可以在其上层的协议中实现可靠性。
(5)多种类型链路
该协议须能在多种类型的链路上运行。如:串行的和并行的、同步的和异步的等。
共享信道着重考虑的一个问题是如何协调多个发送和接收站点对一个共享传输媒体的占用。即媒体接入控制MAC。
就是利用频分多址、时分多址、码分多址等。预先固定好分配信道,这类方法不灵活,对于突发性数据传输信道利用率很低。通常在物理层使用。
频分复用、码分复用和时分复用等都已经在物理层里介绍,这种划分信道的方式代价比较高,不适合局域网使用。
分为随机接入和受控接入。
当一个团体去做一件事的时候,避免出现问题的方法大体可以分为两种:一种是大家都听从管理,不能擅自行动,那么出现问题的可能性自然会大大降低,这种就是受控接入。另一种是大家可以自由活动,而针对自由活动可能出现的问题提前准备好相应的措施,这就是随机接入。
特点是用户必须服从一定控制不能随机发送信息。该种接入在局域网中使用较少,不是重点内容,故不多讨论。
所有用户可以随机地发送信息,但是如果多个用户同时发送信息,自然会在共享媒体上产生碰撞从而导致用户发送失败。所以,就要有解决碰撞的协议。
总线型局域网使用的协议。
载波监听多址接入/碰撞检测。其中
MA为多址接入:多个站连接在一条总线上,竞争使用总线。(就是说明这是一个总线型网络)。
CS为载波监听:每个站在发送帧前都要先检测一下总线上是否有其他站在发送帧(先“听”后“说”)。如果总线空闲就发送帧,如果检测到总线正在忙,那么就继续检测并等待总线空闲。
CD为碰撞检测:
每个正在发送帧的站边发送边检测碰撞(边“听”边“说”)。一旦检测到碰撞,立即停止发送,退避一段随机时间后再次发送。
争用期(碰撞窗口):
如图:
这让我莫名想到了经典的数学题,甲和乙相向行走的问题:现在假设甲在t=0时出发,乙在τ-时刻出发,问两人何时能相遇,已知路程s=v*τ,两人的速度都为v。
假设在第u时刻发生相遇。那么就有vu+v(u-(τ-))=vτ。解出有u=τ-δ/2。
回归正题,检测到碰撞也很好算,路程一样,速度一样,那么时间也必然是一样的。
对A来说,就是τ-δ/2时发生碰撞,从出发的时刻计算,应该过了τ-δ/2的时间,再传回去又得τ-δ/2的时间,所以在2τ-δ时刻A检测到碰撞。
对D来说,在τ-δ/2时发生碰撞,从出发的时刻计算,应该过了δ/2的时间,再传回去又得δ/2的时间,所以在τ时刻D检测到碰撞。
下面对细节进行讨论,假设δ趋于0,那么主机最多经过2τ的时间就可以检测到碰撞。所以,以太网端到端往返传播时延2τ为争用期,也叫碰撞窗口。过了这段时间没有检测到碰撞,就可以肯定这次发送不会产生碰撞。
每个主机在自己发送帧的一小段时间内有可能会产生碰撞。该小段时间主要取决于另一个发送帧的主机到本机的距离。但是不会超过一个争用期时间。
最小帧长:
假设A现在发送一个很短的帧,由于帧特别短,A发送完之后就不会再进行检测碰撞,该帧在信道上传输,如果还未到达C,C检测到信道空闲然后发送帧,结果必然会发生碰撞。由于A已经结束对该帧的检测,所以并不会重发该帧。
所以帧不能过短,以太网规定最小帧长为64字节。其保证了主机可在发送完帧之前检测该帧是否会发生碰撞,如果在争用期没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞。
最大帧长:
假设A给D发送一个很长的帧,那么B和C想发送帧,但是一直检测到信道处于忙的状态,所以无法发送,而对于D来说,D的接收缓存区可能会因为无法装下帧而溢出。
以太网的帧根据不同的版本格式,有不同的最大帧长。
截断二进制指数退避:
退避时间=基本退避时间2τ*随机数r。
其中r从离散的整数集合{0,1,2,...()}随机选取一个数。
k就决定了这个整数集合的范围。k=min{重传次数,10}, 也就是说当重传次数小于10时k就等于重传次数,否则就取10。
当重传达16次仍不能成功时,这表明同时打算发送数据的站太多,以致连续发生冲突,则丢弃该帧,并向高层报告。
该知识在谢希仁老师的计算机网络第八版的第412页,放在这里是为了好比较,在考纲上算是超纲内容,所以只做简单介绍。
无线型局域网使用的协议。
其中CSMA的含义和前述协议一样,CA意为碰撞避免。
该协议是802.11局域网采用的无线信道访问控制协议。802.11局域网在运用该协议时,还要使用停止等待协议(因为无线信道的质量远不如有线信道)。所以该协议具有确认机制。注意,碰撞检测是没有确认机制的。