基于TCP协议的局域网通信程序的设计

2015-07-16 18:09肇宇飞长安大学西安710021
山东工业技术 2015年14期
关键词:结点线程局域网

肇宇飞(长安大学,西安 710021)

基于TCP协议的局域网通信程序的设计

肇宇飞
(长安大学,西安710021)

摘要:本文设计并实现了基于TCP协议的局域网简单即时通信系统,设计主要应用C/S模式,运用SOCKET套接字接口实现底层通信,并发送和接受TCP数据包、模拟Ethernet帧的发送过程。本通信系统实现了基本通信功能,包括客户端登陆验证、向好友发送文字信息和图片信息以及好友信息的保存。好友间实现文件传输和消息传递是运用P2P方式。本文先从系统设计的背景意义及需求分析入手,主要介绍了发送和接受TCP数据包设计思想和模拟Ethernet帧的发送过程设计思想并阐述了套接字和多线程执行任务等。

关键词:套接字;模拟Ethernet帧发送过程;C/S模式;TCP协议;文件传输

1 绪论

1.1开发背景及意义

进入21世纪,随着IT技术的飞速发展,网络时代随之到来,它将人们生活中原本互不联系的各个模块编织到一起,给人们的生产生活带来了极大的方便。例如,现如今的微信、腾讯QQ、MSN等基于网络的即时聊天软件已经逐步取代了人们传统的通信方式,对比传统媒介,此类聊天软件具有操作简单、经济实用、实时性强、能存储大量数据等优点。除此之外,即时聊天软件还具有其他传统通信方式不具备的特殊功能,它们除文字外还能传送图片、影像、文件和声音,而且还具有许多人性化的设计,例如个人空间和显示好友状态等。

1.2需求分析

当今社会正处于信息技术飞速发展的时代,在此时代背景下,通信网络和计算机是信息交互的基础设施。在网络十分普及的今天,通过网络交友、通信是大多数人的首选。局域网通信系统是现今网上最简单的点对多点通信系统。一个简单的聊天软件,对于程序员来说就是在许多端点间实现点对多点的通信。基于TCΡ协议的局域网通信是一个方便实现的、灵活的、低投入的方法。它可以在多种基于TCΡ协议的通信网络上运行。

2 基于TCP协议的局域网通信程序设计概述

2.1发送和接受TCP数据包

TCΡ是一种可靠的、面向连接的传输层协议。TCΡ协议在网络层IΡ协议的基础上工作。本课程设计的目的是设计一个发送和接收TCΡ数据包的程序,其功能是填充一个TCΡ数据包,发送给目的主机,并在目的主机接收此TCΡ数据包,将数据字段显示显示在标准输出上。编写MFC应用图像界面程序,实现消息的发送与接收要求:

1)建立聊天服务器,并通过设置IΡ及端口号连接服务器;

2)TCΡ头部参数自行设定;

3)在客户端输入消息并发送;

4)实现TCΡ文件的发送与接收。

2.2模拟Ethernet帧的发送过程

现今,Ethernet是人们普遍使用的局域网。通过了解模拟Ethernet帧的发送过程可以更加深刻理解局域网的知识。设计本通信系统就是模拟Ethernet帧的发送过程,更加深入地了解掌握Ethernet帧的数据发送流程。

模拟Ethernet帧的数据发送流程的标准:

1)模拟Ethernet上的两台主机,分别用线程a和线程b来表示;2)模拟总线用bus双字类型变量;

3)两个子线程向总线发送自己的数据。数据用此线程号模拟,发送数据用线程号和Bus的“或”操作进行模拟;

4)所有主机需要向总线上发送25组有效的数据,假如任意一次数据未发送成功,那么终止该线程。

3 设计思想

3.1发送和接受TCP数据包设计思想

本程序设计的目标是接受发送TCΡ数据包,并能够运用原始套接字来完成此项任务。本程序设计主要由发送TCΡ数据包和模拟Ethernet帧的发送两个模块构成。

3.2模拟Ethernet帧的发送过程设计思想

3.2.1Ethernet帧的发送流程

1)侦听载波过程:thernet中每个结点发送数据是利用总线作为传输介质,总线是所有结点共享的公共传输介质。因此每个结点在发送一个帧前,需要判断总线是否为空。由于Ethernet的数据是使用曼彻斯特编码方式,可以利用判断总线电平是否跳变的方式判断总线是否为空。若总线为空,则可启动发送,否则继续侦听。

2)检测冲突过程:在数据传输过程中,极有可能产生阻塞(阻塞是指总线上同时出现多个数据传输,它们叠加后的信号波形与所有发送结点输出的信号波形有所出入。原因是可能会有多个主机同时在侦听总线,当它们判断总线为空时,它们会向总线传输数据)。所以在发送数据过程中,应该进行阻塞检测,如果发生阻塞应当立即停止数据传输。

3)随机延迟重发:在检测到阻塞、停止传输后,结点进行随机延迟后重发。若重发后还没成功,则显示传输失败,取消该帧的传输。随机延迟的计算方法一般采用截止二进制指数年后退算法。该算法可表示为:τ=2的n次方乘以x乘以c。其中τ为结点重新发送需要的后退延迟时间,c为冲突窗口值(冲突窗口为总线最大长度和电磁波在介质中的传播速度比值的2倍),x为随机数,n的取值n=min(n,25),k是该帧被成功传输的次数。

3.2.2帧接收流程大致可以分以下三个步骤

1)检验是否发生阻塞,如果发生阻塞,则舍弃此帧;如果没有发生阻塞,则下一步;

2)检验该帧的目的地址判断能否接收该帧,如果可以接收,则进行下一步;

3)进行CRC校验和检验LLC数据长度;如果全部正确,则接收该帧,否则舍弃。

4 结语

本程序设计基本达到了高速度、人性化、稳定性、模块化、安全性等设计要求。程序设计重点设计实现了系统应用的模块。从实验的结果来看,本通信系统拥有较好的、较人性话的聊天窗口和稳定流畅的网络通信。通过本次基于TCΡ协议的简单局域网通信系统设计,我进一步深刻地了解了局域网通信、C/S模式以及套接字接口实现的相关知识,熟悉掌握了TCP数据包的发送和接受以及模拟Ethernet帧的发送,深刻理解了其中原理。我相信,局域网通信系统在教育、商业等领域会发挥越来越重要的作用。

参考文献:

[1]李为民.高校实验室管理系统的设计与开发[J].福建电脑,2009(12).

[2]黄吉亚,谢树云,赵莉.浅谈实验室管理系统的设计与开发[J].科技传播,2010(15).

[3]尹光,梁伟洋.一种基于网络的实验室管理系统[J].电子工程师,2000(06).

作者简介:肇宇飞(1994-),男,辽宁铁岭人,本科,研究方向:计算机技术。

猜你喜欢
结点线程局域网
5G终端模拟系统随机接入过程的设计与实现
实时操作系统mbedOS 互斥量调度机制剖析
LEACH 算法应用于矿井无线通信的路由算法研究
浅析体育赛事售票系统错票问题的对策研究
基于八数码问题的搜索算法的研究
基于VPN的机房局域网远程控制系统
计算机局域网组建及管理探讨
局域网存在的安全隐患及其防治策略
Java的多线程技术探讨