对FTP登入产生的帧的分析
一次成功的FTP登陆是从命令行ftp 192.168.30.7开始的,结束于提示User Logged in出现ftp>提示符。通过使用Iris v4.0对本机(IP:192.168.30.40)和FTP服务器(IP:192.168.30.7)之间传输的数据进行捕捉,一共获得了11个帧,并将其保存为一个Cap文件进行分析,其中FTP Data不为0bytes的帧有第4、6、7、9、10帧,下面结合实际情况对帧的结构进行说明。
MAC Header Ipv4 Header TCP Header FTP Data
14 20 20 可变
表1 帧结构
TCP/IP模型为4层结构,分为应用层,运输层,网络层以及数据链路层。由表1可以清楚的看出这四层结构。首先是属于应用层的FTP数据,由于它是最原始的数据,所以被放置在一个帧的最里面,由于应用程序的分层设计,所以在有的帧中FTP Data为0字节,因为这些帧没有涉及到应用层程序的操作,然后把这个只有FTP Data的帧传送给运输层。在这一层在FTP数据的前面加上了一个TCP Header,长度为20个字节,然后把此帧传送给网络层,由网络层在帧的前面加上IP Header,最后传给数据链路层,在帧的前面加上MAC Header。这样就完成了一个帧的组合,下面分别对一个帧的四个组成部分进行详细的说明。
MAC Header
MAC Header是在数据链路层加上的,他的长度为14个字节,结构如下:
Destination Address Source Address Type
6 6 2
表2 MAC Header结构
我们知道,网络中的每台计算机都有自己的IP地址,每个应用程序都有自己的Port,这样保证了数据能够传送给指定IP上的指定的应用程序。链路层不关心这些帧送到目的地以后是如何被按层拆解的,以及这个帧中的信息是送给那个应用程序的,他只负责把一个帧送到指定地址的计算机或者其他设备上,这样就足够了,所以,在MAC Header中没有多余的信息,只包含了和IP地址相对应的物理地址MAC地址,以及Type。
由于是把这个帧发送出去,因此把接受方的MAC地址放在了最前面,同时也把发送方的MAC地址告诉了接受方,这样才可以让接受方知道响应的时候把帧送到哪里去,这两个MAC地址的长度都是6字节,其中前三位[前三个字节中的第1,2位并不是厂商地址,而是具有特殊意义的。] 是硬件设备的厂商被分配的地址,后面的三位是这个厂商的自己的流水号。在一般情况下,MAC地址是不能像IP地址那样通过软件来随意更改的,这样保证了网络上不会出现同样的MAC地址,保证了数据传输。当我们知道目的节点的IP地址,但是不知道它的物理地址时,就要使用ARP协议,发送一个广播帧给网络中的所有节点,在这个广播帧中MAC的目的地址是FF:FF:FF:FF:FF:FF,在这个帧中记录了目的节点的IP
一次成功的FTP登陆是从命令行ftp 192.168.30.7开始的,结束于提示User Logged in出现ftp>提示符。通过使用Iris v4.0对本机(IP:192.168.30.40)和FTP服务器(IP:192.168.30.7)之间传输的数据进行捕捉,一共获得了11个帧,并将其保存为一个Cap文件进行分析,其中FTP Data不为0bytes的帧有第4、6、7、9、10帧,下面结合实际情况对帧的结构进行说明。
MAC Header Ipv4 Header TCP Header FTP Data
14 20 20 可变
表1 帧结构
TCP/IP模型为4层结构,分为应用层,运输层,网络层以及数据链路层。由表1可以清楚的看出这四层结构。首先是属于应用层的FTP数据,由于它是最原始的数据,所以被放置在一个帧的最里面,由于应用程序的分层设计,所以在有的帧中FTP Data为0字节,因为这些帧没有涉及到应用层程序的操作,然后把这个只有FTP Data的帧传送给运输层。在这一层在FTP数据的前面加上了一个TCP Header,长度为20个字节,然后把此帧传送给网络层,由网络层在帧的前面加上IP Header,最后传给数据链路层,在帧的前面加上MAC Header。这样就完成了一个帧的组合,下面分别对一个帧的四个组成部分进行详细的说明。
MAC Header
MAC Header是在数据链路层加上的,他的长度为14个字节,结构如下:
Destination Address Source Address Type
6 6 2
表2 MAC Header结构
我们知道,网络中的每台计算机都有自己的IP地址,每个应用程序都有自己的Port,这样保证了数据能够传送给指定IP上的指定的应用程序。链路层不关心这些帧送到目的地以后是如何被按层拆解的,以及这个帧中的信息是送给那个应用程序的,他只负责把一个帧送到指定地址的计算机或者其他设备上,这样就足够了,所以,在MAC Header中没有多余的信息,只包含了和IP地址相对应的物理地址MAC地址,以及Type。
由于是把这个帧发送出去,因此把接受方的MAC地址放在了最前面,同时也把发送方的MAC地址告诉了接受方,这样才可以让接受方知道响应的时候把帧送到哪里去,这两个MAC地址的长度都是6字节,其中前三位[前三个字节中的第1,2位并不是厂商地址,而是具有特殊意义的。] 是硬件设备的厂商被分配的地址,后面的三位是这个厂商的自己的流水号。在一般情况下,MAC地址是不能像IP地址那样通过软件来随意更改的,这样保证了网络上不会出现同样的MAC地址,保证了数据传输。当我们知道目的节点的IP地址,但是不知道它的物理地址时,就要使用ARP协议,发送一个广播帧给网络中的所有节点,在这个广播帧中MAC的目的地址是FF:FF:FF:FF:FF:FF,在这个帧中记录了目的节点的IP