Lesson Contents
This packet capture contains a complete TFTP (Trivial File Transfer Protocol) download. Router R1 requests the file R2.cfg from 192.168.12.2. The file arrives in four data blocks, and R1 acknowledges each one before the next is sent. Nine packets for a 1,673-byte file.
TFTP has no login, no directory listing and no encryption. Everything, including the file contents, is in clear text. The capture also shows a detail that trips up firewalls: the server doesn’t answer from port 69. More captures are in the Packet Capture Library.
Want to open this capture in Wireshark yourself? The pcap file is free with a NetworkLessons account. Your free account also unlocks all our free lessons and every capture in the Packet Capture Library.
Create a free account to download the pcap
Already have an account? Log in and the download button appears here.
Capture overview
| File | tftp-read-request-file-transfer.pcapng |
| Packets | 9 |
| Protocol | TFTP (RFC 1350) |
| Transport | UDP: request to port 69, transfer between ports 55180 and 60301 |
| Devices | Cisco IOS routers: client 192.168.12.1, server 192.168.12.2 |
| Wireshark filter | tftp |
Packets in this capture
No. Time Source Destination Protocol Info
1 0.000000 192.168.12.1 192.168.12.2 TFTP Read Request, File: R2.cfg, Transfer type: octet
2 0.000989 192.168.12.2 192.168.12.1 TFTP Data Packet, Block: 1
3 0.001325 192.168.12.1 192.168.12.2 TFTP Acknowledgement, Block: 1
4 0.001930 192.168.12.2 192.168.12.1 TFTP Data Packet, Block: 2
5 0.002184 192.168.12.1 192.168.12.2 TFTP Acknowledgement, Block: 2
6 0.002363 192.168.12.2 192.168.12.1 TFTP Data Packet, Block: 3
7 0.002696 192.168.12.1 192.168.12.2 TFTP Acknowledgement, Block: 3
8 0.002951 192.168.12.2 192.168.12.1 TFTP Data Packet, Block: 4 (last)
9 0.003089 192.168.12.1 192.168.12.2 TFTP Acknowledgement, Block: 4
Packet walkthrough
Read request (packet 1)
User Datagram Protocol, Src Port: 55180, Dst Port: 69
Trivial File Transfer Protocol
Opcode: Read Request (1)
Source File: R2.cfg
Type: octet
This is what the fields in red mean:
- UDP destination port 69: only the first packet goes to the well-known TFTP port.
- Opcode 1: Read Request (RRQ): download a file. A write request (upload) is opcode 2.
- Filename R2.cfg: TFTP only has a filename, no paths beyond what the server allows and no username or password.
- Mode octet: binary transfer, byte for byte. The other mode, netascii, converts line endings.
Data and acknowledgment (packets 2 and 3)
User Datagram Protocol, Src Port: 60301, Dst Port: 55180
Trivial File Transfer Protocol
Opcode: Data Packet (3)
Block: 1
Here’s what stands out:
- Source port 60301, not 69: the server answers from a new random port, the transfer ID. The rest of the transfer runs between ports 55180 and 60301. A firewall that only allows UDP 69 blocks the data.
- Opcode 3: Data, block 1: each data packet carries a block number and up to 512 bytes of the file. The UDP length is 524: 8 bytes of UDP header, 4 bytes of TFTP header and 512 bytes of data.
- Opcode 4: Acknowledgment, block 1 (packet 3): R1 confirms block 1, and only then does the server send block 2. This lock-step exchange is simple but slow over long distances.
- The data is readable: open the data packets in Wireshark and you see the router configuration in clear text.
The last block (packets 8 and 9)
Block 4 is only 137 bytes (UDP length 149). A data block shorter than 512 bytes tells the client this is the end of the file: 3 × 512 + 137 = 1,673 bytes. R1 acknowledges block 4, and the transfer is done. There’s no separate “end” message.