为什么网络协议选择分层设计?这样做有什么好处?
9 个回答
因为现在流行的网络层以上协议都是ip的,所以看上去分层好像没有那么必要了。但是分层模型出来的时候,网络的形态千奇百怪,IP协议只是其中之一。
所以IP以上协议,现在看起来不分层好像问题也不大。反正就2个协议族tcp和udp。tcp上面99%以上是http。
但是不是每个开发者都要从IP层开始写软件呢?现在看到最大的好处就是解放了应用层开发者,他们专心去写应用不用关注下层实现。但是必须明白下层提供的服务能力。
事实上,在常见的用户协议以外,有很多很多很多设备间的协议。这些协议如果在分层模型下定义很“纯粹”,如果不是分层,那么设计起来就复杂多了。
说到底,还是复杂问题简单化的结果。
而对于IP层以下的协议,分层的好处是一目了然的:不同的接入方式必然是不同的协议。如果http在wifi上和在以太上,在gprs上,lte上各自定义完整的协议栈,那么服务器端怎么办?不可能为每一种接入方式提供一个服务器协议栈吧。也不现实,不经济。如果在IP层分开,那么服务器只要一套就可以支持各种终端了
所以至少在ip层以下分层非常必要。