个人信息
- 姓名 徐思婕
- 学号 201821121004
- 班级 计算1811
第三次实验报告:使用Packet Tracer分析TCP连接建立过程
1 实验目的
- 使用路由器连接不同的网络
- 使用命令行操作路由器
- 通过抓取HTTP报文,分析TCP连接建立的过程
2 实验内容
使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程。
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3. 实验报告
3.1 建立网络拓扑结构
网络拓扑图如下图所示:
3.2 配置参数
客户端的IP地址为192.168.1.4:
服务端的IP地址为192.168.2.4:
路由器参数配置:
Router>enable #进入特权执行模式
Router#config terminal #进入全局配置模式
Rouer(config)#hostname R #将路由器名称配置为R
Router(config)#interface F 0/0 #进入以太网接口0/0
Router(config-if)#ip address 192.168.1.5 255.255.255.0 #添加IP地址
Router(config-if)#no shutdown #激活端口
Router(config-if)#exit #返回
Router(config)#interface F 0/1 #进入以太网接口0/1
Router(config-if)#ip address 192.168.2.5 255.255.255.0 #添加IP地址
Router(config-if)#no shutdown #激活端口
配置路由算法:
R(config-router)#version 2:使用rip2版本
验证参数配置:
R#show ip interface brief:检验IP地址正确并且接口处于激活状态
3.3 抓包,分析TCP连接建立过程
用客户端的浏览器访问服务器:
抓包:
(1)画出TCP连接建立示意图
(2)分析序号和确认号的变化
第一次握手:在打算建立TCP连接时,向服务器发出报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x(此处x为0),SYN-SENT状态。
第二次握手:服务器连接请求报文段后,如同意建立连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack=x+1(此处ack为1),同时也为 自己选择一个初始序号seq=y(此处y为0)。
第三次握手:客户端收到服务器的确认后,还要向服务器发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack=y+1(此处ack为1),而自己的序号seq=x+1(此处seq为1)。
(3)解答:为什么连接建立需要第三次握手
为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误。
客户端发出去的第一个连接请求报文并没有丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达服务器。本来这是 一个早已失效的报文段,但是服务器收到此失效的报文之后,会误认为是客户端再次发出的一个新的连接请求,于是服务器就向客户端又发出确认报文,表示同意建立连接。
4. 拓展
疑问:为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当服务器收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端已收到FIN报文。等到服务器所有的报文都发送完了,才能发送FIN报文,因此不能一起发送。所以需要四步握手。