刘晓天
(盐城工业职业技术学院 江苏 盐城 224005)
基于TCP协议的网络应用设计与开发
刘晓天
(盐城工业职业技术学院 江苏 盐城 224005)
进入互联网信息时代以后,基于TCP/IP协议的网络应用不断增加,且在各个领域都得到了广泛普及及高速发展。本文希望利用基于TCP/IP协议所提供的Socket套接字编程接口来构建一套远程网络控制系统,主要分析它的控制端与被控制端设计开发流程。
TCP协议;网络应用;远程网络控制系统;Socket编程;控制端;设计
目前的远程控制系统一般都基于TCP/IP协议,面向对象技术实施编程,而在网络通信部分则多采用面向连接的传输协议,通过控制端与被控制端来实现对网络连接的主动请求。在这里,控制端与被控制端是基于自定义协议命令来完成通信过程的。它不但能实现控制端与被控制端之间的协议命令有效转化和发送,也能让被控制端则通过解析协议命令来执行相关操作,实现远程控制目的。
远程网络控制系统是目前比较先进的网络应用技术体系,它涉及诸多技术领域环节,例如TCP/IP网络协议、远程控制网络B/S、C/S体系结构以及Socket基本套接字函数调用技术等等。下文将对这些技术理论作出简单解析。
TCP/IP协议(Transmission Control Protocol/Internet Protocol)即传输控制协议/因特网互联协议。它们也是目前网络协议中的基础,其中TCP负责传输层协议,IP负责网络层协议,它们也是架构远程网络控制系统的关键。TCP/IP协议主要包含了网络层、传输层、链路层以及应用层。以TCP协议为例,它能为远程网络控制系统提供可靠且面向多元化连接的传输控制协议,为数据传输建立先期逻辑联系,再展开数据传输工作,最后释放连接。换言之,TCP所提供的是面向连接的高安全属性的全双工通信字节流服务。
远程控制网络体系与Internet互联网实现对控制端、被控制端双方的同步监控。它主要基于互联网通信能力来将服务器端的数据传输到被控制端,而客户端也能从通信网络上获取来自于被控制端的数据信息反馈,这就构成了远程控制的互动循环结构。
在这套互动循环结构中,存在C/S服务器模式与B/S浏览器模式,它们都以Web技术作为基础,可以实现对远程控制网络功能的有效改善。例如C/S(Client/Server)模式就基于服务端及客户端结构展开,它能够将任务合理分配到客户端及服务端,降低系统通讯支出成本。而B/S体系结构则分为功能层、数据层和表现层3层,它们都要通过Web浏览器来实现网络数据交互及浏览请求,同时也能够对数据库中的数据进行查询与修改。
Socket编程套接字在网络中主要运用API接口构成流式套接字、数据报套接字以及原始套接字3种模式,它们都能实现无连接通信方式、双线数据传输以及网络监听。在Socket编程的基本套接字技术中,还存在对套接字函数的调用。它所遵循的是固定的通信过程,主要基于数据报套接字来展开规范有序通信流程,它先为客户端及服务端分别构建一套套接字,然后创建商议端口,利用bind()函数实施绑定,再调用accpet()函数来进入监听状态,而客户端方面则主要通过connect ()函数来实现对服务端的连接请求。如此一来,客户端与服务端两方面就能够运用recv()函数与send()函数来实现数据发送接收,架构远程通信控制网络体系[1]。
基于TCP协议的远程网络控制系统在设计目标上遵循远程目标计算机实时监控原则,并围绕实时监控展开一系列操作,其中控制端相对于被控制端是隐蔽的,控制全程都不会在目标机器上显性存在。基于这一系统设计开发的特殊性,本文将主要介绍它的系统体系结构、功能、以及控制端与被控制端的主要设计方案。
实质上,基于TCP协议的远程网络控制系统就是一个以木马技术为核心的双向控制端,即客户控制端与服务器被控制端的结合。前者由计算机主系统运行,后者则由目标计算机展开。而整个系统架构是围绕C/S系统结构展开工作模式的。为了确保控制端与被控制端的安全稳定通信,本文所架构的远程网络控制体系环境要满足以下两种情况。
第一,控制端与被控制端二者在该体系结构中一定要拥有相互独立的IP地址。
第二,其中被控制端所依附的是独立外网IP,它主要通过NAT转换来实现控制端、被控制端双方的相互访问,形成局域网结构。
依据上两种情况来看,传统C/S架构的木马软件在远程控制中所能发挥的作用不大,尤其是对网络架构内部控制力不足。所以应该采用反弹连接方法,以被控制端主动向控制端发出连接请求,进而躲避防火墙的拦截。它基于木马原理来设计,其中控制端向被控制端发送操作命令,被控制端则解析处理命令,并把处理结果反馈给控制端,这样就形成远程控制系统中的互动连接[2]。
在TCP协议下的网络远程网络控制系统,它的运作目标就是通过躲避防火墙拦截来实现对被控制端设备的常规化运行,与此同时第一时间接收来自于被控制端所发送来的所有指令。如果从系统功能角度来分析,这其中就包括控制端口号设置、反向连接反馈、文件管理、开关机等等操作。以反弹连接为例,它对系统结构要求恰好与C/S结构相反,这里将服务器设置在控制端,基于监听设备来创建端口,这样做就能同时接收到控制端与被控制端两方面的通信连接请求,最终促成信息通信交互循环,实现对防火墙拦截的有效规避。
3.1.1 控制端功能概述
控制端可以实现对多个远程被控制端设备的同时控制,所以它所采用的工作机制是多线程的,而且消息处理机制也相当完善。它主要能实现以下5大功能:其一,第一时间处理能力与多控制端衔接能力;其二,对被控制端所请求消息进行处理;其三,本地文件读写功能;其四,能够随时查看被控制端信息的交互功能;其五,拥有人性化、智能化的UI界面。
3.1.2 控制端具体设计方案
控制端的具体设计方案是依据C/S体系和木马原理特点共同完成的,同时也加入了反弹连接技术。其工作流程就是控制通过对端口进行监听进而来实现对被控制端所发送连接请求的控制,与被控制端形成有效的通信连接。按照控制端的功能来看,它主要由3个模块共同组成:TCP连接模块、文件读写模块以及消息解析模块。就以TCP连接模块设计为例,它的功能是负责对服务端信息的初始化处理及端口监听工作,同时它也能建立多项连接发送和接收一切来自于控制端与被控制端的消息。它的具体设计方案流程总共分6步骤完成。
步骤一:调用WSAStartup()函数对系统模块进行初始化处理。
步骤二:调用Socket()创建流式套接字程序,并返回接字号。
步骤三:调用bind()函数使套接字能够与本地地址簇结构实现关联。
步骤四:调用listen()函数确保套接字状态能够转入监听模式,以准备建立连接。
步骤五:调用accept()函数来接收和建立连接,在获得连接请求方许可以后接收套接字信息。
步骤六:最后调用closesocket()函数与WSACleanup()函数来实施资源释放,然后结束整个设计流程。
3.1.3 控制端的应用设计实现
控制端应用设计实现主要基于通信协议完成,换言之,就是通信各方实体或服务在事前约定的通信规则环境下,实现计算机与网络连接的一切标准,在达成通信协议的基础上完成通信过程。还以TCP连接模块为例,它的控制端要对被控制端上下线进行时刻监听,这里采用到了多线程技术,实际就是为系统创建一个基于远程线程的可利用函数CreateThread,它的函数原型为:
LPVOIFD 1pParameter.
DWORD dwCreationFlags.
LPDWORD 1pThreadId);
在上述函数原型中,1pThreadAttributes作为一个重要的指向型安全指针出现,它基于NULL指数默认特性为安全。而参数dwStackSize则作为初始栈出现,将其设置为0。基于上述参数,再设置对话框初始函数OnInitDialog,配合代码实现远程监听线程函数创建:
HANDLEhThread=CreateThread(NULL,0,ServerThread,NULL,0,NULL)。
CloseHandle(hThread)
在上述线程函数中,ServerThread就作为监听函数出现,它主要基于Socket函数来创建监听用套接字,并在系统所制定的套接字通信范围内进行Internet域的建立,配合SOCK_STTEAM流式套接字类型来兑现TCP协议,并调用bind函数实现与本地地址簇的相互绑定。以下为它的部分设计代码:
Listen(m_socket,5);
SOCKET sock;
While(TRUE){sock=accept(pclientdlg-〉m_socket,(SOCKADDR*)&addrclient,&len);}
在上述的ServerThread函数中,利用while循环来兑现多用户上下线监听功能,即实现对基于TCP协议的远程网络通信控制系统的建立。
3.2.1 被控制端功能概述
在远程网络控制系统中,被控端主要用于执行命令,实现与控制端之间的文件传输。为了保护信息数据安全,被控制端的隐蔽性往往较强,它拥有自启动、自动连接、关闭被控端PC、抓屏、隐藏等功能。
3.2.2 被控制端具体设计方案
在本设计中将被控制端理解为一个通过定时器不断向控制端发出连接请求的设备,在控制端验证通过后,两端才能建立通信连接。在这里存在实现两端相互交流的通信协议解析命令,在调用相应处理函数基础上,实现对被控制端的设计流程:
对控制端建立Socket连接→连接控制端与被控制端→调用recv()接收控制端消息→解析消息同时调用相关处理函数→选择是否下线。
在整个设计流程中,TCP连接模块辅助控制端构建Socket套接字编程接口连接,连接控制端之间的信息数据沟通与文件传输等远程互动工作,并有针对性的解析出来自于被控制端消息模块所传送的控制命令,最后再调用相应功能模块进行功能反馈,完成与控制端之间的相互信息转换[3]。
本文基于TCP协议实现了对远程网络控制系统的构建,分别解析了它的控制端与被控制端具体功能与设计流程,达到了两端双向的访问协助功能效果。可以说,远程控制系统高效且便捷,已经越来越被人们所重视,它的技术力也将在未来的研究与进化中得到充实,被更多领域所广泛应用。
[1]华蕊.一种基于无线传感器网络应用的轻便TCP/IP协议栈设计[D].北京交通大学,2011:14-23.
[2]雒海东.基于TCP/TP协议下的网络通信的应用开发[J].青海电力,2007,26(3): 60-63.
[3]李丙林.基于TCP/IP协议的远程控制系统的研究[D].长春工业大学,2005:21-39.
TP3-0
A
2095-7327(2017)-08-0157-02
课题项目:江苏省现代教育技术研究2015年度课题(2015-R-41328)。
刘晓天(1981.7—),女,汉族,江苏滨海人,本科学历,盐城工业职业技术学院讲师,主要从事模式识别、计算机网络研究。