This byte order allows common file transfer problems to be detected immediately. The first 2 bytes distinguish PNG files on systems that expect the first 2 bytes to identify the file type uniquely. The first byte is a non-ASCII value, which reduces the probability that a text file may be incorrectly identified as a PNG file. The byte order also catches bad file transfers that clear bit 7. Bytes 2 through 4 name the format. The carriage return line feed (CRLF) sequence catches bad file transfers that alter new-line sequences. The Ctrl-Z character stops file display under MS-DOS. The final line feed checks for the inverse of the CRLF translation problem.
Chunk length is limited to avoid problems for systems that cannot handle four-byte unsigned values. A separate cyclic redundancy check (CRC) is provided for each chunk in order to detect transfer errors rapidly and to validate data. If a viewer does not provide as many colors as are listed in the palette belonging to an image, a palette histogram provides the information needed to select a target palette.
Virtually all browsers can process and view PNG files, and most graphics-processing packages are capable of encoding in this highly recommended format. It is assumed that web developers will embrace PNG as superior to other compression formats.