Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TCP/IP 网络层 #3

Open
ICKelin opened this issue Jan 17, 2018 · 0 comments
Open

TCP/IP 网络层 #3

ICKelin opened this issue Jan 17, 2018 · 0 comments

Comments

@ICKelin
Copy link
Owner

ICKelin commented Jan 17, 2018

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

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

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

image

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

  • 如何确定是否属于同一个网络
  • 如何生成路由表
  • 如何匹配路由表
  • 如何转发给下一跳

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

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

路由匹配

路由转发

@ICKelin ICKelin changed the title IP选路算法 TCP/IP 网络层 Jul 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant