代理服务

代理服务
(1) 代理服务原理

代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。

当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。

机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。
 
例如,用http代理上网。

过程是

机器和代理服务器建立TCP连接。
机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。
我们需要解析第一个GET包。
现在来看几种代理方式。
http (get)
http (connect)
ftp (user
user@host:port)
ftp (user
user@host port)
ftp (open host)
ftp (site host)
ftp (site
user@host)
socks5
socks4
这些代理方式都有一个特点。就是在连接时,都会先和代理服务器连接,发出请求,一般为 command url,command就是get,connect,user 等。http和ftp都一样,可以通过关键字来识别。而且url是明文。Socks有些特别。它不是明文的,而是十六进制数据。要获得IP地址,还要经过转换。

(2) 目前的代理服务技术

代理服务技术是在一台PC机上安装一套代理软件,主要用于用户对Internet资源的访问。

ICS即Internet连接共享(Internet Connection Sharing)的英文简称,是Windows系统针对家庭网络或小型的Intranet网络提供的一种Internet连接共享服务。它实际上相当于一种网络地址转换器,所谓网络地址转换器就是当数据包向前传递的过程中,可以转换数据包中的IP地址和TCP/UCP端口等地址信息。有了网络地址转换器,家庭网络或小型的办公网络中的电脑就可以使用私有地址,并且通过网络地址转换器将私有地址转换成ISP分配的单一的公用IP地址从而实现对Internet的连接。ICS方式也称之为Internet转换连接。
软件:Wingate,、Winproxy
NAT即网络地址转换(Network Address Translator),从广义上讲,ICS也是使用了一种NAT技术,不过我们这里讨论的NAT是指将运行Windows 2000 Server的计算机作为IP路由器,通过它在局域网和Internet主机间转发数据包从而实现Internet的共享。NAT方式也称之为Internet的路由连接。网络地址转换NAT通过将专用内部地址转换为公共外部地址,对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP 地址,从而减少了IP 地址注册的费用。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
软件:WinRoute、Sygate

(3) 代理数据变代
 
非透明代理:
 
