




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
文件传输软件的设计 1、设计分析 1.1TCP的工作原理和服务的特性 TCP是TransmissionControlProtocol(传输控制协议)的简称,是TCP/IP体系中面向连接的运输层协议,在网络中提供全双工的和可靠的服务。 TCP协议最主要的特点是:1)是一种基于连接的协议。2)保证数据准确到达。3)保证各数据到达的顺序与数据发出的顺序相同。4)传输的数据无消息边界。 1.1.1TCP协议通讯工作原理(TCP三次握手)传输控制协议(TransportControlProtocol)是一种面向连接的,可靠的传输层协议。面向连接是指一次正常的TCP传输需要通过在TCP客户端和TCP服务端建立特定的虚电路连接来完成,该过程通常被称为“三次握手”。可靠性可以通过很多种方法来提供保证,在这里我们关心的是数据序列和确认。TCP通过数据分段(Segment)中的序列号保证所有传输的数据可以在远端按照正常的次序进行重组,而且通过确认保证数据传输的完整性。要通过TCP传输数据,必须在两端主机之间建立连接。举例说明,TCP客户端需要和TCP服务端建立连接,过程如下所示: TCP三次握手 在第一步中,客户端向服务端提出连接请求。这时TCPSYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分段后,在第二步以自己的ISN回应(SYN标志置位),同时确认收到客户端的第一个TCP分段(ACK标志置位)。在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。 1.1.2TCP的特性TCP有以下特性:面向数据流的处理方式:TCP采用连续方式对数据进行处理,即TCP能够以每次接收一个字节的方式来接收数据,而不是按预先格式化的数据块的方式来接收。TCP将数据格式化成可变长的数据流,然后传送给网际层。完全的可靠性:TCP通过面向连接的传输方式,以及一些差错控制、流量控制的手段,确保了数据不会丢失;同时TCP还能对接收到的IP数据报进行重新排序,解决了数据乱序的问题。所有的这些,都保证了TCP传输的完全可靠性。全双工通信:TCP连接允许数据在任何一个方向流动,并允许任何一个应用程序在任何时刻发送数据。TCP能够在两个方向上缓冲输入和输出的数据,这使得一个应用在发送数据以后,可以在数据传输的同时,进行别的工作。流量控制:TCP的流量控制特性确保数据传输的速度不会超过或低于目的计算机接收数据的能力。基于TCP的应用层协议有很多,其中有:文件传输协议FTP、远程登录协议Telnet和简单邮件传输协议SMTP等。 1.2TCP套接字编程机制和方法 1.2.1TCP套接字编程机制 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。 客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。 TCP套接字编程方法:使用套接字发送和接收数据:服务器与客户端双方建立连接后,程序中需要先将要发送的数据转换为字节数组,然后使用Socket对象的Send方法发送数据,或者使用Receive方法接收数据。 socket编程方法: 1.3C/S架构,Pull和Push两种文件传输模式 1.3.1C/S架构 (HYPERLINK"http://baike.baidu.com/view/83263.htm"\t"_blank"Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。 传统的HYPERLINK"http://baike.baidu.com/view/45170.htm"\t"_blank"C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Se

王子****青蛙
实名认证
内容提供者


最近下载