| 0 | . | . | 3 | 4 | . | . | 7 | 8 | . | . | . | . | . | . | 15 | 16 | . | 18 | 19 | . | . | . | 23 | 24 | . | . | . | . | . | . | 31 |
| ipv | ihl | tos | total length | ||||||||||||||||||||||||||||
| identification | flags | frag offs | |||||||||||||||||||||||||||||
| ttl | proto | header checksum | |||||||||||||||||||||||||||||
| source address | |||||||||||||||||||||||||||||||
| destination address | |||||||||||||||||||||||||||||||
| (options) | (padding) | ||||||||||||||||||||||||||||||
| (data) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| precedence | d | t | r | reserved | |||
| bits 0-2: (precedence) |
000 - routine traffic 001 - priority 010 - immediate 011 - flash 100 - flash override 101 - critic/ecp 110 - internetwork control 111 - network control |
| bit 3: (d) | normal(0)/low(1) delay |
| bit 4: (t) | normal(0)/high(1) throughput |
| bit 5: (r) | normal(0)/high(1) reliability |
| bits 6-7: | reserved for future use |
| 0 | 1 | 2 |
| reserved | df | lf |
where the df bit (don't fragment) prevents packets from being fragmented if set, and the lf bit (last fragment) is set in the last packet in the sequence of fragments.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| copy flag | option class | option number | |||||
If the copy flag is set, the option is copied into all fragments upon fragmentation. Option classes are: 0) control, 1) reserved, 2) debugging and measurement, and 3) reserved. A few option types are defined:
| class | number | length | description |
| 0 | 0 | - | end of option list |
| 0 | 1 | - | no operation |
| 0 | 2 | 11 | security |
| 0 | 3 | var. | loose source routing |
| 0 | 9 | var. | strict source routing |
| 0 | 7 | var. | record route |
| 0 | 8 | 4 | stream id |
| 2 | 4 | var. | internet timestamp |
The next option byte (if required by the option type) is usually a length byte (in bytes, not 32 bit words).
| protocol number | protocol name | rfcs listed | ||||
|---|---|---|---|---|---|---|
| decimal | octal | hexadecimal | keyword | meaning | 790 | 1010 |
| 0 | 000 | 00 | (reserved) | * | * | |
| 1 | 001 | 01 | ICMP | internet control message protocol | * | * |
| 2 | 002 | 02 | IGMP | Internet Gateway Management Protocol | * | |
| 3 | 003 | 03 | GGP | Gateway-to-Gateway | * | * |
| 4 | 004 | 04 | (unassigned) | CMCC | (unassigned) | |
| 5 | 005 | 05 | ST | Stream | * | * |
| 6 | 006 | 06 | TCP | Transmission Control Protocol | * | * |
| 7 | 007 | 07 | UCL | UCL | * | * |
| 8 | 010 | 08 | EGP | External Gateway Protocol | * | |
| 9 | 011 | 09 | IGP | any private interior gateway | SECURE | IGP |
| 10 | 012 | 0a | BNN-RCC-MON | BBN RCC Monitoring | * | * |
| 11 | 013 | 0b | NVP-II | Network Voice Protocol | NVP | NVP-II |
| 12 | 014 | 0c | PUP | PUP | * | * |
| 13 | 015 | 0d | ARGUS | ARGUS | PLURIBUS | ARGUS |
| 14 | 016 | 0e | EMCON | EMCON | TELENET | EMCON |
| 15 | 017 | 0f | XNET | Cross Net Debugger | * | * |
| 16 | 020 | 10 | CHAOS | Chaos | * | * |
| 17 | 021 | 11 | UDP | User Datagram Protocol | * | * |
| 18 | 022 | 12 | MUX | Multiplexing | * | * |
| 19 | 023 | 13 | DCN-MEAS | DCN Measurement Subsystems | DCN | DCN-MEAS |
| 20 | 024 | 14 | HMP | Host Monitoring | TAC | HMP |
| 21 | 025 | 15 | PRM | Packet Radio Measurement | * | |
| 22 | 026 | 16 | XNS-IDP | XEROX NS IDP | * | |
| 23 | 027 | 17 | TRUNK-1 | Trunk-1 | * | |
| 24 | 030 | 18 | TRUNK-2 | Trunk-2 | * | |
| 25 | 031 | 19 | LEAF-1 | Leaf-1 | * | |
| 26 | 032 | 1a | LEAF-2 | Leaf-2 | * | |
| 27 | 033 | 1b | RDP | Reliable Data Prococol | * | |
| 28 | 034 | 1c | IRTP | Internet Reliable Transaction | * | |
| 29 | 035 | 1d | ISO-TP4 | ISO Transport Protocol Class 4 | * | |
| 30 | 036 | 1e | NETBLT | Bulk Data Transfer Protocol | * | |
| 31 | 037 | 1f | MFE-NSP | MFE Network Services Protocol | * | |
| 32 | 040 | 20 | MERIT-INP | MERIT Internodal Protocol | * | |
| 33 | 041 | 21 | SEP | Sequential Exchange Protocol | * | |
| 34-60 | 042-074 | 22-3c | (unassigned) | * | * | |
| 61 | 075 | 3d | any host internal procotol | * | ||
| 62 | 076 | 3e | CFTP | CFTP | * | |
| 63 | 077 | 3f | any local network | |||
| 64 | 100 | 40 | SAT-EXPAK | SATNET and backroom EXPAK | * | * |
| 65 | 101 | 41 | MIT-SUBNET | MIT subnet support | ||
| 66 | 102 | 42 | RVD | MIT Remote Virtual Disk Protocol | * | |
| 67 | 103 | 43 | IPPC | Internet Pluribus Packet Core | * | |
| 68 | 104 | 44 | any distributed file system | * | ||
| 69 | 105 | 45 | SAT-MON | SATNET Monitoring | * | * |
| 70 | 106 | 46 | (unassigned) | * | * | |
| 71 | 107 | 47 | IPCV | Internet Packet Core Utility | * | * |
| 72-75 | 110-113 | 48-4b | (unassigned) | * | * | |
| 76 | 114 | 4c | BR-SAT-MON | Backroom SATNET Monitoring | * | * |
| 77 | 115 | 4d | (unassigned) | * | * | |
| 78 | 116 | 4e | WB-MON | WIDEBAND Monitoring | * | * |
| 79 | 117 | 4f | WB-EXPAK | WIDEBAND EXPAK | * | * |
| 80-254 | 120-376 | 50-fe | (unassigned) | * | * | |
| 255 | 377 | ff | (reserved) | * | * | |
or try reading your local /etc/protocols file.