RFC 792
Internet Control Message Protocol
INTERNET CONTROL MESSAGE PROTOCOL ๐ง
okay bestie, let's get into it ๐ซถ this is RFC 792, written by J. Postel at ISI for the Network Working Group, dated September 1981 ๐ธ it's a DARPA Internet Program Protocol Specification, and it updates RFCs 777, 760 and IENs 109, 128 ๐ nothing here obsoletes anything, so it's all about leveling up what's already out there ๐ this is part 1 of 3, so get ready for more ๐ฆ
Introduction โจ
okay so the Internet Protocol (IP) [1] handles host-to-host datagram service across a bunch of interconnected networks, and that whole web of networks is called the Catenet [2] ๐ the devices that connect those networks are called Gateways ๐ช the gateways chat with each other for control stuff using the Gateway to Gateway Protocol (GGP) [3,4] ๐ฌ
every so often a gateway or destination host needs to talk to a source host, like to report an error it ran into while processing a datagram ๐ that's where this protocol comes in: the Internet Control Message Protocol (ICMP) ๐ ICMP uses IP's basic support as if it were a higher level protocol, but it's actually an integral part of IP, so it MUST be implemented by every IP module ๐ฅ no skipping it, bestie!
ICMP messages get sent in a few situations ๐ for example, when a datagram can't reach its destination, when a gateway doesn't have the buffer space to forward a datagram, and when a gateway can tell a host to send its traffic on a shorter route ๐ฃ๏ธ
IP is not designed to be absolutely reliable, and that's a totally intentional choice ๐ โโ๏ธ the whole point of these control messages is to give feedback about problems in the communication environment, not to make IP reliable ๐ there are still no guarantees that a datagram gets delivered or that a control message comes back, and some datagrams might vanish with no report at all ๐ญ so if a higher level protocol that uses IP needs reliable communication, it MUST implement its own reliability procedures ๐ซถ
ICMP messages mostly report errors in how datagrams got processed ๐ง to avoid an infinite regress of messages about messages about messages, no ICMP messages are sent about ICMP messages ๐ also, ICMP messages are only sent about errors in handling fragment zero of fragmented datagrams ๐งฉ (fragment zero is the one whose Fragment Offset is equal to zero, iykyk ๐ฐ)
Message Formats ๐
ICMP messages are sent using the basic IP header ๐ฆ the first octet of the data portion of the datagram is the ICMP type field, and its value decides the format of everything after it ๐ any field labeled "unused" is reserved for later extensions and MUST be zero when sent ๐ธ but receivers SHOULD NOT use those fields (except to include them in the checksum) ๐ unless the individual format descriptions say otherwise, the internet header fields look like this:
Version
The value is 4 โจ
IHL
Internet header length, in 32-bit words ๐
Type of Service
The value is 0 ๐
Total Length
Length of the internet header and data, in octets ๐
Identification, Flags, Fragment Offset
Used in fragmentation, see [1] ๐งฉ
Time to Live
Time to live, in seconds ๐ฐ๏ธ this field gets decremented at each machine that processes the datagram, so the value SHOULD be at least as great as the number of gateways this datagram will traverse ๐ฆ bestie, don't set it too low, it'll get eaten up fast ๐ญ
Protocol
The value is ICMP = 1 ๐ฆ
Header Checksum
The 16 bit one's complement of the one's complement sum of all 16 bit words in the header ๐งฎ for computing the checksum, the checksum field SHOULD be zero ๐ and this checksum MAY be replaced in the future ๐ฎ
Source Address
The address of the gateway or host that composes the ICMP message ๐ฎ unless noted otherwise, this can be any of a gateway's addresses ๐
Destination Address
The address of the gateway or host the message SHOULD be sent to ๐
Destination Unreachable Message ๐
this is the one for when a datagram can't get where it's going ๐ here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields
Destination Address: the source network and address from the original datagram's data ๐ฌ
ICMP Fields
Type: 3 ๐
Code: the possible codes are
0 = net unreachable๐1 = host unreachable๐2 = protocol unreachable๐งโ๐ป3 = port unreachable๐ช4 = fragmentation needed and DF set๐งฉ5 = source route failed๐บ๏ธ
Checksum: the 16-bit ones's complement of the one's complement sum of the ICMP message, starting with the ICMP Type ๐งฎ for computing it, the checksum field SHOULD be zero ๐ and this checksum MAY be replaced in the future ๐ฎ
Internet Header + 64 bits of Data Datagram: the internet header plus the first 64 bits of the original datagram's data ๐ฆ the host uses this data to match the message to the right process ๐ฏ if a higher level protocol uses port numbers, they're assumed to be in the first 64 data bits of the original datagram's data ๐
Description
so okay, if the gateway's routing tables say the network in the internet destination field of a datagram is unreachable (like the distance to the network is infinity ๐), the gateway MAY send a destination unreachable message to the internet source host of the datagram ๐จ on top of that, some networks let the gateway figure out whether the internet destination host is unreachable, and gateways in those networks MAY send destination unreachable messages to the source host when that happens ๐ต๏ธโโ๏ธ
if the destination host's IP module can't deliver the datagram because the indicated protocol module or process port isn't active, the destination host MAY send a destination unreachable message to the source host ๐ โโ๏ธ
another case: a datagram has to be fragmented so a gateway can forward it, but the Don't Fragment flag is on ๐ซ in that situation the gateway MUST discard the datagram, and it MAY return a destination unreachable message ๐๏ธ
codes 0, 1, 4, and 5 MAY be received from a gateway ๐ and codes 2 and 3 MAY be received from a host ๐ฅ๏ธ
Time Exceeded Message โฐ
this one's for when time basically runs out โ here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields
Destination Address: the source network and address from the original datagram's data ๐ฌ
ICMP Fields
Type: 11 โณ
Code: the possible codes are
0 = time to live exceeded in transit๐1 = fragment reassembly time exceeded๐งฉ
Checksum: the 16-bit ones's complement of the one's complement sum of the ICMP message, starting with the ICMP Type ๐งฎ for computing it, the checksum field SHOULD be zero ๐ and this checksum MAY be replaced in the future ๐ฎ
Internet Header + 64 bits of Data Datagram: the internet header plus the first 64 bits of the original datagram's data ๐ฆ the host uses this data to match the message to the right process ๐ฏ if a higher level protocol uses port numbers, they're assumed to be in the first 64 data bits of the original datagram's data ๐
Description
if a gateway processing a datagram finds that the time to live field is zero, it MUST discard the datagram ๐๏ธ the gateway MAY also notify the source host with a time exceeded message ๐ฃ
if a host reassembling a fragmented datagram can't finish the reassembly because fragments are missing within its time limit, it discards the datagram, and it MAY send a time exceeded message โ
if fragment zero isn't available, then no time exceeded need be sent at all ๐
code 0 MAY be received from a gateway ๐ and code 1 MAY be received from a host ๐ฅ๏ธ
Parameter Problem Message ๐ง
this one's for when something's wrong in the header parameters ๐ ๏ธ here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pointer | unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields
Destination Address: the source network and address from the original datagram's data ๐ฌ
ICMP Fields
Type: 12 ๐
Code: the only code is 0 = pointer indicates the error ๐
Checksum: the 16-bit ones's complement of the one's complement sum of the ICMP message, starting with the ICMP Type ๐งฎ for computing it, the checksum field SHOULD be zero ๐ and this checksum MAY be replaced in the future ๐ฎ
Pointer: if code = 0, this identifies the octet where an error was detected ๐
Internet Header + 64 bits of Data Datagram: the internet header plus the first 64 bits of the original datagram's data ๐ฆ the host uses this data to match the message to the right process ๐ฏ if a higher level protocol uses port numbers, they're assumed to be in the first 64 data bits of the original datagram's data ๐
Description
if the gateway or host processing a datagram finds a problem with the header parameters so that it can't finish processing the datagram, it MUST discard the datagram ๐๏ธ one potential source of that problem is incorrect arguments in an option ๐ the gateway or host MAY also notify the source host with a parameter problem message โจ this message is only sent if the error caused the datagram to be discarded ๐
the pointer identifies the octet of the original datagram's header where the error was detected, and it can even be in the middle of an option ๐ฏ for example, 1 means something's wrong with the Type of Service, and (if there are options present) 20 means something's wrong with the type code of the first option ๐ง
code 0 MAY be received from a gateway or a host ๐ ilysm, that's the whole section ๐
Source Quench Message โจ
okay bestie, let's get into the source quench message ๐ฆ
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields ๐
Destination Address
this is the source network and address of the original datagram's data, so it's basically the sender getting the message ๐ซถ
ICMP Fields ๐
Type
it's 4 ๐ธ
Code
it's 0 ๐
Checksum
the checksum is the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type. when you compute it, the checksum field should be zero. and this checksum may be replaced in the future ๐
Internet Header + 64 bits of Data Datagram
this is the internet header plus the first 64 bits of the original datagram's data. the host uses it to match the message to the right process ๐ง if a higher level protocol uses port numbers, they're assumed to be in those first 64 data bits of the original datagram's data. iykyk ๐ญ
Description ๐
so a gateway may discard internet datagrams if it doesn't have the buffer space it needs to queue them for output to the next network on the route to the destination network. and if it does discard one, it may send a source quench message to the internet source host of that datagram ๐ซ
a destination host can send one too, if datagrams are arriving too fast for it to process. the source quench message is basically a polite request for the host to cut back the rate at which it's sending traffic to the internet destination. the gateway may send one for every message it discards, no cap ๐
when a source host gets a source quench message, it should cut back the rate it's sending traffic to that destination until it stops getting source quench messages from the gateway. then it can slowly ramp the rate back up until the source quench messages show up again. it's giving patience ๐ฆ
the gateway or host may also send the source quench message when it's approaching its capacity limit, instead of waiting until it's already exceeded. this means the data datagram that triggered the source quench message may still get delivered โจ
code 0 may be received from a gateway or a host ๐
Redirect Message ๐ฆ
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway Internet Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields ๐
Destination Address
this is the source network and address of the original datagram's data ๐ซถ
ICMP Fields ๐
Type
it's 5 ๐ธ
Code
0= Redirect datagrams for the Network.1= Redirect datagrams for the Host.2= Redirect datagrams for the Type of Service and Network.3= Redirect datagrams for the Type of Service and Host.
Checksum
same deal as before: the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type. the checksum field should be zero while you compute it, and this checksum may be replaced in the future ๐
Gateway Internet Address
this is the address of the gateway that traffic for the network in the internet destination network field of the original datagram's data should be sent to ๐บ๏ธ
Internet Header + 64 bits of Data Datagram
the internet header plus the first 64 bits of the original datagram's data. the host uses this to match the message to the appropriate process ๐ง and if a higher level protocol uses port numbers, they're assumed to be in those first 64 data bits. same energy as before, periodt ๐
Description ๐
okay so here's the situation. a gateway, G1, gets an internet datagram from a host on a network the gateway is attached to. G1 checks its routing table and grabs the address of the next gateway, G2, on the route to the datagram's internet destination network, X ๐งญ
if G2 and the host that sent the datagram (the one in the internet source address) are on the same network, the gateway sends a redirect message to the host. the redirect message basically says "hey, send your traffic for network X directly to G2, it's a shorter path to the destination" ๐โโ๏ธ๐จ and the gateway still forwards the original datagram's data to its internet destination, so nobody's left on read ๐ฌ
for datagrams with the IP source route options and the gateway address in the destination address field, a redirect message is not sent, even if there's a better route to the ultimate destination than the next address in the source route. no exceptions, bestie ๐ โโ๏ธ
codes 0, 1, 2, and 3 may be received from a gateway ๐ฆ
Echo or Echo Reply Message ๐
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-
IP Fields ๐
Addresses
the address of the source in an echo message becomes the destination of the echo reply message ๐ช to make an echo reply, you just reverse the source and destination addresses, change the type code to 0, and recompute the checksum. it's literally a mirror ๐ชโจ
ICMP Fields ๐
Type
8for echo message;0for echo reply message.
Code
it's 0 ๐ธ
Checksum
the checksum is the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type. the checksum field should be zero while you compute it. if the total length is odd, the received data gets padded with one octet of zeros for the checksum calculation. and yes, this checksum may be replaced in the future ๐ซ
Identifier
if code = 0, an identifier to help match echos and replies may be zero ๐ชช
Sequence Number
if code = 0, a sequence number to help match echos and replies may be zero ๐ข
Description ๐
the data received in the echo message must be returned in the echo reply message. no skipping, that's the whole point ๐
the identifier and sequence number can be used by the echo sender to match the replies with the echo requests. for example, the identifier might work like a port in TCP or UDP to identify a session, and the sequence number might go up on each echo request sent. the echoer returns these same values in the echo reply, so everything lines up ๐ง
code 0 may be received from a gateway or a host ๐
Timestamp or Timestamp Reply Message โฐ
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originate Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receive Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transmit Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields ๐
Addresses
the address of the source in a timestamp message becomes the destination of the timestamp reply message ๐ช to form a timestamp reply, you reverse the source and destination addresses, change the type code to 14, and recompute the checksum. same mirror moment as the echo, just with a clock ๐ฐ๏ธ
ICMP Fields ๐
Type
13for timestamp message;14for timestamp reply message.
Code
it's 0 ๐ธ
Checksum
the checksum is the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type. the checksum field should be zero while you compute it, and this checksum may be replaced in the future ๐
Identifier
if code = 0, an identifier to help match timestamps and replies may be zero ๐ชช
Sequence Number
if code = 0, a sequence number to help match timestamp and replies may be zero ๐ข
Description ๐
the data received in the message (a timestamp) gets returned in the reply, together with an additional timestamp. that timestamp is 32 bits of milliseconds since midnight UT. one use of these timestamps is described by Mills [5] ๐ (the bestie reading list starts there ๐ค)
there are three timestamps, and they're all about when someone last touched the message โฑ๏ธ
- the Originate Timestamp is the time the sender last touched the message before sending it.
- the Receive Timestamp is the time the echoer first touched it on receipt.
- the Transmit Timestamp is the time the echoer last touched the message on sending it.
if the time isn't available in milliseconds, or can't be given with respect to midnight UT, then any time can be inserted in a timestamp, as long as the high order bit of the timestamp is also set. that's how you flag it as a non-standard value ๐ฉ
the identifier and sequence number can be used by the echo sender to match the replies with the requests. for example, the identifier might work like a port in TCP or UDP to identify a session, and the sequence number might go up on each request sent. the destination returns these same values in the reply ๐ง
code 0 may be received from a gateway or a host ๐ ๐
Information Request or Information Reply Message ๐
okay bestie, this one is all about asking "wait, what network am I even on??" ๐ธ Here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields โจ
Addresses
The address of the source in a information request message will be the destination of the information reply message. ๐ So the request's source becomes the reply's destination. To make the reply, you just flip the source and destination addresses, change the type code to 16, and recompute the checksum. Iconic glow-up ๐
IP Fields (part two) ๐ฆ
Type
- 15 for information request message ๐ฅ
- 16 for information reply message โจ
Code
- 0 ๐
Checksum
The checksum is the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type. Lowkey math, but the vibe is "add it all up, flip the bits." ๐งฎ For computing the checksum , the checksum field should be zero. So zero it out first, then do the math ๐ This checksum may be replaced in the future. So it's not set in stone, bestie ๐
Identifier
If code = 0, an identifier to aid in matching request and replies, may be zero. ๐ง In other words, it's there to help match up requests and replies, and zero is totally fine. ๐
Sequence Number
If code = 0, a sequence number to aid in matching request and replies, may be zero. ๐ Same deal as the identifier: helps pair things up, and zero is allowed. โจ
Description
This message may be sent with the source network in the IP header source and destination address fields zero (which means "this" network). ๐ซถ
Translation: the sender can leave the network part of the source and destination addresses at zero, meaning "this network," aka "idk which network I'm on, help." ๐ญ The replying IP module should send the reply with the addresses fully specified. So the reply comes back with real, complete addresses. ๐ This message is a way for a host to find out the number of the network it is on. Literally the whole point: a host uses it to figure out its own network number. ๐
The identifier and sequence number may be used by the echo sender to aid in matching the replies with the requests. Same energy as the echo message, babe. ๐ For example, the identifier might be used like a port in TCP or UDP to identify a session, and the sequence number might be incremented on each request sent. Like a session ID plus a little counter that goes up every time you send one ๐ฆ The destination returns these same values in the reply. So the reply sends the same numbers right back ๐
Code 0 may be received from a gateway or a host. So code 0 can show up from either a gateway or a host, no bias ๐ธ
Summary of Message Types ๐
Here's your cheat sheet, bestie ๐
0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
References ๐
- [1] Postel, J. (ed.), "Internet Protocol - DARPA Internet Program Protocol Specification," RFC 791, USC/Information Sciences Institute, September 1981. ๐
- [2] Cerf, V., "The Catenet Model for Internetworking," IEN 48, Information Processing Techniques Office, Defense Advanced Research Projects Agency, July 1978. ๐
- [3] Strazisar, V., "Gateway Routing: An Implementation Specification", IEN 30, Bolt Beranek and Newman, April 1979. ๐ซถ
- [4] Strazisar, V., "How to Build a Gateway", IEN 109, Bolt Beranek and Newman, August 1979. ๐
- [5] Mills, D., "DCNET Internet Clock Service," RFC 778, COMSAT Laboratories, April 1981. ๐ฆ
And that's a wrap on RFC 792, periodt! ๐๐ โจ
๐ฆ where this page comes from
- ietf: rfc792 1981-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms