存在环回接口有很多用途,一般我们用于在同一机器进行tcp/ip通信。目的地址为环回接口的数据据一般不会出现在网络上(如果有怪异的实现,也没办法)。理论上说传输层检测到目的地址为环回地址时,可以省去部分传输层和全部网络层及其以下的逻辑操作。但大部分产品还是完成了传输层与网络层的所有过程,只是当IP数据报离开网络层时又返回给了自已。

 如图所示,当网络层的IP输出函数发现目的地址为环回地址,则交给环回驱动程序,环回驱动程序把该IP数据包放入IP输入队列中。否则则交给以太网驱动程序。

在太网网驱动程序中,如果发现目的地址为广播或多播地址,如果必要,会复制一份数据给环回驱动程序,然后送到以太网。

如果发现目的地址与接口地址相同,也会交给环回驱动程序。

大多数情况下,上面的流程是对。但上次我添加了一个路由:

route add 本机ip mask 255.255.255.255 网关ip.

这个数据包还是被发送到网关上去了,而不是直接回到IP输入队列。(是不是IP选路功能先执行,我不得而知)