当前位置:文档之家› 基于tcp协议通信系统的设计与实现

基于tcp协议通信系统的设计与实现

基于TCP协议通信系统的设计与实现杨秀森(贵州师范大学机电学院电气工程及其自动化学号:0914********)摘要:通信协议(communications protocol)是指双方实体完成通信或服务所必须遵循的规则和约定。

协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。

通信的底层通信是通过SOCKET套接字接口实现的。

当前的主流UNIX系统和微软的WINDOWS系统都在内核提供了对SOCKET字接口的支持。

使用这个统一的接口,可以编写一个可移植的TCP通信程序。

本文设计并实现了基于局域网内的简单即时通信系统,系统采用C/S模式,底层通信通过SOCKET套接字接口实现,服务器负责客户端的登录验证,好友信息的保存和心跳报文的发送。

客户端采用P2P方式实现消息传递,并能实现文件的传输。

本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等;然后阐述了客户端、服务器如何使用XML序列化的消息进行通信。

关键词:TCP协议;通信协议系统;套接字;文件传输;C/S模式;The System Design and Implementation ofBased on TCP Protocol CommunicationYang Xiu Sen(Guizhou Normal University Institute of mechanical and electrical engineering and its automationnumber: 0914********)Abstract: Communication protocol ( communications protocol ) refers to both entities to complete communication or service must follow the rules and conventions. The protocol defines a data unit format, information unit should contain information and meaning, connection mode, information transmission and reception timing, thereby ensuring that the network data smoothly transmitted to determine places. Communication communication is through the SOCKET socket interface implementation. The current mainstream UNIX system and Microsoft WINDOWS system in the kernel provides to SOCKET interface support. Using the unified interface, can be prepared in a transplantable TCP communication program.This paper designed and implemented based on a simple LAN instant communication system, the system adopts C/S model, the underlying communication through the SOCKET socket interfaceimplementation, server for the client to login authentication, friends of information preservation and heartbeat message sending. Client using P2P mode to realize the information transmission, and can realize the file transfer. This paper first discusses the synchronization socket, asynchronous socket, multithreading concurrent execution of the task; and then describes the client, the server can use the XML serialization of news communication.Key words: TCP protocol; communication protocol system; socket; file transfer; C/S model;1 引言1.1 研究背景在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。

通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。

两台计算机在进行通信时,必须使用的通信协议。

TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)的历史应当追溯到Internet的前身—ARPAnet时代。

为了实现不同网络之间的互连,美国国防部于1977年到1979年间制定了TCP/IP体系结构和协议。

TCP/IP是由一组具有专业用途的多个子协议组合而成的,这些子协议包括TCP、IP、UDP、ARP、ICMP等。

TCP/IP凭借其实现成本低、在多平台间通信安全可靠以及可路由性等优势迅速发展,并成为Internet中的标准协议。

目前,TCP/IP已经成为局域网中的首选协议,在最新的操作系统(如Windows XP、Windows Server2003等)中已经将TCP/IP作为其默认安装的通信协议。

1.2 国内外研究现状当今,国际上对网络通信系统研究的较好的公司有,思科,Sun,Ms等公司,思科主要研究的是底层的传输;MS,Sun公司研究的是应用层。

其中ms公司凭借其在操作系统的垄断地位,为了在网络的发展中取得先机,采用了各种各样的手段。

但是,其捆绑的msn,无论从功能上,还是技术上来说,都不算是非常先进的。

当然,ie,同样也不是很受人青睐,这让人想起了,当年的网景公司,网景只是生不逢时。

MS不择手段的想打跨网景,可见其对网络的重视。

如今,Sun公司在网络应用上捷足先登,凭借着Java,Sun在网络的应用上领先于MS。

微软,想用同样的办法搞跨对手,因此它拿出了Visual c#,来对抗Java。

这些都是在应用层面的开发工具。

应用层上的产品就更显种类繁多。

ICQ几乎是国际上通用的即时通信工具,由于在我国它的应用不是很广,所以,其原理也很少被介绍。

msn,是MS的产品,同样在国内没什么市场,所以,对其原理,也很少被讨论过。

至于ie,是在Visual c++下开发的产品,虽然有严重的安全隐患,不过,至少能在某种程度上代表当今国际研究的水平。

此外,国际上最近出先了新的浏览器Firefox,其性能据说是远高于ie,也许在网络的天下,Ms又有了更强劲的对手。

国内在应用层上的网络应用软件目前发展异常的火爆,因为我国有着网络应用的最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其中,在游戏的领域中,网络通信的工作做的不错,如联众游戏平台,还有其他的一些平台,这些平台基本上都是基于VC++的,用的都是Socket通信,但是为了效率,这些平台没有用MFC提供的CSocket类,而是直接用Socket进行通信。

所以效率上不错。

此外,tencent的即时通信,也是做的很好的,从某中程度上来说,代表了国内最高的水平。

1.3 研究方法本系统采用C/S(Client/Server)结构进行设计,使用SQL Server 2000构建数据库,并在.NET环境下使用Visual C#.net语言和SOCKET套接字开发一个基于TCP协议通信系统软件,实现简单的即时聊天,文件传输等功能。

2 关键技术介绍2.1 TCP协议2.1.1 TCP/IP网络协议协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。

网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体系结构。

相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。

计算机网络中已经形成的网络体系结构主要有两个:OSI参考模型和TCP/IP参考模型。

TCP/IP参考模型是因特网(Internet)的基础。

和OSI的7层协议相比,TCP/IP协议只有4个层次。

通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族,包括100多个相互关联的协议,其中IP(Internet Protocol, 网际协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议是传输层中最主要的协议),一般认为IP、TCP、UDP是最根本的三种协议,是其他协议的基础。

2.1.2 TCP——传输控制协议面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。

TCP协议就使用这种可靠通信。

使用TCP协议的应用层协议包括HTTP、FTP、SMTP和Telnet等。

TCP要求在发送数据之前必须打开连接。

服务器应用程序必须执行一个称作被动打开(passive open)的操作,以利用一个已知的端口号创建一个链接,这是,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。

客户应用程序必须执行一个主动打开(active open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。

客户应用程序可以将动态端口号作为本地端口使用。

服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN)。

随后,客户回复一个ACK,这样就建立了链接。

现在可以发送和接收消息了。

接收消息后,总是返回ACK消息。

如果在收到ACK 之前发送方已经超时,则消息将被放到重发队列中以再次发送。

相关主题