实验三 用协议分析器分析TCP连接建立、释放的过程 【实验目的】
2.熟悉网络协议分析软件Ethereal的使用。
3.加深对TCP连接的建立三次握手过程、数据传输过程和释放过程细节的掌握。 4. 加深对TCP协议的理解。
【实验内容】
1.继续学习使用网络协议分析软件Ethereal。
2.捕捉所需要TCP报文段并进行结构分析。
3.分析TCP连接建立、数据传输和释放的过程。
【实验原理】
1.网络协议分析原理
网络协议分析是截获网络上正在传输的数据报文,并对数据报文的内容进行分析。
网络协议分析需要截获网络上的所有报文,根据上面对网卡接收模式的分析,只要将网卡的接收模式置于混杂模式即可实现。在接收到网络上所有的数据报文后,通过相应的网络协议分析软件进行处理,可以实时分析这些数据的内容,进而分析网络状态和整体布局。
网络协议分析技术主要用来帮助网络管理员对网络进行管理。通过网络协议分析技术,网络管理员可以了解目前网络中正在应用的协议种类,每种协议所占的比例,及哪些设备应用哪些协议进行通讯;同时可以分析协议应用的合理性与有效性,从而合理的选择协议,节约有限的网络宽带,提高网络传输效率;另外,可以诊断出大量的不可见模糊问题,为管理员管理网络区域提供了非常宝贵的信息。
2. TCP包格式分析
TCP报文段结构如图所示。
源端口(16) | 目的端口(16) |
序列号(32) |
|
TCP偏移量(4) | 保留(6) | 标志(6) | 窗口(16) |
校验和(16) | 紧急(16) |
选项(0或32) |
数据(可变) |
| | | |
源端口:指定了发送端的端口
目的端口:指定了接受端的端口号
序号:指明了段在即将传输的段序列中的位置
确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号
TCP偏移量:指定了段头的长度。段头的长度取决与段头选项字段中设置的选项
保留:指定了一个保留字段,以备将来使用
标志:SYN、ACK、PSH、RST、URG、FIN
SYN: 表示同步
ACK: 表示确认
PSH: 表示尽快的将数据送往接收进程
RST: 表示复位连接
URG: 表示紧急指针
FIN: 劳动部表示发送方完成数据发送
窗口:指定关于发送端能传输的下一段的大小的指令
校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性
紧急:指明段中包含紧急信息,只有当U R G标志置1时紧急指针才有效
选项:指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项
3.TCP连接建立、释放
采用三步握手法,正常情况下建立TCP连接。
1 主机1发出连接序号为x(seq=x);
检阅教学设计
2 主机2应答接受主机1的连接请求,并声明自己的序号为y(seq=y,ACK=x+1);
3 主机1收到确认后发送第一个数据TPDU并确认主机2的序号(seq=x,ACK=y+1),至此,整个连接建立过程正常结束,数据传输已正式开始;
其中:CR:Connection Request(连接请求), ACC:Connection Accepted(接受连接)。
TCP连接的关闭。
应用网关
【实验环境】
局域网、Ethereal软件。
【实验步骤】
1.学习使用Ethereal软件。
2.捕捉任何主机发出的TCP报文并进行分析。捕捉时Ethereal的过滤器可为空。
①分析捕获到TCP的格式,按照对应字段出其对应值记录下来,并体会各部分的作用。
Sourceport : 5001(源端口)
Destinationport:1043(目的端口)
Sequence number:2(序列号)
Acknowledgmentnumber: 1(确认号)
URG:0确认
ACK:1推送
PSH:0复位
高速公路服务区设计RST:0同步
SYN:0终止
FIN:0
Window Size:65535(窗口)
Checksum:0x58f8[correct ](检验和)
3.分析连接建立的三次握手过程,记录相关字段及标记值。分析数据传输过程。
两台机器一组,在两台机器上,我们都安装了一个工具来产生具有一定特征的TCP流,这个工具名为ttcp(我们实际使用的是pcattcp,它是Windows 版本的ttcp)。使用ttcp时,首先在一台机器上启动一个接受端,然后在另一台机器上启动一个发送端。这个发送端和处于接受状态的接受端建立起一个TCP连接,然后通过一个打开的通道发送数据。具体过程如下:
在主机A上启动Ethereal软件,过滤器设置为TCP。启动捕获。
在主机B上,在DOS环境下运行pcattcp –r。并记录下B的IP地址。
在主机A上,在DOS环境下运行pcattcp –t –n 192.168.1.4(注意:此IP地址应该是上面记录的主机B的IP地址)。
停止捕获,分析捕获到TCP报文段。对三次握手报文截图。
第一次握手:
第二次握手:
第三次握手:
4.分析3中捕获的TCP报文段的关于连接释放的包,记录相关字段及标记值。对连接释放报文截图。
明溪蓝宝石Sourceport : 5001(源端口)
Destinationport:1043(目的端口)
Sequence number:1572865(序列号)
Acknowledgmentnumber: 1(确认号)
URG:0确认
ACK:1推送
PSH:0复位
RST:0同步
SYN:0终止
FIN:1
Window Size:65535(窗口)
Checksum:0x878d[incorrect ](检验和)
5.分析部分数据传输的过程。
传输数据的简要过程如下:
(1)发送数据:服务器向客户端发送一个带有数据的数据包,该数据报的序列号和确认号与建立连接第三步的数据包中的序列号和确认好相同
(2)确认收到:客户端收到该数据报,向服务器发送一个确认数据包。该数据包中,序列号是为上一个数据报中的确认号的值,而确认号为服务器发送的上一个数据包中的序列号+该数据包中的所带数据的大小。
【分析与讨论】
1.分析序号和确认号的作用?
序号可以保证所有传输数据按照正常的次序进行重组,而且通过
浙江卫视男生女生确认号的确认数据传输的完整性
2.实验体会。
通过这次实验,我学会了如何用协议分析器分析TCP连接建立、释放的过程。了解了TCP的报文格式,对
TCP数据传输有了更深的理解。