2. 计算机网络中各个层次间是如何配合工作的

小智: 大鹏哥,上次你给我讲了网络分层,还有各个层次间的作用,可是我还是没搞清楚他们之间是如何配合一起工作的呢?

协议报文

大鹏:别急,在搞清楚这个问题之前,我们得先了解另外一个在网络中非常重要的概念——报文文是各种网络协议一起配合完成网络通信的最终实体,不管是哪种网络协议,不管协议多么复杂,也不管两台主机要互相发送什么内容,最终在网络当中传输的都是一个一个的协议报文。就像人说话,说的内容用文字记录,网络协议的内容是用报文来记录的。要搞清楚网络中各个层次之间配合工作的机制,通过看每层协议的报文就很可以很直观的理解了。

上节我们说到,数据链路层使用以太网协议,使用的标识是网卡的mac,那以太网的报文头长啥样呢?

以太网报文头

看起来是不是很简单呢?源MAC地址表示发出报文的电脑的MAC,目的MAC地址表示要发往目的设备的MAC,最后还有一个协议号。小智,考考你,你觉得这个协议号表示什么?

小智: 呃,额,会不会就是说这个是网络层的ip协议啊?

大鹏: 不错不错,看来你已经想明白了,确实,这个协议号就是用来标识网络层ip协议的,通过协议号,数据链路层和网络层就关联起来了。

我们再来看看网络层,下面这张图是网络层ip协议的报文头:

ip报文头

这个看起来就有点复杂了,我们先不用关注每个字段它有什么用,我们可以看到报文头里面有源IP地址,目的IP地址,这个表示要通信的源主机IP地址和目的主机IP地址,里面也有一个协议字段,跟以太网协议类似,这个协议号表示的是传输层协议号,就是传输层的tcp/udp协议,通过协议号,网络层和传输层就关联起来了。

再来看传输层,传输层有两个重要的协议,一个是tcp,一个是udp。tcp报文头是这样的:

tcp报文头

udp的报文头是这样的:

udp报文头

看起来不比IP头简单,对不对?不过也不急,我们还是先看下现在重点要看的字段,什么字段呢?当然是源端口和目的端口了,源端口和目的端口分别表示的是通信源主机使用的端口号和目的主机的端口号,上节我们提到了端口号的作用,端口号它表示应用层是哪个软件要进行通信,通过端口号,传输层和应用层关联起来了。

在实际使用中,比如QQ通信,整个协议报文就是长这个酱紫啦:

整个报文

从这个协议报文我们可以看到,除了物理层,其它四个层次在网络报文中都有体现。

小智: 嗯嗯,原来层次之间就是通过报文头部里面的字段来指示上层是什么网络协议呀,大鹏哥,那你能再给我讲讲计算机是怎么一层层封装整个报文的吗?

协议报文的封装和解封装

大鹏: 这个问题呢,我们可以从两个方向来看,一个是计算机主动往外发信息,一个是计算机收到发给它的信息。我们先说计算机往外发信息,报文是怎么封装的。

首先我们得知道发信息的主体是谁?上一节其实说过,计算机通信,最终还是操作系统上面软件的通信,还是以上节的例子QQ来说,我们通过QQ给好友发送一条消息,比如“你好”两个字,那么通信报文实际要包含的内容就是“你好”,对端电脑上的QQ要解析出“你好”两个字,还得依赖于应用层协议的规则,这个规则在这里就是QQ的应用层协议QICQ,QICQ把“你好”两个字封装好,应用层就处理完了。

接着就交给传输层处理了,应用层只需要告诉传输层我使用的是传输层的什么协议,比如QICQ使用的是udp协议,以及要使用的端口就行了,至于里面传输的内容“你好”,传输层是不关心的;

接着就到网络层了,网络层只需要知道传输层使用的是udp就行了,它更关心的是我该使用哪个源IP地址发出去,我要去往的目的IP是谁,传输什么内容,网络层也是不关心的;

对数据链路层,它也只需要知道上面使用的是ip协议,它更关心的是我该使用哪个源MAC发出去,我要去往的目的MAC是谁。

所以,计算机发消息的报文封装过程,就像俄罗斯套娃,一层套一层,层层封装,每层封装的都是自己的报文头,需要关心的是自己上层使用的是什么协议,至于里面传输的具体内容,它是不关心的

我们再来说说QQ好友收到消息的过程,收消息相对于发消息的报文封装,它是一个反向的过程,开始收到的是一个完整的报文,每经过一层,这一层就把自己的头部剥掉,到QQ这里,它把QICQ协议的头剥掉,用户界面最终看到的就是“你好”两个字

协议报文封装解封装的过程,我画了下面这张图,这样看起来就一目了然了。

小智: 大鹏哥,现在我算是明白每个层次是怎么玩的了,好像也没那么复杂啊,就是每个层次有个报文头,然后封装解封装。

大鹏:你可别高兴地太早,到现在我们也只是从整体上对网络通信的流程以及报文封装有了个大致的了解,对于每一层深层次的工作机制的研究还没开始呢。

小智:好吧,我想着也不会这么简单,不过有我大鹏哥这么通俗易懂的讲解,我一点都不担心我整不明白啦,哈哈。

大鹏:你可别太指望我,说了这么多,要想真正转化为自己的东西,还得多多思考才是呢。

小智:嗯嗯,我知道啦!

获取更多电子书资料电子书资料汇总,请关注我的公众号:【程序员小智和大鹏】,回复“电子书”获取。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值