因为教科书或者老师往往会打一个十分不恰当的比喻:为什么网络要分层呀?因为不同的层
次之间有不同的沟通方式,这个叫作协议。例如,一家公司也是分“层次”的,分总经理、
经理、组长、员工。总经理之间有他们的沟通方式,经理和经理之间也有沟通方式,同理组
长和员工。有没有听过类似的比喻?
那么第一个问题来了。请问经理在握手的时候,员工在干什么?很多人听过 TCP 建立连接
的三次握手协议,也会把它当知识点背诵。同理问你,TCP 在进行三次握手的时候,IP 层
和 MAC 层对应都有什么操作呢?
除了上面这个不恰当的比喻,教科书还会列出每个层次所包含的协议,然后开始逐层地去讲
这些协议。但是这些协议之间的关系呢?却很少有教科书会讲。
学习第三层的时候会提到,IP 协议里面包含目标地址和源地址。第三层里往往还会学习路
由协议。路由就像中转站,我们从原始地址 A 到目标地址 D,中间经过两个中转站 A->B-
>C->D,是通过路由转发的。
那么第二个问题来了。A 知道自己的下一个中转站是 B,那从 A 发出来的包,应该把 B 的
IP 地址放在哪里呢?B 知道自己的下一个中转站是 C,从 B 发出来的包,应该把 C 的 IP
地址放在哪里呢?如果放在 IP 协议中的目标地址,那包到了中转站,怎么知道最终的目的
地址是 D 呢?
教科书不会通过场景化的例子,将网络包的生命周期讲出来,所以你就会很困惑,不知道这
些协议实际的应用场景是什么。
我再问你一个问题。你一定经常听说二层设备、三层设备。二层设备处理的通常是 MAC 层
的东西。那我发送一个 HTTP 的包,是在第七层工作的,那是不是不需要经过二层设备?
或者即便经过了,二层设备也不处理呢?或者换一种问法,二层设备处理的包里,有没有
HTTP 层的内容呢?
最终,我想问你一个综合的问题。从你的电脑,通过 SSH 登录到公有云主机里面,都需要
经历哪些过程?或者说你打开一个电商网站,都需要经历哪些过程?说得越详细越好。
实际情况可能是,很多人会答不上来。尽管对每一层都很熟悉,但是知识点却串不起来。
评论0