目录

1、环境拓扑配置

2、TFTP协议学习

2.1、协议概述

2.2、TFTP报文类型

2.3、TFTP端口号分配

2.4、TFTP报文格式

2.4.1、Read request报文格式

2.4.2、Write requst报文格式

2.4.3、Acknowledgement报文格式

2.4.4、Data 报文格式

2.4.5、Error 报文格式

2.5、TFTP工作流程

3、TFTP穿越NAT


1、环境拓扑配置

2、TFTP协议学习

2.1、协议概述

TFTP英文全称:Trivial File Transfer Protocol,中文全称:简单文件传输协议。提供不复杂、开销不大的文件传输服务。端口号为69。基于UDP协议。

2.2、TFTP报文类型

TFTP共定义了五种类型的包,类型的区分由包数据前两个字节的Opcode字段区分,分别是:

  • 读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1
  • 写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2
  • 文件数据包:Data,简写为DATA,对应Opcode字段值为3
  • 回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4
  • 错误信息包:Error,简写为ERROR,对应Opcode字段值为5

2.3、TFTP端口号分配

TFTP客户端发送read request和write request报文的时候,目的端口是69。而Data、Acknowledgement、Error不使用69端口,它们使用的是随机端口1024~5000。
不同的操作系统有不同的端口号规定Linux使用32768~61000、Windows 使用1025~5000

2.4、TFTP报文格式

2.4.1、Read request报文格式

客户端使用端口65462向服务端69端口发送读文件的请求

Read requst(1):表示这个一个读取文件的请求
Source file:表示源文件是 1.txt
Type:表示传输类型为8字节
Tsize:表示文件大小为0

2.4.2、Write requst报文格式

客户端使用端口65462向服务端69端口发送写文件的请求

Write requst(2):表示这个一个写文件的请求
DESTINATION file:表示目标文件是 1.txt
Type:表示传输类型为8字节

2.4.3、Acknowledgement报文格式

服务端使用端口58780向客户端65461端口发送write requst报文的响应包

Acknowledgement(4) 表示这是一个响应报文
DESTINATION file:1.txt 表示目标文件是 1.txt
Block:0 表示块代码为0

2.4.4、Data 报文格式

客户端使用65461端口向服务端58780端口发送数据。

Data packet(3) 表示这是一个TFTP传输的数据
DESTINATION file:1.txt 表示目标文件是 1.txt
Block:1 表示块代码为1
Length:270 表示数据长度是270

2.4.5、Error 报文格式

服务端使用58783端口向客户端的65463端口发送error消息

Error code(5) 表示这个是一个报文内包含错误信息
DESTINATION file:1.txt 表示目标文件是 1.txt
Error code:access violation(2) 表示错误类型,访问错误
error message 详细错误内容
Error code值:

  • 0 Not defined, see error message(if any)
  • 1 File not found
  • 2 Access violation
  • 3 Disk full or allocation exceeded
  • 4 Illegal TFTP operation
  • 5 Unknown transfer ID
  • 6 File already exists
  • 7 No such user

2.5、TFTP工作流程

1、服务端在端口为69的UDP上等待客户端发出写文件请求包
2、客户端通过UDP发送符合TFTP请求格式的Write requst包给服务端。从UDP包角度看,该UDP包的源端口由客户端随意选择,而目标端口则是服务端的69。

3、服务端收到客户端的这个请求包后,需发送Acknowledgement给客户端。对于写请求包,服务端发送的ACK包block为0。

4、客户端发送DATA数据给服务端

5、服务端接收数据并写文件,然后发送Acknowledgement给客户端,服务端发送的ACK包block为1

6、当客户端发送的DATA数据长度小于512字节时,服务端认为这次Write requst请求完成。

3、TFTP穿越NAT

总体转换报文浏览

包29:客户端向服务端发送write request报文,发送写文件的请求。
SIP:10.10.10.2、Sport:65461;DIP:192.168.10.115、Dport:69

包30:经过防火墙设备SNAT转换后的write request报文,转换源IP和源端口,生成链接跟踪表。
Sip:192.168.10.114、Sport:10847;Dip:192.168.10.115、Dport:69

包31:服务端收到write request报文后,发送ack响应报文。
Sip:192.168.10.115、Sport:58780;Dip:192.168.10.114、Dport:10847

包32:经过防火墙设备后,防火墙查找链接跟踪表,找到对应表象,把访问192.168.10.114的IP转换为10.10.10.2,把目的端口10847转换成65461

包33:客户端收到服务端的响应后,向服务端发送上传的数据
SIP:10.10.10.2、Sport:65461;DIP:192.168.10.115、Dport:58780

包34:防火墙收到客户端发送的报文后,匹配NAT策略,将data报文的源IP和源端口转换为192.168.10.114和10847

包35:服务器收到data报文后,储存客户端发送的数据,然后发送ack响应报文。
Sip:192.168.10.115、Sport:58780;Dip:192.168.10.114、Dport:10847

包36:经过防火墙设备后,防火墙查找链接跟踪表,找到对应表象,把访问192.168.10.114的IP转换为10.10.10.2,把目的端口10847转换成65461


