Point to Point Protocol (PPP)

 

Point to Point Protocol (PPP)

 


(RFC 1661)
Point to Point Protocol (PPP) protocol is utilized to establish a connection between 
your PC and your ISP (Internet Service Provider). PPP is used on two points-connection only
usually modem to modem. This protocol accomplishes a few main tasks:

Checks the condition of the phone line.
Checks your password.
Provides your computer with an IP address valid for the duration of connection.
Establishes the configuration of packets (packet size, compression, etc).
Acknowledge one part that the other is closing the connection.


PPP operates by sending Request packets and waiting for Acknowledge packets that either accept, reject
or try to change the request.

Various protocols are utilized to accomplish different tasks which together form the PPP.

Link Control Protocol (LCP) checks among other things the condition of the line by sending a
large (4 byte-hex) randomly chosen number (Magic Number) which needs to be returned by the
receiving part.

Password Authentication Protocol (PAP) or Challenged Authentication Protocol (CHAP) checks the
password either sent in clear (PAP) or encrypted (CHAP).

Internet Protocol Control Protocol (IPCP) is utilized to assign an IP address to the PC, to
determine if compression will be used and to setup the configuration of the packets
encapsulated within PPP frames.
PPP PACKET FORMAT
 (example):

The fields are transmitted from left to right.

+----------+----------+----------+----------+---------------+----------+----------
| Flag | Address | Control | Protocol | Information | FCS | Flag |
| 0x7E | 0xFF | 0x03 | 16 bits | * | 16 bits | 0x7E |
+----------+----------+----------+----------+---------------+----------+----------

Here is a typical example of a PPP packet:

7E FF 7D 23 C0 21 7D 21 7D 22 7D 20 7D 38 7D 21 7D 24 7D 25 DC 7D 22 7D 26 7D 20 7D 20
7D 20 7D 20 7D 25 7D 26 29 23 BE 84 7D 27 7D 22 7D 28 7D 22 DF 7D 30 7E

Packet content:

Start 7E
Address FF 03 FF 7D 23
Protocol (LCP) C0 21
Code (CONFREQ) 01 7D 21
Id 01 7D 21
Length 00 18 7D 20 7D 38
Type, Length, MRU 01 04 05 DC 7D 21 7D 24 7D 25 DC
Type, Length, ACCM 02 06 00 00 00 00 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20
Type, Length, MAGIC 05 06 29 23 BE 84 7D 25 7D 26 29 23 BE 84
Type, Length, PFC 07 02 7D 27 7D 22
Type, Length, ACFC 08 02 7D 28 7D 22
FCS DF 10 DF 7D 30
Stop 7E

7E is the flag sequence.
7D is the escape sequence (any octet that follows is added 0x20).

 

FCS CALCULATION




FCS (Frame Check Sequence)is calculated over the entire PPP packet, not including
the start and stop flags (0x7E). For a transmitted packet the calculation is performed
prior to the addition of the 0x7D escape sequences to the octets lower then 0x20.
For a received packet the calculation is performed after eliminating the 0x7D escape
sequences and subtracting 0x20 from the octets marked by the escape sequences.

In the example code,
u16 buff[] is an array containing all octets in the packet with the
FCS octets made equal to zero.
u16 fcs_start is the position of the first octet in the packet
u16 fcs_stop is the position of the last octet in the packet

/*
**************************** fcs_calc *********************
Function: fcs_calc
Description: frame check sequence (fcs) calculation.
**************************************************************
*/
typedef unsigned short u16

