文档库 最新最全的文档下载
当前位置:文档库 › PPPoE协议(RFC+2516)

PPPoE协议(RFC+2516)

Network Working Group L. Mamakos Request for Comments: 2516 K. Lidl Category: Informational J. Evarts

UUNET Technologies, Inc.

D. Carrel

D. Simone

RedBack Networks, Inc.

R. Wheeler

RouterWare, Inc.

February 1999

A Method for Transmitting PPP Over Ethernet (PPPoE) 本备忘录的状态

本备忘录为因特网社区提供信息。它不指定任务类型的因特网标准。允许任意分发本备忘录。

版权通告

Copyright (C) The Internet Society (1999). 保留所有权利。

摘要

点对点协议 (PPP) [1] 提供了在点对点连接上传输多种协议报文的标准方法。

适用性

本规格说明书意图提供用于定义PPP的资源,例如链路控制协议(Link Control Protocol)、网络层控制协议(Network-layer Control Protocol)、认证(authentication),等等。这些能力需要端与端之间的点对点关系,而不是用于已在以太网及其他多点访问环境中使用的多点关系。

本规格说明书可以用于多个主机,这些主机在共享的、用于开放的PPP会话的以太网,并且通过一个或者更多的桥接调制解调器而抵达多个目标地址。它试图用于提供桥接以太网拓扑的宽带远程访问技术,并且当访问提供者希望维持与PPP相关的、抽象的会话时。

本文档描述了在以太网上包装的PPP,它已经被RedBack网络、RouterWare、UUNET及其他机构使用。

1、介绍

Modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能。在许多接入技术中,对于用户而言,访问多主机最有效的方式所依赖的接入设备,是通过以太网。另外,值得注意的是,在尽可能少的配置下,要尽可能低地保持设备的成本。

在以太网上的PPP(PPPoE)提供了通过简单的桥接访问设备到远程访问集中器来连接主机网络的能力。在这个模型下,每个主机利用它自己的PPP栈,给用户类似的用户界面。基本而言,访问控制、计费以及服务类型可以逐用户的完成,而不是逐站点完成。

为了在以太网上提供点对点连接,每个PPP会话必须学习远端的以太网地址,同时建立一个唯一的会话标识符。PPPoE包的的发现协议提供了这个功能。

2、约定

以下关键字:必须,必须不,需要的,应该,应该不,推荐,可能,可选的,当它们出现在这个文档中时,将如[2]中描述的那样解释。

3、协议概述

PPPoE有两个截然不同的阶段,即发现阶段(Discovery stage)及PPP会话阶段(PPP Session stage)。当一个主机希望初始化一个PPPoE会话,它必须首先执行发现阶段去标识对方的以太MAC地址并且建立一个PPPoE会话标识符(SESSION_ID)。当PPP定义了一个端对端关系时,发现阶段也同时建立了一个客户端-服务器关系。在发现过程中,一个主机(客户端)发现了一个访问集中器(服务器)。基于这个网络拓扑,该主机可能有不止一个可以通信的访问集中器。发现阶段允许该主机发现所有的访问集中器,然后选择使用其中一个。当发现阶段成功结束时,该主机与被选择的访问集中器都拥有将用于建立它们之间在以太网上的点对点连接的信息。

发现阶段将保持无状态,直到PPP会话被建立起来。一当PPP会话被建立起来,主机和访问集中器必须为PPP虚拟接口分配资源。

4、有效载荷(payload)

定义以下包格式。其中有效载荷的内容将在发现阶段及PPP节定义。

一个以太帧如下所示:

1

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 目标地址 |

| (6 octets) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 源地址 |

| (6 octets) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 以太包类型 (2 octets) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

~ ~

~ 有效载荷 ~

~ ~

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 校验码 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

目标地址(DESTINATION_ADDR)域或者是单播的以太网目标地址,或者是以太网广播地址(0xffffffff)。对于发现帧而言,这个值或者是单播地址,或者是广播地址,就如在发现一节中所描述的一样。对于PPP会话通信,这个域必须包含对方的单播地址,该地址由发现阶段决定。

源地址(SOURCE_ADDR)域必须包含源设备的以太MAC地址。

以太包类型(ETHER_TYPE)被设备为0x8863(发现阶段)或者0x8864(PPP会话阶段)。

PPPoE的以太有效载荷如下所示:

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| VER | TYPE | CODE | SESSION_ID |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| LENGTH | payload ~

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

VER域占用4位,对于本版本的PPPoE规格说明书,必须设置为0x1。

TYPE域占用4位,对于本版本的PPPoE规格说明书,必须设置为0x1。

CODE域占用8位,对于发现阶段和PPP会话阶段,它的定义稍后再做描述。

SESSION_ID域占用16位。这是一个网络字节顺序的无符号数值。它的值在发现包中给出。对于给定的PPP会话,这个值是固定的,并且,事实上,它与以太网源地址和目标地址一起定义了一个PPP会话。0xffff是保留值,可能在将来会被使用,但现在必须不能使用。

LENGTH域占用16位。这个网络字节顺序的值,指出PPPoE有效载荷的长度。它不包括以太包及PPPoE包头。

5、发现阶段

在发现阶段有4个步骤。当它完成时,两端都将知道PPPoE的会话ID及对方的以太网址,而且它们一起唯一标识了PPPoE会话。这些步骤包括:主机广播一个初始(Initiation)包,一个或者多个访问集中器发送提议(Offer)包,主机发送一个单播会话请求(Session Request)包,被选择的访问集中器发送一个确认(Confirmation)包。当主机接收到这个确认包时,它就可以进入到PPP会话阶段了。当访问集中器发送了确认包以后,它就可以进入到PPP会话阶段了。

所有的发现阶段的以太帧,都要将ETHER_TYPE域的值设置为0x8863。

PPPoE有效载荷可以包含一个或者多个标签(TAG)。一个标签是一个TLV (type-length-value,类型-长度-值)的结构,它的定义如下所示:

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| TAG_TYPE | TAG_LENGTH |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| TAG_VALUE ... ~

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TAG_TYPE域占用16位,使用网络字节顺序。附录A包含了所有的标签类型(TAG_TYPE)及它们的标签值(TAG_VALUE)。

