- 9
- 0
- 约4.09千字
- 约 5页
- 2015-08-23 发布于河南
- 举报
ppp/pppd/chat关系及数据收发流程
参考: /absurd 李先静xianjimli at hotmail dot com
一、 协议相关介绍
PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
链路控制协议LCP(Link Control Protocol);
网络控制协议NCP(Network Control Protocol);
认证协议:口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。
LCP协商,协商内容包括除RFC1661中所定义的选项之外,还要考虑PPPOA和PPPOE协议中规定的内容。
LCP协商过后就到了Establish阶段,开始PAP或CHAP认证。PAP为两次握手认证,口令为明文。PAP认证过程如下:发送用户名同口令到认证方,认证方查看是否有此用户,口令是否正确,然后发送相应的响应。CHAP为三次握手认证,口令为密文(密钥)CHAP认证由认证方发送一些随机产生的报文,交给被认证,被认证方用自己的口令字用MD5算法进行加密,传回密文,认证方用自己保存的口令字及随机报文用MD5算法加密,比较二者的密文,根据比较结果返回响应的响应。
认证成功即进行Network阶段协商(NCP),在IP接入中主要是IPCP协商(如IP地址和DNS地址的协商等)。任何阶段的协商失败都将导致链路的拆除。
协商成功,则链路建立成功,可以开始传输网络层数据报文。
PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)
二、应用关系
IP协议等网络层 TCP/IP
PPP协议(PPPD协助) PPP
以太网和串口等物理层 串口
pppd是一个后台服务进程(daemon),是一个用户空间的进程,所以把策略性的内容从内核的PPP协议处理模块移到pppd中是很自然的事了。pppd实现了所有鉴权、压缩/解压和加密/解密等扩展功能的控制协议。
pppd是一个普通的用户进程,pppd与内核中的PPP协议处理模块之间采用最传统的内核空间与用户空间之间通信方式:设备文件;设备文件名是/dev /ppp。通过read系统调用,pppd可以读取PPP协议处理模块的数据包,当然,PPP协议处理模块只会把应该由pppd处理的数据包发给 pppd。通过write系统调用,pppd可以把要发送的数据包传递给PPP协议处理模块。通过ioctrl系统调用,pppd可以设置PPP协议的参数,可以建立/关闭连接。
在pppd 里,每种协议实现都在独立的C文件中,它们通常要实现protent接口,该接口主要用于处理数据包,和fsm_callbacks接口,该接口主要用于状态机的状态切换。数据包的接收是由main.c: get_input统一处理的,然后根据协议类型分发到具体的协议实现上。而数据包的发送则是协议实现者根据需要调用output函数完成的。
chat是pppd所带一个辅助工具。chat用来与GSM模组建立会话。它的实现比较简单,它向串口发送AT命令,建立与GSM模组的会话,以便让PPP协议可以在串口上传输数据包。
三、数据收发流程
应用程序通过socket 接口发送TCP/IP数据包,这些TCP/IP数据包如何流经PPP协议处理模块,然后通过串口发送出去呢?pppd在make_ppp_unit函数中调用ioctrl(PPPIOCNEWUNIT)创建一个网络接口(如ppp0),内核中的PPP协议模块在处理PPPIOCNEWUNIT时,调用 register_netdev向内核注册ppp的网络接口,该网络接口的传输函数指向ppp_start_xmit。
当应用程序发送数据时,内核根据IP 地址和路由表,找到ppp网络接口,然后调用ppp_start_xmit函数,此时控制就转移到PPP协议处理模块了。ppp_start_xmit调用函数ppp_xmit_process去发送队列中的所有数据包,ppp_xmit_process又调用ppp_send_frame去发送单个数据包,ppp_send_frame根据设置,调用压缩等扩展处理之后,又经ppp_pus
您可能关注的文档
- OSI与TCP IP的比较.doc
- OSPF Area & LSA详解.doc
- ospf百科.doc
- OSPF单区域.doc
- OSPF单区域基本配置.doc
- OSPF单区域原理.ppt
- OSPF数据结构详细介绍.doc
- OSPF协议基本命令的配置.doc
- OSPF协议入门.doc
- OSPF协议原理培训胶片-20060711-B.ppt
- 高中英语写作教学中培养学生语篇意识与语用能力的策略研究论文.docx
- 学校心理健康咨询服务满意度调查与高中生心理成长路径研究论文.docx
- 基于大数据的初中古诗词教学效果分析与优化论文.docx
- 初中英语语法教学中的合作学习与竞争学习策略研究论文.docx
- 高中数学资优生导师制培养模式下的差异化教学研究论文.docx
- 小学劳动教育评价体系对学生劳动价值观形成的影响研究论文.docx
- 初中生艺术展览体验与美术教学效果评估体系构建论文.docx
- 小学数学探究式学习在数学建模与实际问题解决中的应用研究论文.docx
- 初中语文古诗词背诵中的情感体验与教学策略研究论文.docx
- 中小学生心理健康教育与心理健康教育评价研究论文.docx
最近下载
- 初中英语衡水体作文范文10篇.pdf VIP
- 基层工会预决算填报操作手册(2024.02).pdf
- 品胜加盟条件要领.pdf VIP
- 2026年党支部在改作风树新风等“对照5个方面”存在的问题及整改措施普通党员对照检查材料(五个对照)2篇例文.docx VIP
- 建筑公司员工手册(完整版).docx VIP
- 外研新交际英语(2024)新教材小学一年级英语下册Unit 1 课时3教学设计.docx VIP
- (正式版)DB12∕T 1361-2024 《地热尾水回灌技术规程》.pdf VIP
- 2026年教科版三年级科学下册(全册)教学设计(附教材目录).pdf VIP
- GB_T 25849-2024 移动式升降工作平台 设计、计算、安全要求和试验方法.pdf VIP
- 安全生产监管培训课件.pptx VIP
原创力文档

文档评论(0)