1.6.4 IP、ICMP、TCP与UDP协议

与网络嗅探有关的协议主要包括IP(网际互连协议)、ICMP(网际控制报文协议)、TCP(传输控制协议)与UDP(用户数据包协议)。这四个协议是现今互联网工作的核心,下面对它们分别作简要的介绍。

1.IP

IP是一个非连接协议,其管理寻址数据从一个点递送到另一个点,并把大数据包分割成小的、能传输的数据包。IP数据包的主要组成如下:

❑IP标识(IP ID):试图唯一标识IP数据包。

❑协议:描述使用IP层服务的高层协议。

❑生存时间(TTL):数据包在通过互联网时必须具有的受限寿命,当TTL为0时,数据包被丢弃。

❑源IP地址:源点的IP地址,数据包被创建的地方。

❑目的IP地址:终点的IP地址,数据包应该送到的地方。

2.ICMP

网际控制报文协议(ICMP)用于管理网络之间在IP上出现的错误。下面是ICMP常用的报文:

❑回送请求/回答:为诊断目的而设计,可以用来确定在IP级别能否正常通信。例如ping程序使用回送请求与回答报文来计算两个结点之间的网络延时。

❑终点不可达:网络不可达与端口不可达。当一个网络或端口不可达(比如,一个防火墙拒绝了一个数据包或存在网络问题)时,该报文会发送给数据包的源IP地址。终点不可达报文有一些子类型,有助于诊断通信问题。

❑超时:当一个数据包的TTL为0时就会发生超时情况。

3.TCP

TCP是面向连接的协议,通常用来传输数据。TCP面向连接的特性使得选用它进行源IP地址欺骗的可能性很小。下面是TCP的几个重要概念:

❑TCP握手:TCP的一个重要概念是握手。任何数据在两台主机之间交换之前,它们必须同意进行通信。主机A先发送一个带同步序号(SYNchronous,SYN)标识的数据包到主机B上。如果主机B愿意并能通信,它返回SYN数据包并添加确认(ACKnowledgment,ACK)标识。然后主机A开始发送数据,并向主机B指明它接收到了ACK。当主机间的通信结束时,就会发送一个带结束(FINish,FIN)标识的数据包,接下来是一个类似确认的过程。

❑TCP序列:TCP的另一个重要组成是序列标识,每个发送的数据包都是一个序列的一部分。通过这些序列,TCP能控制复杂的任务,诸如重发、确认与排序。

4.UDP

相对于TCP,UDP数据包是面向非连接的,它具有多种用途,用于DNS就是其中一个重要的应用。