PPP协议工作状态:
工欲善其事必先利其器,前天的文章,介绍了PPP协议组成与特点,(没有印象或忘记的朋友可以关注本号去历史文章看看),下面解读一下PPP协议的具体实现:
如上图所示
(1) 首先是物理层连接的建立,当用户通过调制解调器呼叫路由器时,路由器检测到调制解调器发出的载波信号,由此双方建立了物理连接,
即用户端到ISP(Internet server provider互联网服务提供者)建立了物理连接。
(2)LCP(link control protocol)链路控制协议,是专门用来建立,配置和测试数据链路链接的;
接下来进入链路建立状态,建立链路层的LCP连接,如何建立连接呢?用户端向ISP发送LCP分组(封装成PPP帧),向其发送LCP的配置请求帧(configure-request),链路另一端发送的回应有以下几种帧;
配置确认帧(configure-ack):所有选项都接受。
配置否认帧(configure-nak):所有选项都理解但不接受。
配置拒绝帧(configure-nak):选项有的无法识别需要协商。
这里提到的配置选项包括链路上的最大帧长,如果需要鉴别的话,还包括所使用的鉴别协议(authenticate protocol)的规约, 还有不使用PPP帧的地址和控制字段,因为该字段是固定的,可以省略。
(3)接下来进入鉴别状态:
该状态下只允许传送LCP协议的分组,鉴别协议的分组和监测链路质量的分组通过。如果使用口令鉴别协议,需要用户端的口令(即密码)和身份标识符(类似账号),核实身份成功后则鉴别成功,鉴别失败进入链路终止状态。
(3)接下来进入网络层协议状态,PPP链路两端的网络控制协议NCP根据网络层的不同协议互相网络控制分组,因为PPP协议两端的网络层可以运行不同的网络协议,依然使用同一个PPP协议通信。如果PPP链路运行的是IP协议,那么对链路的每一端配置IP协议模块时使用到NCP中支持IP的协议-IP控制协议IPCP(IP control protocol);
(4)网络层配置好后进入链路打开(link open)状态,链路的两个PPP端点可以向彼此发送分组了。还可以互相发送回送请求(echo-request)分组和回送回答分组(echo-reply),用来检查链路状态。
数据链路层使用广播信道,即所有计算机都可以检测到发送的数据。
局域网按拓扑结构分类:
星形网,环形网,
总线网:各主机直接相连在一条总线上,总线两端的匹配电阻吸收总线上传播的电磁波信号的能量,避免产生有害的电磁波辐射。
共享信道技术
(1)静态划分信道:之前提到过的频分复用,时分复用,波分复用,码分复用等。
(2)动态媒体接入控制:又叫做多点接入(multiple access),信道并不是在用户通信时固定分配给用户,而是不固定的,分为下列两类:
随机接入:所有用户可以随机发送信息;但当发生同一时刻不止一个用户发送消息时,就会发生碰撞。
受控接入:用户不能随机发送信息,必须受到一定的控制,比如在令牌环局域网中使用轮询的方式,即每间隔一段时间用户才有机会发送消息。
适配器的介绍:
(1) 适配器的作用:又叫网络接口卡NIC(Network interface card),简称网卡,实现了物理层和网络层这两层的功能。
(2)适配器和计算机之间通信是并行方式进行,适配器和局域网之间通信是串行方式进行。因此适配器最重要的一项功能是数据串行传输和并行传输的转换。
(3)并且由于适配器两端通信链路介质不同,数据传输速率不同,因此网卡要有一个缓存,以临时存放等待发送的数据。
(4)每个适配器工作是双向的,既可以发送消息又可以接收消息。每个适配器都有自己特定的地址,且该地址存放在适配器的RPM存储器中,适配器也有RAM存储器,只有当数据帧的目的地址与适配器ROM的硬件地址一致时,适配器才接收这个帧,否则丢弃。
CSMA/CD协议即载波监听多点接入碰撞检测(csrrier sense multiple access with collision detection)
就是为了解决前面提到的碰撞问题而产生的。
多点接入:总线型网络,计算机以多点接入的方式相连。
载波监听:每个站在发送数据前或者在发送数据中,都要不停的检测信道,看是否有其它数据正在发送。发送之前检测是为了避免冲突。发送中检测是为了碰撞检测。检测到有其他数据正在发送时,就中断本站数据发送。
碰撞检测,也叫冲突检测,实际上在检测信道上的信号电压变化情况。当两个及以上站发送数据,总线上信号电压变化幅度会很大。
既然一开始都是检测到信道空闲再发送,为啥还会有碰撞产生,因为发送过程中存在时延。
电磁波再1KM电缆上传播时延大约是5us,因此假设a和b相距1KM,a一端发送到的数据要经过5us才能传到b.假设a向b发送帧后,在该帧到达b之前,b又发送自己的帧(因为发送时b的载波监听检测不到a发送的帧),则之后某个时刻必然发生碰撞。
发送帧以后最多经过2倍的端到端时延就可以得知是否发生碰撞。
该协议用于半双工通信(双向交替通信,即某时刻只能有一个发送或接收方占用)
就是极限情况,假设a发出的信号几乎快碰到b瞬间,b此时恰好发出来信号,那么b很快检测到碰撞,停止发送后续信号,而a检测到碰撞需要等到b发出的信号几乎接近a时才行。当a送到b的信号与a发送信号时刻间隔接近0,则认为a发出信号后经过端到端往返时延才能检测到碰撞。
将端到端往返时延定义为争用期(contention period),又叫做碰撞窗口期(collision window),一个站发送完数据后,只有在争用期没有检测到碰撞,才能肯定这次发送不会再有碰撞。
对于碰撞发生之后,该过多久重传呢?
采用截断二进制指数退避(truncated binary exponential backof)算法确认。
即停止发送数据后,不是等信道后再立即重传,而是退避一个随机时间。
基本退避时间为争用期2a;