IP头中有一个“不分片”标志。 应用程序能设置这个标志吗? 何时设置此标志以及为什么要设置?
RFC 791的后文进一步说明:
If the Don't Fragment flag (DF) bit is set, then internet
fragmentation of this datagram is NOT permitted, although it may be
discarded. This can be used to prohibit fragmentation in cases
where the receiving host does not have sufficient resources to
reassemble internet fragments.
所以,它们最初设想的是具有最简单实现 IP 和少量内存的小型嵌入式设备。今天,您可能会将 IoT 设备视为智能灯泡或烟雾报警器。它们可能没有重新组装片段的代码或内存,因此与其通信的软件会设置 DF。
当一个因特网数据报在允许大数据包大小的本地网络中产生,但必须穿过将数据包限制为较小大小以达到目的地的本地网络时,需要对其进行分段。
可以标记因特网数据报为“不要分段”。任何标记为不要分段的因特网数据报都不得在任何情况下进行因特网分段。如果无法将标记为不要分段的因特网数据报传递到其目的地而不对其进行分段,则应将其丢弃。
应用程序能够设置这个标志吗? 如果您编写的代码足够底层,处理IP头部,则可以设置此标志。对于更具体的答案,此问题的这一部分有点宽泛,您可能应该先确定是否要设置它,然后再考虑如何设置。