TCPIP路由穿透方案设计.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

TCPIP路由穿透方案设计

摘要:分析Sever/Client方式在实际应用中的重要的作用,使其在p2p发展

迅速的网络应用中依然有一席之地;通过服务器以多线程管理客户端通信的方式

稳定,高效,并且提供了单一或者多方备份与加密的可行性方案;Sever/Client

穿透防火墙,路由的方式适用面广,信息传递准确性高,提高了连接效率和安全

性.

关键词:Sever/Client;P2P;TCP;UDP;穿透;多线程

前言

随着P2P与NAT技术的日益发展与成熟,P2P网络在应用领域获得了巨大的

成功,然而传统的Sever/Client的互联方式依然有着重要的实际应用作用――企业

的远程财务管理,企业的可调控视频会议,学校课程预约,手机短信息定向发送

等等方面的工作从应用角度考虑更合适Sever/Client方式互联.

Sever/Client网络应用程序的设计都需要考虑路由穿透的问题,而基于

UDP,TCP两种通讯都可以完成穿透工作,本文重点讨论TCP/IP穿透路由的技术

方案.

一.概述

对于目标用户来说,管理服务总是可见的,它有一个固定的公网IP,目标用

户可以通过

手动”登陆”或者后台工作等方式主动访问管理服务器,建立一个TCP/IP连接.

利用这种方式目标用户可以在自己的终端—计算机,手机等等客户端绕过防火

墙,穿过路由器与管理服务器建立一条稳定可靠的”通道”只至,有一方动取消连接

为止.

利用这些”通道”管理服务器可以,记录并管理这些目标用户的网络地址,并把

即时消息,服务器指令,目标用户之间的通讯消息,目标用户的网络地址发给所有

或者指定的目标用户,从而实现目标用户与管理服务器之这间的防火墙,路由穿透,

目标用户之间的防火墙,路由目标穿透,达到无障碍阻通讯的目的.

二.目标用户客户端的设计

目标用户客户端的设计总方向为简化数据管理,加强数据处理,丰富人机交

互.

C++,VC++中已经封装好的套接字CAsyncSocket,CSOCKET对于网络通讯

编程来说,使用简单,然而效率和控制却不及原始套接字SOCKET.下面就以

SOCKET为例说明客户端的设计方案。

对于套接字的阻塞通信方式,客户端可以启动一个线程来完成对服务器

端口的监听接收和发送工作,在VC++中可以封装为一个网络收发线程类来使

用,这样做可以保证网络数据的安全与正确,同时还兼顾到数据的实时性,方便

扩展。

网络线程类主要工作分为四个部分:

1.将各模块对服务器请求指令打包处理

主要将请求内容封装为网络数据,即在TCP/IP数据包的基础上对数据进行

二次封装,便于程序处理。分为包头,包内容,包结束。包头一般包括长度,日

期,类型等内容;包内容则是请求数据;包结束通常包含数据包的结束标志,或

者数据是否分包发送,此为第几包等等内容。

2.发送对服务器的请求

将封装好的数据包根据类型,调用不同函数发送至服务器——根据程序内容

也可以

调用同一函数发送。

3.监听接收服务器数据

采用阻塞式通信套接字,线程监听与服务器通信的端口,实时接收数据内容。

4.将接收到服务器的数据分类发送至处理模块

根据数据包的类型,将数据包内容分门别类,取出数据包内容后通过消息机

制发送给不同的数据处理模块进行工作。

目标用户客户端之间通讯时可以采用服务转发与直接通讯两种方式,前者更

加方便实现管理记录功能但加重了管理服务器的工作负担;后者效率更高却比较

难以管理记录,各有长短,设计者可以根据具体情况进行设计.

在目标客户端之间进行直接连接时,可以使用UDP连接,然而由于网关会动

态改变UDP的端口映射,即使采用心跳数据包的方式也并不稳定,所以这种方案

并不理想.

使用TCP连接由管理服务器中转发双方的IP地址,采用管理服务器伪造数据

报,实现目标用户双手三次握手并连接的等方法.

三.管理服务器的设计

管理服务器的设计设计思路为采用多线程点

文档评论(0)

177****7939 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档