TAG_LENGTH域占用16位,它是网络字节顺序的无符号数值,指出标签值的所使用的字节(8位)数。

如果发现包接收到一个未知类型的标签,该标签必须被忽略,除非在本文件中另外指定。这样可以在新增加了标签时提供向后兼容。如果增加了新的强制性的标签,则版本号也将随之增加。

附录B中给出了一个发现包的例子。

5.1、PPPoE活动发现初始(PADI) 包

主机发送PADI(PPPoE Active Discovery Initiation)包,此时目标地址被设置为广播地址。CODE域设置为0x09,同时,SESSION_ID必须被设置为0x0000。

PADI包必须包含正确的、类型为服务名称(Service- Name)的标签,用于指出主机正在请求的服务。也可以包含任意数量的其他标签类型。整个PADI包(包括PPPoE包头),必须不超过1484字节(8位),以便有足够的空间用于中继代理增加中继会话ID(Relay-Session-Id)标签。

5.2、PPPoE活动发现提议(PADO) 包

当访问集中器接收到它可以提供服务的PADI包,它通过发送一个PADO(PPPoE Active Discovery Offer)包来响应。目标地址是发送PADI的主机的单播地址。CODE域被设置为0x07,同时,SESSION_ID必须被设置为0x0000。

PADO包必须包含一个AC名称(AC-Name)标签,其中有访问集中器的名称;同时,必须包含一个服务名称(Service-Name)标签来标识PADI中的服务名称,同时可以包含任意数量的其他服务名称(Service-Name)标签来指出该访问集中器提供的其他服务。如果该访问集中器不能为这个PADI包提供服务,则它必须不能用PADO做出应答。

5.3、PPPoE活动发现请求(PADR) 包

因为PADI是广播包,所以主机可能接收到多个PADO。主机需要审核这些PADO包,并且从中选择一个。这个选择可以基于所提供的AC名称(AC-Name)或者服务。然后,主机发送PADR(PPPoE Active Discovery Request)包给被选中的访问集中器。目标地址被设置为这个发送PADO的访问集中器的单播以太网地址。CODE域被设置为0x19,同时,SESSION_ID必须被设置为0x0000。

PADR包必须包含一个正确的服务名称(Service-Name)标签,该标签指出主机所请求的服务。同时可以包含任意数量的其他标签。

5.4、PPPoE活动发现会话确认(PADS) 包

当访问集中器接收到PADR包时,它开始准备开始一个PPP会话。它为PPPoE会话创建一个唯一的会话ID(SESSION_ID),并用PADS(PPPoE Active Discovery Session-confirmation)包回复给主机。目标地址域设置为发送PADR的主机的单播以太网地址。CODE域设置为0x65,同时,SESSION_ID必须设置为刚为本次PPPoE会话创建的唯一值。

PADS包包含一个正确的服务名称(Service-Name)标签,该标签指出这个接收了PPPoE会话的访问集中器的服务。同时可以包含任意数量的其他标签。

如果访问集中器不喜欢PADR中的服务名称,则它必须在回复的PADS中包含服务名称错误(Service-Name-Error)标签(以及任意数量的其他标签)。这时,SESSION_ID必须被设置为0x0000。

5.5、PPPoE活动发现终止(PADT) 包

这个包可以在会话建立之后的任意时刻发送,用于指出这个PPPoE会话已经被终止。主机或者访问集中器都可以发送这个包。目标地址被设置为单播以太网地址,CODE域被设置为0xa7,SESSION_ID MUST必须设置为将被终止的会话的ID。这个包不需要任何标签。

当接收到一个PADT(PPPoE Active Discovery Terminate)时,任何使用该会话的PPP通信都是不允许的。在发送或者接收到一个PADT后,即使正常的PPP终止包也必须不再被发送。PPP端应该使用PPP协议本身来关闭一个PPPoE会话,但PADT可以用于PPP不能使用的情况。

6、PPP会话阶段

一当PPPoE会话开始以后,PPP数据就象任何其他PPP封闭一样被发送。所有的以太包都是单播的。ETHER_TYPE域被设置为0x8864。PPPoE的CODE必须被设置为0x00。对于这个PPPoE 会话,SESSION_ID必须不能被改变,并且必须是发现阶段指定的值。PPPoE有效载荷包含一个PPP帧。该帧以PPP协议ID开头。

附录B中给出了一个包的例子。

7、LCP考虑

魔数LCP规则说明选项是被推荐的,而协议域压缩(PFC,Protocol Field Compression)选项则是不推荐的。它的实现必须不请求以下任意的选项,并且,必须拒绝这些选项:

Field Check Sequence (FCS) Alternatives,

Address-and-Control-Field-Compression (ACFC),

Asynchronous-Control-Character-Map (ACCM)

最大接收单元(MRU,Maximum-Receive-Unit)选项必须不超过1492。因为以太网有1500字节(8位)的最大有效载荷限制,而PPPoE头有6字节(8位)并且PPP协议ID包含2字节(8位),所以,PPP的MTU必须不超过1492。

推荐访问集中器不定期的发送回音请求(Echo-Request)包给主机,以此决定这个会话的状态。否则,如果主机不发送终止请求(Terminate-Request)包即终止一个会话,访问集中器将不能判断这个会话是否已经过时。

当LCP终止时,主机和访问集中器必须停止使用这个PPPoE会话。如果主机希望开始另一个PPP会话,它必须返回到PPPoE发现阶段。

8、其他考虑

当主机在指定超时范畴内没有接收到PADO包,这应该重新发送它的PADI包,并且让等待时间加倍。它可以重复所需要的任意多次。如果主机正在等待接收一个PADS包,应该使用类似的超时机制,并且主机重发那个PADR。当重试指定次数以后,主机应该重新发送PADI包。

本文档中使用的ETHER_TYPE(0x8863 和 0x8864)已经被IEEE指定用于在以太网上的PPP (PPPoE)。同时使用这些值以及PPPoE VER(版本)域将唯一标识该协议。

