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

Read the packet bytes

02

A two-byte opcode selects a request, data, acknowledgment or error. Zero bytes terminate request strings; they are not printed characters.

RFC 1350 · § 5EXAMPLE
4 / 4
Read the packet bytesFour separate packet examples: RRQ has two-byte opcode1, zero-terminated boot.bin and octet; tiny DATA has opcode3, block1 and abc; ACK has opcode4 and block1; ERROR has opcode5, error code1 and zero-terminated Not found. Full TFTP bytes are displayed without transport headers; variable fields are schematic.Separate complete TFTP payload examplesField geometry schematic · counts in bytesopcode 5 · 2 byteserror code 1 · 2 bytesNot found · 9 bytes + 0000 05 00 01 4e 6f 74 2066 6f 75 6e 64 0014 TFTP bytes total · excluding UDP/IPCode 1 = File not found
04
Decode a missing-file error.

00 05 is ERROR, code 1 means File not found, and Not found is a chosen human-readable message.

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

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

Read the opcode, then the fields for that packet type.

  • Base opcodes are 1 RRQ, 2 WRQ, 3 DATA, 4 ACK and 5 ERROR. DATA and ACK carry a two-byte block number.
  • Requests carry a filename, zero byte, mode and zero byte. Mode names are case-insensitive. Octet sends raw 8-bit bytes; netascii uses the specified text representation and requires local-format translation when receiving netascii.
  • DATA holds 0–512 data bytes in this base protocol. ERROR carries a two-byte code and zero-terminated human-readable message; its code is not a block number.
DETAILS

All dumps are complete fictional TFTP payloads, excluding UDP/IP headers. Field widths are schematic except labeled byte counts. The three-byte abc DATA is a separate tiny-file example, not the full 512-byte block used later. Octet return preserves the original bytes. Mail mode is obsolete and should not be implemented or used (§1); no mail transfer is illustrated.

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 ↗