上网主机向代理提交TCP连接请求:源ip(上网主机)目标ip(代理服务器)
00000000: 45 00 01 9E 64 CE 40 00 80 06 17 C0 C0 A8 FD 91 E...d.@.........
00000010: C0 A8 FD E8 12 47 04 38 FB 32 8B 56 7E 55 57 EA .....G.8.2.V~UW.
00000020: 50 18 44 70 1B EC 00 00 47 45 54 20 68 74 74 70 P.Dp....GET http
00000030: 3A 2F 2F 77 77 77 2E 63 63 74 76 2E 63 6F 6D 2E ://www.haozs.net.
00000040: 63 6E 2F 20 48 54 54 50 2F 31 2E 30 0D 0A 41 63 cn/ HTTP/1.0..Ac
00000050: 63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 66 2C cept: image/gif,
00000060: 20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D 61 70 image/x-xbitmap
00000070: 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 69 6D , image/jpeg, im
00000080: 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69 age/pjpeg, appli
00000090: 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D 65 78 cation/vnd.ms-ex
000000a0: 63 65 6C 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E cel, application
000000b0: 2F 76 6E 64 2E 6D 73 2D 70 6F 77 65 72 70 6F 69 /vnd.ms-powerpoi
000000c0: 6E 74 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F nt, application/
000000d0: 6D 73 77 6F 72 64 2C 20 61 70 70 6C 69 63 61 74 msword, applicat
000000e0: 69 6F 6E 2F 78 2D 73 68 6F 63 6B 77 61 76 65 2D ion/x-shockwave-
000000f0: 66 6C 61 73 68 2C 20 2A 2F 2A 0D 0A 41 63 63 65 flash, */*..Acce
00000100: 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 2D pt-Language: zh-
00000110: 63 6E 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 cn..User-Agent:
00000120: 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D Mozilla/4.0 (com
00000130: 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 36 2E patible; MSIE 6.
00000140: 30 3B 20 57 69 6E 64 6F 77 73 20 4E 54 20 35 2E 0; Windows NT 5.
00000150: 32 3B 20 2E 4E 45 54 20 43 4C 52 20 31 2E 31 2E 2; .NET CLR 1.1.
00000160: 34 33 32 32 29 0D 0A 48 6F 73 74 3A 20 77 77 77 4322)..Host: www
00000170: 2E 63 63 74 76 2E 63 6F 6D 2E 63 6E 0D 0A 50 72 .haozs.ne..Pr
00000180: 6F 78 79 2D 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 oxy-Connection:
00000190: 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 0D 0A FD 00 Keep-Alive......

代理服务器转换后的数据:源IP(代理服务器)  目IP(网站IP)
00000000: 45 00 01 88 5D 4E 40 00 80 06 19 55 C0 A8 FD E8 E...][email protected]....
00000010: CA 6C F9 CE 06 AC 00 50 7E 57 F3 C7 E1 41 2F 21 .l.....P~W...A/!
00000020: 50 18 44 70 F9 DF 00 00 47 45 54 20 2F 20 48 54 P.Dp....GET / HT
00000030: 54 50 2F 31 2E 30 0D 0A 41 63 63 65 70 74 3A 20 TP/1.0..Accept:
00000040: 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image
00000050: 2F 78 2D 78 62 69 74 6D 61 70 2C 20 69 6D 61 67 /x-xbitmap, imag
00000060: 65 2F 6A 70 65 67 2C 20 69 6D 61 67 65 2F 70 6A e/jpeg, image/pj
00000070: 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E peg, application
00000080: 2F 76 6E 64 2E 6D 73 2D 65 78 63 65 6C 2C 20 61 /vnd.ms-excel, a
00000090: 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D pplication/vnd.m
000000a0: 73 2D 70 6F 77 65 72 70 6F 69 6E 74 2C 20 61 70 s-powerpoint, ap
000000b0: 70 6C 69 63 61 74 69 6F 6E 2F 6D 73 77 6F 72 64 plication/msword
000000c0: 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D , application/x-
000000d0: 73 68 6F 63 6B 77 61 76 65 2D 66 6C 61 73 68 2C shockwave-flash,
000000e0: 20 2A 2F 2A 0D 0A 41 63 63 65 70 74 2D 4C 61 6E */*..Accept-Lan
000000f0: 67 75 61 67 65 3A 20 7A 68 2D 63 6E 0D 0A 55 73 guage: zh-cn..Us
00000100: 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C er-Agent: Mozill
00000110: 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C a/4.0 (compatibl
00000120: 65 3B 20 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E e; MSIE 6.0; Win
00000130: 64 6F 77 73 20 4E 54 20 35 2E 32 3B 20 2E 4E 45 dows NT 5.2; .NE
00000140: 54 20 43 4C 52 20 31 2E 31 2E 34 33 32 32 29 0D T CLR 1.1.4322).
00000150: 0A 48 6F 73 74 3A 20 77 77 77 2E 63 63 74 76 2E .Host: cctv.
00000160: 63 6F 6D 2E 63 6E 0D 0A 50 72 6F 78 79 2D 43 6F com.cn..Proxy-Co
00000170: 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 nnection: Keep-A
00000180: 6C 69 76 65 0D 0A 0D 0A FD 00 00 00 00 00 00 00 live............

 通过非透明代理上网,上网主机向代理提交连接请求。在请求包里,包含了真正目标的URL,通过代理转交。

ftp代理

代理服务器是明文
..]ZY...][email protected][email protected]@...yr.........i.I6u[.....P....l..USER
[email protected]...

http代理

http代理是明文
..]ZY...][email protected][email protected].*[email protected]
http://www.haozs.net/ HTTP/1.0..Accept: */*..Accept-Language: zh-cn..Accept-Encoding: gzip, deflate..User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)..Host: mp3.yzu.edu.cn..Proxy-Connection: Keep-Alive..Pragma: no-cache..Cookie: ASPSESSIONIDQQCDACCS=CLCLPECCDCEKIGEOKFAFNDAG......-.....0......

socks5代理

