Path: utzoo!utgpu!water!watmath!clyde!cbosgd!ucbvax!PURDUE.EDU!narten From: narten@PURDUE.EDU (Thomas Narten) Newsgroups: comp.protocols.tcp-ip Subject: Re: Pseudo-Headers & Checksumming Message-ID: <8801111505.AA02117@percival.cs.purdue.edu> Date: 11 Jan 88 15:05:42 GMT References: <8801110746.AA18699@Pescadero> Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 38 >VMTP has no need for pseudo headers a la TCP because the "entity identifiers", >the transport-level endpoints, are (inter)network level independent as is the >rest of the packet. One other important implication of the independence between the VMTP and IP layer concerns ICMP errors. The ICMP spec requires that the first 64 bits (8 bytes) of the transport level header be returned along with the IP header. In protocols like TCP/UDP, the 8 byte source/destination pair is actually part of the IP header, and by careful arrangement of the transport header fields, source/destination ports reside at the beginning of the packet. Because of the pseudo header, TCP/UDP actually get back 12 bytes of useful transport header information. Errors such as src quench and port unreachables can then matched up with the protocol control block that originates the offending datagram. In newer protocols like VMTP, I wonder if 8 bytes of transport header is sufficient. According the packet format given in the 86 SIGCOMM paper, entity identifiers are 32 bits long, hence the source/destination identifiers would use up all 64 bits of data. This leaves no room for other possibly important information like the forwarded entity identifier. Without the forwarded entity identifier field, ICMP error processing would appear to be much more difficult if not impossible in some cases. For instance, consider a request to read a file. The request would first go to the directory server, which might forward the request to a second server which answers the query directly. If the second server is unreachable, where would ICMP errors go? Most likely, they go back to the first server (not the originating client). The server would not be able to match the source entity indentifier with any of its own, and the ICMP error would likely be ignored. Meanwhile, the client originating the request retransmits a few times and finally times out. Is ICMP useful to newer protocols, and if not, can the Internet operate effectively without it? Thomas