本文档通篇使用UTF-8[5],而不是ASCII。UTF-8支持整个ASCII字符集,同时也支持国际字符集。更多细节请参见[5]。

9、安全考虑

为了帮助避免遭受拒绝服务(DOS)攻击,访问集中器可以使用AC-Cookie标签。访问集中器应该能够唯一的根据PADR源地址重新生成这个标签值。通过它,访问集中器可以确保PADI 源地址确实可以到达,并且可以限制来自于这个地址的并发的会话数。不要求具体使用哪一种算法,并且该算法被当作具体的实现细节。一个例子是在主机MAC地址基础上使用只有访问集中器知道的密钥的HMAC[3]算法。虽然AC-Cookie对于避免某些DOS攻击很有效,但它不能避免所有的DOS攻击,所以,访问集中器应该使用其他的手段来保护资源。

许多访问集中器可能不希望向未经论证的实体提供它们所能支持的服务的信息。这种情况下,这个访问集中器应该采用以下两种策略之一。它应当永远都不拒绝基于服务名称标签的请求,并且这个标签值总是返回它所接收的值。或者,它应当只接收TAG_LENGTH等于0的

服务名称标签的请求(表示任意服务)。推荐使用前一种解决方式。

10、感谢

本文档基于若干个论坛中讨论的概念,其中包括ADSL论坛。

大量文本直接来自于RFC 1661,RFC1662以及RFC 2364。

11、参考资料

