用协议分析工具学习TCP/IP( 二 )


分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设置和排除故障时对网络层次理解得很透,将对工作有很大的帮助 。例如:设置路由是网络层IP协议的事,要查找MAC地址是链路层ARP的事,常用的Ping命令由ICMP协议来做的 。
图5显示了各层协议的关系,理解它们之间的关系对下面的协议分析非常重要 。

图5
2)数据发送时是自上而下,层层加码;数据接收时是自下而上,层层解码 。
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络 。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图6所示 。TCP传给IP的数据单元称作TCP报文段或简称为TCP段 。I P传给网络接口层的数据单元称作IP数据报 。通过以太网传输的比特流称作帧(Frame) 。
数据发送时是按照图6自上而下,层层加码;数据接收时是自下而上,层层解码 。

图6
3)逻辑上通讯是在同级完成的
垂直方向的结构层次是当今普遍认可的数据处理的功能流程 。每一层都有与其相邻层的接口 。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程与真正的数据流的不同 。虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应层直接通信 。
从图7可以看出,通讯实际上是按垂直方向进行的,但在逻辑上通信是在同级进行的 。

图7
2、过程描述
为了更好的分析协议,我们先描述一下上述例子数据的传输步骤 。如图8所示:
1)FTP客户端请求TCP用服务器的IP地址建立连接 。
2)TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报 。
3) 假如目的主机在本地网络上,那么IP数据报可以直接送到目的主机上 。假如目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报 。在这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器 。
4) 本例是一个以太网,那么发送端主机必须把32位的IP地址变换成48位的以太网地址,该地址也称为MAC地址,它是出厂时写到网卡上的世界唯一的硬件地址 。把IP地址翻译到对应的MAC地址是由ARP协议完成的 。
5) 如图的虚线所示,ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作广播 。ARP请求数据帧中包含目的主机的IP地址,其意思是“假如你是这个IP地址的拥有者,请回答你的硬件地址 。”
6) 目的主机的ARP层收到这份广播后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答 。这个ARP应答包含I P地址及对应的硬件地址 。
7) 收到ARP应答后,使ARP进行请求—应答交换的IP数据包现在就可以传送了 。
8) 发送IP数据报到目的主机 。

图8
3、实例分析
下面通过分析用iris捕捉的包来分析一下TCP/IP的工作过程,为了更清楚的解释数据传送的过程,我们按传输的不同阶段抓了四组数据,分别是查找服务器、建立连接、数据传输和终止连接 。每组数据,按下面三步进行解释 。
显示数据包
解释该数据包
按层分析该包的头信息
第一组 查找服务器
1)下图显示的是1、2行的数据
点击查看大图
图9
2)解释数据包
这两行数据就是查找服务器及服务器应答的过程 。
在第1行中,源端主机的MAC地址是00:50:FC:22:C7:BE 。目的端主机的MAC地址是FF:FF:FF:FF:FF:FF,这个地址是十六进制表示的,F换算为二进制就是1111,全1的地址就是广播地址 。所谓广播就是向本网上的每台网络设备发送信息,电缆上的每个以太网接口都要接收这个数据帧并对它进行处理,这一行反映的是步骤5)的内容,ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机 。网内的每个网卡都接到这样的信息“谁是192.168.113.1的IP地址的拥有者,请将你的硬件地址告诉我” 。

推荐阅读