计算机网络基础 (三)--- 网络层 -IP 协议的转发流程
文章内容概览
在上一篇文章中提到,计算机A在给计算机B发送数据的时候,数据的路径,可能是通过中型网络、*大型网络*、中型网络、*小型网络*,然后到达计算机B
现在把这条路径抽取出来
并且将其压平,可以看到计算机A通过中间的3个网络和路由器,将数据报文传输给了B
关于数据的转发过程,有一个概念叫:逐跳(hop-by-hop)。意思就是计算机A发送的报文是一跳一跳的来到计算机B的,网络1==》路由器1==》网络2==》路由器2==》网络3==》计算机B
路由表简介
在前边介绍数据链路层的时候,有提到过一个MAC地址表。它的工作流程如下:
路由表工作在网络层,它的工作流程其实是和MAC地址表差不多的。下图中左边为MAC地址表、右边为路由表。MAC地址表由两列组成,分别是MAC地址和*硬件接口*。路由表的重点部分也是由两列组成的,分别是目的IP地址和**下一跳IP地址**。计算机和路由器都拥有路由表
IP协议的转发流程
在最开始的时候,有提到下边这个网络拓扑。计算机A需要跨设备将数据传输给计算机C,仅有数据链路层是无法解决的,因此需要网络层。有了路由表和前边了解到的IP协议的内容,就可以实现跨设备的数据传输了
整个跨设备数据传输过程如下:
A发出目的地为C的IP数据报,查询本地路由表发现下一跳为E
A将数据报发送给E
E查询本地路由表发现下一跳为F,将数据报发送给F
F查询本地路由表发现目的地C,是和自己直接连接的,然后将数据报发送给C
上边是仅从网络层去看这整个数据传输的过程,下边结合数据链路层和网络层,看整个过程:
第一步:
A发出目的地为C的IP数据报,查询路由表发现下一跳为E
A将IP数据报交给数据链路层,并告知目的MAC地址是E
数据链路层填充源MAC地址A和*目的MAC地址E*
数据链路层通过物理层将数据发送给E
第二步:
E的数据链路层接收到数据帧,把数据帧传输给网络层
E查询路由表,发现下一跳为F
E把数据交给数据链路层并告知目的MAC地址为F
E的数据链路层封装数据帧并发送(此时源MAC地址和目的MAC地址就会发生变化,源MAC地址为E,目的MAC地址为F)
第三步:
F的数据链路层接收到数据帧,把数据帧交给网络层
F查询路由表,发现下一跳为C
F把数据交给数据链路层,并告知目的MAC地址为C
F的数据链路层封装数据帧并发送
从上边的整个过程中可以发现
数据帧每一跳的MAC地址都在变化(源MAC地址和目的MAC地址)
IP数据报每一跳的IP地址始终不变
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践
版权声明: 本文为 InfoQ 作者【书旅】的原创文章。
原文链接:【http://xie.infoq.cn/article/56a276bf56deb4e532b084986】。文章转载请联系作者。
评论 (1 条评论)