[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,

RFC 1661, July 1994

[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement

Levels", BCP 14, RFC 2119, March 1997.

[3] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing

for Message Authentication", RFC 2104, February 1998.

[4] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700,

October 1994. See also: https://www.wendangku.net/doc/ea2360464.html,/numbers.html

[5] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC

2279, January 1998.

Appendix A

T AG_TYPES and T AG_V ALUES

0x0000 End-Of-List

这个标签指出,在列表中不再有其他的标签。这个标签的TAG_LENGTH必须总是等于0。不要求必须使用这个标签,保留这个标签是为了保持向后兼容。

0x0101 Service-Name

This TAG indicates that a service name follows. The TAG_VALUE is an UTF-8 string that is NOT NULL terminated. When the TAG_LENGTH is zero this TAG is used to indicate that any service is

acceptable. Examples of the use of the Service-Name TAG are to

indicate an ISP name or a class or quality of service.

0x0102 AC-Name

This TAG indicates that a string follows which uniquely identifies this particular Access Concentrator unit from all others. It may be a combination of trademark, model, and serial id information, or simply an UTF-8 rendition of the MAC address of the box. It is not NULL terminated.

0x0103 Host-Uniq

This TAG is used by a Host to uniquely associate an Access

Concentrator response (PADO or PADS) to a particular Host request (PADI or PADR). The TAG_VALUE is binary data of any value and

length that the Host chooses. It is not interpreted by the Access Concentrator. The Host MAY include a Host-Uniq TAG in a PADI or PADR. If the Access Concentrator receives this TAG, it MUST

include the TAG unmodified in the associated PADO or PADS

response.

0x0104 AC-Cookie

This TAG is used by the Access Concentrator to aid in protecting against denial of service attacks (see the Security Considerations section for an explanation of how this works). The Access

Concentrator MAY include this TAG in a PADO packet. If a Host

receives this TAG, it MUST return the TAG unmodified in the

following PADR. The TAG_VALUE is binary data of any value and

length and is not interpreted by the Host.

0x0105 Vendor-Specific

This TAG is used to pass vendor proprietary information. The

first four octets of the TAG_VALUE contain the vendor id and the remainder is unspecified. The high-order octet of the vendor id

is 0 and the low-order 3 octets are the SMI Network Management

Private Enterprise Code of the Vendor in network byte order, as

defined in the Assigned Numbers RFC [4].

Use of this TAG is NOT RECOMMENDED. To ensure inter-operability, an implementation MAY silently ignore a Vendor-Specific TAG.

0x0110 Relay-Session-Id

This TAG MAY be added to any discovery packet by an intermediate agent that is relaying traffic. The TAG_VALUE is opaque to both the Host and the Access Concentrator. If either the Host or

Access Concentrator receives this TAG they MUST include it

unmodified in any discovery packet they send as a response. All PADI packets MUST guarantee sufficient room for the addition of a Relay-Session-Id TAG with a TAG_VALUE length of 12 octets.

A Relay-Session-Id TAG MUST NOT be added if the discovery packet already contains one. In that case the intermediate agent SHOULD use the existing Relay-Session-Id TAG. If it can not use the

existing TAG or there is insufficient room to add a Relay-

Session-Id TAG, then it SHOULD return a Generic-Error TAG to the sender.

0x0201 Service-Name-Error

This TAG (typically with a zero-length data section) indicates

that for one reason or another, the requested Service-Name request could not be honored.

If there is data, and the first octet of the data is nonzero, then it MUST be a printable UTF-8 string which explains why the request was denied. This string MAY NOT be NULL terminated.

0x0202 AC-System-Error

This TAG indicates that the Access Concentrator experienced some error in performing the Host request. (For example insufficient resources to create a virtual circuit.) It MAY be included in

PADS packets.

If there is data, and the first octet of the data is nonzero, then it MUST be a printable UTF-8 string which explains the nature of

the error. This string MAY NOT be NULL terminated.

0x0203 Generic-Error

This TAG indicates an error. It can be added to PADO, PADR or

PADS packets when an unrecoverable error occurs and no other error TAG is appropriate. If there is data then it MUST be an UTF-8

string which explains the nature of the error. This string MUST NOT be NULL terminated.

Appendix B

The following are some example packets:

A PADI packet:

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xffffffff | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xffff | Host_mac_addr | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Host_mac_addr (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x09 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION_ID = 0x0000 | LENGTH = 0x0004 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TAG_TYPE = 0x0101 | TAG_LENGTH = 0x0000 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

A PADO packet:

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Host_mac_addr |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Host_mac_addr (cont) | Access_Concentrator_mac_addr | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Access_Concentrator_mac_addr (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x07 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION_ID = 0x0000 | LENGTH = 0x0020 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TAG_TYPE = 0x0101 | TAG_LENGTH = 0x0000 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TAG_TYPE = 0x0102 | TAG_LENGTH = 0x0018 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x47 | 0x6f | 0x20 | 0x52 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x65 | 0x64 | 0x42 | 0x61 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x63 | 0x6b | 0x20 | 0x2d | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x20 | 0x65 | 0x73 | 0x68 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x73 | 0x68 | 0x65 | 0x73 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x68 | 0x6f | 0x6f | 0x74 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

A PPP LCP packet: The PPP protocol value is shown (0xc021) but the PPP payload is left to the reader. This is a packet from the Host to the Access Concentrator.

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Access_Concentrator_mac_addr | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Access_Concentrator_mac_addr(c)| Host_mac_addr | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Host_mac_addr (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ETHER_TYPE = 0x8864 | v = 1 | t = 1 | CODE = 0x00 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION_ID = 0x1234 | LENGTH = 0x???? | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PPP PROTOCOL = 0xc021 | PPP payload ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Authors' Addresses

Louis Mamakos

UUNET Technologies, Inc.

3060 Williams Drive

Fairfax, VA 22031-4648

United States of America

EMail: louie@https://www.wendangku.net/doc/ea2360464.html,

Kurt Lidl

UUNET Technologies, Inc.

3060 Williams Drive

Fairfax, VA 22031-4648

United States of America

EMail: lidl@https://www.wendangku.net/doc/ea2360464.html,

Jeff Evarts

UUNET Technologies, Inc.

3060 Williams Drive

Fairfax, VA 22031-4648

United States of America

EMail: jde@https://www.wendangku.net/doc/ea2360464.html,

David Carrel

RedBack Networks, Inc.

1389 Moffett Park Drive

Sunnyvale, CA 94089-1134

United States of America

EMail: carrel@https://www.wendangku.net/doc/ea2360464.html,

Dan Simone

RedBack Networks, Inc.

1389 Moffett Park Drive

Sunnyvale, CA 94089-1134

United States of America

EMail:dan@https://www.wendangku.net/doc/ea2360464.html,

Ross Wheeler

RouterWare, Inc.

3961 MacArthur Blvd., Suite 212

Newport Beach, CA 92660

United States of America

EMail: ross@https://www.wendangku.net/doc/ea2360464.html,

Full Copyright Statement

Copyright (C) The Internet Society (1999). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published

and distributed, in whole or in part, without restriction of any

kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this

document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of

developing Internet standards in which case the procedures for

copyrights defined in the Internet Standards process must be

followed, or as required to translate it into languages other than

English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING

TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION

HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

PPPoE协议工作原理

4.3.2 PPPoE协议工作原理 PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE 终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。 当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC 地址,并建立一个PPPoESESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。 PPPoE协议会话的发现和会话两个阶段具体进程如下: 1. 发现(Discovery)阶段 在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集线器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话识别标号。发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPoESESSION_ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这四个步骤如下: (1)主机广播一个发起分组(PADI),分组的目的地址为以太网的广播地址0xffffffffffff,CODE (代码)字段值为0x09,SESSION_ID(会话ID)字段值为0x0000。PADI包必须至少包含一个服务名称类型的标签(标签类型字段值为0x0101),向接入集中器提出所要求提供的服务。(2)接入集中器收到在服务范围内的PADI包分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0x07 ,SESSION_ID字段值仍为0x0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0x0102),以及一个,或多个服务名称类型标签,表明可向主机提供的服务种类。 (3)主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0x19 ,SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI 分组,并且加倍等待时间,这个过程会被重复期望的次数。 (4)接入集中器收到PADR包后准备开始PPP会话,它发送一个PPPoE有效发现会话确认(PADS)分组。其中CODE字段值为0x65 ,SESSION_ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签确认向主机提供的服务。当主机收到PADS包确认后,双方就进入PPP会话阶段。 【注意】如果主机正在等待接收PADS分组,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。 2. PPP会话阶段 用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。 PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT包不需要任何标签,其CODE字段值为0xa7 ,SESSION_ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正

完整word版pppoe原理协议详解

PPPoE(Point to Point Protocol over Ethernet,基于以太网的点对点协议)的工作流程包含发现(Discovery)和会话(Session)两个阶段,发现阶段是无状态的,目的是获得PPPoE 终端(在局端的ADSL设备上)的以太网MAC 地址,并建立一个惟一的PPPoE SESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段 1.发现阶段(PPPoED:PPPoE Discovery) ) Initiation PADI(PPPoE Active Discovery1.1 主机广播发起分组,分组的目的地址为以太网的广播地址 0xffffffffffff,CODE(代码)字段值为0×09(PADI Code),SESSION-ID(会话ID)字段值为0x0000。PADI分组必须至少包含一个服务名称类型的标签(Service Name Tag,字段值为0x0101),向接入集中器提出所要求提供的服务。) Offer(PPPoE Active Discovery1.2 PADO接入集中器收到在服务范围内的PADI 分组,发送PPPoE有效发现提供包分组,以响应请求。其中CODE字段值为0×07(PADO Code),SESSION-ID字段值仍为0x0000。PADO分组必须包含一个接入集中器名称类型的标签(Access Concentrator Name Tag,字段值为0x0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。PADO和PADI的值相同。Host-Uniq Tag ) Request PADR(PPPoE Active Discovery1.3主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组。其中CODE字段为0x19(PADR Code),SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,时间,这个过程会被重复期望的次数。并且加倍等待)-confirmation(PPPoE Active Discovery Session1.4 PADS接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为0×65(PADS Code),SESSION-ID字段值为接入集中器所产生的一个惟一的PPPoE 会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS 分组确认后,双方就进入PPP会话阶段。PADS值相同。的和PADRHost-Uniq Tag )PPPoES:PPPoE Session会话阶段(2. 数据包来配置和测试数据通信链路。PPP会话的建立,需要两端的设备都发送LCP 会话。一PPP用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行

详解PPP及PPPoE协议,文章写得通俗易懂

PPP(Point-to-Point Protocol点到点协议),一种二层协议,通常部署在专线网和按需电路网上面,PPP 有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。这些丰富的选项增强了PPP的功能。同时,不论是异步拨号线路还是路由器之间的同步链路均可使用。因此,应用十分广泛 当然,在专线网上我们也可以使用HDLC二层协议,但用的并不多,原因有三: 1.不支持验证,一层通二层就通 2.不支持多种上层协议(ip/ipx/appletalk等),而PPP帧中专门有一个字段用来标示上层协议类型 3.HDLC协议为厂商私有协议,各个厂商互不兼容,但HDLC是cisco产品的默认广域网封装方式, 要使用PPP协议需要encapsulation ppp 命令改变接口封装协议 我们家庭拨号上网就是通过PPP协议在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入已基本取代拔号接入,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。 利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE 即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。 同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准 好的,下面我们就以点到点专线上的PPP协议和以太网上的PPPoE协议为例,详细介绍它们的工作原理、验证过程及其配置方法 一、点到点专线上的PPP协议 PPP特性有很多,但主要的特性是具备验证技术,所以在此我们主要是讨论PPP的验证。PPP的验证方式分为两种:PAP和CHAP PAP( 密码验证协议):客户端向服务器端发送验证信息,包含用户名和密码。如果用户名和密码与服务器里保存的一致,那就通过验证,否则就不能通过(通过两次握手)。 CHAP(挑战握手验证协议):CHAP首先是由服务器发起的,它向客户端发送含有random值(随机生成)、id号、用户名和密码的数据,客户端收到数据后提取random、id和用户所对应的密码使用MD5算法进行哈希(hash)得到hash值。然后再把自己保存的用户名连同id和刚得到的hash值一起发送给服务器。服务器再收到数据后也进行以上操作得到hash值,再把算得的hash值与从客户端得到的hash 值进行比较:两值相同服务器就发送一个通过的信息;两值不同服务器就发送一个拒绝的信息。可以看出,CHAP在整个验证过程中是不发送密码的,所以是一种安全的认证。 好的,下面我们就以实例来演示PAP和CHAP的配置过程 1、实验拓朴 2、配置步骤 首先我们来做个PAP认证

PPPOE协议工作原理

协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是PPPoE 地址,并建立一个唯一的以太网MACADSL设备上)获得PPPoE终结端(在局端的的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。 当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。 PPPoE协议会话的发现和会话两个阶段具体进程如下。 1.发现(Discovery)阶段 在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或),并获得其以太网MAC地址。然后选择需要连接的主机,并确定交换机所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这 4个步骤如下。 (1)主机广播发起分组(PADI) 主机广播发起分组(PADI),分组的目的地址为以太网的广播地址0× ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。PADI分组必须至少包含一个服务名称类型的标签(标签类型字段值为0×0101),向接入集中器提出所要求提供的服务。 (2)接入集中器 接入集中器收到在服务范围内的PADI分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为 0×07,SESSION-ID字段值仍为0×0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0×0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。 (3)主机选择一个合适的PADO分组 主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中 CODE字段为0×19,SESSION_ID字段值仍为0×0000。PADR分组必须包含一个服务名称类型标签, 当主机在指定的时间内没有接收请求的服务种类。)或交换机(确定向接入集线器.到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。 (4)准备开始PPP会话 接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为 0×65,SESSION-ID字段值为接入集 中器所产生的一个唯一的PPPoE会话标识号码。PADS分组也必须包含一个接入 集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS分组确认后,双方就进入PPP会话阶段。 2.PPP会话阶段 用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP 会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必

PPPoE协议(RFC2516)中文

A Method for Transmitting PPP Over Ethernet (PPPoE) 在以太网上传输PPP的方法 RFC2516

目录 1.前言 (3) 2.简介 (3) 3.协议总述 (3) 4.Payloads 有效载荷 (4) 5.Discovery阶段 (5) 5.1. PPPoE Active Discovery Initiation数据包(PADI) (6) 5.2. PPPoE Active Discovery Offer 数据包(PADO) (6) 5.3. PPPoE Active Discovery Request 数据包(PADR) (6) 5.4. PPPoE Active Discovery Session-confirmation 数据包(PADS) (6) 5.5. The PPPoE Active Discovery Terminate数据包(PADT) (7) 6.PPP会话阶段 (7) 7.LCP方面的考虑 (7) 8.其它方面的考虑 (8) 9.安全方面的考虑 (8) 10.参考文献 (8) 附录 A -- TAG_TYPE和TAG_VALUE (8) 附录B -- 数据包的几个例子: (10)

1.前言 点到点协议(PPP,参考文献[1])提供在点到点连路上传送多协议数据报的标准方法。 本文档描述在以太网上建立PPP会话以及封装PPP数据报的方法。 可行性 本说明书试图提供PPP所定义的工具,如链路控制协议(Link Control Protocol,LCP), 网络层控制协议(Network-layer Control Protocols, NCP),认证以及其它机制。这 些功能要求在通信双方之间存在点到点的关系,而不是在以太网和其他多访问环境 中所出现的多点关系。 本规范可用于同一个以太网上的多个主机通过一个或多个跨接(桥接)调制解调器 向多个目的主机建立PPP会话。主要用于采用提桥接以太网拓扑结构的宽带远程 访问技术中,由服务提供商维护PPP会话。 本文档描述的PPPoE是RedBack Networks, RouterWare, UUNET 及其它厂商所采 用的在以太网上封装PPP的方法。 2.简介 现代接入技术需要面对有几个互相冲突的设计目标。人们希望通过同一个家庭接入设备来连接到远程站点上的多个主机,同时(又希望在使用习惯上)提供与拨号上网(使用PPP)类似的访问控制和计费功能。在很多接入技术中,把多个主机连接到家庭接入设备的最经济的方法就是通过以太网。另外,还想尽量保持设备的低成本同时要求不改变或很少改变其配置。 以太网上的PPP(PPPoE)提供了通过简单桥接接入设备把一个网络的多个主机连接到远程接入集线器的功能。使用该模型,每一个主机使用自己的PPP协议栈,呈现给用户的还是熟悉的用户接口。访问控制、计费以及业务类型都能基于每一个用户,而不是基于站点。 为了提供以太网上的点到点连接,每一个PPP会话必须知道对端的以太网地址,并建立一个唯一的会话标识符。PPPoE包含一个(以太网地址)发现协议来提供这个功能。 3.协议总述 PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段。当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个PPPoE会话标识符SESSION_ID。虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种客户端-服务器关系。在Discovery的过程中,由主机(作为客户端)来发现接入集线器(Access Concentrator,作为服务器)。根据网络的拓扑结构,可能存在不止一个能和主机进行通信的接入集线器。Discovery阶段允许主机发现所有的接入集线器并从中选择一个。当Discovery阶段成功完成之后,主机和接入集线器两者都具备了用于在以太网上建立点到点连接所需的所有信息。

OSI七层模型的每一层都有哪些协议、PPPOE机制

OSI七层模型协议 谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO 提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考...... 第一层:物理层: 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi 令牌环网等。 第二层:数据链路层802.2、802.3ATM、HDLC、FRAME RELAY 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。 第三层:网络层IP、IPX、APPLETALK、ICMP 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。加密解密是在网络层完成的. 网络层协议的代表包括:IP、IPX、RIP、OSPF等。 第四层:传输层TCP、UDP、SPX 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。 第五层:会话层RPC、SQL、NFS 、X WINDOWS、ASP 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 第六层:表示层ASCII、PICT、TIFF、JPEG、MIDI、MPEG 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。 第七层:应用层HTTP,FTP,SNMP等 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

OSI七层模型的每一层都有哪些协议、PPPOE机制

OSI七层模型的每一层都有哪些协议 由低到高 谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO 提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考...... 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi 令牌环网等。 第一层:物理层 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。 第二层:数据链路层802.2、802.3A TM、HDLC、FRAME RELAY 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。 网络层协议的代表包括:IP、IPX、RIP、OSPF等。 第三层:网络层IP、IPX、APPLETALK、ICMP 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。 第四层:传输层TCP、UDP、SPX 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 第五层:会话层RPC、SQL、NFS 、X WINDOWS、ASP 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。 第六层:表示层ASCII、PICT、TIFF、JPEG、MIDI、MPEG 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

PPPOE协议详解-对报文进行了详细分析解释通俗易懂

华为技术有限公司版权所有侵权必究

目录(TOC Heading) 第1章概述 (1) 1.1 PPPOE协议的基本概念 (1) 1.1.1 PPPOE协议出现的背景 (1) 1.1.2 PPPOE协议简介 (1) 1.2总结 (2) 1.3思考 (2) 第2章 PPPOE的发现阶段 (1) 2.1 PPPOE的初始化过程 (1) 2.1.1以太网的帧格式 (1) 2.1.2 PPPOE的数据报文格式 (2) 2.1.3 PPPOE发现阶段的数据报文 (3) 2.1.3.1 PPPOE数据报文中Tag(标记)的格式 (3) 2.1.3.2 PADI(PPPOE Active Discovery Initiation)报文 (4) 2.1.3.3 PADO(PPPOE Active Discovery Offer)报文 (5) 2.1.3.4 PADR(PPPOE Active Discovery Request)报文 (6) 2.1.3.5 PADS(PPPOE Active Discovery Session-confirmation)报文 (7) 2.1.3.6 PADT(PPPOE Active Discovery Terminate)报文 (7) 2.2总结 (7) 2.3思考 (8) 第3章 PPPOE的会话阶段 (9) 3.1 PPPOE的会话过程 (9) 3.2总结 (9) 3.3思考 (9)

第1章概述 1.1 PPPOE协议的基本概念 1.1.1 PPPOE协议出现的背景 随着宽带网络技术的不断发展,以xDSL、CableModem和以太网为主的几种 主流宽带接入技术的应用已开展的如火如荼。同时又给各大网络运营商们带 来了种种困惑,无论使用哪种接入技术,对于他们而言可盼和可求的是如何 有效的管理用户,如何从网络的投资中收取回报,因此对于各种宽带接入技 术的收费的问题就变得更加敏感。在传统的以太网模型中,我们是不存在所 谓的用户计费的概念,要么用户能设置/获取IP地址上网,要么用户就无法上 网。IETF的工程师们在秉承窄带拨号上网的运营思路(使用NAS设备终结用 户的PPP数据包),制定出了在以太网上传送PPP数据包的协议(Point To Point Protocol Over Ethernet),这个协议出台后,各网络设备制造商也相继 推出自已品牌的宽带接入服务器(BAS),它不仅能支持PPPOE协议数据报 文的终结,而且还能支持其它许多协议。如华为公司的MA5200(小BAS) 和ISN8850(大BAS)。 1.1.2 PPPOE协议简介 PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访 问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种 标准。在这种网络模型中,我们不难看出所有用户的主机都需要能独立的初 始化自已的PPP协议栈,而且通过PPP协议本身所具有的一些特点,能实现 在广播式网络上对用户进行计费和管理。为了能在广播式的网络上建立、维 持各主机与访问集中器之间点对点的关系,那么就需要每个主机与访问集中 器之间能建立唯一的点到点的会话。 PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。在这篇培训教材 中更注重是PPPOE发现阶段的介绍,因为对于PPPOE的会话阶段,可以看 成和PPP的会话过程是一样的(可直接参照PPP协议培训教材),而两者的 主要区别在于只是在PPP的数据报文前封装了PPPOE的报文头。无论是哪 一个阶段的数据报文最终会被封装成以太网的帧进行传送。

PPPOE协议

PPPOE协议 modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。 PPPOE 的目标就是解决上述问题, 1998年后期问世的以太网上点对点协议(PPP over Ethernet)技术是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies 公司在IETF RFC 的基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。PPPOE特点 PPPOE在标准PPP报文的前面加上以太网的报头,使得PPPOE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机,在这个模型下,每个用户主机利用自身的ppp堆栈,用户使用熟悉的界面。接入控制,计费等都可以针对每个用户来进行。 PPPOE的优点: .?安裝与操作方式类似于以往的拨号网络模式,方便用戶使用。 .?用户处的XDSL 调制解调器无须任何配置。 .?允许多个用户共享一个高速数据接入链路。 .?适应小型企业和远程办公的要求。 .?终端用户可同时接入多个ISP,这种动态服务选择的功能可以使ISP容易创建和提供新的业务。 .?兼容现有所有的XDSL Modem 和DSLAM。 .?可与ISP 有接入结构相融合。 PPPOE的帧格式

详解PPP及PPPoE协议

详解PPP及PPPoE协议 PPP(Point-to-Point Protocol点到点协议),一种二层协议,通常部署在专线网和按需电路网上面,PPP有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。这些丰富的选项增强了PPP的功能。同时,不论是异步拨号线路还是路由器之间的同步链路均可使用。 因此,应用十分广泛 当然,在专线网上我们也可以使用HDLC二层协议,但用的并不多,原因有三: 1.不支持验证,一层通二层就通 2.不支持多种上层协议(ip/ipx/appletalk等),而PPP帧中专门有一个字段用来标示上层协议类型 3.HDLC协议为厂商私有协议,各个厂商互不兼容,但HDLC是cisco产品的默认广域网封装方式,要使用PPP协议需要encapsulation ppp 命令改变接口封装协议 我们家庭拨号上网就是通过PPP协议在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入已基本取代拔号接入,在宽带接入技术日新月异的今天,PPP 也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。 利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。 同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准 好的,下面我们就以点到点专线上的PPP协议和以太网上的PPPoE协议为例,详细介绍它们的工作原理、验证过程及其配置方法 一、点到点专线上的PPP协议 PPP特性有很多,但主要的特性是具备验证技术,所以在此我们主要是讨论PPP的验证。PPP的验证方式分为两种:PAP和CHAP PAP( 密码验证协议):客户端向服务器端发送验证信息,包含用户名和密码。如果用户名和密码与服务器里保存的一致,那就通过验证,否则就不能通过(通过两次握手)。 CHAP(挑战握手验证协议):CHAP首先是由服务器发起的,它向客户端发送含有random值(随机生成)、id号、用户名和密码的数据,客户端收到数据后提取random、id和用户所对应的密码使用MD5算法进行哈希(hash)得到hash值。然后再把自己保存的用户名连同id和刚得到的hash值一起发送给服务器。服务器再收到数据后也进行以上操作得到hash值,再把算得的hash值与从客户端得到的hash值进行比较:两值相同服务器就发送一个通过的信息;两值不同服务器就发送一个拒绝的信息。可以看出,CHAP在整个验证过程中是不发送密码的,所以是一种安全的认证。 好的,下面我们就以实例来演示PAP和CHAP的配置过程 1、实验拓朴 2、配置步骤 首先我们来做个PAP认证 1)基本配置: R1#conf t R1(config)#int s0 R1(config-if)#ip add 192.168.0.1 255.255.255.252 R1(config-if)#no shutdown R2#conf t R2(config)#int s0

PPPoE协议抓包分析

课程设计成绩评价表

成都信息工程学院 课程设计 课程名称:网络协议实践 设计题目:PPPoE协议数据包分析 班级:网络工程网络083班 学号:2008121093 姓名:白玉强 指导老师:刘云本提交日期:2011-12-17

摘要 网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外。其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。 网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。 一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。 在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。 物理层:以太网·调制解调器·电力线通信(PLC)·SONET/SDH·G.709·光导纤维·同轴电缆·双绞线等 数据链路层:Wi-Fi(IEEE802.11)·WiMAX(IEEE 802.16)·ARP·RARP·ATM·DTM·令牌环·以太网·FDDI·帧中继·GPRS·EVDO·HSPA·HDLC·PPP·L2TP·PPTP·ISDN·STP等 网络层协议:IP(IPv4·IPv6)·ICMP·ICMPv6·IGMP·IS-IS·IPsec等 传输层协议:TCP·UDP·TLS·DCCP·SCTP·RSVP·OSPF等 关键词:协议TCP

基于BAS的PPPoE协议实现

前面我们对PPPoE的基础内容进行了讲解。这里我们则重点讲解一下PPPoE协议在BAS上的实现。PPPoE拨号软件在应用中已经很成熟(Windows XP中自带),下面重点讨论PPPoE 在接入服务器BAS中的实现方式。 1 PPPoE协议的效率 从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,虽然有很好的安全性,但一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。 为此,在BAS的硬件结构上可以采用分布式网络处理器(NP)和ASIC芯片设计。网络处理器是专门针对电信网络设备而开发的专用处理器,它有一套专门的指令集,用于处理电信网络的各种协议和业务,可以大大提高设备的处理能力。同时,ASIC芯片转发数据包时接近硬件的转发性能,远非CPU软件方式可比,采用这种方式将PPPoE数据流的处理与转发分开,工作效率大大提高。此外在软件系统结构上还应该与其他技术相结合,更好地发挥PPPoE 的性能。 2 PPPoE与VLAN的结合 VLAN即虚拟局域网,是一种通过将局域网内的设备逻辑地划分成一个个不同的网段,从而实现虚拟工作组的技术。划分VLAN的目的,一是提高网络安全性,不同VLAN的数据不能自由交流,需要接受第三层的检验;二是隔离广播信息,划分VLAN后,广播域缩小,有利于改善网络性能,能够将广播风暴控制在一个VLAN内部。 PPPoE是一个客户端/服务器协议,客户端需要发送PADI包寻找BAS,因此它必须同BAS 在同一个广播式的二层网络内,与VLAN的结合很好地解决了这方面的安全隐患。此外通过将不同业务类型的用户分配到不同的VLAN处理,可以灵活地开展业务,加快处理流程,当然VLAN的规划必须在二层设备和BAS之间统一协调。 BAS收到上行的PPPoE包后,首先判别VLAN ID的所属类别,如果是普通的拨号用户,则确定是Discovery阶段还是会话阶段的数据包,并严格按照PPPoE协议处理。在会话阶段,根据不同的用户类型从不同的地址池中向用户分配IP地址,地址池由上层网管配置。如果是已经通过认证的用户的数据包,则根据该用户的服务类型处理,比如,如果是本地认证的拨号用户,且对方也申请有同样的功能,则直接由本地转发。 如果是专线用户,则不用经过PPPoE协议复杂的认证过程,直接根据用户的VLAN ID便可进入专线用户处理流程,接入速度大大提高。此外为了统一网管,在BAS与其他设备之间需要通信,这些数据包是内部数据包,也可根据VLAN ID来辨别。 对于下行数据,由于BAS负责分配和解析用户的IP,兼有网关的功能,它收到数据包的目的IP是用户的,因此以IP为索引查找用户的信息比根据MAC要方便得多,这一点与普通的交换机有所不同,具体过程跟上行处理差不多。 3 PPPoE对多业务选择的支持 多业务选择指的是用户通过一条终结到BAS的PPP连接来自主地选择后台网络运营商所提供的多种业务。之所以要支持多业务的选择,一方面是因为各种业务的具体实现在技术上的侧重点是不同的,对网络性能的要求也不尽相同,以前采取的固定分配的方式非常不便;另

PPPOE协议技术与标准-20020613-C

PPPOE协议技术与标准 华为技术有限公司 版权所有侵权必究

PPPOE协议技术与标准文档密级:内部公开 修订记录

PPPOE协议技术与标准文档密级:内部公开 目录 第1章概述 (1) 1.1 PPPOE协议的基本概念 (1) 1.1.1 PPPOE协议出现的背景 (1) 1.1.2 PPPOE协议简介 (1) 1.2 总结 (2) 1.3 思考 (2) 第2章 PPPOE的发现阶段 (3) 2.1 PPPOE的初始化过程 (3) 2.1.1 以太网的帧格式 (3) 2.1.2 PPPOE的数据报文格式 (4) 2.1.3 PPPOE发现阶段的数据报文 (5) 2.1.4 PPPOE数据报文中Tag(标记)的格式 (5) 2.1.5 PADI(PPPOE Active Discovery Initiation)报文 (7) 2.1.6 PADO(PPPOE Active Discovery Offer)报文 (8) 2.1.7 PADR(PPPOE Active Discovery Request)报文 (9) 2.1.8 PADS(PPPOE Active Discovery Session-confirmation)报文 (9) 2.1.9 PADT(PPPOE Active Discovery Terminate)报文 (10) 2.2 总结 (10) 2.3 思考 (10) 第3章 PPPOE的会话阶段 (11) 3.1 PPPOE的会话过程 (11) 3.2 总结 (11) 3.3 思考 (11)

PPPOE协议技术与标准文档密级:内部公开关键词: PPPOE 集中器PADR 摘要: PPPOE协议提供了在广播式的网络中多台主机连接到远端的访问集中器上的一种标准。本文主要介绍了PPPOE协议的报文结构以及PPPOE发现阶段的报文交互过程。 缩略语清单: 参考资料清单:

PPPoE协议的基本功能以及报文格式

PPPoE协议调研 by 00848223 刘盾 PPPoE是一种在以太网上进行PPP点对点拨号连接的协议。因为以太网属于专网,网络是直接连接的,不用拨号,所以物理层上的连接是没有问题的。但为了确保连接安全,并且只允许合法用户连接,所以采取了类似电话拨号方式的身份验证,此时所拨的不是电话号码,而是用户的账户,属于数据链路层的协议。 PPPoE虽然是目前应用最广的一种ADSL网络协议,但它不是随着ADSL技术的出现而出现的,它是在1998年才开发出来的,主要目的是为了解决公网IP地址不足的问题。所谓虚拟拨号是指用ADSL接入Internet时同样需要输入用户名与密码才能进行连接,与传统的模拟电话线路+MODEM、数字电话线路+ISDN Ta的接入方式不同,ADSL不是对具体的电话号码进行拨号,而是直接在局端以太网上进行身份验证。因为事实上在没有拨号前物理网络是连通的,只是通过相应账户的身份验证登录网络系统,所以称之为“虚拟拨号”。 PPPoE技术最早是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司“UUNET Technologies”公司,于1998年后期在IETF RFC基础上联合开发的。通过把最经济的以太局域网和点对点协议的可扩展性和管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠、熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过DSL、Cable MODEM或WLAN(无线局域网)等方式,提供支持多用户的宽带接入服务时更加简便易行。而在以前,在传统的以太网模型中,我们是不存在所谓的用户计费的概念,要么用户能获取IP 地址上网,要么用户就无法上网。IETF 的工程师们在秉承窄带拨号上网的运营思路的基础上,制定出了在以太网上传送PPP 数据包的协议——PPPoE。这个协议出台后,各网络设备制造商也相继推出自己品牌的宽带接入服务器(BAS),使得PPPoE这种灵活的ADSL接入方式迅速得到了广泛应用。 PPPoE利用以太网络的工作机制,将ADSL MODEM的10Base-T接口(因为目前ADSL的最高接入速率在10Mbps以内,无须更高速率端口)与内部以太网互联。ADSL的这种接入方式在 RFC1483文档中规定。在ADSL MODEM中采用的桥接封装方式对终端发出的PPP数据包进行封装后,通过连接两端的PVC(永久虚电路)在ADSL MODEM与中继传输网和数据交换 网(这些网之间通常是采用虚电路连接的)的宽带接入服务器之间建立连接,实现PPP的动态接入。组网方式很简单,大大降低了网络的复杂程度。 通过PPPoE协议,在一个共享的以太网上的多个主机可以通过一个或多个简单的桥接接入设备,与远程接入集中器进行多个PPP会话,这就是ADSL 应用最广的桥接接入模式,使用这种模型,每个主机使用它自己的PPP协议栈,并且为每个用户分配一个熟悉的用户接口。接入控制、计费和服务类型能够基于每用户,而不是每站点来处理。 PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个惟一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。 当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。 PPPoE协议会话的发现和会话两个阶段具体进程如下。 1.发现(Discovery)阶段 在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起惟一定义 PPPoE会话。这4个步骤如下。

相关文档