'pax headers' is POSIX 2003 (iirc) addition designed to fix
tar format limitations - older tar format has fixed fields
for everything (filename, uid, filesize etc) which can overflow.

pax Header Block

The pax header block shall be identical to the ustar header block 
described in ustar Interchange Format, except that two additional 
typeflag values are defined:

x
    Represents extended header records for the following file in 
the archive (which shall have its own ustar header block).

g
    Represents global extended header records for the following 
files in the archive. Each value shall affect all subsequent files 
that do not override that value in their own extended header 
record and until another global extended header record is reached 
that provides another value for the same field. The typeflag g 
global headers should not be used with interchange media that 
could suffer partial data loss in transporting the archive.

For both of these types, the size field shall be the size of the 
extended header records in octets. The other fields in the header 
block are not meaningful to this version of the pax utility. 
However, if this archive is read by a pax utility conforming to 
the ISO POSIX-2:1993 standard, the header block fields are used to 
create a regular file that contains the extended header records as 
data. Therefore, header block field values should be selected to 
provide reasonable file access to this regular file.

A further difference from the ustar header block is that data 
blocks for files of typeflag 1 (the digit one) (hard link) may be 
included, which means that the size field may be greater than 
zero.

pax Extended Header

An extended header shall consist of one or more records, each 
constructed as follows:

"%d %s=%s\n", <length>, <keyword>, <value>

The <length> field shall be the decimal length of the extended 
header record in octets, including length string itself and the 
trailing <newline>.

[skip]

atime
    The file access time for the following file(s), equivalent to 
the value of the st_atime member of the stat structure for a file, 
as described by the stat() function. The access time shall be 
restored if the process has the appropriate privilege required to 
do so. The format of the <value> shall be as described in pax 
Extended Header File Times.

charset
    The name of the character set used to encode the data in the 
following file(s).

    The encoding is included in an extended header for information 
only; when pax is used as described in IEEE Std 1003.1-2001, it 
shall not translate the file data into any other encoding. The 
BINARY entry indicates unencoded binary data.

    When used in write or copy mode, it is implementation-defined 
whether pax includes a charset extended header record for a file.

comment
    A series of characters used as a comment. All characters in 
the <value> field shall be ignored by pax.

gid
    The group ID of the group that owns the file, expressed as a 
decimal number using digits from the ISO/IEC 646:1991 standard. 
This record shall override the gid field in the following header 
block(s). When used in write or copy mode, pax shall include a gid 
extended header record for each file whose group ID is greater 
than 2097151 (octal 7777777).

gname
    The group of the file(s), formatted as a group name in the 
group database. This record shall override the gid and gname 
fields in the following header block(s), and any gid extended 
header record. When used in read, copy, or list mode, pax shall 
translate the name from the UTF-8 encoding in the header record to 
the character set appropriate for the group database on the 
receiving system. If any of the UTF-8 characters cannot be 
translated, and if the -o invalid= UTF-8 option is not specified, 
the results are implementation-defined. When used in write or copy 
mode, pax shall include a gname extended header record for each 
file whose group name cannot be represented entirely with the 
letters and digits of the portable character set.

linkpath
    The pathname of a link being created to another file, of any 
type, previously archived. This record shall override the linkname 
field in the following ustar header block(s). The following ustar 
header block shall determine the type of link created. If typeflag 
of the following header block is 1, it shall be a hard link. If 
typeflag is 2, it shall be a symbolic link and the linkpath value 
shall be the contents of the symbolic link. The pax utility shall 
translate the name of the link (contents of the symbolic link) 
from the UTF-8 encoding to the character set appropriate for the 
local file system. When used in write or copy mode, pax shall 
include a linkpath extended header record for each link whose 
pathname cannot be represented entirely with the members of the 
portable character set other than NUL.

mtime
    The file modification time of the following file(s), 
equivalent to the value of the st_mtime member of the stat 
structure for a file, as described in the stat() function. This 
record shall override the mtime field in the following header 
block(s). The modification time shall be restored if the process 
has the appropriate privilege required to do so. The format of the 
<value> shall be as described in pax Extended Header File Times.

path
    The pathname of the following file(s). This record shall 
