《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段的一些解释,出现以下内容(有省略):
….另外,主机不需要接收大于576字节的IPv4数据报…..以避免576字节的IPv4限制。
英文原文的内容(有省略):
Furthermore, a host is not required to be able to receive an IPv4 datagram larger than 576 bytes. ….Many applications that use the UDP protocol (see Chapter 10) for data transport (e.g., DNS, DHCP, etc.) use a limited data size of 512 bytes to avoid the 576-byte IPv4 limit.
首先说明一下,这就是作者和译者不假思索,照搬RFC文档的结果,又没有任何解释。
在RFC791文档里面说
Total Length: 16 bits Total Length is the length of the datagram, measured in octets, including internet header and data. This field allows the length of a datagram to be up to 65,535 octets. Such long datagrams are impractical for most hosts and networks. All hosts must be prepared to accept datagrams of up to 576 octets (whether they arrive whole or in fragments). It is recommended that hosts only send datagrams larger than 576 octets if they have assurance that the destination is prepared to accept the larger datagrams. The number 576 is selected to allow a reasonable sized data block to be transmitted in addition to the required header information. For exampl服务器托管网e, this size allows a data block of 512 octets plus 64 header octets to fit in a datagram. The maxim服务器托管网al internet header is 60 octets, and a typical internet header is 20 octets, allowing a margin for headers of higher level protocols.
然后我找了一些资料,最合理的解释就是,
在1981年9月通过RFC 791和RFC 793的发布,TCP/IP正式标准化。
在1981年,内存还是很贵的,一次最多发为576字节就够了。
——不是说现在MTU最大就是576字节啊,因为TCP/IP标准也是持续更新的,RFC文档也是不断增加的,更新的内容是在新文档的,不会在旧文档里面改的。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net