openvpn原理如下:
来源:互联网 发布:韩语输入法软件 编辑:程序博客网 时间:2024/06/12 18:55
openvpn原理如下:1openvpn驱动部分实现了网卡处理和字符设备。网卡处理网络数据,字符设备完成与应用层的数据交互。2使用openvpn必须修改路由表工作过程 发送数据:1应用程序发送网络数据2网络数据根据修改后的路由表把数据路由到虚拟网卡3虚拟网卡把数据放到数据队列中4字符设备从数据队列中取数据,然后送给应用层5应用层把数据转发给物理网卡6物理网卡发送数据接收过程:1物理网卡接受到数据,并传到应用空间2应用守护程序通过字符设备,把数据传给驱动网卡3数据通过虚拟网卡重新进入网络堆栈4网络堆栈把数据传给上层真实的应用程序。基本上所有的VPN都是这么实现的:1. 更改路由表,通过应用程序调用API函数更改和添加路由表。将数据包都先发送到虚拟网卡。2. 虚拟网卡得到数据包,先判断该数据包是什么类型的数据包。因为本身是一个物理的虚拟网卡,它必须去处理ARP,DHCP等一些数据包,用于欺骗上层网络,否则该网卡将不能工作,这一点比IMD的驱动要麻烦一些。3. 虚拟网卡判断得到的数据包是普通的Tcp和Udp数据包后,将该数据包压入一个堆栈。该堆栈是一个和应用程序(通常这个应用程序被称为守护程序)共享的内存块。然后驱动Set一个Event。上层应用程序Wait这个Event。并从这个堆栈中取得这个数据包。4. 上层应用程序得到这个数据包后,修改修改这个数据包的内容,然后建立一个Socket把该数据包重新封装成TCP或者UDP包后从物理网卡发送到Vpn的服务器上,由服务器再进行处理。转发到最终的目的IP。假设我们要打开一个IE,那么数据包的路线如下所示。ie-vnic-vpn client-tcp/udp-vpn网关-route-web服务器 接收的时候正好相反。
0 0
- openvpn原理如下:
- openvpn原理
- OpenVPN的工作原理
- OpenVPN的工作原理
- OpenVPN的工作原理
- OpenVPN的工作原理
- vpn原理-pptp,l2tp,openvpn
- sslvpn及openvpn实现原理
- OpenVPN
- OpenVPN
- openVPN
- openVPN
- OpenVpn
- OpenVPN
- openvpn
- openvpn
- OpenVPN Reliability-layer的原理与实现
- OpenVPN 原理与实战文章汇总
- Android学习探索之本地原生渲染 LaTeX数据公式
- struts2错误:The Struts dispatcher cannot be found
- IDAPython类库---idaapi.py的源码
- install_apk.py【转发】
- Struts2校验文件配置步骤
- openvpn原理如下:
- Struts2文件校验报错:Document is invalid: no grammar found.
- Django 小坑 系列 (持续更新中)
- ASP.NET Core MVC 源码学习:Routing 路由
- struts-dojo-tags datetimepicker标签无法正常显示问题 解决方案
- DWR安装配置
- DWRUtil未定义解决办法
- 解读Laravel,看PHP如何实现Facade?
- jQuery中remove()、empty()、detach()的区别