摘要:通信专业互联网技术考试SOCKS64技术:SOCKS64技术是原有SOCKS协议IETFRFC1928的扩展,相当于IP层的代理。这种机制不需要修改DNS或者做地址映射,可用于多种环境,但是需要采用SOCKS代理服务器,并在客户端安装支持SOCKS代理的软件,对于用户来讲不是透明的。
8.5.2 SOCKS64技术
SOCKS64技术是原有SOCKS协议IETFRFC1928的扩展,相当于IP层的代理。这种机制不需要修改DNS或者做地址映射,可用于多种环境,但是需要采用SOCKS代理服务器,并在客户端安装支持SOCKS代理的软件,对于用户来讲不是透明的。其原理如图4-51所示,它增加了两个新的功能部件SOCKS Lib和Gateway,它们构成了网关机制。SOCKSLib是在客户机一端引人的,它位于应用层和Socket层之间,可以替代应用程序的SocketAPI和DNS域名解析API。在SOCKSLib中有一个DNS域名解析代表,它在源节点(客户机C)全权代表到中继服务器(网关G)的域名解析行为。Gateway是安装在IPv6和IPv4双栈网关上的一个增强型的SOCKS服务器,可以完成客户机C(IPvX)和目的地D之间的任何协议组合类型的中继。当SOCKSLib调用中继时,由父Gateway生成一个Gateway进程(线程)来负责中继连接。
在S0CKS5中规定,IPv4地址、IPv6地址和域名的全限定域名(FQDN)信息可以用在SOCKS协议格式的地址类型(ATYP域)。SOCKS64技术就是利用这一点,通过DNS域名解析代表将FQDN信息用在ATYP域中,从客户机C传到网关G来指出目的地D的位?Gateway应用层置。为此,SOCKS64技术也和BIA技术一样使用了IPv4中未使用的保留地址(称之为伪IP地址),并在SOCKSLib(客户机C处)中引人一个映射表来管理伪IP地址和FQDN之间的映射。
客户机C的IPvX使用SOCKS64技术通过双栈网关G的IPvX/IPvY与目的主机D的IPvY通信的过程如下:
源节点(客户机C)上的应用尽力通过调用DNS域名解析函数来获得目的节点(目的地D)的IP地址信息。这时,目的地D的逻辑主机名(即FQDN)信息作为被调用的AH的一个参数传递给应用的SOCK SLib。
FQDN信息被注册到SOCKSLib中的一个映射表内。SOCK SLib选择一个伪IP地址回复给应用。
应用利用收到的伪IP地址信息组织一个Socket,并将Socket用作AH的一个参数来调用Socket API启动通信,
由于SOCKSLib已经取代了这些SocketAPI,真正的Socket函数将不再调用,而是先检査Socket的IP地址信息。如果该地址是伪IP地址?则从映射表中获取与该伪IP地址相匹配的登记过的FQDN信息。通过与调用的SocketAPI相匹配的SOCKS命令(例如与connect对应的CONNECT命令),FQDN信息被传送到中继服务器(网关G)上的Gate way。
Gateway通过接收到的FQDN信息调用真正的DNS域名解析API从一个DNS处获得一个真IP地址,并利用真IP地址信息创建一个Socket。Gateway再将Socket用作API的一个参数来调用SocketAPI与目的地D通信。
编辑推荐:
通信工程师备考资料免费领取
去领取