u16 short fcs_calc(u16 fcs_start, u16 fcs_stop, u16 buff[])
{
#define P 0x8408
#define fcsinit 0xFFFF

static u16 fcstab[256];
u16 fcs;
u16 b, v;
u16 i;
u16 MSB_fcs, LSB_fcs;

for (b=0; ; ){
v = b;
for (i = 8; i--; )
v = v & 1 ? (v >> 1) ^ P : v >> 1;
fcstab[b] = v & 0xFFFF;
if (++b == 256)
break;
}

fcs = fcsinit;
for (i=fcs_start; i<fcs_stop; i++)
fcs = (fcs >> 8) ^ fcstab[(fcs ^ buff[i]) & 0xFF];
fcs ^= 0xFFFF;

LSB_fcs = ((fcs >> 8) & 0xFF);
MSB_fcs = fcs & 0xFF;

return(MSB_fcs, LSB_fcs);
}
### 回答1: 你好,我是 ChatGPT。Point-to-point protocolPPP)是一种用于在计算机之间建立网络连接的协议。PPP 最初是为串行点对点连接而设计的,但现在也用于其他类型的连接,如调制解调器到因特网服务提供商(ISP)的连接。 PPP 使用了一系列的控制协议来建立、维护和终止连接。其中包括链路控制协议(LCP),它允许两个节点协商并建立连接,以及网络控制协议(NCP),它允许节点在连接上进行数据交换。 在 PPP 中,数据通过封装在 PPP 帧中来传输。PPP 帧包括帧开始和结束标记、地址字段、控制字段、协议字段和数据字段。PPP 还支持加密和压缩等功能,以提高数据传输的安全性和效率。 希望这可以回答你的问题。如果你还有其他问题,请随时问我。 ### 回答2: 点对点协议(Point-to-point protocol,简称PPP)是一种计算机网络通信协议,用于在不同的节点之间建立可靠的数据通信。PPP协议主要用于串行链路(如电话线或光纤)上的点对点通信,可实现数据的可靠传输和错误检测。 PPP协议具有以下主要特点: 1. 建立和维护连接:PPP协议能够在各节点之间建立连接,并通过认证和身份验证来确保数据传输的安全性。同时,它支持断线重连和链路状态的监测,确保通信的稳定性。 2. 多种身份验证方式:PPP协议支持多种身份验证方式,如密码验证、令牌卡验证、数字证书验证等。这样可以确保只有经过身份验证的设备才能建立连接,提高通信的安全性。 3. 数据压缩和加密:PPP协议支持数据的压缩和加密,可以通过压缩算法减少数据传输的带宽占用,提高传输效率。同时,数据也可以通过加密算法进行加密,确保数据的机密性。 4. 错误检测和重传:PPP协议具有强大的错误检测和重传机制,能够实时监测数据传输过程中的错误,丢弃错误数据包并要求重传。这样可以确保数据的可靠性和完整性。 5. 支持多种网络层协议:PPP协议可以与多种网络层协议(如IP、IPX等)配合使用,为不同的网络提供统一的数据传输接口,使得不同网络之间的通信更加简单和灵活。 总之,点对点协议(PPP)是一种可靠的通信协议,通过建立连接、身份验证、数据压缩和加密、错误检测和重传等功能,实现了在不同节点之间的可靠数据传输。它在现代计算机网络中得到广泛的应用。 ### 回答3: Point-to-Point Protocol(点对点协议或PPP)是一种在计算机网络中常用的通信协议。PPP主要用于在两个网络节点之间进行数据的传输和通信。 PPP协议被设计用于在数字电话线、光纤线、同轴电缆等传输介质上进行通信。它提供了一种可靠的数据链路层通信方式,并支持多种网络层协议(如IP、IPX等)。 PPP协议的主要特点如下: 1. 可靠性:PPP通过使用校验和、重传等机制确保数据的可靠传输。当发生数据传输错误时,它可以重发丢失或损坏的数据,从而确保数据的完整性。 2. 认证和授权:PPP支持多种认证和授权协议,如PAP(密码认证协议)和CHAP(挑战-应答认证协议)。这些协议用于验证用户的身份和授权用户的网络访问权限。 3. 多链路支持:PPP允许在一条物理链路上建立多个逻辑链路,每个逻辑链路可以使用不同的网络层协议。这种特性使得多个网络层协议可以共享同一物理连接。 4. 兼容性:PPP协议可以在各种平台上使用,例如计算机、路由器、调制解调器等。 在PPP协议中,数据传输通过PPP帧进行。PPP帧由起始字符、地址字段、控制字段、协议字段、数据字段、校验字段和结束字符组成。地址字段用于识别帧的接收方,控制字段用于控制帧的传输,协议字段用于指示网络层协议的类型,数据字段用于承载传输的数据,校验字段用于校验数据的完整性,结束字符标识帧的末尾。 总而言之,PPP协议是一种可靠、灵活且可扩展的通信协议,广泛应用于计算机网络领域,为不同的网络节点之间提供高效的数据传输和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值