网络分层到底是什么?帮你理解网络协议的工作模式

506 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情

本文收录于专栏:《丘山子聊网络协议》。和大家一起聊聊网络协议那些事儿~

网络分层到底是什么?帮你理解网络协议的工作模式

一、刘超先生提出的这四个问题你懂了吗?

理解这四个问题对我们理解为什么网络要分层有很大帮助?如果这四个问题你都懂,那么不必再看此文浪费时间。

Question 1:

TCP建立连接时,需要进行三次握手,那么进行三次握手的时候,IP层和MAC层会有什么操作?

See the source image

我们都知道,安装TCP/IP五层模型,IP层是在第三层网络层,MAC层是在第四层数据链路层。

我们学习网络层的时候,都知道IP协议包含目标地址和源地址,我们从源地址到目标地址,中间需要经过路由转发,这就需要路由协议。

Question 2:

那么数据包从A到D在经过路由转发的时候,如果A被命令下一站是B,那么A发出的数据包,应该把B的IP地址放在哪呢?同理,B的下一站是C,从B发出的数据包,应该把C的IP放在哪呢?

应该不可能放在目标地址吧?那么还怎么到D呢?

Question 3:

刘超先生又提出了一个问题:

我们发送一个HTTP的包,它工作在第七层,是不是不需要经过二层设备呢?或者即便经过了,二层设备也不处理呢?或者换一种问法,二层设备处理的包里,有没有 HTTP 层的内容呢?

p.s.

二层设备是工作数据链路层的设备,比如二层交换机。

三层设备是工作在网络层的设备,比如路由器。

Question 4:

最后,刘超先生提出了一个综合性的问题,理解这个问题,这方面的面试应该是没问题了。

从你的电脑,通过 SSH 登录到公有云主机里面,都需要经历哪些过程?或者说你打开一个电商网站,都需要经历哪些过程?说得越详细越好。

二、网络为什么要分层?

根据国外大佬teamques10介绍,最早计算机网络的设计以硬件为主要关注点,而软件方面则是之后再考虑的。现在的网络软件是高度结构化的。为了降低设计的复杂性,大多数网络被划分成成许多层,每一层都建立在它下面的一层之上。原文如下:

The first computer networks were designed with the hardware as the main concern and the software as an afterthought. This strategy no longer works. Network software is now highly structured. To reduce their design complexity, most networks are organized as a stack of layers or levels, each one built upon the one below it.——Why there is a need for layered designing for networking and communication? Compare TCP/IP and OSI reference models. (ques10.com)

三、层与层之间的关系是什么?

现在可以回答第一个问题了,当TCP进行三次握手发送任一个消息时,都会携带IP层以及MAC层。所以TCP每次发送一条消息,其下面的IP层、MAC层都要将自己的工作做一遍。

要始终牢记一个原则:计算机网络中的任何一个数据包,像房子一样,必须打牢地基,一层一层建上去,不可能有高层没有低层。