网络为什么要分层?

如题所述

两台机器在网络间传输数据时,需要知道对方的IP、MAC地址等,而当需要传给具体的应用时还需要知道端口号,因此这个传输的数据保存了很多信息。同时,接受方也需要对这些信息进行解析,这就使得解析程序具有很多的逻辑计算,如果这个程序放在一个设备将导致会影响数据传输效率。

因此,类似于模块化的思想,可将网络分层,各层分别负责各自的功能,各层之间的接口都设定为标准,这样当需要对网络传输进行自定义时,只需对单独的层或模块进行处理,只要保证于具有相同的功能和接口就行。如传输层可以是TCP或UDP,应用层可以是HTTP或HTTPS或WEBSOCKET等。

数据在网络各层间的传输表现为:

1.发送方(打包数据):数据可以看作是一块的内存数据或Buffer,在应用层,数据被打包层HTTP头和HTTP数据两部分,接着在传输层加上TCP或UDP头(带有源port和目标port),在网络层加上IP头(带有源IP和目标IP),在数据链路层加上MAC头(带有源MAC号和目标MAC号)

2.接受方(解析数据):数据链路层-网路层-传输层(发给对应的port)-应用层

类似于两栋没有天桥的高楼(26层),A栋24层到B栋24层的过程。A栋和B栋两个的层数必须一样,且必须保证下层完整,如中间不可以少了第10层,但可以少第25层。

所以,网络的分层可以让数据的传输分为不同的模块处理,每个模块都可以对数据进行进一步的处理,只要满足相同的接口和功能。

网络七层模型和五层模型对应关系:
温馨提示:答案为网友推荐,仅供参考