为什么不使用TCP/UDP,为什么碎片在IP上完成

mah*_*esh 2 c++ networking tcp ip-protocol

我正在寻找为什么碎片在IP级别完成的原因,但为什么不在TCP/UDP上.

假设我的框架看起来像这样| MAC | IP | TCP |有效载荷| FCS.整个大小,如果说例如:1600.PathMTU发生在这里,为什么实现碎片@ IP级别是我的问题,为什么没有实现@ TCP/UDP级别/代码.

预先感谢.

sha*_*oth 11

这正是TCP/IP堆栈和ISO/OSI模型中的多个层的用途.TCP/UDP是传输协议,它们不应该关注碎片 - 这不是它们的问题.IP级别处理网络,它处理碎片,因为碎片的大小取决于网络属性.具有解决问题的最佳条件的层确实解决了它.