数据通信软件开发与基本原理分析论文

时间:2020-11-23 15:41:07 通信工程毕业论文 我要投稿

数据通信软件开发与基本原理分析论文

  摘要::在现有局域网技术中,以太网是最通用的通信协议标准。伴随着以太网技术和标准的不断发展与完善,其可以为用户提供更多更好的的数据通信业务。本设计对以太网的发展现状和光纤通信做了简要的分析,构建了以太网的测试环境。利用Socket软件,用光纤收发器和光纤连接两台PC机,进行客户端和服务器之间的通信测试,然后基于VC++环境下利用MFC的CSocket类编程实现客户端的应用程序,并用软件编程实现的客户端与服务器进行了数据通信的测试。

数据通信软件开发与基本原理分析论文

  关键词::以太网;光纤;TCPSocket;数据通信

  1绪论

  1.1以太网简介

  10G以太网代表了有线以太网最先进的技术[1]。10G以太网结构简单、具有良好的兼容性且造价比较低。千兆以太网作为一种针对企业设备的新型高速标准网络接口已经得到普遍应用。随着广泛开展的各类宽带业务,10G以太网技术在城域网和电信骨干网等得到广泛应用。万兆以太网在设计之初就考虑到城域骨干网需求,充分能够满足大多数城市城域网覆盖[2]。以太网主要应用在LAN、CAN、MAN、WAN等技术领域。

  1.2光纤通信

  (1)光纤通信的优点相对于电缆通信或微博通信,光纤通信具有许多优点:

  (1)容许频带很宽,传输容量很大

  (2)损耗很小,中继距离很长且误码率很小;

  (3)重量轻、体积小;

  (4)抗电磁干扰性能好;

  (5)泄露小,保密性好;

  (6)节约金属材料,有利于资源合理分配。

  (2)光纤通信的应用光纤通信可以传输模拟信号和数字信号,因此得到了广泛的应用:

  (1)通信网;

  (2)计算机局域网和广域网;

  (3)有线电视网的干线和分配网,工业电视系统,自动控制系统的数据传输;

  (4)综合业务光纤接入网。

  (3)光纤通信系统的基本组成基本光纤传输系统有3部分组成:光发射端,光纤线路和光接收端。图1示出单向传输的光纤通信系统。在本次的设计中,用两个光纤收发器充当两个光发射机和光接收机。光纤收发器作为以太网传输媒体转换单元,可以将短距离的双绞线电信号和长距离的光信号进行互换。

  2TCP协议

  2.1TCP/IP协议的四个层次

  TCP/IP通讯协议具有4层结构,每一层的需求都是通过呼叫它的下一层所提供的网络来完成,具体各层相应协议的说明解释如图2所示。

  2.2TCP连接的建立与关闭

  (1)TCP连接的建立TCP连接的建立,应用的是“三次握手”法。具体过程如下:第一次握手,客户端发送一个SYN段(同步序号),指明其要连接的服务器端口。第二次握手,服务器作为应答,发送回包含服务器的初始序号的SYN报文段。并对确认序号(ACK)设置为客户的ISN加1,以确认客户的SYN报文段。第三次握手,客户须对确认序号设置为服务器的ISN加1,以确认服务器的SYN报文段。(2)关闭连接由于TCP关闭连接时需要向每个传输方向发送一个关闭连接的报文段,同时还需接受对方的确认报文段,因此关闭连接应用的是“四次握手”法。具体过程如下:第一次握手,客户端的应用进程向其TCP协议层发出连接终止命令。第二次握手:服务器的TCP协议层收到关闭连接的报文段后,发出确认。第三次握手:服务器告知TCP协议层关闭连接。第四次握手:客户端收到关闭连接的报文段后,发出确认,服务器收到确认,完全关闭连接。

  2.3TCP的流量控制和拥塞控制

  TCP的流量进行控制是利用滑动窗口机制实现的,接收方在返回的ACK中会包含自己的接收窗口的大小,以控制发送方的数据发送。在传输数据的实际网络中,由于网络中的链路容量、交换结点中的缓存、处理机等都有着工作的极限,当网络的需求超过它们的工作极限时,就出现了拥塞,这时可引入一个拥塞窗口。TCP连接建立时,发送方发送一个长度为MSS的报文段,如果网络没有出现拥塞,拥塞窗口会增大到2MSS,以便把更多的数据发送出去。如果都收到确认,那么拥塞窗口就按照指数规律一直增大窗口。但如果出现网络拥塞,拥塞窗口就开始减小。

  3Socket软件数据通信测试

  3.1流式套接口

  利用socket的数据流进行通信。套接口的工作过程如下:(1)用socket()函数在服务器端建立一个通信的端点;(2)用bind()函数绑定这个端点的地址;(3)在服务器端使用listen()函数侦听连接请求,当远程的客户机使用connect()函数连接listen()函数正在监听的端口时,使用accept()函数进行处理。当accept()函数处理了连接请求后,将会生成一个新的描述这个连接端口的套接字,利用这个套接字就可以发送和接收数据了。若listen()始终未侦听到连接请求,则服务器会在accept()处阻塞,直至有连接请求到来。

  3.2Socket软件数据通信测试

  TCP/UDPSocket调试工具提供了TCPClient、TCPServer、UDPClient、UDPServer、UDPGroup共5种Socket调试方案。下面是TCPClient方案的调试。在调试过程中,两台PC机用两个光纤收发器和一根光纤连接进行数据的通信。(1)创建TCPClient;(2)向服务器绑定的端口号连接;(3)双方通信,如图3和图4所示。图3和图4只是客户端的数据收发情况,服务进程要先于客户请求启动,即只有服务器处在监听状态时,客户端的连接请求才有可能被服务器接收到。

  4VC++实现Socket通信编程

  4.1CSocket类编程基本原理

  (1)连接建立阶段:首先服务器中的'监听套按字调用listen()对端口进行监听,客户端的套接字调用connect()向服务器端的特定端口发出链接请求,客户机端会调用套接字的OnConnect()告知连接的结果,可以判断是否链接成功并查询失败的原因。如果成功连接,表示客户机和和服务器之问建立起了一个通信的通道,为通信做好准备。(2)通信阶段:这是整个过程的核心部分,相对简单,就是数据的发送,调用send(),receive()函数。(3)拆除连接阶段:在传完数据之后,调用Close()关闭套接字,释放所分配的资源。当对方的套接字被关闭后,框架会调用OnConnecl()函数通知。

  4.2编程实现

  Socket数据通信在VisualC++6.0中用程序做一个TCPSocket软件的客户端,并能够通信,操作步骤如下:图6建立MFCAppWizard[EXE]工程(1)创建MFCAppWizard[EXE]工程;打开VisualC++6.0界面,单击“文件/新建”如图6;(2)创建应用程序选择基本对话框;(3)完成客户端会话框;(4)添加一个新类;(5)添加成员变量;(6)添加成员函数OnConnect();(7)添加控件程序;(8)在CSocket_002Dlg::OnInitDialog()中添加代码。服务端和客户端的通信如图7所示。从图7可以看出,编程实现的客户端可以用来数据通信。

  5总结

  本设计在TCPSocket的基础上,完成了数据通信软件的开发。首先,在两台PC机上,用光纤收发器进行数据通信的测试,熟悉了数据通信的基本流程。然后,在VC++开发环境下,熟悉开发环境,创建了一个名“为S ocket_002”的MFCAppWiz—ard[EXE]工程。在这个工程下,建立客户端和服务器端的对话框,生成一个源程序。在该程序中生成变量,添加控件程序,进行编译和运行,生成一个.EXE文件。一个TCPSocket的通信软件的开发就完成了。用开发出的软件,进行了客户端和服务器端的通信[3,4]。本设计表明基于VC++开发环境可以方便地开发以太网的数据通信的应用,建立数据通信的测试和应用系统,完成数据通信的任务。在此基础上还可以在其他的操作系统上完成软件的数据通信开发,例如Lnix,Unix,WindowsCE操作系统,拓展更宽广的应用领域。

  参考文献

  [1]王国河.基于实时以太网EtherCAT的多轴网络运动控制系统设计[D].广州:华南理工大学,2012.

  [2]马殷元.物流装备控制和监控系统关键技术研究[D].兰州:兰州交通大学,2017.

  [3]丁莉.基于ARM9的远程频率采集系统设计[J].微电子学与计算机,2011,28(7):128-131.

  [4]董武,陆利坤,李业丽.基于W5300的以太网和串口数据相互转换系统设计[J].制造业自动化,2013,35(2):139-142.

【数据通信软件开发与基本原理分析论文】相关文章:

1.数据通信网络维护与网络安全分析论文

2.软件开发工具与软件开发环境分析

3.FTO系统数据通信处理分析论文

4.伪基站的基本原理及电子取证分析论文

5.程序语言与软件开发在计算机中的分析论文

6.铁路数据通信网网络结构分析论文

7.民航计算机数据通信网络的分析论文

8.教学软件开发需求分析