姓名:李雅
学号: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之间可以开始传输数据了。