In the Protocol subfield of the IP header, what are the hex values identifying TCP, UDP, and ICMP?

TCP = 0x06
UDP = 0x11
ICMP = 0x01

The IP header contains 3 fields that are useful when dealing with IP fragmentation. What are they?

Identification --> If a datagram is fragmented, all fragments will contain a common ID number.
Flags --> Control flags for fragmentation
Fragment offset --> Specifies the offset in the original datagram where this fragment goes.

In the IP header, how many bits are used for the flags that control fragmentation?

Type value = 3
Indicates a datagram could not be delivered. (The code value provides more detail as to why.)

Describe the ICMP message, and give its Type value:
"Time Exceeded"

Type value = 11
This is sent back to the source when a datagram is discarded due to the TTL expiring.
This message is also sent when a datagram is fragmented, but not all of the fragments reach the destination.

ICMP Redirect messages are sent by routers to inform hosts of a preferred router for a particular destination.

Can ICMP Redirect messages be sent between routers to alter a router's table?

No. ICMP Redirects are sent to the Host only. (Remember, all ICMP error reporting is limited to the datagram source.)

Describe ICMP Parameter problem messages.

Parameter problem messages are used to indicate some problem with the IP packet: A bad field in the header, a missing required option, or a bad IP datagram length. This is a catch-all message or sorts.