<转>sock代理服务原理(TCP穿透)】的更多相关文章

原文转自:http://www.cppblog.com/zuhd/archive/2010/06/08/117366.html sock代理分为sock4代理和 sock5代理.sock4支持TCP(事实仅支持TCP),无需用户名.密码验证:sock5支持TCP和UDP,根据代理服务器设置是否需要用户名.密码认证.TCP和UDP代理工作原理产不多,UDP代理网上多的是,google一下即可.这里只讲TCP代 理工作原理.sock代理工作原理大致如下:1.[需要代理方]向服务器发出请求信息:2.[…
目录 TCP穿透原理 程序思路 声明 上代码 运行示例 1. TCP穿透原理: 我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网.互联网上有一台服务器S.      现在AB是无法直接和对方发送信息的,AB都不知道对方在互联网上真正的IP和端口, AB所在的局域网的路由器只允许内部向外主动发送的信息通过.对于B直接发送给A的路由器的消息,路由会认为其“不被信任”而直接丢弃.      要实现 AB直接的通讯,就必须进行以下3步:A首先连接互联…
转自 http://blog.csdn.net/sjin_1314/article/details/18178329 原文:Characterization and Measurement of TCP Traversal through NATs and Firewalls 原作者:Saikat Guha Paul Francis [摘要]     近些年,标准化社区已经开发出一些UDP穿透NAT/防火墙的技术(也就是,在NAT之后的主机之间建立UDP流).然而,由于TCP连接建立的不对称特点…
第一章:企业DNS原理 相信大家都知道windows和linux的hosts文件是:IP地址和域名的对应关系,我们一般访问网站的步骤: 打开网页-----输入网址-------查看本地的DNS库是否存在该网站的域名与对应IP地址 接下有两种情况: •本地存在该网站域名对应的IP(hosts文件),然后我们直接根据本地缓存的DNS进行解析,并访问该域名对应的IP地址,在进行TCP的三次握手,进行与网站的连接,当然我们访问网站完毕之后,又进行了四次挥手断开 •本地hosts文件不存在该网站域名与IP…
在开发通信程序之前,都要先确定这些程序相互通信所使用的协议(protocol),在深入设计前,我们都需要先从高层次来判断通信由哪个程序发起以及相应在何时产生. 举例来说,一般认为web服务器是一个长时间运行的程序(即守护程序,daemon),它只响应来自网络的请求时才发送网络消息.大多数网络应用都是划分成客户端(client)和服务器(server)来组织的.往往是客户端发起请求,但也有复杂网络中需求异步回调(asynchronous callback)通信,也就是服务器向客户端发起请求. TC…
黏包 指数据混乱问题(发送端发送数据,接收端不知如何去接收) 只有tcp协议才会发送粘包,udp不会发生 黏包(tcp) 有一个合包机制(nagle算法),将多次连续发送且间隔较小的数据,进行打包成一块数据传送. 还有一个机制是拆包机制,在发送端, 因为受到网卡的MTU限制,会将大的超过MTU限制的数据,进行拆分,拆分成多个小的数据,进行传输.  当传输到目标主机的操作 系统层时,会重新将多个小的数据合并成原本的数据 tcp 黏包代码: 服务器 import socketsk = socket.…
UDP伪首部:计算校验和时会用到,然后实际传输过程中里包含的IP地址没有什么用. UDP校验和计算:求数值之和,如果溢出回卷,最后求出反码;UDP伪首部,UDP首部,应用层数据相加 tcp报文,最短20个字节 源端口号8位,目标端口8位 序号32位 确认序号32位 首部长度:可伸缩 保留字段: 标志位: URG=1时,紧急指针字段有效,会优先传送该字段. ACK=1时,确认序号字段,表示确认. PSH=1时,尽快将保温段中的数据交付接受应用进程,不要等缓存满了在交付. RST=1时,TCP连接严…
遮罩层滑动导致下面滑动 1,阻止弹层滑动,使用默认事件,使用这种方式弹层不能滑动 document.getElementById("model").addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 2,在Body,html使用overflow:hidden, 但是不能是的下面滑动 .fix { height: 100%; overflow: hidden; } 3,同时设置不会有问题…
前言:        最近我用java做了一个C/S的类似QQ之类的IM系统(即时通讯系统),遇到了不能跨局域网通讯的问题,经过在网上,和书上查阅了一些资料,了解了一些情况,现在就总结一下我的解决方案吧(本人也是在不断错误中学习,如果有什么不对的地方,请大家多多指教). 问题描述:          一般情况下,只能在同一个子网即同一个虚拟局网里通讯,或者子网访问外网,外网访问不了内网.因为虚拟局域网相对于外网都是透明的,所以外网是不能直接访问子网,举个例子:校园网里的学生信息管理系统(MIS)…
一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的).但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序的人员“谈穿透色变”.那么,使用TCP协议是不是就不能实现穿透呢?答案当然是否定的:TCP协议不仅能实现NAT穿透,而且实现起来比UD…