ICKelin / article

读书笔记,博客文章
MIT License
116 stars 18 forks source link

TCP/IP 网络层 #3

Open ICKelin opened 6 years ago

ICKelin commented 6 years ago

网络层非常复杂,想通过这篇文章完全了解网络层是不太现实的,本文只是描述网络层的解决的一些问题,以及它具体是怎么解决的描述清楚。

网络层解决的一个重要问题是如何将数据包送到目的地。

网络层的互联通过路由器进行,路由器接收下级网络的数据,并转发到上一级(如果需要的话),这个属于路由转发,路由转发解决将数据包转发出去,但是在做路由转发之前,需要确定转发到哪个地址,只就需要路由器内部的路由表,如果目的地址在当前网络下,那就不需要转发给下一跳,否则获取到下一跳地址然后转发给下一跳,这里面又会引出另外两个问题,第一,怎么判定是否属于同一个网络,第二,路由表怎么生成,生成的依据是什么,这里面可能又需要涉及生成路由表的路由算法。每个路由器都需要做路由表匹配以及转发到下一跳的过程,但是路由算法并不需要每个路由器都运行,上述过程可以概括为以下流程。

image

所以要实现路由器的转发功能,需要解决几个问题:

判定两个地址是否属于同一个网络

如何生成路由表——路由算法

路由匹配

路由转发