网络协议 您所在的位置:网站首页 tftp基于什么协议端口号 网络协议

网络协议

2024-07-09 14:24| 来源: 网络整理| 查看: 265

1. FTP基本概念

        FTP采用典型的C/S架构(即服务器端与客户端模型),端口号为20/21,客户端与服务器端建立TCP连接之后即可实现文件的上传、下载。20端口用来传输数据流,21端口用来传输控制流。

2. FTP传输文件的模式

针对传输的文件类型不同,FTP可以采用不同的传输模式:

        ASCII模式:传输文本文件(TXT、LOG、CFG )时会对文本内容进行编码方式转换,提高传输效率。当传输网络设备的配置文件、日志文件时推荐使用该模式。

        Binary(二进制)模式:非文本文件(cc、BIN、EXE、PNG),如图片、可执行程序等,以二进制直接传输原始文件内容。当传输网络设备的版本文件时推荐使用该模式。

3. FTP传输过程——主动模式

        使用主动模式时,FTP客户端使用一个随机端口(一般大于1024)向FTP服务器端的端口21发送连接请求;FTP服务器端接受请求,建立一条控制连接来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PORT命令通知FTP服务器端。当需要传输数据时,FTP服务器端从端口20向FTP客户端的端口P发送连接请求,建立一条传输连接来传输数据。

4. FTP传输过程——被动模式

        当使用被动模式时,FTP客户端使用一个随机端口(一般大于1024)向FTP服务器端的端口21发送连接请求,FTP服务器端接受请求,建立一条控制连接来传输控制消息。同时FTP客户端开始监听另一随机端口P(一般大于1024),并使用PASV命令通知FTP服务器端,FTP服务器端接到PASV 命令后,开启一个随机端口N(一般大于1024),并使用Enter PASV命令告知客户端自身开放端口号。当需要传输数据时,FTP客户端从端口P向FTP服务器端N端口发送连接请求,建立一条传输连接来传输数据。

主动模式和被动模式的区别

        使用主动模式传输数据时,如果FTP客户端在私有网络中并且FTP客户端和FTP服务器端之间存在NAT设备,那么FTP服务器端收到的PORT报文中携带的端口号、IP地址并不是FTP客户端经过NAT转换之后的地址、端口号,因此服务器端无法向PORT报文中携带的私网地址发起TCP连接(此时,客户端的私网地址在公有网络中路由不可达)。

        使用被动模式传输数据时,FTP客户端主动向服务器端的一个开放端口发起连接,如果FTP服务器端在防火墙内部区域中,并且没有放通客户端所在区域到服务器端所在区域的主动访问,那么这个连接将无法建立成功,从而导致FTP无法正常传输。

5. TFTP基础

        相较于FTP,TFTP的设计就是以传输小文件为目标,协议实现就简单很多: 使用UDP进行传输(端口号69) 无需认证 只能直接向服务器端请求某个文件或者上传某个文件,无法查看服务器端的文件目录。

6. TFTP输出示例

TFTP存在5种报文格式: RRQ:读请求包。 WRQ:写请求包。 DATA:数据传输报文。 ACK:应答包,用于确认收到对端的报文。 ERROR:差错控制报文。

7. liunx系统TFTP搭建 安装TFTP服务端和客户端         sudo apt-get install tftpd-hpa tftp-hpa 创建TFTP目录并添加权限 mkdir /home/tftp/tftpboot chmod 777 tftpboot  修改配置文件 vi /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/tftp/tftpboot" //我们创建的目录 TFTP_ADDRESS="0.0.0.0:69" //ip和端口号要为0.0.0.0 TFTP_OPTIONS="-c -l -s" //TFTP启动参数 -l:以standalone/listen模式启动TFTP服务,而不是从xinetd启动。 -c:可创建新文件。默认情况下,TFTP只允许覆盖原有文件,不能创建新文件。 -s:改变TFTP启动的根目录。不用手动指定目录,默认使用配置文件中的目录。 重启TFTP服务器 service tftpd-hpa restart 在创建的目录下新建文件并编辑内容 touch test.txt 客户端获取TFTP服务器文件 tftp IP地址 get 文件名 //下载 q //退出 8. 错误解决  如果TFTP的下载不成功,运行下面的命令卸载软件,然后再重新安装,最后再重启TFTP服务器。  sudo apt-get remove --purge tftpd-hpa tftp-hpa  sudo apt-get install tftpd-hpa tftp-hpa  sudo service tftpd-hpa restart

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有