本文主要是介绍《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段出现“不需要大于576字节的IPv4数据报“相关内容的解释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《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 bitsTotal Length is the length of the datagram, measured in octets,including internet header and data. This field allows the length ofa datagram to be up to 65,535 octets. Such long datagrams areimpractical for most hosts and networks. All hosts must be preparedto accept datagrams of up to 576 octets (whether they arrive wholeor in fragments). It is recommended that hosts only send datagramslarger than 576 octets if they have assurance that the destinationis prepared to accept the larger datagrams.The number 576 is selected to allow a reasonable sized data block tobe transmitted in addition to the required header information. Forexample, this size allows a data block of 512 octets plus 64 headeroctets to fit in a datagram. The maximal internet header is 60octets, and a typical internet header is 20 octets, allowing amargin for headers of higher level protocols.
然后我找了一些资料,最合理的解释就是,
在1981年9月通过RFC 791和RFC 793的发布,TCP/IP正式标准化。
在1981年,内存还是很贵的,一次最多发为576字节就够了。
——不是说现在MTU最大就是576字节啊,因为TCP/IP标准也是持续更新的,RFC文档也是不断增加的,更新的内容是在新文档的,不会在旧文档里面改的。
这篇关于《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段出现“不需要大于576字节的IPv4数据报“相关内容的解释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!