我正在设计可伸缩的PPP [意味着它可以扩展到以太网,HDLC,ATM等上。我被困在确定状态机是否被PPP协议(protocol)栈吓[了(这意味着我为PPPStack设计了基类,其中存在FSM,编码,解码等)或PPPoE(从我的PPP基类PPPStack派生而来)。

我正在使用C++设计PPP,以便可以将其扩展到oE,oATM等。

PPP帧编码是在PPP本身和PPPoE中完成的(发现和 session 开始后添加了PPP帧)。

这是我第一次编写可伸缩性,如果涉及可伸缩性体系结构的任何人也希望听到他们的观点:)

提前谢谢你

最佳答案

PPP确实有一个状态机,实际上有几个。链接是由状态机启动,授权并保持的。

但是,LCP(链接控制协议(protocol))是您需要处理的更为复杂的状态机。

关于PPP的资源很多,恐怕我在您的帖子中看到的唯一问题是

“我被困于确定PPP堆栈或PPPoE是否使State Machine陷入困境。”

答案是PPP确实有几个状态机。

PPPoE可能还具有另一个或两个状态机,但我没有对此进行检查。

以下是一些可以帮助您的资源:

非常好的文档,带有良好的LCP状态转换表:
http://scholar.lib.vt.edu/theses/available/etd-04252000-20310024/unrestricted/chapter4.pdf

出色的Powerpoint概述,涉及PPP的许多方面:
http://www.cs.huji.ac.il/~sans/students_lectures/PPP-Intro.ppt

另外,谷歌搜索可能会有用:
http://www.google.com/search?q=ppp%20state%20machine

祝您好运,如果我不理解,随时可以修改您的问题。

-亚当

关于c++ - 可扩展的PPP协议(protocol)。关于状态机的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/509943/

10-11 00:20