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

个人信息

  • 姓名  徐思婕 
  • 学号  201821121004
  • 班级  计算1811

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

1 实验目的

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

2 实验内容

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

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

3. 实验报告

3.1 建立网络拓扑结构

         网络拓扑图如下图所示:

       

3.2 配置参数

          客户端的IP地址为192.168.1.4:

        

          服务端的IP地址为192.168.2.4:

    

 

           路由器参数配置:

       

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

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

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

            Router(config)#interface F 0/0  #进入以太网接口0/0

            Router(config-if)#ip address 192.168.1.5 255.255.255.0  #添加IP地址

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

            Router(config-if)#exit  #返回

            Router(config)#interface F 0/1  #进入以太网接口0/1

            Router(config-if)#ip address 192.168.2.5 255.255.255.0  #添加IP地址

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

 

            配置路由算法:

          

            R(config-router)#version 2:使用rip2版本

 

           验证参数配置:

           

           R#show ip interface brief:检验IP地址正确并且接口处于激活状态

 

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

         用客户端的浏览器访问服务器:

        

 

         抓包:

        

        

 

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

         

 

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

 

          第一次握手:在打算建立TCP连接时,向服务器发出报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x(此处x为0),SYN-SENT状态。

          第二次握手:服务器连接请求报文段后,如同意建立连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack=x+1(此处ack为1),同时也为  自己选择一个初始序号seq=y(此处y为0)。

          第三次握手:客户端收到服务器的确认后,还要向服务器发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack=y+1(此处ack为1),而自己的序号seq=x+1(此处seq为1)。

 

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

           为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误。

           客户端发出去的第一个连接请求报文并没有丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达服务器。本来这是 一个早已失效的报文段,但是服务器收到此失效的报文之后,会误认为是客户端再次发出的一个新的连接请求,于是服务器就向客户端又发出确认报文,表示同意建立连接。

4. 拓展 

          疑问:为什么连接的时候是三次握手,关闭的时候却是四次握手?

          答:因为当服务器收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端已收到FIN报文。等到服务器所有的报文都发送完了,才能发送FIN报文,因此不能一起发送。所以需要四步握手。

          

posted @ 2019-10-17 21:13  一昼  阅读(288)  评论(0编辑  收藏  举报