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

news/2024/5/17 15:51:00 标签: 工具, 网络, windows, tcp, 路由器, 服务器

一、前言
目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道 TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天。目前号称搞网的人非常多,许多人就是从一把夹 线钳,一个测线器联网开始接触网络的,如果只是联网玩玩,知道几个Ping之类的命令就行了,如果想在网络上有更多的发展不管是黑道还是红道,必须要把 TCP/IP协议搞的非常明白。
学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了。本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体传输过程。
为了初学者更容易理解,本文将搭建一个最简单的网络环境,不包含子网。
二、试验环境
1、网络环境
如图1所示




为了表述方便,下文中208号机即指地址为192.168.113.208的计算机,1号机指地址为192.168.113.1的计算机。
2、操作系统
两台机器都为Windows 2000 ,1号机机器作为服务器,安装FTP服务
3、协议分析工具
Windows环境下常用的工具有:Sniffer Pro、Natxray、Iris以及windows 2000自带的网络监视器等。本文选用Iris作为协议分析工具
在客户机208号机安装IRIS软件。
三、测试过程
1、测试例子:将1号机计算机中的一个文件通过FTP下载到208号机中。
2、IRIS的设置。
由于IRIS具有网络监听的功能,如果网络环境中还有其它的机器将抓很多别的数据包,这样为学习带来诸多不便,为了清楚地看清楚上述例子的传输过程首先将IRIS设置为只抓208号机和1号机之间的数据包。设置过程如下:
1)用热键CTRL+B弹出如图所示的地址表,在表中填写机器的IP地址,为了对抓的包看得更清楚不要添主机的名字(name),设置好后关闭此窗口。
如图2所示



2)用热键CTRL+E弹出如图所示过滤设置,选择左栏“IP address”,右栏按下图将address book中的地址拽到下面,设置好后确定,这样就这抓这两台计算机之间的包。

如图3所示



3、抓包
按下IRIS工具栏中 开始按钮。在浏览器中输入:FTP://192.168.113.1,找到要下载的文件,鼠标右键该文件,在弹出的菜单中选择“复制到文件夹”开始下载,下载完后在IRIS工具栏中按 按钮停止抓包。图4显示的就是FTP的整个过程,下面我们将详细分析这个过程。
如图4所示



说明:为了能抓到ARP协议的包,在WINDOWS 2000 中运行arp –d 清除arp缓存。
四、过程分析
1、TCP/IP的基本原理
本文的重点虽然是根据实例来解析TCP/IP,但要讲明白下面的过程必须简要讲一下TCP/IP的基本原理。
A.网络是分层的,每一层分别负责不同的通信功能。
TCP/IP通常被认为是一个四层协议系统,TCP/IP协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已,如表1所示。每一层负责不同的功能:
如表1所示



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



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

如图6所示



c. 逻辑上通讯是在同级完成的
垂直方向的结构层次是当今普遍认可的数据处理的功能流程。每一层都有与其相邻层的接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程与真正的数据流的不同。虽然通信流程垂直通过各层次,但每一层都在逻辑 上能够直接与远程计算机系统的相应层直接通信。
从图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的工作过程,为了更清晰的解释数据传送的过程,我们按传输的不同阶段抓了四组数据,分别是查找服务器、建立连接、数据传输和终止连接。每组数据,按下面三步进行解释。
·  显示数据包
·  解释该数据包
·  按层分析该包的头信息【未完待续】


http://www.niftyadmin.cn/n/1738026.html

相关文章

关于pycharm中opencv没有函数提示的解决办法

出现这个问题我遇到的主要有两种可能: 1.opencv包采用的是离线下载的安装包进行安装,则没有提示 opencv包的安装过程中如果是离线的安装,则是安装在python环境下或者是anaconda环境下的annocade\Lib\site-packages中直接成的cv.py或者其他安…

HSV颜色模型及颜色分量

HSV颜色模型 HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱和度(S)&#xff0…

转:什么是cookie

什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 假设在用户请求访问您的网站 www.contoso.com 上的某个页面时&#xff0c…

Numpy中对Axis的理解

二维图像中的axis模型: 1.Axis就是数组层级,亦可以理解为数字的维度,设axisi,则Numpy沿着第i个下标变化的方向进行操作 Axis就是数组层级 要想理解axis,首先我们先要弄清楚“Numpy中数组的维数”和"线性代数中矩…

搭建具有高可用性的互联网服务

时间比较紧,只能快速随便记一下吧。 高可用性的架构设计必须与运营成本和用户行为模型一起思考。 同一IDC部署要注意的点是:复用网关出口而导致的服务依赖性问题,比如跟其他公司的服务器共享同一个IDC的网关,如果其他公司的站点收…

Jupyter Notebook中打开想要的文件夹

进入cmd界面输入cd /d 想要打开的目录回车输入 jupyter notebookjupyter notebook浏览器自动跳转进入

Python中的lambda关键字

一个语法 在Python中,lambda的语法是唯一的。其形式如下: lambda argument_list: expression 其中,lambda是Python预留的关键字,argument_list和expression由用户自定义。具体介绍如下。 1. 这里的argument_list是参数列表&…

互联网系统的架构设计必须要考虑的关键点

前两天听了海量用户服务系列课后,收获颇多,快速整理下思路,几个基本点: 一,互联网产品是一个运营的产品,产品的成功很大程度上是运营出来的,而不是开发出来的,从产品的生命周期看&a…