PPP主要包括三个部分
1.    在串行链路上封装上层数据报文的方法
2.    LCP(link control protocals): 链路控制协议来配置和测试数据通信链路,协商PPP协议的配置参数。
3.    NCP(network control protocals): 根据不同的网络层协议可提供一簇网络控制协议(tcp/ip ipcp spx/ipx ipxcp)
 
 
PPP会话的建立
1.链路建立阶段: 进行LCP的相关协商,协商内容包括工作方式,认证方式,链路压缩等
2.认证阶段:如果配置了PPP认证(默认是不进行认证),支持chap和PAP。若认证失败,LCP状态转为down;认证成功,进入网络层协议阶段
3.网络层协议阶段:IP,IPX会通过各自的网络控制协议(IPCP , IPXCP)进行配置,相应网络层协议协商成功后(主要内容是双方IP),才通过这条PPP链路发送报文
 
 
PAP是一种两次握手认证协议,分主认证方和被认证方,认证可以是双方向的
1.被认证方发起认证请求,发送用户名和口令到主认证方
2.主认证方根据本端的用户表查看是否有此口令,以及密码(明文)是否正确
 
 
CHAP是三次握手认证协议,不发送口令,主认证方首先发起认证请求,安全性比PAP高。
1.主认证方发起认证请求(主认证方用户名,随机数据)
2.被认证方回复(被认证方用户名,随机报文与密码加密后的报文)
3.主认证方验证(接受/拒绝)
 
 
 
 
packet-switched: X.25  Frame-relay  ATM
 
circuit-switched: PPP  SLIP  HDLC
 
 
HDLC  标准HDLC:仅支持单协议环境
 Cisco HDLC:增加了私有位,可以支持多种协议ip apple talk ipx
 
 
Router(config)#interface serial 1/0
Router(config-if)#encapsulation HDLC
 
 
 
 
 
step1:封装
R1/R2(config)#interface serial 0
R3/R5(config-if)#encapsulation ppp
 
PPP认证
1.PAP认证(Password Authentication Protocol)
把用户名和密码发给对方,让对方判断认证信息
 
step2:建立帐号和密码
R3(config)#username R5 password R5       //R3为对方(R5)建立帐号和密码
R5(config)#username R3 password R3       //R5为对方(R3)建立帐号和密码
 
step3:把对方为自己建立的帐号和密码,发送给对方,让对方检查,是否正确
R3/R5(config)#interface serial 0
R3/R5(config)#ppp authentication pap
R3(config-if)#ppp pap sent-username R3 password R3
R5(config-if)#ppp pap sent-username R5 password R5
 
HDLC不支持认证,PAP认证有致命的缺点,认证是明文发送的
 【提示】显示串行接口时,常见以下几种状态:
Serial0/0/0 is up, line protocol is up
//链路正常
Serial0/0/0 is administratively down, line protocol is down
//没有打开该接口,执行“no shutdown”可以打开接口
Serial0/0/0 is up, line protocol is down
//物理层正常,数据链路层有问题,通常是没有配置时钟、两端封装不匹配、PPP 认证错误
Serial0/0/0 is down, line protocol is down
//物理层故障,通常是连线问题
 
 
实验调试
使用“debug ppp authentication”命令可以查看 ppp 认证过程。
R1#debug ppp authentication
PPP authentication debugging is on
//以上打开 ppp 认证调试
R1(config)#int s0/0/0
R1(config-if)#shutdown
R1(config-if)#no shutdown
//由于 PAP 认证是在链路建立后进行一次,把接口关闭重新打开以便观察认证过程

2.CHAP认证 (Challenge Handshake Authentication Protocol)
step1:封装
R1(config)#interface serial 1
R1(config)#interface serial 0
R1/R3(config-if)#encapsulation ppp
 
step2:为对端建立帐号和密码
R1(config)#username R3 password R-13
R3(config)#username R1 password R-13
注意:密码要完全一样!

Cisco的HDLC和其他厂商的HDLC不兼容

HDLC是同步串口的默认封装格式

PPP协议作用

能够控制数据链路的建立;
 能够对广域网的IP地址进行分配和管理;
 允许同时采用多种网络层路由协议;
 能够配置和测试数据链路;
 能够有效进行错误检测;

PPP 综述

