The payload starts after the five-byte record header.

highlighted = computed this step

Payload starts after the header

The first 5 bytes are the record header. The payload starts after them.

header bytes=5\text{header bytes}=5
Payload starts after the headerThe header length separates the record header from the payload bytes.Record header40 bits / 5 bytes0x1603030004byte 0byte 1byte 2byte 300010110000000110000001100000000byte 400000100content-type22legacy-version0x0303record-length4(cont.)Record payload32 bits / 4 bytes0x01000000byte 0byte 1byte 2byte 300000001000000000000000000000000handshake-type1remaining-payload0x000000

The payload begins with a handshake type

The first payload byte is handshake type 1. In this toy vocabulary, that means client hello.

handshake type=1\text{handshake type}=1
Payload starts after the headerThe header length separates the record header from the payload bytes.Record header40 bits / 5 bytes0x1603030004byte 0byte 1byte 2byte 300010110000000110000001100000000byte 400000100content-type22legacy-version0x0303record-length4(cont.)Record payload32 bits / 4 bytes0x01000000byte 0byte 1byte 2byte 300000001000000000000000000000000handshake-type1remaining-payload0x000000

The rest is still payload

The remaining payload bytes are 0x000000. They are carried by the record length too.

remaining=0x000000\text{remaining}=0x000000
Payload starts after the headerThe header length separates the record header from the payload bytes.Record header40 bits / 5 bytes0x1603030004byte 0byte 1byte 2byte 300010110000000110000001100000000byte 400000100content-type22legacy-version0x0303record-length4(cont.)Record payload32 bits / 4 bytes0x01000000byte 0byte 1byte 2byte 300000001000000000000000000000000handshake-type1remaining-payload0x000000

Summary

The record header points to a payload boundary; it does not parse the whole handshake.

payload bytes=4\text{payload bytes}=4
Payload starts after the headerThe header length separates the record header from the payload bytes.Record header40 bits / 5 bytes0x1603030004byte 0byte 1byte 2byte 300010110000000110000001100000000byte 400000100content-type22legacy-version0x0303record-length4(cont.)Record payload32 bits / 4 bytes0x01000000byte 0byte 1byte 2byte 300000001000000000000000000000000handshake-type1remaining-payload0x000000