PPPOE

来源:互联网 发布:淘宝的等级划分 编辑:程序博客网 时间:2024/04/30 06:09

PPPOE协议发现过程

先说什么是PPP协议?PPP协议叫做Point to Point Protocol ,点到点协议。

点到点协议以前运用广泛,例如窄带拨号就是点到点协议。

点到点协议的特点是用在点到点线路上。所谓点到点线路拓扑如下。

A---------------------------------B

一条线连接两端,除了A就是BA发出必然B收入,反之亦然。

这样的结构下,PPP协议不考虑寻址,即发送者不必去考虑谁接收信息,接受者是否合法...压根儿没得选。

 

那么什么是PPPOE协议呢?Point to Point Protocol over Ethernet。翻译过来就是“在以太网上的点对点协议”。

在以太网上跑PPP协议的一个关键问题,在于以太网并非点到点网络,而是多点到多点的广播网络。那么如何在这个广播网络上模拟出点到点的线路呢?

 

 

 

PPPOE整个过程分为:PPPOE发现阶段、PPPOE会话阶段、PPPOE结束阶段。

一、PPPOE发现阶段。主要是用来发现PPPOE服务器和为PPPOE会话阶段做好准备。PPPOE发现阶段主要分为四步(这四个步骤,细心地朋友可能会发现类似DHCP的四个过程).

PPPOE发现过程第一步:

PADIPPPOE Active Discovery Initiation)报文 PPPOE发现服务报文
这个报文是一个广播报文,目的地址为全1,源地址是发送者地址-即客户地址。

它实际上是一个寻求服务的报文,就像你走进一个酒吧,大喊一声:“有人吗?

PADI就是PC在大喊:“有PPPOE服务器么?”

 

 

 

PPPOE发现过程第二步:

PADOPPPOE Active Discovery Offer)报文 PPPOE发现提供报文
Offer就是提供的意思。这个报文是对PADI的一个反馈。

PPPOE 服务器(例如BRAS,就是一个PPPOE服务器)收到了PADI报文后,就会返回这个报文。 
这个报文是标准的单播。源地址是PPPOE服务器的地址,目的地址是PADI报文发送者的地址-也就是客户地址。

这个报文附带的关键信息,除了PPPOE服务器的地址外,还提供了服务器的名称。

这就好比酒吧侍者反应你的呼喊:“我,netwolf.biz我可以为你服务。”

 

 

 

PPPOE发现过程第三步:

PADRPPPOE Active Discovery Request)报文 PPPOE发现请求报文

如果广播网内有多个PPPOE服务器,那么客户可能会接到多个PADO报文。那么客户必须选择某一个PPPOE服务器作为自己的服务员。一般来说,是选择反馈最快的那个。(PPPOE客户端可能收到多个PPPOE服务器发送过来的这种报文,PPPOE只会选择第一个到达的报文进行应答)

接着客户就会向这个服务器发出PADR报文,明确告诉对方:我选择你为我服务。

至于其他服务器,会用计时器计算时间,超时无响应就放弃了。

这就好比你听到了好几位酒吧侍者的反馈,然后选了其中一位:“OKnetwolf.biz就是你了。

 

 

 

PPPOE发现过程第四步:

PADSPPPOE Active Discovery Session-confirmation)报文 PPPOE发现会话报文

那么接下来,就该侍者给你递菜单了。不过在PPPOE过程中,先得给你一个贵宾卡

PADSPPPOE服务器对PADR的反馈,主要内容是提供一个会话ID给客户。以后客户发出的所有报文,都必须带这个会话ID。服务器就是凭借这个会话IDVIP卡号),知道你是谁,进而提供服务。

 

 

二、PPPOE会话阶段。PPPOE发现阶段结束后,进入的PPPOE会话阶段,在这个阶段主要靠的是PPP协议在进一步完成协商和业务数据。PPP的协商过程.

 

PPPOE <wbr>server
PPP协商过程分为几个阶段:Dead阶段,Establish阶段,Authenticate阶段,Network阶段和Termintate阶段,在不同的阶段进行不同协议的协商.只有前面的协商出现结果后,才能转到下一个阶段,进行下一个协议的协商.

1)当物理层不可用时,PPP链路处于dead阶段,链路必须从这个阶段开始和结束.当物理层可用时,PPP在建立链路之前首先进行LCP协商,协商内容包括工作方式是SP还是MP,验证方式和最大传输单元等.

2)LCP协商过后就进入Establish阶段,此时LCP状态为Opened,表示链路已经建立.

3)如果培植了验证(远端验证本地或者本地验证远端)就进入Authenticate阶段,开始CHAP或PAP验证.

4)如果验证失败进入Terminate阶段,拆除链路,LCP状态转为Down;如果验证成功就进入Network协商阶段(NCP),此时LCP状态仍为Opened,而IPCP状态从Initial转到Request.

5)NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址.通过NCP协商来选择和配置一个网络层协议.当选中的网络层协议配置成功后,该网络层协议就可以通过这条链路发送报文了.

6)PPP链路将一直保持通信,直至有明确的LCP或NCP帧关闭这条链路,或发生了某些外部事件.(例如,用户的干预).

PPPOE <wbr>server

PAP验证为两次握手验证,口令为明文,PAP验证的过程如下:

被验证方发送用户名和口令到验证方;验证方根据用户配置查看是否有此用户以及口令是否正确,然后返回不同的响应(Acknowledge Or Not Acknowledge).

如正确则会给对端发送ACK报文,通告对端已被允许进入下一阶段协商;否则发送NAK报文,通告对端验证失败.此时,并不会直接将链路关闭.只有当验证不通过次数达到一定值(缺省为4)时,才会关闭链路,来防止因误传,网络干扰等造成不必要的LCP重新协商过程.

