原贴地址:https://blog.youkuaiyun.com/djl806943371/article/details/88769733
端对端原则:要想确认传输了正确的数据给对端,肯定要在处于连接两端的终端的帮助下实现,不可能完全在链路层或者传输层实现,因此必须要在接收端对数据进行验证,这需要在应用层实现。同时这种设计原则,可以将底层的链路层最简化,只负责传输数据,提高传输性能与稳定性。
为什么这么说呢?先举一个例子,MIT曾经有开发者使用过仅在链路层检查数据包是否出错的方式。结果出现了很大问题,这是因为在经过层层路由时,可能在路由内部出现bits反转导致数据出错的问题,而这种情况下,链路层并不知道数据出现了错误。最终开发人员因为这个方式而丢失了大量的源码。
TCP协议提供了可靠的字节流服务,但是还是有可能出错,比如TCP内存出现问题,并且事实证明,TCP协议在很不稳定的链路层中性能并不好,因此端对端检验数据的正确性是必不可少的。
实际无线链路传输自身稳定性并不好,送达率可能只有50%到80%。因此不得不在无线链路层中添加了自动重发机制,以提高送达率到99%以上,此时加上TCP协议才能够实现很好的效果。也就是说链路层可以添加辅助提高可靠性的功能。但是这依然替代不了最终端对端的验证。

本文探讨了端对端原则在数据传输中的重要性,解释了为何链路层无法完全确保数据的准确性,以及端对端验证如何解决这一问题。通过实例说明,在不稳定链路中,如无线网络,端对端校验不可或缺,即使链路层有自动重发机制,最终仍需应用层进行数据验证。
1567

被折叠的 条评论
为什么被折叠?



