PPPoE拨号流程(转载)

​​​​​​PPPoE拨号流程_曾梦想仗剑走天涯-CSDN博客_pppoe拨号

4.Linux中的PPPoE拨号守护进程(pppd:Point-to-Point Protocol Daemon)

Linux 内核 include/uapi/linux/if_pppox.h

中定义了

{PADI_CODE,PADO_CODE,PADR_CODE,PADS_CODE,PADT_CODE}

struct pppoe_tag/pppoe_hdr;

PPP/PPPoE 实现代码在 /drivers/net/ppp/ 目录下,pppoe.c 中实现了 pppoe_connect、pppoe_xmit、pppoe_recvmsg 等接口。

pppd 是一个后台服务进程(daemon),是一个用户空间的进程,所以把策略性的内容从内核的PPP协议处理模块移到 pppd 中是很自然的事了。pppd 实现了所有鉴权、压缩/解压和加密/解密等扩展功能的控制协议。

pppd只是一个普通的用户进程,它如何扩展PPP协议呢?这就是pppd与内核中的PPP协议处理模块之间约定了,它们之间采用了最传统的内核空间与用户空间之间通信方式:设备文件。

设备文件名是 /dev/ppp。通过read系统调用,pppd可以读取PPP协议处理模块的数据包,当然,PPP协议处理模块只会把应该由pppd处理的数据包发给pppd。通过write系统调用,pppd可以把要发送的数据包传递给PPP协议处理模块。通过ioctrl系统调用,pppd可以设置PPP协议的参数,可以建立/关闭连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值