第三次实验报告:使用Packet Tracer分析TCP连接建立过程

个人信息:

姓名:钟逸强

学号:201821121092

班级:计算1813

目录

  • 1 实验目的
  • 2 实验内容
  • 3. 实验报告
    • 3.1 建立网络拓扑结构
    • 3.2 配置参数
    • 3.3 抓包,分析TCP连接建立过程
  • 4. 拓展 

1 实验目的

  • 使用路由器连接不同的网络
  • 使用命令行操作路由器
  • 通过抓取HTTP报文,分析TCP连接建立的过程

2 实验内容

使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程。

  • 建立网络拓扑结构
  • 配置参数
  • 抓包
  • 分析数据包

3. 实验报告

3.1 建立网络拓扑结构

网络拓扑图如下图所示:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第1张图片

3.2 配置参数

(1)客户端的IP地址和网关配置:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第2张图片

 

(2)服务端的IP地址和网关配置:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第3张图片

(3)路由器参数配置:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第4张图片

配置并激活端口:

Router>enable                          #进入特权执行模式

Router#configure terminal        #进入全局配置模式

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#hostname R    #将路由器名称配置为R

配置G0/0接口:

R(config)#interface G0/0

R(config-if)#ip address 192.168.1.93 255.255.255.0  #设置IP地址和子网掩码

R(config-if)#no shutdown            #激活端口

 

R(config-if)#

%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up 

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

 配置G0/1接口:

R(config-if)#exit                      #返回上一层

R(config)#interface G0/1

R(config-if)#ip address 192.168.2.93 255.255.255.0  #设置IP地址和子网掩码

R(config-if)#no shutdown     #激活端口

 配置路由算法

R(config-if)#exit    #返回上一层

R(config)# router rip     #使用rip 2版本

R(config-router)#version 2   #使用rip 2版本;

R(config-router)#no auto-summary   #关闭自动路由汇总

指定网络:

R(config-router)#network 192.168.1.0

R(config-router)#network 192.168.2.0

 

3.3 抓包,分析TCP连接建立过程

抓取到的数据包:

Http包:

请求报文:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第5张图片

响应报文:

 

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第6张图片

  

 TCP包:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第7张图片

 

 第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第8张图片 

 第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第9张图片

 

 第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第10张图片 

 第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第11张图片

 

 第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第12张图片 

通过抓取HTTP数据包得到的TCP报文,完成如下事情:

(1)画出TCP连接建立示意图

如下图所示:

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第13张图片

(2)分析序号和确认号的变化

1.第一次握手:建立连接。PC端发送连接请求报文段,将同步序号SYN位置为1,ACK=0;顺序码Seq为0 ; 然后,PC端进入发送状态,等待Server端的确认;

2.第二次握手:Server收到SYN报文段。Server端收到PC端的同步序号SYN报文段,需要对这个SYN报文段进行确认,设置ack为Seq+1(表示确认接收到PC的请求); 同时,发送SYN请求信息,将SYN位置为1,Seq为0; Server端将上述所有信息放到SYN=1+ACK=1报文段中(表示发送连接请求和确认应答有效),发送给PC端,此时Server进入接收状态;

3.第三次握手:PC收到服务器的SYN+ACK报文段。然后将确认号ack设置为seq+1(表示确认接收到Server的请求),向Server发送ACK=1报文段(表示应答有效),之后,PC端和Server端进入连接状态;

 

(3)解答:为什么连接建立需要第三次握手

因为已经失效的请求报文可能会再发送到服务器端,使得服务器端再产生新的连接,所以需要客户端再发送一次ACK=1的报文,来确认收到服务器的SYN+ACK报文段,不会再接收错误的新连接请求

 

4. 拓展 

(1)分析TCP连接释放

TCP连接释放示意图如下图所示

第三次实验报告:使用Packet Tracer分析TCP连接建立过程_第14张图片

 

为什么连接释放需要四次握手?

 第一次握手是向Server发送一个FIN=1的连接释放请求,并令seq=102;

 第二次握手是Server收到了PC发来的FIN报文段,向PC发送一个ack=seq+1(102+1)确认接收到PC的请求,并发送ACK=1表示应答有效;

 第三次是发送一个FIN=1连接释放请求给PC,关闭Server到PC的连接;

 第四次握手是PC端收到FIN报文后,发送ACK=1的应答报文给Server.

 其实实际来说是算三次握手,原理跟建立连接的过程差不多,区别就是,建立连接的时候SYN和ACK可以一起传输,但是释放的时候Server发给PC端的ACK和FIN要分开发,因为Server端存在待发送的数据,先发ACK=1的报文回应PC端,间隔一段时间把数据发送完,再断开连接并发送FIN包给PC,PC就会断开连接并发送ACK回复Server端。

(2)通过该实验如果有产生新的疑问,可以写出来,并尝试自己解决问题

 

 为什么连接释放的第四次握手的确认号ack,不是ack=seq+1?

你可能感兴趣的:(第三次实验报告:使用Packet Tracer分析TCP连接建立过程)