精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇网络安全◇>>安全技术>>对“IP数据报的窃听”一文的补充

主题:对“IP数据报的窃听”一文的补充
发信人: alan-cc()
整理人: starseacn(2002-03-05 08:51:53), 站内信件



当应用程序用TCP传送数据时,数据就被送入协议栈中然后逐个通过每一层直至被当作一串比特流送入网络。 
在这个过程中,每一层对收到的数据都要增加一些首部信息(有时还会增加尾部信息) 
其中TCP传送经IP的数据单元称之为TCP报文段,简称为TCP段。IP传送到网络接口层的数据单元被称为IP数据报。通过以太网传输的比特流称作帧。 
UDP数据与TCP数据基本一致。只是UDP传送给IP的信息单元称作为UDP数据报,另外一点不同之处就是UDP首部长度为8字节而TCP首部长度为20字节。 
由于TCP、UDP、ICMP、IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据是属于哪一层的。于是IP在首部存入一个长度为8bit的数值。我们称之为协议域。其中1表示ICMP,2表示IGMP,6表示TCP,17表示UDP。 
同样的,许多应用程序都可以使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符,TCP及UDP都要用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。 
到了网络接口层。同样的,因为网络接口层要分别发送IP、ARP、RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16bit的帧类型域。 
那么,当目的主机收到一个以太网数据帧时如何去处理呢? 

下面讲讲“分用”的过程 

什么是“分用”? 

当主机接受到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时会去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程就称之为“分用”。 

分用过程 

进入的数据帧----以太网驱动程序(根据以太网首部中的帧类型进行分用)---根据IP首部中的协议值进行分用----根据TCP或UDP首部中的端口号进行分用 

由此可以看出,协议的确定是通过目的端口号、源IP地址和源端口号进行解包的。 
值得注意的是,很多人认为ICMP、IGMP与IP是不相干的协议族,其实,ICMP、IGMP只是IP的附属协议。这是因为ICMP、IGMP报文都被封装在IP数据报中进行传输的。 

综上所述,对IP数据报的窃听其实就是对分用过程的解析。 
那么如何从根本上来防止数据报的窃听呢?最好的办法就是对数据报进行加密,使那些企图截获数据包进而分析的黑客得到的只是一堆无法解析的二进制代码。 

有人问,是不是可以对IP包的传输分先后次序,也就是说打乱IP数据包的传送次序是不是一种可行的方法呢? 
想法很好。但是......... 

这个问题下次再谈! 



[关闭][返回]