原始套接字-VPN到底是什么东西,有几个问题请教一下网络编程大神

问题描述

VPN到底是什么东西,有几个问题请教一下网络编程大神

1。有人说VPN能把系统的所有流量代理走,那么包不包括使用RAW Socket(原始套接字)发送的链路层数据帧呢?
2。VPN究竟是什么鬼?那PPTP协议是什么鬼?我能用原始套接字模拟PPTP连接吗,PPTP协议到底是什么协议,百度上有人说PPTP是第二层协议,那不就是链路层协议吗,还有人说PPTP基于TCP,我也是醉了。请问有没有关于VPN协议的书籍?

解决方案

vpn工作在ip层,RAW Socket的包不能保留,必须做修改,对于tcp udp则是透明的。
PPTP基于TCP是一种不规范的说法,PPTP基于IP,需要IPSec和GRE

解决方案二:

各种协议标准,请求注解都可以google到,但是除非你从头开始构造一个程序,否则看了也没用。
谢希仁的《计算机网络》和Andrew S. Tanenbaum的计算机网络看看,里面有粗略的介绍

解决方案三:

个人理解,VPN(虚拟专用网络)是由硬件(基础网络设施:网线、光纤、交换机、路由[协议]等)+【软件+协议】(这部分通常是由路由来实现的)组成的。
而PPTP(Point to Point Tunneling Protocol),即点对点隧道协议,只是用来实现VPN中数据安全传输的一种协议。
关于还有人说PPTP基于TCP,请参考:隧道协议
http://baike.baidu.com/view/3871504.htm

时间: 2024-12-30 08:13:59

原始套接字-VPN到底是什么东西,有几个问题请教一下网络编程大神的相关文章

Python中利用原始套接字进行网络编程的示例

  这篇文章主要介绍了Python中利用原始套接字进行网络编程的示例,使用sock_raw接受和发送数据包可以避开网络协议的诸多限制,需要的朋友可以参考下 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送. 使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层上的所有数据包,对各字段进行修改,而不受UDP和TC

一个基于原始套接字的嗅探器

嗅探器这个代码我去年的时候就已经写过了,这个学期并不是非常忙,顺手复习网络,就又尝试着写了一遍. 其实在写嗅探器的时候,最主要的还是要将网卡设置为混杂模式.在此基础之上,对抓到的数据包进行分析. 这个是我写出来的效果图,目前只是方便于查看,连菜单都没添加: 左面的界面显示的是主机和主机之间的链接信息,而右面则是选中主机信息之间的数据交互情况. 我觉得我这个嗅探器应该是个失败品,或者说,没能够真正的将网卡设置为混杂模式.因为可以看到,上面的源地址全部都是本地主机地址,我在下载视频文件的时候,每秒几

用原始套接字实现网络监听

1.引言 网络监听工具(sinff)是提供给网络管理员的一类管理工具.在以太网中(Ethernet),当网络上连接多台计算机时,某瞬间只能有一台计算机可以传送数据.以太网中,数据是以被称为帧的数据结构为单位进行交换的.通常,在计算机网络上交换的数据结构体的单位是数据包.而在以太网中则称为帧.这种数据包是由记录着数据包发送给对方所必需信息的报头部分和记录着发送信息的报文部分构成.报头部分包含接收端的地址.发送端的地址.数据校验码等信息. 在以太网上,帧(数据包)是被称为带碰撞检测的载波侦听多址访问

原始套接字发送自己封装的TCP/IP包,加线程后速度也上不去是什么原因

问题描述 原始套接字发送自己封装的TCP/IP包,加线程后速度也上不去是什么原因 情况是这样,我需要发送自己构造的数据包,将数据封在TCP包中,然后再封在IP包中,最后再发送出去 现在要尽可能达到最快的发送速度,我的方案是先创建一个字符串数组,用于存放已经构造好的数据包,然后程序运行时先把数据包构造好并保存在数组中,然后在启动发包的线程 我的带宽是1000M,当启动一个线程时,发包速度大约是170M,CPU占用率40%左右,但是加到10个进程时速度也就是190M,cpu 50%---60%,加到

socket-Android NDK如何获取原始套接字(Raw Socket)

问题描述 Android NDK如何获取原始套接字(Raw Socket) 这是我在学校的本科毕业设计.是要在安卓手机上实现Traceroute功能.我编写了C语言的tracetoute程序,已经在Linux平台上正确运行了,但是移植到Android平台上的时候,总是无法获取到原始套接字啊,int sockId = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP),sockid总是小于0.我的手机已经获取root权限了(su chmod777+一个刷过的安卓手机).

捕获-Linux 原始套接字发包问题

问题描述 Linux 原始套接字发包问题 用原始套接字 实现了 抓包 协议分析.举个例子现在想通过判断TCP 的数据部分 判断是否含有Host: www.baidu.com之类的 然后返回一个302重定向包 将其请求重定向到另外的一个URL上.但是 发送的包发送不出去 wireshark捕获到 很郁闷. 解决方案 用libpcap等开发包来做呢,提供了现成的 解决方案二: libpcap+libnet已经实现了,但是原始套接字的 还没搞顺溜....

代码-linux的xterm开启的终端里使用原始套接字发送数据包出错,求助

问题描述 linux的xterm开启的终端里使用原始套接字发送数据包出错,求助 xterm下原始套接字可以接收数据包,但是发送数据包时出错,怎么解决? 错误是[error 101]network is unreachable. 代码如下: proto = socket.getprotobyname('tcp') # only tcp sock = socket.socket( socket.AF_INET, socket.SOCK_RAW, proto ) packet_base = sock.

原始套接字 tcp-用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教

问题描述 用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教 我需要自己构建IP数据包,在IP选项部分添加一些数据,因此用原始套接字发送TCP数据包,但是发送成功了,另一台主机接收不到,用的2003系统,不知道哪位好心人能帮助下,万分感激,谢谢 解决方案 你这个问题说的比较笼统,你是用的无连接发送吧,发送成功了,但是主机没收到,可能:1.IP包或者TCP包创建的有问题2.发送过程中,数据有丢失3.服务器的程序,在接受数据的程序上存在一些问题 解决方法:1.在客户端断点检测,查看IP和T

数据在协议栈中的传递-用原始套接字截取数据链路层数据,那这包数还会在TCP/IP协议栈中传递吗

问题描述 用原始套接字截取数据链路层数据,那这包数还会在TCP/IP协议栈中传递吗 用原始套接字写了一个小程序,装在本机后,能够截取本机的发送/接收数据,想问一下,比如原始套接字程序在数据链路层截取到一个别人发给本机的数据,原始套接字程序截取到后,这包数还会向网络层上传,一步步再送到截取这包数的真正端口进程吗?会不会我一截取,该收到这包数的进程就收不到了呢? 解决方案 看你怎么截取的,一般是拦截,不影响数据包的发送. 解决方案二: 如果你不是通过驱动等,很可能你拿到的只是一份拷贝,所以数据还是继