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

1 实验目的

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

2 实验内容

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

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

3. 实验报告

在博文开头给出你的个人信息

  • 姓名:  陈诗苗
  • 学号:201821121063
  • 班级:计算1813

3.1 建立网络拓扑结构

网络拓扑图如下图所示:

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

 

 

3.2 配置参数

  • 客户端的IP地址为192.168.1.6363是学号的尾数。
  • 服务端的IP地址为192.168.1.6464是学号的尾数+1。
  • 给出路由器参数配置的详细操作,解释每条命令的功能:

    1.配置参数,PC端,设置默认网关(Deafult Gateway)

     2.配置参数,服务端,设置默认网关(Deafult Gateway)

    3. 配置路由器参数:

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

     清除路由器上的现有配置;

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

    使用命令erase startup-config清除路由器上的现有配置:
    • Router>enable                   # 进入特权执行模式

    • Router#erase startup-config     # 清除路由器上的现有配 置

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

    • Router(config)#no ip domain-lookup  # 禁用DNS查找

     在实验环境中禁用DNS查找的目的是提高操作响应时间,因为键 入错误的命令,路由器会把错误命令当成域名进行查找。

     配置并激活端口:

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

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

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

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

    配置Fa0/0接口;

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

     • R(config)#interface Fa0/0

    • R(config-if)#ip address 192.168.1.110 255.255.255.0

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

    激活接口后,发现Fa0/0接口的箭头由红变绿

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

     同样方法激活Fa0/1接口;

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

    激活接口后,发现Fa0/1接口的箭头由红变绿 

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

     

     配置路由算法

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

     

    启用动态路由

    • R(conf)# router rip

    • R(conf)#version   2 使用rip 2版本

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

    指定网络

    • R(conf)#network 192.168.1.0

    • R(conf)#network 192.168.2.0

    验证参数配置是否正确

    • 检验IP地址正确并且接口处于激活状态

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

    • 查看路由表

    • show ip route

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

     

    • 任意两台机器能ping成功

    • ping 192.168.2.109

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

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

    抓包:

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

     

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

     

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

     

    IP报文格式:

    VER4:4位版本号:指IP协议的版本。通信双方使用的IP协议版本必须一致,对于IPv4来说,就是4。
    IHL:4位首部长度:可表示的最大十进制数是15,注意首部长度字段所表示数的单位是32位字(也就是4字节),所以IP头部最大长度是60字节(最小20字节)。
    DSCP:8位区分服务:由3位优先权字段(已弃用),4位TOS字段和1位保留字段(必须置为0)组成。4位TOS分别表示:最小延迟、最大吞吐量、最高可靠性、最小成本。这四者相互冲突,只能选一个。对于ssh/telnet 这样的应用程序,最小延迟比较重要;对于ftp这样的程序,最大吞吐量比较重要。
    TL:16位总长度: IP数据报(首部+数据)整体占多少字节。该字段为16位,所以数据报最大长度为 216−1=65535
    字节。
    ID:16位标识:唯一的标识主机发送的报文。IP软件在储存器中维护一个计数器,每产生一个数据报,计数器就+1,并将此值赋值给标识字段。当数据报长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。
    FLAGS:3位标志字段:第一位保留(现在不用,但说不定以后要用到);第二位DF,意思是“不能分片”,只有当DF=0时,才允许分片;第三位(最低位)MF,MF=1表示后面还有分片的数据报,MF=0表示这是若干数据报片中的最后一个。
    FRAG OFFSET:13位片偏移:较长的报文在分片之后,某片在原报文中的相对位置。片偏移以8字节为单位,这就是说除了最后一个分片,每个分片的长度是8字节的整数倍。
    TTL:8位生存时间(Time To Live, TTL):数据报到达目的地的最大报文跳数,一般是64。每经过一个路由,TTL 就会 -1,一直减到0还没有到达,那就丢弃了。这个字段主要是防止出现路由循环。
    PRO:8位协议:表示上层协议的类型。
    CHKSUM:16位首部检验和:用来鉴别头部是否损坏(不检验数据部分),并不是使用CRC进行校验。
    SRC IP、DST IP:32位源地址和32位目标地址:表示发送端和接收端的IP地址。
    OPT:可变字段:就是一个选项长度,大小从1字节到40字节不等。

    TCP报文格式:

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

     

    源端口:占2个字节,源端口和IP的作用是标记报文的返回地址。 
    目的端口:占2个字节,指明接收方计算机上的应用程序接口。

    序号:占4个字节,是TCP可靠传输的关键部分。

    确认序号:即ack,占4个字节,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。

    数据偏移:占4位,它指出TCP报文的数据距离TCP报文段的起始处有多远。

    保留:为将来定义新的用途保留,一般置为0。

    控制位:

      URG:紧急指针标志。1:紧急指针有效;0:忽略紧急指针。
      ACK:确认序号标志。1:确认号有效;0:忽略确认号段。
      PSH:push标志。1:带有push标志的数据,表示接收方在接收到该报文后应尽快将这个报文段交给应用程序,而不是缓冲区排队。
      RST:重置连接标志。用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
      SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
      FIN:结束标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
    窗口:滑动窗口大小,用来告知发送端接收端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。

    校验和:奇偶校验,此校验和是针对整个TCP报文段的,包括TCP报头和TCP报文数据段,以2个字节进行计算所得。

    紧急指针:只有当URG标志置1时紧急指针才有效,TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。

    选项和填充:最常见的可选字段是最长报文大小,它表示本端所能接受的最大报文段的长度。

    数据部分:TCP报文段中的数据部分是可选的。

     

    (1)TCP连接建立示意图

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

     

     

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

    TCP的三次握手:

      (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

      (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

      (3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

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

       a、首先,TCP是可靠通信协议,为了实现可靠传输, 通信双方需要判断自己已经发送的数据包是否都被接收方收到, 如果没收到, 就需要重发。 为了实现这个需求, 很自然地就会引出序号和 确认号 的使用。

      b、为了实现可靠传输,发送方和接收方始终需要同步SYN序号。 序号并不是从 0 开始的,而是由发送方随机选择的初始序列号ISN开始 。由于TCP是一个双向通信协议, 通信双方都有能力发送信息,并接收响应,因此,通信双方都需要随机产生一个初始的序列号,并且把这个起始值告诉对方。

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