PPP 可以通过 NCP 携带多个协议的数据包
PPP 可以通过 LCP 建立和控制连接

ppp验证协议:
1、PAP
 a、密码明文传输
 b、验证两端是同等的

2、CHAP

Configuring CHAP Example

注:
1、username是对端的hostname
2、password要一致

激活PAP或CHAP验证
注:
1、chap pap:表示在chap验证不通过时尝试进行pap验证
2、pap chap:表示在pap验证不通过时尝试进行chap验证

12、PPP和HDLC的更多相关文章

  1. 数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)

    目录 数据链路层协议 Ethernet以太网协议 以太网数据帧的封装 IEEE802.3协议 PPP协议 HDLC协议 数据链路层协议 首先Ethernet.IEEE802.3.PPP和HDLC都是数 ...

  2. 实验18:HDLC和PPP

    实验15-1:HDLC 和PPP 封装 Ø     实验目的通过本实验,读者可以掌握如下技能:(1) 串行链路上的封装概念(2) HDLC 封装(3) PPP 封装 Ø     实验拓扑 实验步骤n  ...

  3. ppp详解

    ppp   一   PPP     point to point protocol               数据链路层协议 PPP session establishment 1 link est ...

  4. ppp协议解析二

    转:http://blog.csdn.net/yangzheng_yz/article/details/11526747 PPP(Point to Point Protocol,点对点协议)协议是为在 ...

  5. TCP/IP基础知识

    TCP/IP基础知识 网络 TCP/IP 引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP ...

  6. IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习

    相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...

  7. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

  8. day2 网络基础

    网路基础 网络OSI模型七层: 物理层: 定义特性:机械,电器,功能,过程: 定义接口标准:双绞线,光纤,同轴电缆: 相关协议:无: 数据链路层: 定义帧的开始结束,封装成帧,差错校验,透明传输(防止 ...

  9. TCP/IP 基础简介

    引言本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容TCP/IP协议簇是由OSI七层模型发展而来的,之所以存在 ...

随机推荐

  1. 从桌面到 Web - 二十几天学 ASP.NETCore 1

    这么多年一直从事桌面开发,一直没有时间好好学学  web 开发.感觉自己就像从石器时代走来的古代类人猿.由于工作的调整,现在终于有时间学习一下 Web 开发.出于对技术和框架的熟悉和继承,决定还是学习 ...

  2. C#反射与特性(三):反射类型的成员

    目录 1,获取类型的信息 1.1 类型的基类和接口 1.2 获取属性.字段成员 上一篇文章中,介绍如何获取 Type 类型,Type 类型是反射的基础. 本篇文章中,将使用 Type 去获取成员信息, ...

  3. 2020了你还不会Java8新特性?(六)Stream源码剖析

    Stream流源码详解 节前小插曲 AutoCloseable接口: 通过一个例子 举例自动关闭流的实现. public interface BaseStream<T, S extends Ba ...

  4. docker+mysql 构建数据库的主从复制

    docker+mysql 构建数据库的主从复制 在最近的项目中,决定将项目改造成数据库读写分离的架构,后续会有博文详细讲述我的开发改造,本文主要记录我是如何一步步的构建数据库的主从复制. 为什么使用d ...

  5. 动态规划最短路径LintcodeNO110

    动态规划最短路径LintcodeNO110 简单的dp题,没啥好说的... class Solution { public: /** * @param grid: a list of lists of ...

  6. 快到极致的Android模拟器——Genymotion

    转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-)http://my.oschina.net/ryanhoo/blog/141824 还在用Androi ...

  7. 前端笔记7-js3

    1.方法: //创建一个对象var obj = {name:"孙悟空",age:18}; //对象的属性也可以是对象 obj.brother = {name:"猪八戒&q ...

  8. 2018南京现场赛K 随机输出

    题目链接:http://codeforces.com/gym/101981/attachments n和m太小,空地联通无环,总步数太大,直接随机输出5w个方向 #include<iostrea ...

  9. Spring Boot自动装配

    前言 一些朋友问我怎么读源码,这篇文章结合我看源码时候一些思路给大家聊聊,我主要从这三个方向出发: 确定目标,这个目标要是一个具体,不要一上来我要看懂Spring,这是不可能的,目标要这么来定,比如看 ...

  10. sqlalchemy 多线程 创建session

    1.基于threding.local,推荐使用 from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine ...