1、 计算机网络课程设计报告计算机网络课程设计报告 学 院: 专 业: 班 级: 设计题目: 简单 FTP 服务器实现 组 长: 组 员 指导教师: 成 绩: 时 间: 2014 至 2015 学年度 第 1 学期 9 月 25 日至 10 月 30 日 简单 FTP 服务器实现 1 关键技术 1.1 FTP 协议 FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质 对用户透明和可靠高效地传送数据。 图 1 FTP 服务示意图 在开始阶段,标准 FTP 命令由用户 PI 产生并通过控制连接传送到服务器进 程。服务器 PI 向用户 PI 返回标准应答。FTP 命令指定数据连接参数
2、和文件系统 操作。用户 DTP 在特定数据端口侦听,服务器开始数据连接并以指定的参数开始 数据传输。数据端口不必在开始 FTP 命令的机器上,但用户或用户 FTP 进程必须 确定它在指定的数据端口上侦听。这个数据连接是全双工的。 FTP 协议中对应答码的意义有明确的规定,如下表所示: 表 1 FTP 协议应答码 应答码 意义 应答码 意义 110 重新启动标记应答。在这种 情况下文本是确定的,它必须是: MARK yyyy=mmmm,其中 yyyy 是用户进程数据流标记,mmmm 是服务器标记。 120 服务在 nnn 分钟内准备好 125 数据连接已打开,准备传送 150 文件状态良好,打开
3、数据连接 200 命令成功 202 命令未实现 211 系统状态或系统帮助响应 212 目录状态 213 文件状态 214 帮助信息,信息仅对人类用户有用 215 名字系统类型 220 对新用户服务准备好 221 服务关闭控制连接,可以退出登 录 225 数据连接打开,无传输正在进行 226 关闭数据连接,请求的文件操作 成功 227 进入被动模式 230 用户登录 250 请求的文件操作完成 257 创建“PATHNAME“ 331 用户名正确,需要口令 332 登录时需要帐户信息 350 请求的文件操作需要进一步命令 421 不能提供服务,关闭控制连接 425 不能打开数据连接 426 关
4、闭连接,中止传输 450 请求的文件操作未执行 451 中止请求的操作:有本地错误 452 未执行请求的操作:系统存储空间 不足 500 格式错误,命令不可识别 501 参数语法错误 502 命令未实现 503 命令顺序错误 504 此参数下的命令功能未实现 530 未登录 532 存储文件需要帐户信息 550 未执行请求的操作 551 请求操作中止:页类型未知 552 请求的文件操作中止,存储分配溢 出 553 未执行请求的操作:文件名不合 法 1.2 TCP 协议的编程 Socket(套接字)是通信的基石,是支持 TCP/IP 协议的网络通信的基本操 作单元。可以将 Socket 看作不同主机间的进程进行双向通信的端点,它构成了 单个主机内及整个网络间的编程界面。Socket 存在于通信域中,通信域是为了 处理一般的线程通过 Socket 通信而引进的一种抽象概念。Socket 通常和同一个 域中的 Socket 交换数据(数