| 的功能比 IP 更进一步,并提供两个重要特性:连接和服务质量。这意味着您可以在两台主机之间开一个虚拟通道,通过这个通道,使得所发送的包的顺序及其实际传递都得到保障。
接下来更高的一级是应用层协议,如 Telnet 和 SMTP。它们都使用由 TCP 提供的服务。例如,当您用 Telnet 连接到主机时,打开一个连接,并且您希望所有输入这个 Telnet 会话的数据都以正确的顺序发送到接收主机。
理解 IP
尽管我将不在本文中介绍任何 IP 级别的攻击,但我确实需要稍微详细地讨论 IP,因为它是 ICMP 和 TCP 的底层协议。
IP 提供在两个设置为 IP 节点的网络节点(称为源和目的地)间传输数据块的服务。源和目的地节点都用 IP 地址标识。要使一个 IP 网络中的两个节点能够通信,那些 IP 地址必须在整个网络中是唯一的。IP 地址(IP 版本 4)是一个 32 位数,通常以点分十进制符号(如 10.0.0.1)表示。
因为 IP 提供的是无连接、不可靠、最高效的(best-effort)数据报传递服务,所以 IP 的使用范围多少受到了限制。但是,它提供两个基本功能:寻址和分段。地址(在 IP 数据报头中封装为源和目的地地址)用来将数据报传输到其目的地,这个过程称为路由。有两种基本情况:
接收主机和发送主机位于同一子网,这种情况下数据报将被直接从发送方发送到接收方。
接收主机位于不同的子网,这种情况下发送主机将把数据报转发到网关(连接两个子网的 IP 主机),然后,如果目的地主机在一个与网关相连的子网中,则网关会尝试将数据报传递到目的地主机。如果目的地主机不在与网关相连的子网中,网关将会把数据报转发到另一个网关。这个过程将反复进行,直到能够将数据报传递到其目的地主机为止。
如果要传输的数据报超过了底层物理层规定的最大包的大小,则 IP 模块会在发送前将该数据报分割成几个较小的包(称为分段),然后在接收中时重新组装它们。
既然我已经介绍了基础知识,现在可以讨论个别协议了。在以下几节中,您将找到关于 ICMP 和 TCP 的更详细的信息以及一些使用这些协议的有趣的攻击。
使用 ICMP
因为 ICMP 是面向包的,所以它在相互连接的网络系统中是不可靠的主机对主机数据报服务,提供无保证的传递。ICMP 使用 IP 的基本支持,就好象是更高级别的协议。但是,ICMP 是 IP 的组成部分 — 这基本上意味着 ICMP 包将 IP 头用于传输 — 而且 ICMP 必须由每个 IP 模块实现。通常,ICMP 用来报告主机上数据报处理中的错误。ICMP 的部分功能包括:
目的地不可到达消息:如果根据网关的路由表,数据报中指定的要转发的目的地地址是不可到达的,则网关会向源主机返回 ICMP 的目的地不可到达消息,通知发送主机包传递不成功。
超时消息:每个 IP 数据报头中都包含一个字段 — 称为“生存时间字段” — 它指出数据报在被丢弃之前还能在因特网上保持多久。数据报在因特网上保持的时间以跳跃点(hop)衡量,其中一个跳跃点表示数据报通向目的地节点路径上的一个网关。当数据报经过网关转发时,它就将生存时间字段中的值减一。如果处理数据报的网关测定该数据报 IP 头中的生存时间字段为 0,则丢弃该数据报并用超时消息通知源主机。
回应请求和回应应答消息:如果主机 A 想知道主机 B 是否是活动的,则主机 A 会向主机 B 发送一条 ICMP 回应请求消息。主机 B 将用 ICMP 回应应答消息来应答,以表明自己是活动的 上一页 [1] [2] [3] [4] [5] 下一页 |