Visual RFC.
ALL RFCs / RFC 1350
Read the RFC ↗
RFC 1350 / TFTP · ONE BLOCK AT A TIME

Start a read or a write

01

The client requests a file using UDP, the User Datagram Protocol. Transfer identifiers (TIDs) are UDP port numbers, not user identities.

RFC 1350 · § 4EXAMPLE
6 / 6
Start a read or a writeSix states show a read request to server69, DATA1 from chosen50000 to client40000, ACK1 back to50000, then an explicitly separate write request to69, ACK0 from50000, and DATA1 from40000to50000. Ports are chosen example TIDs, not user identities; file data reverses direction between the two examples.RESET: SEPARATE UPLOAD · client sends fileClientServerDATA 1UDP source port: 40000UDP destination port: 50000Both chosen TIDs carry the transferDATA block numbers begin at 1
06
Send the first upload block.

The client now sends file data to server 50000. Data blocks begin at 1, in either direction.

Source for this drawing: RFC 1350 · Read RFC section 4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Port 69 starts a request; chosen ports carry the transfer.

  • The client sends a read request (RRQ) or write request (WRQ) to server UDP port 69. Each endpoint chooses a TID for the transfer; these should be randomly chosen.
  • For a read, the server replies with DATA block 1. For a write, it replies with ACK block 0, then the client sends DATA block 1. ACK means acknowledgment.
  • The server reply uses its chosen TID as source and the client’s TID as destination. Both chosen TIDs are then used for the remainder; UDP is not a TCP connection.
DETAILS

Two separate examples: a download, then an upload. Ports 40000/50000 are fictional choices, not required values. The client is always the request initiator, but the file’s data sender changes with read versus write. A server can deny either request with ERROR.

Read the RFC section ↗

All chapters in RFC 1350

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