基于Socket 技术负荷分担通信系统仿真设计.docVIP

基于Socket 技术负荷分担通信系统仿真设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Socket 技术负荷分担通信系统仿真设计

基于Socket 技术负荷分担通信系统仿真设计   摘要:无线通信技术的快速发展可以说是一场新的革命。该文设计了一套考虑负荷分担的通信系统仿真,用来模拟无线通信时的负荷分担情况,该设计采用有三个节点的分配规则算法,进程间采用Socket通信及规定协议,通过Windows可执行文件来模拟进程,用C语言加以实现,并测试通信时运行良好。   关键词:无线通信;负荷分担;Socket通信   中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)28-6278-06   通信技术与计算机结合,已成为集无线、有线传输、数字程控交换和各类新型终端为一体的高效能综合通信手段。   在通信网中,除了传递具体业务信息外,还在通信设备之间传递一些控制信号,而信令网就是传输这些控制信号的网络。信令网的安全措施中,广泛地使用了把信令业务分配给各信令链的负荷分担技术。通常,在通信网中负荷分担使用以下两种方式:同一信令链路组内各信令链路间的负荷分担,用于两个信令点(包括综合型信令转接点)采用直联工作方式的信令链路之间;不同信令链路组间的信令链路的负荷分担,用于一个信令点连接两个信令转接点和信令转接点间不同信令链路组之间采用准直联工作方式。目前信令链路的费用较低,为了提高信令链路的可靠性,应尽可能不采用不同链路组间的信令链路负荷分担方式。   本文设计了一套考虑负荷分担的通信系统仿真,用来模拟无线通信时的负荷分担情况。   1 Socket通信   1.1套接字(Socket)基本概念   套接字是进行程序间通信的一种方法,同时是通信的基石。套接字是支持TCP/IP协议的网络通信的基本操作单元,可以将套接字看作不同主机之间的进程来进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般线程通过套接字通信而引进的一种抽象的概念。套接字通常和同一个域中的套接字进行数据交换。各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。   1.2 Socket通信原理   Socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输、接收的信息都通过这个Socket接口来实现。在应用开发中就像使用文件句柄一样,可以对Socket句柄进行读、写操作。同时,Socket可以看作网络通信的一个端点,网络通信包括两台主机或两个进程,通过网络传递数据。网络对话的每一端称为一个端点。当使用Socket接口对网络通信编程时,Socket是网络通信过程中端点的抽象表示。为了通过Socket接口进行网络通信,程序在网络对话的每一端都需要一个Socket。   本文采用流式Socket(SOCK_STREAM)通信方式:在这种方式下,两个通讯的应用程序之间先要建立一种虚拟的连接,提供可靠的、面向连接的通信流,从而保证数据传输的正确性和有序性。   2 负荷分担通信系统仿真平台的设计   2.1 系统总体设计   系统整体包括总控端、负荷端和测试端三大部分。如图1所示,该系统用来模拟实现总控端的负荷分配和负荷端的数据处理。为了分担总控节点的处理负担,系统中适当增加一些负荷节点来分担总控节点的处理任务,总控节点除了记录当前接入用户总数、负荷节点的处理用户数等一些基本操作外,其完全可以将所有权利下放,起到一个合理分配任务的作用。负荷节点由总控节点进行支配,与总控节点充分协作,完成所需功能。而用户通过测试端进行用户接入、释放等自定义测试,也可以通过测试端进行测试用例的整体测试。重点就是要测试总控节点是否合理分配了任务,以及总控节点和负荷节点的协调性是否合理,一致(包括总控节点和负荷节点数据是否同步)。   系统中传送的消息结构体有两类,具体如下所示:   1) typedef struct users   {   char bussy ;//用于标示监听端发送到客户端的数据开始   int userID;//保存用户ID   int PINodeID;//保存负荷节点号   int PINodeP;//用于保存节点端口号   char cmd;//传送的命令   int PINodeUsers;//节点上的用户数目   } USER, *pUSER;   users结构体是主要消息载体,用于用户与总控节点,总控节点与负荷节点的消息传送等操作。   2) typedef struct PINode_inf   {   char flag;//消息开始标标识   int user_num;//节点上当前用户总数   int userID[MAX_ID];//节点上用户信息,节点上每一个用户

文档评论(0)

erterye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档