override the name and prefix fields in the following header 
block(s). The pax utility shall translate the pathname of the file 
from the UTF-8 encoding to the character set appropriate for the 
local file system.

    When used in write or copy mode, pax shall include a path 
extended header record for each file whose pathname cannot be 
represented entirely with the members of the portable character 
set other than NUL.

realtime.any
    The keywords prefixed by "realtime." are reserved for future 
standardization.

security.any
    The keywords prefixed by "security." are reserved for future 
standardization.

size
    The size of the file in octets, expressed as a decimal number 
using digits from the ISO/IEC 646:1991 standard. This record shall 
override the size field in the following header block(s). When 
used in write or copy mode, pax shall include a size extended 
header record for each file with a size value greater than 
8589934591 (octal 77777777777).

uid
    The user ID of the file owner, expressed as a decimal number 
using digits from the ISO/IEC 646:1991 standard. This record shall 
override the uid field in the following header block(s). When used 
in write or copy mode, pax shall include a uid extended header 
record for each file whose owner ID is greater than 2097151 (octal 
7777777).

uname
    The owner of the following file(s), formatted as a user name 
in the user database. This record shall override the uid and uname 
fields in the following header block(s), and any uid extended 
header record. When used in read, copy, or list mode, pax shall 
translate the name from the UTF-8 encoding in the header record to 
the character set appropriate for the user database on the 
receiving system. If any of the UTF-8 characters cannot be 
translated, and if the -o invalid= UTF-8 option is not specified, 
the results are implementation-defined. When used in write or copy 
mode, pax shall include a uname extended header record for each 
file whose user name cannot be represented entirely with the 
letters and digits of the portable character set.

If the <value> field is zero length, it shall delete any header 
block field, previously entered extended header value, or global 
extended header value of the same name.

If a keyword in an extended header record (or in a -o 
option-argument) overrides or deletes a corresponding field in the 
ustar header block, pax shall ignore the contents of that header 
block field.

Unlike the ustar header block fields, NULs shall not delimit 
<value>s; all characters within the <value> field shall be 
considered data for the field. None of the length limitations of 
the ustar header block fields in ustar Header Block shall apply to 
the extended header records.

pax Extended Header File Times

Time records shall be formatted as a decimal representation of the 
time in seconds since the Epoch. If a period ( '.' ) decimal point 
character is present, the digits to the right of the point shall 
represent the units of a subsecond timing granularity. In read or 
copy mode, the pax utility shall truncate the time of a file to 
the greatest value that is not greater than the input header 
file time. In write or copy mode, the pax utility shall output a 
time exactly if it can be represented exactly as a decimal number, 
and otherwise shall generate only enough digits so that the same 
time shall be recovered if the file is extracted on a system whose 
underlying implementation supports the same time granularity.

Example from Linux kernel archive tarball:

00000000  70 61 78 5f 67 6c 6f 62  61 6c 5f 68 65 61 64 65  |pax_global_heade|
00000010  72 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |r...............|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 30 30 30 30  36 36 36 00 30 30 30 30  |....0000666.0000|
00000070  30 30 30 00 30 30 30 30  30 30 30 00 30 30 30 30  |000.0000000.0000|
00000080  30 30 30 30 30 36 34 00  30 30 30 30 30 30 30 30  |0000064.00000000|
00000090  30 30 30 00 30 30 31 34  30 35 33 00 67 00 00 00  |000.0014053.g...|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 75 73 74 61 72 00 30  30 67 69 74 00 00 00 00  |.ustar.00git....|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 67 69 74 00 00 00 00  |.........git....|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 30 30 30 30 30 30 30  |.........0000000|
00000150  00 30 30 30 30 30 30 30  00 00 00 00 00 00 00 00  |.0000000........|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000200  35 32 20 63 6f 6d 6d 65  6e 74 3d 62 31 30 35 30  |52 comment=b1050|
00000210  32 62 32 32 61 31 32 30  39 64 36 62 34 37 36 33  |2b22a1209d6b4763|
00000220  39 64 38 38 62 38 31 32  62 32 31 66 62 35 39 34  |9d88b812b21fb594|
00000230  39 65 34 0a 00 00 00 00  00 00 00 00 00 00 00 00  |9e4.............|
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
