第三次实验报告:通过抓取TCP了解运输层

第三次实验报告:通过抓取TCP了解运输层

  • 姓名:王璐璐
  • 学号:201821121037
  • 班级:计算1812

0 摘要

 在本次实验中,通过对TCP报文的解析,理解TCP协议的连接建立与连接释放过程,以此了解运输层之间可靠传输的工作原理。在使用Cisco Packet Tracer时,将会通过路由器来连接客户端与服务器,在此次实验中还会使用命令行来设置路由器,以此达到网络的联通。

1 实验目的

使用路由器连接不同的网络

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

2 实验内容

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

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

3 实验报告

此次实验报告主要是通过建立客户端、路由器与服务器之间的连接,分析TCP运输的连接建立中的三次握手与连接释放的四次握手,借此了解运输层是如何达到可靠传输的。

3.1 建立网络拓扑结构

上图中PC-PT为客户端,Router为路由器,Server-PT为服务器,图中连线中的红色倒三角表示线路还未联通,客户端还无法访问到服务器。

3.2 配置参数 

3.2.1 客户端IP地址的设置

 3.2.2 服务器IP地址的设置

在设置完客户端与服务器的IP地址后,我们将对路由器中的各个参数进行设置,将处于两个网络中的客户端与服务器联系起来。

3.2.3 路由器参数的设置

1)以下是上图中各行代码所表示的含义:

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

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

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

2)配置G0/0接口: 

R(config)#interface G0/0                               #进入端口配置模式

R(config-if)#ip address 192.168.1.80 255.255.255.0    #配置端口

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

3)当配置完路由器的端口号时,客户端与服务器之间的连接确立,下图是成功连接后的网络拓扑结构:

4)路由器的参数设置好后,我们需要对客户端与服务器的IP地址中的默认网关进行设置,其图如下:

客户端IP地址默认网关的设置——

服务器IP地址默认网关的设置——

5)即使客户端与服务器之间连接成功,两者之间也无法做到可靠传输,所以我们需要对路由器设置一个协议,通过该路由协议来约定客户端与服务器之间传输连接。

3.2.4 路由协议的配置

R(config)#router rip                       #进入rip路由协议配置模式

R(config-router)#version 2               #选择的rip的版本

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

R(config-router)#network 192.168.1.0

R(config-router)#network 192.168.2.0    #设置参与RIP协议的网络地址

对路由器设置完路由协议后,我们可以通过以下两个命令来验证路由器的连接情况:

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

2)R#show ip route                                    #查看路由表

 3)ping 192.168.2.37                                   #在客户端上ping服务器,测试客户端与服务器之间能否正常通信

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

3.3.1 打开客户端的浏览器,对服务器进行访问

3.3.2 在仿真过程中,获取的数据包如下图,我们将会得到TCP包与HTTP包

 3.3.3 画出TCP连接建立示意图

3.3.4 分析序号和确认号的变化

1)上图第一个箭头表示客户端与服务器之间的第一次握手,在该次握手中,同步位SYN的值为1,表示PC向Server发出了连接请求,在发出连接请求时,设置了一个初始序号,即seq=0,并对确认号设置一个初值;

2)第二个箭头表示客户端与服务器之间的第二次握手,此次握手是Server向PC发送的确认报文,因此报文中的ACK与SYN均为1,并将改变ack的值,即ack=上一个报文中seq值+1,表示上一个报文中传输的数据全都正确收到,除此之外,还要再设置一个起始序号值,即seq值;

3)第三个箭头表示客户端与服务器之间的第三次握手,该次握手是发生在PC收到来自Server返回的确认包后,再次向Server发送一个确认包,该数据包中的起始序号值来源于Server发送回来的确认包中的确认号,即seq=上一个报文中ack的值,而对于确认号的设置则根据上一个报文中的序号进行设置,即ack=上一个报文中的seq值+1.

3.3.5 解答连接建立为什么要第三次握手

进行第三次的握手只要是为了防止客户端中发送的已失效的连接请求报文段突然又传送到服务器中,导致服务器认为又重新建立了运输连接,为新的连接开辟资源,造成资源的浪费。

3.4 TCP连接释放分析

由于TCP是面向连接的协议,所以用运输连接来传送TCP报文,而一条运输连接有三个阶段,即连接建立、数据传输、连接释放。在上面已经对TCP的连接建立过程进行了简单的分析,接下来将会对TCP的连接释放进行简单地分析。

3.4.1 画出TCP连接释放的示意图

 3.4.2 解答连接释放为什么需要四次握手

当客户端中的数据都传送给了服务器时,客户端发送连接释放请求,服务器收到该请求后并不会马上就关闭SOCKET,服务器只能先发送一个ACK报文告诉客户端它发送的连接释放请求已收到。当服务器中的报文都发送完后,服务器才会向客户端发送FIN报文,因此服务器的ACK报文与FIN报文不会同时发送,需要四次握手才可以释放TCP运输连接。

猜你喜欢

转载自www.cnblogs.com/jmuaia-wll/p/11678040.html