socks5代理都不是明文,是数据。
202.204.8.10:21
CA CC 08 0A 00 15
如果使用的是域名,就是明文
..]ZY...][email protected]..>[email protected]%p:.P...;........vod.sjtu.edu.cn.....
qq http代理
当qq上线的时候会和腾迅的服务器联系
..]ZY...][email protected]@...m*...........8]...3.j.P....6..CONNECT 218.18.95.165:443 HTTP/1.1..Accept: */*..Content-Type: text/html..Proxy-Connection: Keep-Alive..Content-length: 0................

qq socks5代理

当qq使用socks5代理的时候,不是明文,是数据
CA 60 AA A5
202.96.170.165:8000

(4) VLAN工作原理的研究
VLAN(Virtual Local Area Network)就是虚拟局域网的意思。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在一个支持VLAN的交换机端口上并属于一个VLAN。同一个VLAN中的成员都共享广播,形成一个广播域,而不同VLAN之间广播信息是相互隔离的。这样,将整个网络分割成多个不同的广播域(VLAN)。一般来说,如果一个VLAN里面的工作站发送一个广播,那么这个VLAN里面所有的工作站都接收到这个广播,但是交换机不会将广播发送至其他VLAN上的任何一个端口。如果要将广播发送到其它的VLAN端口,就要用到三层交换机。
一、socks4/socks5代理
SOCKS 5协议详解   

  笔者在实际学习中,由于在有些软件用到了socks5(如oicq,icq等),对其原理不
甚了解,相信很多朋友对其也不是很了解,于是仔细研读了一下rfc1928,觉得有必要
译出来供大家参考。

1.介绍:

  防火墙的使用,有效的隔离了机构的内部网络和外部网络,这种类型的Internet
架构变得越来越流行。这些防火墙系统大都充当着网络之间的应用层网关的角色,通
常提供经过控制的Telnet,FTP,和SMTP访问。为了推动全球信息的交流,更多的新的应
用层协议的推出。这就有必要提供一个总的架构使这些协议能够更明显和更安全的穿
过防火墙。也就有必要在实际上为它们穿过防火墙提供一个更强的认证机制。这种需
要源于客户机-服务器联系在不同组织网络之间的实现,而这种联系需要被控制和是很
大程度上被认证的。
  该协议被描述为用来提供在TCP和UDP域下为客户机-服务器应用程序便利和安全的
穿过防火墙的一个架构。该协议在概念上被描述为一个介于应用层和传输层之间的"隔
离层",但是这类服务并不提供网络层网关服务,如ICMP报文的传输。

2.现状:

  SOCKS 4为基于TCP的客户机-服务器应用程序提供了一种不安全的穿越防火墙的机
制,包括TELNET,FTP和当前最流行的信息发现协议如HTTP,WAIS和GOPHER.
  新协议为了包括UDP扩展了SOCKS 4,为了包括对总体上更强的认证机制的支持扩
展了协议架构,为了包括域名和IPv6地址的支持扩展了地址集。
  SOCKS协议执行最具代表性的是包括了在SOCKS库中利用适当的封装程序来对基于
TCP的客户程序进行重编译和重链结。

注意:
  除非特别提及,封装在包格式中的十进制数表示的是通讯域的长度(用八位组
octect表示)。一个给定的八位组必须具有指定的值,格式X'hh'被用来表示在该域中
单个八位组的值。当单词"变量Variable"被使用时,它指出了通讯域拥有一个可变长
度,这个可变长度要么由一个联合的(一个或两个八位组)长度域定义,要么由一个数
据类型域所定义。

3.基于TCP客户机的程序

  当一台基于TCP的客户机希望和目标主机建立连接时,而这台目标主机只有经过防
火墙才能到达(这种情况?一直持续到?它被执行时),它就必须在SOCKS服务器端的适
当的SOCKS端口打开一个TCP连结。SOCKS服务按常例来说定位于TCP端口1080。如果连
接请求成功,客户机为即将使用的认证方式进行一种协商,对所选的方式进行认证,
然后发送一个转发请求。SOCKS服务器对该请求进行评估,并且决定是否建立所请求转
发的连接。
  客户机连接到服务器,发送一个版本标识/方法选择报文:

  +----+----------+----------+
  |VER | NMETHODS | METHODS |
  +----+----------+----------+
  | 1 |   1  | 1 to 255 |
  +----+----------+----------+

  VER(版本)在这个协议版本中被设置为X'05'。NMETHODS(方法选择)中包含在
METHODS(方法)中出现的方法标识八位组的数目。
  服务器从METHODS给出的方法中选出一种,发送一个METHOD selection(方法选择
)报文:

  +----+--------+
  |VER | METHOD |
  +----+--------+
  | 1 |  1  |
  +----+--------+

  如果所选择的METHOD的值是X'FF',则客户机所列出的方法是没有可以被接受的,
客户机就必须关闭连接。

当前被定义的METHOD的值有:
  >> X'00' 无验证需求
  >> X'01' 通用安全服务应用程序接口(GSSAPI)
  >> X'02' 用户名/密码(USERNAME/PASSWORD)
  >> X'03' 至 X'7F' IANA 分配(IANA ASSIGNED)
  >> X'80' 至 X'FE' 私人方法保留(RESERVED FOR PRIVATE METHODS)
  >> X'FF' 无可接受方法(NO ACCEPTABLE METHODS)
***IANA是负责全球INTERNET上的IP地址进行编号分配的机构(译者著)***
  于是客户机和服务器进入方法细节的子商议。方法选择子商议另外描述于独立的
文档中。
  欲得到该协议新的METHOD支持的开发者可以和IANA联系以求得到METHOD号。已分
配号码的文档需要参考METHOD号码的当前列表和它们的通讯协议。
  如果想顺利的执行则必须支持GSSAPI和支持用户名/密码(USERNAME/PASSWORD)认
证方法。

4.需求

  一旦方法选择子商议结束,客户机就发送请求细节。如果商议方法包括了完整性
检查的目的和/或机密性封装,则请求必然被封在方法选择的封装中。

SOCKS请求如下表所示:

  +----+-----+-------+------+----------+----------+
  |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
  +----+-----+-------+------+----------+----------+
  | 1 |  1 | X'00' |  1 | Variable |   2  |
  +----+-----+-------+------+----------+----------+

其中:
o VER protocol version:X'05'
o CMD
 o CONNECT X'01'
 o BIND X'02'
 o UDP ASSOCIATE X'03'
o RSV RESERVED
o ATYP address type of following address
 o IP V4 address: X'01'
 o DOMAINNAME: X'03'
 o IP V6 address: X'04'
o DST.ADDR desired destination address
o DST.PORT desired destination port in network octet order

5.地址

  在地址域(DST.ADDR,BND.ADDR)中,ATYP域详细说明了包含在该域内部的地址类型

    o X'01'

  该地址是IPv4地址,长4个八位组。
    o X'03'

  该地址包含一个完全的域名。第一个八位组包含了后面名称的八位组的数目,没
有中止的空八位组。
    o X'04'

  该地址是IPv6地址,长16个八位组。

6.回应

  到SOCKS服务器的连接一经建立,客户机即发送SOCKS请求信息,并且完成认证商
议。服务器评估请求,返回一个回应如下表所示:


  +----+-----+-------+------+----------+----------+
  |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT |
  +----+-----+-------+------+----------+----------+
  | 1 | 1 | X'00' | 1  | Variable |   2  |
  +----+-----+-------+------+----------+----------+

其中:

o VER protocol version: X'05'
o REP Reply field:
  o X'00' succeeded
  o X'01' general SOCKS server failure
  o X'02' connection not allowed by ruleset
  o X'03' Network unreachable
  o X'04' Host unreachable
  o X'05' Connection refused
  o X'06' TTL expired
  o X'07' Command not supported
  o X'08' Address type not supported
  o X'09' to X'FF' unassigned
o RSV RESERVED
o ATYP address type of following address
  o IP V4 address: X'01'
  o DOMAINNAME: X'03'
  o IP V6 address: X'04'
o BND.ADDR server bound address
o BND.PORT server bound port in network octet order
标志RESERVED(RSV)的地方必须设置为X'00'。

  如果被选中的方法包括有认证目的封装,完整性和/或机密性的检查,则回应就被
封装在方法选择的封装套中。

CONNECT

  在CONNECT的回应中,BND.PORT包括了服务器分配的连接到目标主机的端口号,同
时BND.ADDR包含了关联的IP地址。此处所提供的BND.ADDR通常情况不同于客户机连接
到SOCKS服务器所用的IP地址,因为这些服务器提供的经常都是多址的(muti-homed)。
都期望SOCKS主机能使用DST.ADDR和DST.PORT,连接请求评估中的客户端源地址和端口

BIND

  BIND请求被用在那些需要客户机接受到服务器连接的协议中。FTP就是一个众所周
知的例子,它通过使用命令和状态报告建立最基本的客户机-服务器连接,按照需要使
用服务器-客户端连接来传输数据。(例如:ls,get,put)
都期望在使用应用协议的客户端在使用CONNECT建立首次连接之后仅仅使用BIND请求建
立第二次连接。都期望SOCKS主机在评估BIND请求时能够使用DST.ADDR和DST.PORT。
  有两次应答都是在BIND操作期间从SOCKS服务器发送到客户端的。第一次是发送在
服务器创建和绑定一个新的socket之后。BIND.PORT域包含了SOCKS主机分配和侦听一
个接入连接的端口号。BND.ADDR域包含了关联的IP地址。  客户端具有代表性的是
使用这些信息来通报应用程序连接到指定地址的服务器。第二次应答只是发生在预期
的接入连接成功或者失败之后。在第二次应答中,BND.PORT和BND.ADDR域包含了欲连
接主机的地址和端口号。

UDP ASSOCIATE(连接?)

  UDP 连接请求用来建立一个在UDP延迟过程中操作UDP数据报的连接。DST.ADDR和
DST.PORT域包含了客户机期望在这个连接上用来发送UDP数据报的地址和端口。服务器
可以利用该信息来限制至这个连接的访问。如果客户端在UDP连接时不持有信息,则客
户端必须使用一个全零的端口号和地址。

  当一个含有UDP连接请求到达的TCP连接中断时,UDP连接中断。

  在UDP连接请求的回应中,BND.PORT和BND.ADDR域指明了客户端需要被发送UDP请
求消息的端口号/地址。

回应过程

  当一个回应(REP值非X'00')指明失败时,SOCKS主机必须在发送后马上中断该TCP
连接。该过程时间必须为在侦测到引起失败的原因后不超过10秒。
  如果回应代码(REP值为X'00')时,则标志成功,请求或是BIND或是CONNECT,客户
机现在就可以传送数据了。如果所选择的认证方法支持完整性、认证机制和/或机密性
的封装,则数据被方法选择封装包来进行封装。类似,当数据从客户机到达SOCKS主机
时,主机必须使用恰当的认证方法来封装数据。

7.基于UDP客户机的程序

  一个基于UDP的客户端必须使用在BND.PORT中指出的UDP端口来发送数据报到UDP延
迟服务器,而该过程是作为对UDP连接请求的回应而进行的。如果所选择的认证方法提
供认证机制、完整性、和/或机密性,则数据报必须使用恰当的封装套给予封装。每一
个UDP数据报携带一个UDP请求的报头(header):

  +----+------+------+----------+----------+----------+
  |RSV | FRAG | ATYP | DST.ADDR | DST.PORT |  DATA |
  +----+------+------+----------+----------+----------+
  | 2 |  1 |  1 | Variable |  2   | Variable |
  +----+------+------+----------+----------+----------+

UDP请求报头是:

o RSV Reserved X'0000'
o FRAG Current fragment number
o ATYP address type of following addresses:
  o IP V4 address: X'01'
  o DOMAINNAME: X'03'
  o IP V6 address: X'04'
o DST.ADDR desired destination address
o DST.PORT desired destination port
o DATA user data

  当一个UDP延迟服务器决定延迟一个UDP数据报时,它会按兵不动,对客户机无任
何通报。类似的,它会将它不能或不打算延迟的数据报Drop?掉。当一个UDP延迟服务
器接收到一个来自远程主机的延迟数据报,它必须使用上面的UDP请求报头来封装该数
据报,和任何认证方法选择的封装。

  一个UDP延迟服务器必须从SOCKS服务器获得所期望的客户机的IP地址,而该客户
机要发送数据报到BND.PORT--在至UDP连接的回应中已经给出。UDP延迟服务器还必须
drop掉除了特定连接中的一条记录之外的其它的所有源IP地址。

  FRAG域指出了数据报是否为大量的数据片(flagments)中的一片。如果标明了,高
序(high-order)位说明是序列的结束段,而值为X'00'则说明该数据报是独立的。值介
于1-127之间片断位于数据片序列中间。每一个接收端都有一个和这些数据片相关的重
组队列表(REASSEMBLY QUEUE)和一个重组时间表(REASSEMBLY TIMER)。重组队列必须
被再次初始化并且相关联的数据片必须被丢掉,而无论该重组时间表是否过期,或者
一个新的携带FRAG域的数据报到达,并且FRAG域的值要小于正在进行的数据片序列中
的FRAG域的最大值。且重组时间表必须不少于5秒。无论如何最好避免应用程序直接与
数据片接触(?)。
  数据片的执行是可选的,一个不支持数据片的执行必须drop掉任何除了FRAG域值
为X'00'了数据报。

  一个利用SOCKS的UDP程序接口必须预设有效的缓冲区来装载数据报,并且系统提
供的实际缓冲区的空间要比数据报大:

o if ATYP is X'01' - 10+method_dependent octets smaller

o if ATYP is X'03' - 262+method_dependent octets smaller
o if ATYP is X'04' - 20+method_dependent octets smaller

8.安全考虑

  该文档描述了一个应用层的用于穿越IP网络防火墙的协议。这种穿越的安全性是
高度依赖于正规的认证和正规执行方法提供的有效封装,以及在SOCKS客户端和SOCKS
服务端所选择的安全性,还有管理员对认证方法选项所作的小心周密的考虑。

9.参考文献
[1] Koblas, D., "SOCKS", Proceedings: 1992 Usenix Security Symposium.
[2] rfc1928说明:
http://www.cnpaf.net/rfc/rfc1928.txt

二、https/http代理
机器和代理服务器建立TCP连接。
机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。

三、实例代码
这个实例包含了https与socks代理实现,具体详见:
http://www.codeproject.com/KB/IP/casyncproxysocket.aspx

参考资料:
中国协议分析网:
http://www.cnpaf.net/Class/RFC/200411/1051.html

你可能感兴趣的:(网络编程)