scull自身建立通信

    由于scull模块创建了两个接口,这个接口与简单的回环设备不同,通过其中一个接口传输的任何数据,都将出现在另外一个接口上,而不是第一个接口本身。这就好像用户有两个外部链路,但实际上计算机只对自身做出响应。

    分配一个IP号不能实现该效果,因为如果接口A指向接口B,那么内核如果通过A发送数据,将使用回环通道而不是scull。为了能通过scull接口建立通信,在传输过程中需要修改源及目的地址,通过某一个接口发送出去的数据包应该被另外一个接口接收,但是不能将外发数据包的接收者认为是本机。同样的规则也应该应用于已接收数据包的原地址。

   

以上图中remote0、sn0属于snullnet0网络,可设置IP为

snullnet0 192.168.0.0

local0 192.168.0.1 (sn0接口的IP地址)

remote0 192.168.0.2

 

remote1、sn1属于snullnet1网络,可设置IP为

snullnet1 192.168.1.0

local1 192.168.1.2 (sn1接口的IP地址)

remote1 192.168.1.1

 

如果scull接口切换原地址和目标地址的第三个octet的最低位,其效果是,发送到sn0的数据包将在sn1上出现;

 

所以,从sn0发送数据包到remote0相当于从remote1发送数据包到sn1,而且remote0和sn1的第四个octet要一样;

            从sn1发送数据包到remote1相当于从remote0发送数据包到sn0,而且remote1和sn0的第四个octet要一样;

 

至于,后面有一句话 “我们无法到达属于这两个网络的任意其他“主机””,我是这样理解的:

意思就是从一个网络发出(比如从sn0接口发出)他是无法到达这个网络的任意主机(比如不能到达remote0),因为发出的接口和接收的主机的地址的第三个octet发生了改变,不在是之前那个网络的本地地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值