第三次实验报告:使用Packet Tracer分析TCP连接建立过程
第三次实验报告:使用Packet Tracer分析TCP连接建立过程
个人信息
- 郑兰艳
- 201821121064
- 计算1813
1 实验目的
- 使用路由器连接不同的网络
- 使用命令行操作路由器
- 通过抓取HTTP报文,分析TCP连接建立的过程
2 实验内容
使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程。
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3. 实验报告
3.1 建立网络拓扑结构
网络拓扑图如下图所示:
3.2 配置参数
- 客户端的IP地址为
192.168.1.64
- 服务端的IP地址为
192.168.2.64。
- router配置
(1)清除路由器的现有配置
• Router>enable # 进入特权执行模式
• Router#erase startup-congig #清除路由器的现有配置
• Router#configure terminal # 进入全局配置模式
• Router(config)#no domain-lookup #禁用DNS查找
(2)配置并激活端口
• Router(config)#hostname R # 将路由器名称配置为R
• R(config)#interface G0/0/0 #进入路由器端口G0/0/0
• R(config-if)# ip address 192.168.1.65 255.255.255.0 #路由器端口G0/0/0配置ip地址
• R(config-if)#no shutdown # 打开路由器端口G0/0/0
• R(config)#interface G0/0/1 #进入路由器端口G0/0/1
• R(config-if)# ip address 192.168.2.65 255.255.255.0 #路由器端口G0/0/1配置ip地址
• R(config-if)#no shutdown # 打开路由器端口G0/0/1
(3)配路由算法
• R(config)#router rip #启动动态路由
• R(config-router)# versin 2 #使用rpi 2版本
• R(config-router)#no auto-summary #关闭自动路由汇总
• R(config-router)# network 192.168.1.0
• R(config-router)# network 192.168.2.0 #指定网络
(4)验证参数配置是否正确
• R#show ip interface brief #检验ip地址正确并且接口处于激活状态
• R#show ip route #查看路由表
• R#ping 192.168.2.65 #任意两台机器能ping成功
3.3 抓包,分析TCP连接建立过程
(1)抓包
(2)报文
(3)画出TCP连接建立示意图
如下图所示:
(4)分析序号和确认号的变化
- 第1次握手:建立TCP连接时,PC向服务器TCP发出连接请求报文段,这时首部的同步位SYN=1,同时选择一个初始序号seq=x。客户端状态为SYN_SENT;
- 第2次握手:服务器收到连接请求报文之后,同意建立连接,向客户端发送确认报文。在确认报文段中SYN位和ACK位都为1,确认号ack等于x+1,同时初始序号seq=y;
- 第3次握手:PC收到服务器的确认后,还要向服务器给出确认,确认报文段的ACK置1,ack=y+1,自己的序号为seq=x+1;
(5)解答:为什么连接建立需要第三次握手
答:防止已经失效的连接请求报文段突然又传到服务端,因而产生错误;
原文地址:https://www.cnblogs.com/zhengly/p/11707814.html
- 串口通信控制器的Verilog HDL实现(三) 发送模块的Verilog HDL 实现
- 串口通信控制器的Verilog HDL实现(二) 波特率发生器模块
- 串口通信控制器的Verilog HDL实现(一) 顶层模块
- 双口同步RAM
- 单口RAM
- Python 基础:类与函数
- 论 Python 装饰器控制函数 Timeout 的正确姿势
- 巧用 SecureCRT 实现复杂的 ssh 登录过程自动化
- pyDes 实现 Python 版的 DES 对称加密/解密
- 流水灯
- Chrome 自动化交互利器:用 tampermonkey 向页面注入自定义 Javascript
- 一次小折腾:PyCharm 调用 Cygwin Python 找不到 time、sys 等内置模块
- 网站数据统计分析之二:前端日志采集是与非
- Linux Shell 从入门到删除根目录跑路指南
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【剑指Offer】二叉搜索树的后序遍历序列
- 【剑指Offer】Ⅲ. 从上到下打印二叉树
- scRepertoire||单细胞免疫组库分析:R语言应用(二)
- 【剑指Offer】Ⅱ. 从上到下打印二叉树
- 【剑指Offer】I. 从上到下打印二叉树
- C#还能这么玩?“诺基亚大屏独显计算器”来咯!
- 【剑指Offer】栈的压入、弹出序列
- 【剑指Offer】包含min函数的栈
- 【剑指Offer】顺时针打印矩阵
- 从0打造属于自己的windows开发命令终端
- hadoop数据类型及自定义
- 惊!u202a错误,百分之九十都不知道的隐藏在文件路径里的惊天秘密!(干货收藏)
- 百度站点收录 - 什么叫自动推送
- 虚拟机安装Centos后的一些配置
- CentOS下的JDK安装