计算机网络基础 (三)--- 网络层 -IP 协议的转发流程

用户头像
书旅
关注
发布于: 2020 年 07 月 15 日
计算机网络基础(三)---网络层-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地址始终不变



在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践



发布于: 2020 年 07 月 15 日 阅读数: 47
用户头像

书旅

关注

公众号:IT猿圈 2019.04.11 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
Nice
2020 年 08 月 06 日 22:40
回复
没有更多了
计算机网络基础(三)---网络层-IP协议的转发流程