DNAT的交互经过抓包发现和SNAT的交互报文相同,报文格式没有改变,只是改变的IP地址不同。

TFTP协议详解及TFTP穿越NAT相关推荐

  1. FTP协议报文详解及FTP穿越NAT

    1.拓扑图 2.FTP协议简介 FTP 英文全称:File Transfer Protocol,中文全称:文件传输协议 提供交互式的访问,对传输文件的格式和类型有分类,允许文件具有存取权限.适合异构网 ...

  2. 【转】tftp命令详解

    转自:tftp命令详解 - 张大猛 - 博客园 介绍一个     FTP客户端-IIS7服务器管理工具 作为FTP客户端,它支持批量管理ftp站点.定时上传和定时下载,定时备份,且操作简洁.同时iis ...

  3. 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)

    目录 简介 报文格式 IPv4地址 分类 网络地址转换NAT 子网划分与子网掩码 CIDR 实战 参考 简介 IP(网际互连协议,Internet Protocol)是TCP/IP协议族中最为核心的协 ...

  4. 《TCP IP协议 详解》思考总结 · 三

    前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...

  5. java udp 协议_网络协议 - UDP 协议详解

    ¶ 网络协议 - UDP 协议详解 基于TCP和UDP的协议非常广泛,所以也有必要对UDP协议进行详解.@pdai ¶ UDP概述 UDP(User Datagram Protocol)即用户数据报协 ...

  6. Linux网络-UDP/TCP协议详解

    Linux网络-UDP/TCP协议详解 零.前言 一.UDP协议 二.TCP协议 1.应答机制 2.序号机制 3.超时重传机制 4.连接管理机制 三次握手 四次挥手 5.理解CLOSE_WAIT状态 ...

  7. TFTP协议(1)TFTP协议介绍(包括:TFTP的五种报文/报文字段扩展/TFTP的流量控制,差错控制/UDP sendto,recvfrom接口)

    TFTP协议(1)TFTP协议介绍(包括:TFTP的五种报文/报文字段扩展/TFTP的流量控制,差错控制/UDP sendto,recvfrom接口) 1. TFTP协议 1.1 TFTP 背景 1. ...

  8. Web协议详解与抓包实战之HTTP1.1 学习笔记【一】

    Web协议详解与抓包实战之HTTP1.1[一] 前言 <Web协议详解与抓包实战>课程学习,陶辉老师主讲 学习内容: HTTP–TLS/SSL–TCP/IP自上而下根据应用学习web协议H ...

  9. IP协议详解及IPv4与IPv6协议的区别

    IP协议是在TCP/IP协议模型中的重要组成部分,目前我们使用最多的是IPv4协议,IPv6协议的用户量也在慢慢增加,苹果在几年之前就已经开始支持IPv6协议了.我们先来了解一下IPv4和IPv6协议 ...

最新文章

  1. 计算机网络管理第三版试卷,《计算机网络管理技术》试卷.doc
  2. 详解京东商城智能对话系统(生成+检索)
  3. Java 设计模式之工厂模式(二)
  4. Excel 2016新增函数之TEXTJOIN
  5. 计算机二级考试开考多久能出来,【计算机二级】明天就要开考了,你们准备好了吗?...
  6. 微型计算机的电池,具有微型计算机芯片的电池蓄电模块、便携式计算机的制作方法...
  7. 物联网技术周报第 109 期: 从设计理念解读实时操作系统 RT-Thread
  8. 阶段3 2.Spring_10.Spring中事务控制_11 spring5新特性的介绍
  9. webuploader上传多张照片的基本功能
  10. 网络工程师经常会面对服务器性能,下半网络工程师试卷(下午).doc
  11. 微信小程序登录方法,授权登陆及获取微信用户手机号
  12. gps面积测量仪手机版下载安装_手机gps面积测量仪
  13. 今日金融词汇---后复权,是什么?
  14. C++中模板的特化与偏特化
  15. 【备品备件需求】--入库记录查询增加仓库字段
  16. usb4java android,桌面java应用程序通过USB复制和传输android数据
  17. 基于Java毕业设计校园外卖零食商城系统源码+系统+mysql+lw文档+部署软件
  18. 家用智能洗地机哪个牌子好、洗地机品牌排行榜前十名介绍
  19. 阿里对高管的要求,不得不服
  20. 网络爬虫--记一次有趣的侦察型反爬手段(ebay)

热门文章

  1. 使用jQuery和CSS自定义HTML5 Video 控件
  2. 【图像处理】基于贝叶斯的Lucy-Richardson图像复原算法
  3. 用计算机听音乐和看电影教学反思,用计算机创作多媒体作品教学反思
  4. python画一个心形照片墙_表白神器!如何使用 Python 绘制爱心墙!
  5. CSS Houdini实现动态波浪纹
  6. SAP FI 财务模块 关键用户 考试练习 问卷
  7. jsoup+蚂蚁代理/阿布云代理
  8. dpdk 收发包问题案例:使用不匹配的收发包函数触发的不收包问题定位
  9. noj 1058 Tom and Jerry
  10. python-请求忽略警告