linux的哪一部分负责在接口之间“ 转发 ”stream量?
我知道关于“ / proc / sys / net / ipv4 / ip_forward ”,但OS,内核或模块的哪一部分实际上是检查这个设置并决定是否执行转发?
内核是坐在那里, 无意识地转发任何收到的数据包,这是不是寻址到本机到另一个接口的基础上路由表?
这是我一直想深深理解的一个非常根本的问题。
linux的哪一部分负责在接口之间“转发”stream量?
IPnetworking堆栈。 所有IP协议(UDP,TCP等)都运行相同的基本路由工具和行为。 IPv6的情况也是如此,它具有不同的实现,但基本上是相同的架构。
内核是坐在那里,无意识地转发任何收到的数据包,这是不是寻址到本机到另一个接口的基础上路由表?
是。 除了“无意识”的部分,你想说的“按照devise”。
这个过程很简单:当确认IP规范的机器接收到一个数据包时,会做出一些非常简单的决定; 基本的过程是:
ip_forward(...)方法作为整体algorithm的一部分被调用,并且如你所想的那样简单。 IP从根本上说是一个非常非常简单的协议。