TCP 段如何被错误路由

how TCP segments can be misrouted

我只是想知道,TCP 段怎么会是mis-routed,IP header 中的原始源和最终目的地是不是永远不会被触及!

有很多攻击可以进行欺骗或基于'man in the middle attack'或'denial of service attack'或基于'three way hand shake (TCP).'

'syn flood'

我在 Google+ 上发布了问题,我得到了答案,这里是 link https://plus.google.com/+AbedAhmadAlZaben/posts/GxvraNY6oom

Lars Staalhagen 回答了我以下问题:

是的,实际上 IP-header 中可能会出现 IP-checksum 检测不到的错误。每个 error-detecting 代码,即校验和,都有一个 属性 称为剩余错误率,这是未检测到错误的(通常很低)概率。要了解为什么会这样,请考虑两条有效消息 M1 和 M2。如果我们计算这些的Exclusive-OR(XOR),我们得到

 E = M1 XOR M2

那么假设传输了M1,但是在传输的过程中,一些位因错误而改变了。如果错误的位置与 E 中包含“1”位的位置相同,则接收到的消息可以计算为

 M1 XOR E

但由于 XOR-function 的属性,M1 XOR E 与 M2 相同,即另一个有效消息。因此错误将 M1 更改为 M2,校验和将无法检测到错误,因为 M2 也是有效消息。

然而,在实践中,这不是一个严重的问题,因为 IP-packets 通常被封装在例如 MAC-frames 中,它的校验和的残余错误率比 [=26] 低得多=].所以传输错误通常总是会在 MAC-layer 处被捕获,这也是为什么 IP 版本 6 没有校验和字段,而是依赖于较低层的校验和。

通常情况下,路由错误与数据包关系不大headers。正如您所说,不应更改 headers,因此源地址和目标地址将保留,除非存在未检测到的数据包错误(确实会发生)。因此,除非有人修改了网络中的数据包,或者存在一些未检测到的错误,否则数据包本身不是问题。

但可能发生的情况是,由于 routing convergence(这可能需要一段时间),或者仅仅是由于路由器配置错误,数据包可能 mis-routed。