我看了those replies,但那些没有回答我的问题,所以我决定自己问一个。
1)第一个我不明白:为什么TCP / UDP应该对IP有所了解?它是完全不同的协议,它在不同的级别上运行。在将消息发送到UDP模块之前,IP模块是否不会削减IP头?
2)第二种:在校验和计算中很难看到如何使用伪头。 The RFC page of UDP说我需要添加一个伪头,并计算它。但这不可能吗?因为只有两种变体:
A)我创建了这个伪头,并用一些值填充它,但是RFC并没有说它应该是什么值:如果我使用一个值,而接收其他值,则校验和就不匹配了!更多结果:在这种情况下,我可以忽略这一步,这不会以某种方式造成伤害(至少不会再使用不同的填充值)。
B)IP以某种方式访问更高级别的协议(即UDP),并向我提供它自己的填充头,我将在校验和计算步骤中使用它。但这样头不会是“伪”,而且这两个协议实际上就是一个协议。
我之所以问:我需要通过串口创建一个稳定的连接(由于某种原因,可能会有某种方式破坏数据包),我决定在这里制作一个TCP,我绝对不会需要IP协议。