码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-20 13:27:15      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:选项   host   通信   路由表   配置路由   命令   表示   循环   shutdown   

姓名:李雅

学号:201821121096

班级:计算1814

1 实验目的

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

2 实验内容

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

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

3. 实验报告

3.1 建立网络拓扑结构

网络拓扑图如下图所示:技术图片

 

 

3.2 配置参数

  • 客户端的IP地址为192.168.1.109
  • 服务端的IP地址为192.168.1.110

参数配置的详细操作:

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

技术图片

 

 

 

 

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

技术图片

 

  配置路由器参数:

技术图片

 

 

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

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

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

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

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

 配置并激活端口:

 技术图片

 

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

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

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

配置Fa0/0接口;

 • 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接口的箭头由红变绿

技术图片

 

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

技术图片

 

配置路由算法技术图片

 

 技术图片

 

启用动态路由

• 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

技术图片

 

 

• 查看路由表

• show ip route

技术图片

 

• 任意两台机器能ping成功

• ping 192.168.2.96

技术图片

 

 

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

抓包:

技术图片

 

技术图片

 

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报文格式:

技术图片

 

源端口:占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连接建立示意图

技术图片

 

 

(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之间可以开始传输数据了。

 

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

标签:选项   host   通信   路由表   配置路由   命令   表示   循环   shutdown   

原文地址:https://www.cnblogs.com/elegantL/p/11707221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!