1 实验目的

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

2 实验内容

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

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

3. 实验报告

 

3.1 建立网络拓扑结构

网络拓扑图如下图所示:

3.2 配置参数

                    配置客户端和服务器端

  • 客户端的IP地址为192.168.1.67,并设置其子网掩码255.255.255.0,和默认网关,192.168.1.68
  • 服务端的IP地址为192.168.2.67,并设置其子网掩码255.255.255.0,和默认网关,192.168.2.68
  • 至此客户端参数配置完毕
    • 配置路由器
  • 进入路由器的CLI窗口(相当于window下的DOS命令窗口)
  • 在Router下键入enable,进入特权执行模式
  • 再输入configure terminal,进入全局配置模式
  • 输入interface GigabitEthernet0/0,进入路由器的一个接口
  • 输入 ip address 192.168.1.68 255.255.255.0 配置路由器接口的地址和子网掩码
  • 输入 noshutdown,默认情况下该接口是关闭的,应打开该接口,会发现连线红色的点变为绿色。
  • 输入exit,离开路由器的该端口
  • 输入 interface GigabitEthernet0/1,进入路由器的另一接口
  • 输入ip address 192.168.2.68 255.255.255.0配置路由器接口的IP地址及子网掩码
  • 输入 no shutdown
  • 至此路由器参数配置完毕
  •                  验证连接是否正确
  • 输入 exit 进入router目录下
  • 输入 show ip interface brief,显示IP地址的设置情况
    • 输入show ip route 
  • 在客户端的desktop下的command prompt下输入ping 192.168.2.67
  • 至此建立连接验证完毕。

 

路由器常用命令summary

 Router>

            (用户模式)

Router>enable

             (进入特权执行模式)

Router#

              (特权执行模式)

Router#configure terminal

             (进入全局配置模式)

Router(config)#

             (全局配置模式)

Router(config)#no ip domain-lookup

             (禁用DNS查找)

Router(config)#hostname R

              (设置路由器名称)

R(config)#interface G0/0

              (设置路由器接口)

R(config-if)#ip address 192.168.1.67 255.255.255.0

              (设置路由器接口IP地址和子网掩码)

R(config-if) no shutdown

                (激活接口)

R(config)#router rip

                (进入rip路由协议配置模式)

R(config-router)#

                (路由协议配置模式)

R(config-router)#version 2

                 (使用version2)

R(config-router)#no auto-summary

                 (关闭路由自动聚合)

R(config-router)#network 192.168.1.0

                   (设置参与RIP协议的网络地址)

R#show ip interface brief

                   (查看IP地址和端口转态)

R# show ip route

                   (查看路由表)

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

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

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

如上图所示:

 

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

    客户端第一次发送请求连接时,ACK=0,SYN=1,seq=x;

    服务器端发送请求接受报文时,ACK=1,SYN=1,seq=y,ack=x+1

   客户端发送请求确认报文时,ACK=1

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

               第一次:

                          客户端发送连接建立请求,ACK=0,SYN=1,SEQ=0;

                        

              第二次:

                       服务器端发送连接接受报文,ACK=1,SYN=1,SEQ=0;

                      

          第三次:ACK=1,SYN=0,SEQ=1

                     

       进行第三次握手的原因:

          1   当客户端发送连接建立请求报文时,该报文由于网络拥塞或者其他原因,在规定时间内,未收到服务器端的连接接受报文

          2 此时客户端又发送了一个连接建立请求报文,并得到了服务器端的及时响应,然后二者之间继续完成连接建立,然后传输数据,最后连接释放

          3  连接释放之后,服务器端收到了客户端迟到的连接建立请求报文,误以为是客户端又要建立连接,然后服务器端像客户端发送连接接受报文并为

     此次连接准备资源。但是此时客户端不需要传输数据,这样就白白浪费了服务器的资源。如果服务器端得到客户端发送的连接确认请求后(即第三次握手),

    再为此次传输  准备资源,就能够解决这个问题。

 

更正:

       三报文握手上诉原因不成立一、由IP协议的TTL值字段,迟到已久的报文很可能被丢弃;

                                                      二、由TCP可靠传输,这种情况属于 确认迟到 ,该报文会被丢弃。

      第三次握手的原因如下:

              TCP运输层进行全双工通信,连接的建立包括客户端向服务器,以及服务器向客户端

             PC——SYN=1,ACK=0——Server                PC向服务器端发送连接建立请求报文 

               
                 server——ACK=1,SYN=1——PC     
      服务器发送连接接受报文,同时捎带服务器向客户端建立连接的请求,客户端向服务器端的连接建立完成;

 

             PC——ACK=1——server                        服务器向客户端的连接建立完成

 

                

4. 拓展 (不作要求,但属于加分项)

(1)分析TCP连接释放

画出TCP连接释放示意图,结合课本内容,解释图为什么会跟课本不一样。解答为什么连接释放需要四次握手。

 

         实际过程中,客户端向服务器端发送连接建立请求报文后,服务器端将对此报文的确认以及自己向对方发出的请求

建立连接在同一个报文中发出。