Linux网络协议与连接配置详解
1. Internet控制消息协议(ICMP)
ICMP是IP的一个配套协议,由内核网络代码用于向其他主机传达错误消息。例如,当你在 erdos 上尝试通过telnet连接到 quark 的12345端口,但该端口没有进程监听时, quark 的网络层会在收到第一个针对该端口的TCP数据包后,立即向 erdos 返回一条“端口不可达”的ICMP消息。
ICMP协议提供了多种不同的消息,其中很多用于处理错误情况。特别的是,有一种名为重定向(Redirect)的消息。当路由模块检测到其他主机将其作为网关,但实际上存在更短的路由时,就会生成这种消息。比如, sophus 启动后路由表可能不完整,发往 quark 的数据包会被发送到 gcc1 ,而不是物理部门的网关 niels 。 gcc1 收到数据包后,会将其转发给 niels ,同时向 sophus 返回一条ICMP重定向消息,告知更优的路由。
不过,依赖动态路由方案(如RIP或ICMP重定向消息)并非总是明智之举。ICMP重定向和RIP在验证路由信息的真实性方面提供的选择很少或根本没有,这可能让恶意攻击者扰乱整个网络流量。因此,Linux网络代码将网络重定向消息视为主机重定向消息,以限制攻击的影响范围,但在正常情况下会产生更多流量。如今,依赖ICMP重定向进行任何操作通常被
超级会员免费看
订阅专栏 解锁全文

1978

被折叠的 条评论
为什么被折叠?