PAP的特点是在网络上一明文的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁.因此,它适用于对网络安全要求相对教低的环境.

PPPOE <wbr>server

CHAP验证为三次握手验证,口令为密文(密钥),CHAP验证过程如下:

验证方被验证方发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方;

被验证方接到对端对本端的验证(Challenge)请求时,便根据此报文中验证方的主机名本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用接收到的随机报文、此用户的密钥用Md5算法生成应答(Response),随后将应答自己的主机名送回

验证方接到此应答后,利用对端的用户名在本端的用户表中查找本方保留的口令字,用本方保留的口令字(密钥)和随机报文用Md5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果(ACK or NAK)。

它的特点是只在网络上传输用户名,而并不传输用户口令,因此它的安全性要比PAP高

总结:(简化的)PPP协商过程,分三步:LCP、认证、NCP。

(1)LCP完成建立、配置和检测数据链路连接

(2)LCP完成后,进入认证阶段,认证方式有chap和pap等,认证方式的决定是由LCP协商好的。值得注意的是chap是密文认证,pap是明文认证,在安全性商chap更为安全。

(3)认证完成后便进入了NCP阶段,NCP是一个协议族,适用于配置不同网络类型的,这也PPP被广泛采用的原因之一。PPPOE调用的是IPCP协议,负责给PPPOE客户端提供IP和DNS服务地址等。

   这个阶段完成后,业务数据就能正常传输了。数据的封装是自上而下的,那么PPPOE数据封装过程(以TCP/IP模型讨论)是这样的;应用层数据封装于传输层,再被网络层封装,再被PPP协议头部封装,再接着被PPPOE协议头部封装,最后就是MAC封装(指在LAN中).

     到这一步,双方的PPPOE链接已经建立,在以太广播网上,建立了一条PPP(点到点)线路,一端为PPPOE服务器,一端为PPPOE的客户。然后你们就只管传数据了,你传我收,我传你收,绝无第三者。

  三、PPPOE结束阶段--分手:

PADTPPPOE Active Discovery Terminate)报文 PPPOE发现终结报

好吧,二人世界结束了。。。谁负了谁且不论,分手的过程是怎么样的呢?

有任何一方发出PADT报文(terminate是中断的意思),主要内容就是会话IDVIP卡号)。通告对方,本会话结束,我们之间的点到点关系结束。

接到这个报文的一方无须回复,结束自己的相关业务即可。

 

 

不过,不是每个人分手都会发个短信给对方的。有些人的分手模式是直接玩消失。

在网络上,最经常直接玩消失的就是客户。

很多人下网的操作,不是去点开链接,再点击“断开链接”,而是直接关MODEM的电。

显然,突然断电的MODEM是没法发出PADT报文通知对方(不突然断电也发不了,这个报文应该电脑来发)。对于PPPOE服务器而言,这个客户端就在直接玩消失。

....

PPPOE服务器:就是。太没素质了!

客户端:你有素质!你小子脚踏多少只船了!

.....

 

那么脚踏N只船的PPPOE服务器怎么应对这种情况呢?它有一个keepalive机制。

简单说,就是隔三差五,定期询问对方:你还活着么?(keepalive,直接翻译就是保持活着)。

对方活着,就回答:“亲爱的,我还在。”

PPPOE服务器就知道这个船还没劈腿。

要是问了对方不回答呢?不能一次就算,得多问几次。一般是问三次,都没回答,那就知道对方已经玩消失了,删除对方会话ID

 

不过PPPOE服务器是很有风度的绅士。即使判断被人家甩了,它在删除会话ID的时候,还是会发出PADT报文(其实客户端也一样。如果客户端判断被甩了,也会发出PADT)。

这个机制是为了避免误判。假设对端其实没有玩消失,只是某种原因,发不出信息来。那么PPPOE服务器的PADT也可以明确告诉对方结束会话,以避免挂死

 

从PPPOE的协议过程来看,整个过程都没有出现ARP协议,所以你查看arp表是看不到任何MAC和IP绑定关系的。因此PPPOE可以保护客户不中ARP病毒攻击。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大姨妈来了肚子痛怎么办 一到晚上就腹泻怎么办 减肥晚上太饿了怎么办 半夜饿了没吃的怎么办 晚上11点饿了怎么办 孕妇睡前肚子饿怎么办 减肥的时候晚上饿了怎么办 晚上睡前总是饿怎么办 狗狗牙齿松动了怎么办 狗狗牙齿掉了怎么办 眼镜金属架断了怎么办 纯钛眼镜架断了怎么办 万次火柴没油了怎么办 火疖子破了流脓怎么办 火疖子没有脓头怎么办 孕妇长火疖子疼怎么办 手上长小水泡痒怎么办 脚上起水泡很痒怎么办 手指上有水泡痒怎么办 手指起小水泡痒怎么办 手过敏起小水泡怎么办 头皮上白色像癣怎么办 脸上长了火疖子怎么办 脸上长硬硬的包怎么办 下身体痒痒得不得了怎么办 头皮干痒头屑多怎么办 头发掉的露头皮怎么办 头上老是有结痂怎么办 婴儿头上的黄痂怎么办 头皮屑多又痒怎么办小偏方 皮肤瘙痒起红疙瘩怎么办 头又油又痒怎么办 头上反复长脓包怎么办 额头上长了粉刺怎么办 身上长红疙瘩很痒怎么办 脸上的痘痘变硬怎么办 痘痘变成硬疙瘩怎么办 痘痘变硬了怎么办知乎 痘痘里面是硬的怎么办 皮肤出油毛孔大怎么办 蹭无线网信号差怎么办